++ If press DELETE or BACKSPACE and is blank description, delete the Todos.
- fix: if offline, doesn't save to cache?? if I refresh page, the data disappear - ++ field to the percent progress - fix: Refreshing 2 times the array todos.. because there is a filter
This commit is contained in:
@@ -191,16 +191,16 @@
|
||||
console.log('Event LOAD')
|
||||
if (window) {
|
||||
window.addEventListener('load', function () {
|
||||
console.log('2) ENTERING Event LOAD')
|
||||
// console.log('2) ENTERING Event LOAD')
|
||||
|
||||
function updateOnlineStatus(event) {
|
||||
if (navigator.onLine) {
|
||||
console.log('EVENT ONLINE!')
|
||||
// console.log('EVENT ONLINE!')
|
||||
// handle online status
|
||||
GlobalStore.mutations.setStateConnection('online')
|
||||
mythis.changeIconConn()
|
||||
} else {
|
||||
console.log('EVENT OFFLINE!')
|
||||
// console.log('EVENT OFFLINE!')
|
||||
// handle offline status
|
||||
GlobalStore.mutations.setStateConnection('offline')
|
||||
mythis.changeIconConn()
|
||||
|
||||
@@ -264,6 +264,15 @@ export default class SingleTodo extends Vue {
|
||||
}
|
||||
}
|
||||
*/
|
||||
if (((e.keyCode === 8) || (e.keyCode === 46)) && (this.precDescr === '') && !e.shiftKey) {
|
||||
e.preventDefault()
|
||||
this.clickMenu(rescodes.MenuAction.DELETE)
|
||||
.then(() => {
|
||||
this.deselectRiga()
|
||||
this.faiFocus('insertTask', true)
|
||||
return
|
||||
})
|
||||
}
|
||||
|
||||
if (((e.key === 'Enter') || (e.key === 'Tab')) && !e.shiftKey) {
|
||||
this.updateTodo()
|
||||
@@ -344,16 +353,16 @@ export default class SingleTodo extends Vue {
|
||||
|
||||
}
|
||||
|
||||
clickMenu(action) {
|
||||
async clickMenu(action) {
|
||||
console.log('click menu: ', action)
|
||||
if (action === rescodes.MenuAction.DELETE) {
|
||||
this.askConfirmDelete()
|
||||
return this.askConfirmDelete()
|
||||
} else if (action === rescodes.MenuAction.TOGGLE_EXPIRING) {
|
||||
this.enableExpiring()
|
||||
return this.enableExpiring()
|
||||
} else if (action === rescodes.MenuAction.COMPLETED) {
|
||||
this.setCompleted()
|
||||
return this.setCompleted()
|
||||
} else if (action === rescodes.MenuAction.PROGRESS_BAR) {
|
||||
this.updatedata()
|
||||
return this.updatedata()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -369,11 +378,11 @@ export default class SingleTodo extends Vue {
|
||||
// this.$q.notify('setPriority: ' + elem)
|
||||
}
|
||||
|
||||
askConfirmDelete() {
|
||||
async askConfirmDelete() {
|
||||
const deletestr = this.$t('dialog.delete')
|
||||
const cancelstr = this.$t('dialog.cancel')
|
||||
|
||||
askConfirm(this.$q, this.$t('dialog.msg.titledeleteTask'), this.$t('dialog.msg.deleteTask').toString(), deletestr, cancelstr)
|
||||
await askConfirm(this.$q, this.$t('dialog.msg.titledeleteTask'), this.$t('dialog.msg.deleteTask').toString(), deletestr, cancelstr)
|
||||
.then(ris => {
|
||||
console.log('ris', ris)
|
||||
if (ris)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</q-btn>
|
||||
</div>
|
||||
|
||||
<q-input type="textarea" ref="inputdescr" v-model="precDescr"
|
||||
<q-input type="textarea" ref="inputdescr" v-model.trim="precDescr"
|
||||
:class="classDescr" :max-height="50"
|
||||
@keydown="keyDownArea" v-on:keydown.esc="exitEdit" @blur="exitEdit(true)" @click="editTodo()"/>
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
<!--<q-field>{{ itemtodo.descr }}</q-field>-->
|
||||
<!--</div>-->
|
||||
|
||||
<div v-if="isTodo()" class="flex-item progress-item">
|
||||
<div v-if="isTodo() && (percentageProgress > 0) " class="flex-item progress-item">
|
||||
<q-progress
|
||||
:percentage="percentageProgress"
|
||||
class="progress-item"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
}
|
||||
|
||||
.item-menu{
|
||||
.item-menu {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.menuProgress {
|
||||
|
||||
.menuInputProgress > div:nth-child(2) > div > input {
|
||||
min-width: 30px;
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@ import Vue from 'vue'
|
||||
import { Component, Prop } from 'vue-property-decorator'
|
||||
|
||||
import { ITodo } from '../../../model/index'
|
||||
import { rescodes } from "@src/store/Modules/rescodes"
|
||||
import { UserStore } from "@store"
|
||||
import { rescodes } from '@src/store/Modules/rescodes'
|
||||
import { UserStore } from '@store'
|
||||
|
||||
|
||||
@Component({
|
||||
@@ -14,7 +14,7 @@ export default class SubMenus extends Vue {
|
||||
public selectPriority: [] = rescodes.selectPriority[UserStore.state.lang]
|
||||
|
||||
@Prop({ required: false }) menuPopupTodo: any[]
|
||||
@Prop({ required: false }) itemtodo: ITodo[]
|
||||
@Prop({ required: false }) itemtodo: ITodo
|
||||
$q: any
|
||||
|
||||
clickMenu (field) {
|
||||
@@ -25,6 +25,15 @@ export default class SubMenus extends Vue {
|
||||
this.$emit('setPriority', field)
|
||||
}
|
||||
|
||||
KeychangeProgress (e) {
|
||||
if (this.itemtodo.progress > 100) {
|
||||
this.itemtodo.progress = 100
|
||||
}
|
||||
if (this.itemtodo.progress < 0) {
|
||||
this.itemtodo.progress = 0
|
||||
}
|
||||
}
|
||||
|
||||
create () {
|
||||
this.selectPriority = rescodes.selectPriority[UserStore.state.lang]
|
||||
|
||||
|
||||
@@ -18,14 +18,28 @@
|
||||
</q-item-side>
|
||||
|
||||
<q-item-main v-if="field.value === 120">
|
||||
<q-slider :class="$parent.menuProgress" v-model="itemtodo.progress" :min="0" :max="100"/>
|
||||
<q-slider :class="$parent.menuProgress" v-model="itemtodo.progress" :min="0" :max="100"
|
||||
:step="5"/>
|
||||
|
||||
</q-item-main>
|
||||
<q-item-side v-if="field.value === 120">
|
||||
<div :class="$parent.percProgress">
|
||||
{{$parent.percentageProgress}}%
|
||||
<q-item-side v-if="field.value === 120" >
|
||||
<div>
|
||||
<q-input v-model="itemtodo.progress"
|
||||
class="menuInputProgress"
|
||||
type="number"
|
||||
suffix="%"
|
||||
@change="val => { model = val }"
|
||||
@keydown="KeychangeProgress"
|
||||
/>
|
||||
</div>
|
||||
</q-item-side>
|
||||
|
||||
<!--<q-item-side right v-if="field.value === 120">-->
|
||||
<!--<div :class="$parent.percProgress">-->
|
||||
<!--{{$parent.percentageProgress}}%-->
|
||||
<!--</div>-->
|
||||
<!--</q-item-side>-->
|
||||
|
||||
</q-item>
|
||||
<q-item v-if="(field.value === 100)" :icon="field.icon" v-close-overlay
|
||||
@click.native="clickMenu(field.value)">
|
||||
@@ -61,6 +75,6 @@
|
||||
<script lang="ts" src="./SubMenus.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
<style lang="scss">
|
||||
@import './SubMenus.scss';
|
||||
</style>
|
||||
|
||||
@@ -43,6 +43,7 @@ export default class Todo extends Vue {
|
||||
itemDragEnd: any = null
|
||||
selrowid: number = 0
|
||||
polling = null
|
||||
mytypetransgroup: string = 'crossfade'
|
||||
|
||||
fieldtochange: String [] = ['descr', 'completed', 'category', 'expiring_at', 'priority', 'id_prev', 'id_next', 'pos', 'enableExpiring', 'progress']
|
||||
|
||||
@@ -65,7 +66,10 @@ export default class Todo extends Vue {
|
||||
|
||||
@Watch('$route.params.category') changecat() {
|
||||
// console.log('changecat')
|
||||
this.load()
|
||||
this.mytypetransgroup = 'nessuno'
|
||||
this.updatetable().then(() => {
|
||||
this.mytypetransgroup = 'crossfade'
|
||||
})
|
||||
}
|
||||
|
||||
get todos_changed() {
|
||||
@@ -82,7 +86,7 @@ export default class Todo extends Vue {
|
||||
|
||||
// this.$q.notify('Changed...')
|
||||
|
||||
// console.log('Todos.state.todos_changed CHANGED!', value, oldValue)
|
||||
console.log('Todos.state.todos_changed CHANGED!', value, oldValue)
|
||||
this.updatetable(true)
|
||||
}
|
||||
|
||||
@@ -600,12 +604,16 @@ export default class Todo extends Vue {
|
||||
}
|
||||
|
||||
async updatetable(refresh: boolean = false) {
|
||||
// console.log('updatetable')
|
||||
console.log('updatetable')
|
||||
|
||||
this.prevRecords = [...this.todos_arr]
|
||||
|
||||
return await Todos.actions.getTodosByCategory(this.getCategory())
|
||||
.then(arrtemp => {
|
||||
.then(arrris => {
|
||||
|
||||
this.todos_arr = []
|
||||
|
||||
let arrtemp = [...arrris]
|
||||
|
||||
arrtemp = _.orderBy(arrtemp, ['completed', 'priority', 'pos'], ['asc', 'desc', 'asc'])
|
||||
|
||||
@@ -620,6 +628,8 @@ export default class Todo extends Vue {
|
||||
|
||||
this.todos_arr = [...arrtemp] // make copy
|
||||
|
||||
console.log('AGGIORNA todos_arr')
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div class="drag">
|
||||
<draggable v-model="todos_arr" :options="{draggable:'.myitemdrag'}"
|
||||
@start="onStart" @end="onEnd" class="dragArea">
|
||||
<transition-group>
|
||||
<transition-group :name="mytypetransgroup" >
|
||||
<div :id="getmyid(mytodo._id)" :key="mytodo._id" v-for="mytodo in todos_arr" class="myitemdrag">
|
||||
|
||||
<div v-if="(prior !== mytodo.priority) && !mytodo.completed" :class="getTitlePriority(mytodo.priority)">
|
||||
|
||||
Reference in New Issue
Block a user