- fix: update on Insert
- fix: update on Edit
This commit is contained in:
@@ -38,6 +38,7 @@ export default class Todo extends Vue {
|
|||||||
itemDragStart: any = null
|
itemDragStart: any = null
|
||||||
itemDragEnd: any = null
|
itemDragEnd: any = null
|
||||||
selrowid: number = 0
|
selrowid: number = 0
|
||||||
|
todos_global: ITodo[] = []
|
||||||
|
|
||||||
// @Prop({ required: false }) category: string
|
// @Prop({ required: false }) category: string
|
||||||
|
|
||||||
@@ -54,6 +55,11 @@ export default class Todo extends Vue {
|
|||||||
this.load()
|
this.load()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Watch('todos_global') refresh() {
|
||||||
|
console.log('Todos.state.todos CHANGED!')
|
||||||
|
this.updatetable(true)
|
||||||
|
}
|
||||||
|
|
||||||
getCategory() {
|
getCategory() {
|
||||||
return this.$route.params.category
|
return this.$route.params.category
|
||||||
// return this.category
|
// return this.category
|
||||||
@@ -252,6 +258,9 @@ export default class Todo extends Vue {
|
|||||||
|
|
||||||
async load() {
|
async load() {
|
||||||
|
|
||||||
|
this.todos_global = Todos.state.todos
|
||||||
|
this.todos_arr = [...Todos.state.todos]
|
||||||
|
|
||||||
|
|
||||||
// Set last category selected
|
// Set last category selected
|
||||||
localStorage.setItem(rescodes.localStorage.categorySel, this.getCategory())
|
localStorage.setItem(rescodes.localStorage.categorySel, this.getCategory())
|
||||||
@@ -273,9 +282,21 @@ export default class Todo extends Vue {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
copy(o) {
|
||||||
|
var output, v, key
|
||||||
|
output = Array.isArray(o) ? [] : {}
|
||||||
|
for (key in o) {
|
||||||
|
v = o[key]
|
||||||
|
output[key] = (typeof v === 'object') ? this.copy(v) : v
|
||||||
|
}
|
||||||
|
return output
|
||||||
|
}
|
||||||
|
|
||||||
initcat() {
|
initcat() {
|
||||||
|
|
||||||
const mydateexp = new Date().setDate((new Date()).getDate() + 1)
|
|
||||||
|
let mydatenow = new Date().getDate()
|
||||||
|
let mydateexp = new Date().getDate() + 10
|
||||||
|
|
||||||
console.log('User:' + UserStore.state.userId)
|
console.log('User:' + UserStore.state.userId)
|
||||||
|
|
||||||
@@ -285,9 +306,9 @@ export default class Todo extends Vue {
|
|||||||
descr: '',
|
descr: '',
|
||||||
priority: rescodes.Todos.PRIORITY_NORMAL,
|
priority: rescodes.Todos.PRIORITY_NORMAL,
|
||||||
completed: false,
|
completed: false,
|
||||||
created_at: new Date(),
|
created_at: mydatenow,
|
||||||
modify_at: new Date(),
|
modify_at: mydatenow,
|
||||||
completed_at: null,
|
completed_at: 0,
|
||||||
category: '',
|
category: '',
|
||||||
expiring_at: mydateexp,
|
expiring_at: mydateexp,
|
||||||
enableExpiring: false,
|
enableExpiring: false,
|
||||||
@@ -297,7 +318,7 @@ export default class Todo extends Vue {
|
|||||||
modified: true,
|
modified: true,
|
||||||
progress: 0
|
progress: 0
|
||||||
}
|
}
|
||||||
return objtodo
|
return this.copy(objtodo)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -479,11 +500,21 @@ export default class Todo extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async updatetable(refresh: boolean = false) {
|
async updatetable(refresh: boolean = false) {
|
||||||
await this.filtertodos(refresh)
|
console.log('updatetable')
|
||||||
|
|
||||||
|
return await Todos.actions.getTodosByCategory(this.getCategory())
|
||||||
|
.then(arrtemp => {
|
||||||
|
|
||||||
|
arrtemp = _.orderBy(arrtemp, ['completed', 'priority', 'pos'], ['asc', 'desc', 'asc'])
|
||||||
|
|
||||||
|
this.updateLinkedList(true, arrtemp)
|
||||||
|
|
||||||
|
this.todos_arr = [...arrtemp] // make copy
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
clearArr() {
|
clearArr() {
|
||||||
this.todos_arr = []
|
// this.todos_arr = []
|
||||||
}
|
}
|
||||||
|
|
||||||
existArr(x) {
|
existArr(x) {
|
||||||
@@ -542,21 +573,6 @@ export default class Todo extends Vue {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async filtertodos(refresh: boolean = false) {
|
|
||||||
console.log('filtertodos')
|
|
||||||
|
|
||||||
return await Todos.actions.getTodosByCategory(this.getCategory())
|
|
||||||
.then(arrtemp => {
|
|
||||||
|
|
||||||
arrtemp = _.orderBy(arrtemp, ['completed', 'priority', 'pos'], ['asc', 'desc', 'asc'])
|
|
||||||
|
|
||||||
this.updateLinkedList(true, arrtemp)
|
|
||||||
|
|
||||||
this.todos_arr = [...arrtemp] // make copy
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sortarr(arr, field) {
|
sortarr(arr, field) {
|
||||||
|
|
||||||
return arr.slice().sort(function (a, b) {
|
return arr.slice().sort(function (a, b) {
|
||||||
@@ -650,7 +666,7 @@ export default class Todo extends Vue {
|
|||||||
|
|
||||||
this.modifyField(miorec, myobj, 'descr')
|
this.modifyField(miorec, myobj, 'descr')
|
||||||
if (this.modifyField(miorec, myobj, 'completed'))
|
if (this.modifyField(miorec, myobj, 'completed'))
|
||||||
miorec.completed_at = new Date()
|
miorec.completed_at = new Date().getDate()
|
||||||
|
|
||||||
this.modifyField(miorec, myobj, 'category')
|
this.modifyField(miorec, myobj, 'category')
|
||||||
this.modifyField(miorec, myobj, 'expiring_at')
|
this.modifyField(miorec, myobj, 'expiring_at')
|
||||||
@@ -663,7 +679,7 @@ export default class Todo extends Vue {
|
|||||||
|
|
||||||
|
|
||||||
if (miorec.modified) {
|
if (miorec.modified) {
|
||||||
miorec.modify_at = new Date()
|
miorec.modify_at = new Date().getDate()
|
||||||
|
|
||||||
// this.logelem('modify', miorec)
|
// this.logelem('modify', miorec)
|
||||||
|
|
||||||
@@ -679,4 +695,20 @@ export default class Todo extends Vue {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clicktest () {
|
||||||
|
console.log('clicktest!')
|
||||||
|
|
||||||
|
const objtodo = this.initcat()
|
||||||
|
objtodo.descr = 'PROVA'
|
||||||
|
objtodo.category = this.getCategory()
|
||||||
|
Todos.state.todos.push(objtodo)
|
||||||
|
|
||||||
|
console.log('Todos.state.todos', Todos.state.todos)
|
||||||
|
}
|
||||||
|
|
||||||
|
clicktest2 () {
|
||||||
|
this.updatetable(false)
|
||||||
|
console.log('Todos.state.todos', Todos.state.todos)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,14 @@
|
|||||||
:after="[{icon: 'arrow_forward', content: true, handler () {}}]"
|
:after="[{icon: 'arrow_forward', content: true, handler () {}}]"
|
||||||
v-on:keyup.enter="insertTodo"/>
|
v-on:keyup.enter="insertTodo"/>
|
||||||
|
|
||||||
|
<div class="flex-item btn-item">
|
||||||
|
<q-btn class="mybtn" round color="" icon="lock" @click="clicktest()"></q-btn>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex-item btn-item">
|
||||||
|
<q-btn class="mybtn" round color="" icon="person" @click="clicktest2()"></q-btn>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</q-page>
|
</q-page>
|
||||||
|
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ async function readfromIndexDbToStateTodos(context) {
|
|||||||
return await storage.getalldata('todos')
|
return await storage.getalldata('todos')
|
||||||
.then(ristodos => {
|
.then(ristodos => {
|
||||||
console.log('&&&&&&& readfromIndexDbToStateTodos OK: Num RECORD: ', ristodos.length)
|
console.log('&&&&&&& readfromIndexDbToStateTodos OK: Num RECORD: ', ristodos.length)
|
||||||
UserStore.state.todos = ristodos
|
console.log('ristodos:', ristodos)
|
||||||
|
UserStore.state.todos = [...ristodos]
|
||||||
}).catch((error) => {
|
}).catch((error) => {
|
||||||
console.log('err: ', error)
|
console.log('err: ', error)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ export let idbKeyval = (() => {
|
|||||||
console.log('store', store, 'key', key)
|
console.log('store', store, 'key', key)
|
||||||
req = store.get(key);
|
req = store.get(key);
|
||||||
});
|
});
|
||||||
console.log('RISFINALE!', req.result)
|
// console.log('RISFINALE!', req.result)
|
||||||
return req.result;
|
return req.result;
|
||||||
},
|
},
|
||||||
async getalldata(table) {
|
async getalldata(table) {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
let let idbKeyval = (() => {
|
let idbKeyval = (() => {
|
||||||
let db;
|
let db;
|
||||||
|
|
||||||
function getDB() {
|
function getDB() {
|
||||||
@@ -52,7 +52,7 @@ let let idbKeyval = (() => {
|
|||||||
console.log('store', store, 'key', key)
|
console.log('store', store, 'key', key)
|
||||||
req = store.get(key);
|
req = store.get(key);
|
||||||
});
|
});
|
||||||
console.log('RISFINALE!', req.result)
|
// console.log('RISFINALE!', req.result)
|
||||||
return req.result;
|
return req.result;
|
||||||
},
|
},
|
||||||
async getalldata(table) {
|
async getalldata(table) {
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ namespace Actions {
|
|||||||
}).then((resData) => {
|
}).then((resData) => {
|
||||||
state.networkDataReceived = true
|
state.networkDataReceived = true
|
||||||
|
|
||||||
state.todos = resData.todos
|
console.log('******* UPDATE TODOS.STATE.TODOS !:', resData.todos)
|
||||||
|
state.todos = [...resData.todos]
|
||||||
|
|
||||||
// After Login will store into the indexedDb...
|
// After Login will store into the indexedDb...
|
||||||
|
|
||||||
@@ -84,6 +85,21 @@ namespace Actions {
|
|||||||
return await dbInsertSaveTodo(context, itemtodo, 'POST')
|
return await dbInsertSaveTodo(context, itemtodo, 'POST')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function UpdateNewIdFromDB(oldItem, newItem, method) {
|
||||||
|
console.log('PRIMA state.todos', state.todos)
|
||||||
|
console.log('ITEM', newItem)
|
||||||
|
if (method === 'POST') {
|
||||||
|
state.todos.push(newItem)
|
||||||
|
} else if (method === 'PATCH') {
|
||||||
|
state.todos.map(item => {
|
||||||
|
if (item._id === newItem._id) {
|
||||||
|
return newItem
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log('DOPO state.todos', state.todos)
|
||||||
|
}
|
||||||
|
|
||||||
async function dbInsertSaveTodo(context, itemtodo: ITodo, method) {
|
async function dbInsertSaveTodo(context, itemtodo: ITodo, method) {
|
||||||
console.log('dbInsertSaveTodo', itemtodo, method)
|
console.log('dbInsertSaveTodo', itemtodo, method)
|
||||||
let call = process.env.MONGODB_HOST + '/todos/' + itemtodo._id
|
let call = process.env.MONGODB_HOST + '/todos/' + itemtodo._id
|
||||||
@@ -91,8 +107,23 @@ namespace Actions {
|
|||||||
const token = UserStore.state.idToken
|
const token = UserStore.state.idToken
|
||||||
|
|
||||||
let res = await Api.SendReq(call, UserStore.state.lang, token, method, itemtodo)
|
let res = await Api.SendReq(call, UserStore.state.lang, token, method, itemtodo)
|
||||||
.then(function (res) {
|
.then( function(response) {
|
||||||
return rescodes.OK
|
if (response)
|
||||||
|
return response.json()
|
||||||
|
else
|
||||||
|
return null
|
||||||
|
}).then(newItem => {
|
||||||
|
console.log('RESDATA =', newItem)
|
||||||
|
if (newItem) {
|
||||||
|
const newId = newItem._id
|
||||||
|
|
||||||
|
if (method === 'PATCH') {
|
||||||
|
newItem = newItem.todo
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update ID on local
|
||||||
|
UpdateNewIdFromDB(itemtodo, newItem, method)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
if (process.env.DEV) {
|
if (process.env.DEV) {
|
||||||
@@ -102,7 +133,6 @@ namespace Actions {
|
|||||||
return rescodes.ERR_GENERICO
|
return rescodes.ERR_GENERICO
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user