2019-01-14 22:40:30 +01:00
|
|
|
import Vue from 'vue'
|
2019-01-27 19:09:48 +01:00
|
|
|
import { Component, Prop, Watch } from 'vue-property-decorator'
|
2019-01-14 22:40:30 +01:00
|
|
|
|
|
|
|
|
import { SingleTodo } from '@components'
|
|
|
|
|
import { ITodo } from '@src/model'
|
|
|
|
|
|
|
|
|
|
import { rescodes } from '../../../store/Modules/rescodes'
|
|
|
|
|
|
|
|
|
|
import { UserStore } from '@modules'
|
|
|
|
|
|
|
|
|
|
import _ from 'lodash'
|
|
|
|
|
|
2019-01-16 02:26:43 +01:00
|
|
|
import draggable from 'vuedraggable'
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
import $ from 'jquery'
|
|
|
|
|
|
2019-01-14 22:40:30 +01:00
|
|
|
@Component({
|
2019-01-16 02:26:43 +01:00
|
|
|
components: { SingleTodo, draggable }
|
2019-01-14 22:40:30 +01:00
|
|
|
})
|
|
|
|
|
export default class Todo extends Vue {
|
|
|
|
|
$q: any
|
|
|
|
|
|
|
|
|
|
filter: boolean = false
|
|
|
|
|
title: string = ''
|
|
|
|
|
todo: string = ''
|
2019-01-27 19:09:48 +01:00
|
|
|
todos_arr: ITodo[] = []
|
2019-01-16 02:26:43 +01:00
|
|
|
drag: boolean = true
|
|
|
|
|
startpos: number = 0
|
2019-01-27 19:09:48 +01:00
|
|
|
listPriorityLabel: number[] = []
|
|
|
|
|
arrPrior: number[] = []
|
|
|
|
|
prioritySel: number = 0
|
|
|
|
|
itemDragStart: any = null
|
|
|
|
|
itemDragEnd: any = null
|
|
|
|
|
selrowid: number = 0
|
|
|
|
|
|
|
|
|
|
$refs: {
|
|
|
|
|
single: SingleTodo[]
|
|
|
|
|
}
|
2019-01-16 02:26:43 +01:00
|
|
|
|
|
|
|
|
@Watch('drag') changedrag() {
|
|
|
|
|
console.log('drag = ' + this.drag)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
change(param) {
|
|
|
|
|
console.log('Change... ' + param)
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
getmyid(id) {
|
|
|
|
|
return 'row' + id
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getrefbyid(id) {
|
|
|
|
|
return 'single' + id
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
getelem(indelem, arr: ITodo[] = this.todos_arr) {
|
|
|
|
|
return (indelem >= 0) && (indelem < arr.length) ? arr[indelem] : null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getLastElem() {
|
|
|
|
|
if (this.todos_arr.length > 0)
|
|
|
|
|
return this.todos_arr[this.todos_arr.length - 1]
|
|
|
|
|
else
|
|
|
|
|
return null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getFirstelem() {
|
|
|
|
|
return this.todos_arr[this.todos_arr.length - 1]
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-16 02:26:43 +01:00
|
|
|
onStart() {
|
2019-01-27 19:09:48 +01:00
|
|
|
|
2019-01-16 02:26:43 +01:00
|
|
|
this.startpos = 0
|
2019-01-27 19:09:48 +01:00
|
|
|
this.itemDragStart = null
|
2019-01-16 02:26:43 +01:00
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
async updateLinkedList(init: boolean, arr: ITodo[] = this.todos_arr) {
|
|
|
|
|
|
|
|
|
|
console.log('updateLinkedList', this.todos_arr)
|
|
|
|
|
|
|
|
|
|
let idprev = -1
|
|
|
|
|
let idnext = -1
|
|
|
|
|
let pos = 1
|
|
|
|
|
if (arr.length > 0) {
|
|
|
|
|
idprev = arr[0].id_prev
|
|
|
|
|
idnext = arr[0].id_next
|
|
|
|
|
}
|
|
|
|
|
await arr.forEach((elem, index) => {
|
|
|
|
|
if (index === 0) {
|
|
|
|
|
idprev = rescodes.LIST_START
|
|
|
|
|
} else {
|
|
|
|
|
const elemprev = this.getelem(index - 1, arr)
|
|
|
|
|
idprev = elemprev.id
|
|
|
|
|
}
|
|
|
|
|
if (index === arr.length - 1) {
|
|
|
|
|
idnext = rescodes.LIST_END
|
|
|
|
|
} else {
|
|
|
|
|
const elemnext = this.getelem(index + 1, arr)
|
|
|
|
|
idnext = elemnext.id
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
elem.modified = ((elem.id_prev !== idprev) || (elem.id_next !== idnext) || (elem.pos !== pos)) ? true : elem.modified
|
|
|
|
|
elem.id_prev = idprev
|
|
|
|
|
elem.id_next = idnext
|
|
|
|
|
elem.pos = pos
|
|
|
|
|
if (init) {
|
|
|
|
|
elem.modified = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pos++
|
|
|
|
|
|
|
|
|
|
this.logelem('updateLinked', elem)
|
|
|
|
|
|
|
|
|
|
})
|
2019-01-16 02:26:43 +01:00
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
logelem(mystr, elem) {
|
|
|
|
|
console.log(mystr, 'elem [', elem.id, '] ', elem.descr, ' Pr(', this.getPriorityByInd(elem.priority), ') [', elem.id_prev, '-', elem.id_next, '] modif=', elem.modified)
|
|
|
|
|
}
|
2019-01-16 02:26:43 +01:00
|
|
|
|
2019-01-27 21:49:10 +01:00
|
|
|
getPriorityToSet(ind1, ind2) {
|
2019-01-27 19:09:48 +01:00
|
|
|
let elem1 = this.getelem(ind1)
|
|
|
|
|
let elem2 = this.getelem(ind2)
|
|
|
|
|
|
|
|
|
|
if ((elem1 !== null) && (elem2 !== null)) {
|
|
|
|
|
if (elem1.priority === elem2.priority) {
|
|
|
|
|
return elem1.priority
|
|
|
|
|
} else {
|
|
|
|
|
// if different priority then take the first
|
|
|
|
|
return elem1.priority
|
|
|
|
|
}
|
2019-01-16 02:26:43 +01:00
|
|
|
} else {
|
2019-01-27 19:09:48 +01:00
|
|
|
return (elem1 != null) ? elem1.priority : ((elem2 != null) ? elem2.priority : null)
|
2019-01-16 02:26:43 +01:00
|
|
|
}
|
2019-01-27 21:49:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getCompleted(ind1, ind2) {
|
|
|
|
|
let elem1 = this.getelem(ind1)
|
|
|
|
|
let elem2 = this.getelem(ind2)
|
|
|
|
|
|
|
|
|
|
if ((elem1 !== null) && (elem2 !== null)) {
|
|
|
|
|
if (elem1.completed === elem2.completed) {
|
|
|
|
|
return true
|
|
|
|
|
} else {
|
|
|
|
|
return elem1.completed
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return (elem1 != null) ? elem1.completed : ((elem2 != null) ? elem2.completed : null)
|
|
|
|
|
}
|
2019-01-16 02:26:43 +01:00
|
|
|
|
2019-01-27 21:49:10 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getTitlePriority (priority) {
|
|
|
|
|
let cl = ''
|
|
|
|
|
|
|
|
|
|
if (priority === rescodes.Todos.PRIORITY_HIGH)
|
|
|
|
|
cl = 'high_priority'
|
|
|
|
|
else if (priority === rescodes.Todos.PRIORITY_NORMAL)
|
|
|
|
|
cl = 'medium_priority'
|
|
|
|
|
else if (priority === rescodes.Todos.PRIORITY_LOW)
|
|
|
|
|
cl = 'low_priority'
|
|
|
|
|
|
|
|
|
|
return cl + ' titlePriority'
|
2019-01-27 19:09:48 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async onEnd(itemdragend) {
|
|
|
|
|
console.log('newindex=', itemdragend.newIndex, 'oldindex=', itemdragend.oldIndex)
|
2019-01-16 02:26:43 +01:00
|
|
|
|
2019-01-27 21:49:10 +01:00
|
|
|
if (itemdragend.newIndex === itemdragend.oldIndex)
|
|
|
|
|
return // If nothing change, exit
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
let myobj = this.getelem(itemdragend.newIndex)
|
2019-01-16 02:26:43 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
const indini = itemdragend.newIndex - 1
|
|
|
|
|
const indfine = itemdragend.newIndex + 1
|
|
|
|
|
console.log('indini', indini, 'indfine', indfine)
|
|
|
|
|
// If the newIndex is between another priority, then change priority
|
2019-01-27 21:49:10 +01:00
|
|
|
|
|
|
|
|
let completed = this.getCompleted(indini, indfine)
|
|
|
|
|
let changecompleted = false
|
|
|
|
|
if (completed) {
|
|
|
|
|
myobj.modified = (myobj.completed !== completed) ? true : myobj.modified
|
|
|
|
|
myobj.completed = completed
|
|
|
|
|
changecompleted = true
|
|
|
|
|
console.log('Newcompleted: ', completed)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!changecompleted) {
|
|
|
|
|
// if I changed the completed, I don't have to put in other list priority
|
|
|
|
|
let newpriority = this.getPriorityToSet(indini, indfine)
|
|
|
|
|
if (newpriority != null && newpriority >= 0) {
|
|
|
|
|
myobj.modified = (myobj.priority !== newpriority) ? true : myobj.modified
|
|
|
|
|
myobj.priority = newpriority
|
|
|
|
|
console.log('NewPriority: ', newpriority)
|
|
|
|
|
}
|
2019-01-16 02:26:43 +01:00
|
|
|
}
|
2019-01-27 19:09:48 +01:00
|
|
|
|
|
|
|
|
await this.updateLinkedList(false)
|
|
|
|
|
|
|
|
|
|
// Updated only elements modified
|
|
|
|
|
await this.updateModifyRecords(true)
|
|
|
|
|
|
2019-01-16 02:26:43 +01:00
|
|
|
}
|
2019-01-14 22:40:30 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
async updateModifyRecords(refresh: boolean = false) {
|
|
|
|
|
let update = false
|
|
|
|
|
await this.todos_arr.forEach((elem: ITodo) => {
|
|
|
|
|
if (elem.modified) {
|
|
|
|
|
this.modify(elem, false)
|
|
|
|
|
update = true
|
|
|
|
|
}
|
|
|
|
|
})
|
2019-01-14 22:40:30 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
if (update)
|
|
|
|
|
await this.updatetable(refresh)
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
created() {
|
|
|
|
|
this.load()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setarrPriority() {
|
|
|
|
|
this.arrPrior = []
|
|
|
|
|
const arr = rescodes.selectPriority[UserStore.state.lang]
|
|
|
|
|
arr.forEach(rec => {
|
|
|
|
|
this.arrPrior.push(rec.value)
|
2019-01-14 22:40:30 +01:00
|
|
|
})
|
2019-01-27 19:09:48 +01:00
|
|
|
console.log('Array PRIOR:', this.arrPrior)
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
|
|
|
|
|
async load() {
|
|
|
|
|
for (let todosKey in rescodes.Todos) {
|
|
|
|
|
this.listPriorityLabel.push(rescodes.Todos[todosKey])
|
|
|
|
|
}
|
|
|
|
|
console.log('Priority:' + this.listPriorityLabel)
|
|
|
|
|
this.setarrPriority()
|
|
|
|
|
this.clearArr()
|
|
|
|
|
|
|
|
|
|
await this.updatetable()
|
|
|
|
|
|
|
|
|
|
this.todos_arr.forEach((elem, index) => {
|
|
|
|
|
this.logelem('LOAD ' + index, elem)
|
|
|
|
|
})
|
|
|
|
|
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
initcat() {
|
|
|
|
|
|
|
|
|
|
const mydateexp = new Date().setDate((new Date()).getDate() + 1)
|
|
|
|
|
|
|
|
|
|
const objtodo: ITodo = {
|
|
|
|
|
userId: UserStore.state.userId,
|
|
|
|
|
descr: '',
|
|
|
|
|
priority: rescodes.Todos.PRIORITY_NORMAL,
|
|
|
|
|
completed: false,
|
|
|
|
|
created_at: new Date(),
|
|
|
|
|
modify_at: new Date(),
|
2019-01-27 19:09:48 +01:00
|
|
|
expiring_at: mydateexp,
|
|
|
|
|
id_prev: 0,
|
|
|
|
|
id_next: 0,
|
|
|
|
|
pos: 0,
|
|
|
|
|
modified: true
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
return objtodo
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
getPriorityByInd(index) {
|
|
|
|
|
const arr = rescodes.selectPriority[UserStore.state.lang]
|
|
|
|
|
for (let rec of arr) {
|
|
|
|
|
if (rec.value === index)
|
|
|
|
|
return rec.label
|
|
|
|
|
}
|
|
|
|
|
return ''
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async insertTodo() {
|
|
|
|
|
|
|
|
|
|
const objtodo = this.initcat()
|
|
|
|
|
|
|
|
|
|
objtodo.descr = this.todo
|
2019-01-27 19:09:48 +01:00
|
|
|
const lastelem = this.getLastList()
|
|
|
|
|
objtodo.id_prev = (lastelem !== null) ? lastelem.id : rescodes.LIST_START
|
|
|
|
|
objtodo.id_next = rescodes.LIST_END
|
|
|
|
|
objtodo.pos = (lastelem !== null) ? lastelem.pos + 1 : 1
|
|
|
|
|
objtodo.modified = true
|
2019-01-14 22:40:30 +01:00
|
|
|
|
|
|
|
|
// Add to Indexdb
|
|
|
|
|
await this.$db.todos.add(objtodo
|
2019-01-27 19:09:48 +01:00
|
|
|
).then((id) => {
|
|
|
|
|
console.log('*** IDNEW = ', id)
|
|
|
|
|
if (lastelem !== null) {
|
|
|
|
|
lastelem.id_next = id
|
|
|
|
|
lastelem.modified = true
|
|
|
|
|
this.modify(lastelem, false)
|
|
|
|
|
}
|
|
|
|
|
this.modify(objtodo, true)
|
2019-01-14 22:40:30 +01:00
|
|
|
}).catch(err => {
|
|
|
|
|
console.log('Errore: ' + err.message)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// empty the field
|
|
|
|
|
this.todo = ''
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
getElemById(id, lista = this.todos_arr) {
|
|
|
|
|
let myobj: ITodo
|
|
|
|
|
for (myobj of lista) {
|
|
|
|
|
if (myobj.id === id) {
|
|
|
|
|
return myobj
|
|
|
|
|
}
|
|
|
|
|
}
|
2019-01-14 22:40:30 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
return null
|
2019-01-16 02:26:43 +01:00
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
async deleteitem(id) {
|
|
|
|
|
console.log('deleteitem: KEY = ', id)
|
2019-01-16 02:26:43 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
let myobjtrov = this.getElemById(id)
|
2019-01-16 02:26:43 +01:00
|
|
|
|
2019-01-14 22:40:30 +01:00
|
|
|
if (myobjtrov !== null) {
|
2019-01-27 19:09:48 +01:00
|
|
|
let myobjprev = this.getElemById(myobjtrov.id_prev)
|
|
|
|
|
let myobjnext = this.getElemById(myobjtrov.id_next)
|
|
|
|
|
|
|
|
|
|
if (myobjprev !== null) {
|
|
|
|
|
myobjprev.id_next = myobjtrov.id_next
|
|
|
|
|
myobjprev.modified = true
|
|
|
|
|
this.modify(myobjprev, false)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (myobjnext !== null) {
|
|
|
|
|
myobjnext.id_prev = myobjtrov.id_prev
|
|
|
|
|
myobjnext.modified = true
|
|
|
|
|
this.modify(myobjnext, false)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log('ENTRATO')
|
|
|
|
|
const mythis = this
|
2019-01-14 22:40:30 +01:00
|
|
|
// Delete item
|
2019-01-27 19:09:48 +01:00
|
|
|
await this.$db.todos
|
2019-01-14 22:40:30 +01:00
|
|
|
.where('id').equals(id)
|
|
|
|
|
.delete()
|
|
|
|
|
.then(() => {
|
2019-01-27 19:09:48 +01:00
|
|
|
console.log('UpdateTable')
|
|
|
|
|
mythis.updatetable()
|
|
|
|
|
}).catch((error) => {
|
|
|
|
|
console.log('err: ', error)
|
2019-01-14 22:40:30 +01:00
|
|
|
})
|
|
|
|
|
}
|
2019-01-27 19:09:48 +01:00
|
|
|
|
|
|
|
|
console.log('FINE deleteitem')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async updatetable(refresh: boolean = false) {
|
|
|
|
|
await this.filtertodos(refresh)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
clearArr() {
|
|
|
|
|
this.todos_arr = []
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
existArr(x) {
|
|
|
|
|
return x = (typeof x !== 'undefined' && x instanceof Array) ? x : []
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
getFirstList(arrlist) {
|
|
|
|
|
let elem: ITodo
|
|
|
|
|
for (elem of arrlist) {
|
|
|
|
|
if (elem.id_prev === rescodes.LIST_START) {
|
|
|
|
|
return elem
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
getLastList(arrlist = this.todos_arr) {
|
|
|
|
|
let elem: ITodo
|
|
|
|
|
for (elem of arrlist) {
|
|
|
|
|
if (elem.id_next === rescodes.LIST_END) {
|
|
|
|
|
return elem
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setArrayFinale(arrris) {
|
|
|
|
|
|
|
|
|
|
// Sort List:
|
|
|
|
|
let myarr = []
|
|
|
|
|
|
|
|
|
|
let current = this.getFirstList(arrris)
|
|
|
|
|
let currentprec = current
|
|
|
|
|
|
|
|
|
|
if (current !== null)
|
|
|
|
|
myarr.push(current)
|
|
|
|
|
|
|
|
|
|
let index = -1
|
|
|
|
|
while (current !== null && current.id_next !== rescodes.LIST_END && index < arrris.length) {
|
|
|
|
|
this.logelem('current : ', current)
|
|
|
|
|
console.log('id_next', current.id_next)
|
|
|
|
|
// let changed = (prior !== elem.priority) ? true : false
|
|
|
|
|
current = this.getElemById(current.id_next, arrris)
|
|
|
|
|
if (current === null)
|
|
|
|
|
break
|
|
|
|
|
if (current.id === currentprec.id)
|
|
|
|
|
break
|
|
|
|
|
myarr.push(current)
|
|
|
|
|
currentprec = current
|
|
|
|
|
this.logelem('current AFTER : ', current)
|
|
|
|
|
index++
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return myarr
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async filtertodos(refresh: boolean = false) {
|
|
|
|
|
console.log('filtertodos')
|
|
|
|
|
|
|
|
|
|
let arrtemp = []
|
2019-01-14 22:40:30 +01:00
|
|
|
|
|
|
|
|
if (this.filter) {
|
|
|
|
|
// #Todo If need to filter the output database ...
|
|
|
|
|
await this.$db.todos
|
|
|
|
|
.where('userId').equals(UserStore.state.userId)
|
|
|
|
|
.toArray()
|
|
|
|
|
.then((response) => {
|
|
|
|
|
Promise.all(response.map(key => key))
|
|
|
|
|
.then((ristodos) => {
|
2019-01-27 19:09:48 +01:00
|
|
|
arrtemp = ristodos
|
2019-01-14 22:40:30 +01:00
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
await this.$db.todos
|
|
|
|
|
.where('userId').equals(UserStore.state.userId)
|
|
|
|
|
.toArray().then(ristodos => {
|
2019-01-27 19:09:48 +01:00
|
|
|
arrtemp = ristodos
|
2019-01-14 22:40:30 +01:00
|
|
|
})
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
arrtemp = _.orderBy(arrtemp, ['completed', 'priority', 'pos'], ['asc', 'desc', 'asc'])
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
2019-01-16 02:26:43 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
this.updateLinkedList(true, arrtemp)
|
|
|
|
|
|
|
|
|
|
// set array
|
|
|
|
|
// arrtemp = this.setArrayFinale(arrtemp)
|
|
|
|
|
|
|
|
|
|
this.todos_arr = [...arrtemp] // make copy
|
|
|
|
|
|
|
|
|
|
|
2019-01-14 22:40:30 +01:00
|
|
|
return []
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
sortarr(arr, field) {
|
|
|
|
|
|
|
|
|
|
return arr.slice().sort(function(a, b) {
|
|
|
|
|
return a[field] - b[field]
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// let ind1 = -1
|
|
|
|
|
// let val1 = -1
|
|
|
|
|
// for (let x = 0; x <= arr.length; x++) {
|
|
|
|
|
// if (x[field] < ind1) {
|
|
|
|
|
// val11 = x[field]
|
|
|
|
|
// ind1 = x
|
|
|
|
|
// }
|
|
|
|
|
// for (let y: ITodo = null of arr) {
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
2019-01-14 22:40:30 +01:00
|
|
|
updateitem(myobj) {
|
|
|
|
|
console.log('updateitem')
|
2019-01-27 19:09:48 +01:00
|
|
|
this.modify(myobj, true)
|
2019-01-14 22:40:30 +01:00
|
|
|
}
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
// inactiveAllButtons() {
|
|
|
|
|
// let divs = this.$children.filter(function (child) {
|
|
|
|
|
// return child.$attrs['component-type'] === 'my-custom-button'
|
|
|
|
|
// })
|
|
|
|
|
// divs.forEach(i => {
|
|
|
|
|
// divs[i].isActive = false
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
clickRiga(item) {
|
|
|
|
|
console.log('ClickRiga : ', item)
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < this.$refs.single.length; i++) {
|
|
|
|
|
// @ts-ignore
|
|
|
|
|
this.$refs.single[i].classRow = ''
|
|
|
|
|
}
|
2019-01-14 22:40:30 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
// // Disattiva quella precedente
|
|
|
|
|
// if (this.selrowid > 0) {
|
|
|
|
|
// $('#' + this.getrefbyid(this.selrowid) + ' div').removeClass('rowselected')
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
if (this.selrowid !== item.id) {
|
|
|
|
|
this.selrowid = item.id
|
|
|
|
|
} else {
|
|
|
|
|
// was already selected, so deselected
|
|
|
|
|
this.selrowid = -1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// updateRow(rec: ITodo) {
|
|
|
|
|
// let index = -1
|
|
|
|
|
// // get index
|
|
|
|
|
// this.$refs.single.forEach( (singletodo: SingleTodo) => {
|
|
|
|
|
// if (singletodo.itemtodo.id === rec.id)
|
|
|
|
|
// index = -1
|
|
|
|
|
// })
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
modifyField(recOut, recIn, field) {
|
|
|
|
|
if (recOut[field] !== recIn[field]) {
|
|
|
|
|
recOut.modified = true
|
|
|
|
|
recOut[field] = recIn[field]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async modify(myobj: ITodo, update: boolean) {
|
2019-01-14 22:40:30 +01:00
|
|
|
await this.$db.transaction('rw', [this.$db.todos], async () => {
|
|
|
|
|
const miorec = await this.$db.todos.get(myobj.id)
|
|
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
this.modifyField(miorec, myobj, 'completed')
|
|
|
|
|
this.modifyField(miorec, myobj, 'expiring_at')
|
|
|
|
|
this.modifyField(miorec, myobj, 'priority')
|
|
|
|
|
this.modifyField(miorec, myobj, 'id_prev')
|
|
|
|
|
this.modifyField(miorec, myobj, 'id_next')
|
|
|
|
|
this.modifyField(miorec, myobj, 'pos')
|
|
|
|
|
|
|
|
|
|
if (miorec.modified) {
|
|
|
|
|
miorec.modify_at = new Date()
|
|
|
|
|
|
|
|
|
|
this.logelem('modify', miorec)
|
2019-01-14 22:40:30 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
await this.$db.todos.put(miorec)
|
2019-01-14 22:40:30 +01:00
|
|
|
|
2019-01-27 19:09:48 +01:00
|
|
|
if (update)
|
|
|
|
|
await this.updatetable(false)
|
|
|
|
|
}
|
2019-01-14 22:40:30 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|