Updated Project calculation for hours and progress.
This commit is contained in:
@@ -43,10 +43,6 @@ export default class SingleProject extends Vue {
|
|||||||
|
|
||||||
@Prop({ required: true }) public itemproject: IProject
|
@Prop({ required: true }) public itemproject: IProject
|
||||||
|
|
||||||
// @Watch('itemproject.completed') valueChanged() {
|
|
||||||
// this.watchupdate('status')
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Watch('itemproject.enableExpiring') public valueChanged4() {
|
@Watch('itemproject.enableExpiring') public valueChanged4() {
|
||||||
this.watchupdate('enableExpiring')
|
this.watchupdate('enableExpiring')
|
||||||
}
|
}
|
||||||
@@ -108,7 +104,7 @@ export default class SingleProject extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public watchupdate(field = '') {
|
public watchupdate(field = '') {
|
||||||
console.log('watchupdate', field)
|
console.log('watchupdate PROJ', field)
|
||||||
this.$emit('eventupdateproj', {myitem: this.itemproject, field } )
|
this.$emit('eventupdateproj', {myitem: this.itemproject, field } )
|
||||||
this.updateicon()
|
this.updateicon()
|
||||||
}
|
}
|
||||||
@@ -138,7 +134,7 @@ export default class SingleProject extends Vue {
|
|||||||
|
|
||||||
this.clButtPopover = this.sel ? 'pos-item-popover comp_selected' : 'pos-item-popover'
|
this.clButtPopover = this.sel ? 'pos-item-popover comp_selected' : 'pos-item-popover'
|
||||||
|
|
||||||
if (this.itemproject.status !== tools.Status.COMPLETED) {
|
if (this.itemproject.statusproj !== tools.Status.COMPLETED) {
|
||||||
this.clButtPopover += ' pos-item-popover_cursor'
|
this.clButtPopover += ' pos-item-popover_cursor'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,16 +382,14 @@ export default class SingleProject extends Vue {
|
|||||||
public setCompleted() {
|
public setCompleted() {
|
||||||
// console.log('setCompleted')
|
// console.log('setCompleted')
|
||||||
|
|
||||||
if (this.itemproject.status === tools.Status.COMPLETED) {
|
if (this.itemproject.statusproj === tools.Status.COMPLETED) {
|
||||||
this.itemproject.status = tools.Status.OPENED
|
this.itemproject.statusproj = tools.Status.OPENED
|
||||||
} else {
|
} else {
|
||||||
this.itemproject.status = tools.Status.COMPLETED
|
this.itemproject.statusproj = tools.Status.COMPLETED
|
||||||
}
|
}
|
||||||
|
|
||||||
this.updateicon()
|
this.updateicon()
|
||||||
|
|
||||||
this.updatedata('status')
|
|
||||||
|
|
||||||
this.deselectAndExitEdit()
|
this.deselectAndExitEdit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,7 +69,7 @@
|
|||||||
v-for="(mytodo, index) in items_dacompletare(categoryAtt)"
|
v-for="(mytodo, index) in items_dacompletare(categoryAtt)"
|
||||||
:key="mytodo._id" class="myitemdrag">
|
:key="mytodo._id" class="myitemdrag">
|
||||||
|
|
||||||
<div v-if="(prior !== mytodo.priority) && mytodo.status !== tools.Status.COMPLETED"
|
<div v-if="(prior !== mytodo.priority) && mytodo.statustodo !== tools.Status.COMPLETED"
|
||||||
:class="tools.getTitlePriority(mytodo.priority)">
|
:class="tools.getTitlePriority(mytodo.priority)">
|
||||||
<label>{{tools.getPriorityByInd(mytodo.priority)}}</label>
|
<label>{{tools.getPriorityByInd(mytodo.priority)}}</label>
|
||||||
</div>
|
</div>
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
<!--<div :nametranslate="`REF${index}`" class="divdrag non-draggato"></div>-->
|
<!--<div :nametranslate="`REF${index}`" class="divdrag non-draggato"></div>-->
|
||||||
|
|
||||||
<div style="display: none">{{ prior = mytodo.priority, priorcomplet = (mytodo.status === tools.Status.COMPLETED) }}
|
<div style="display: none">{{ prior = mytodo.priority, priorcomplet = (mytodo.statustodo === tools.Status.COMPLETED) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
|
|
||||||
<!--<div :nametranslate="`REF${index}`" class="divdrag non-draggato"></div>-->
|
<!--<div :nametranslate="`REF${index}`" class="divdrag non-draggato"></div>-->
|
||||||
|
|
||||||
<div style="display: none">{{ prior = mytodo.priority, priorcomplet = (mytodo.status === tools.Status.COMPLETED) }}
|
<div style="display: none">{{ prior = mytodo.priority, priorcomplet = (mytodo.statustodo === tools.Status.COMPLETED) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -49,10 +49,6 @@ export default class SingleTodo extends Vue {
|
|||||||
|
|
||||||
@Prop({ required: true }) public itemtodo: ITodo
|
@Prop({ required: true }) public itemtodo: ITodo
|
||||||
|
|
||||||
// @Watch('itemtodo.completed') valueChanged() {
|
|
||||||
// this.watchupdate('status')
|
|
||||||
// }
|
|
||||||
|
|
||||||
@Watch('itemtodo.enableExpiring') public valueChanged4() {
|
@Watch('itemtodo.enableExpiring') public valueChanged4() {
|
||||||
this.watchupdate('enableExpiring')
|
this.watchupdate('enableExpiring')
|
||||||
}
|
}
|
||||||
@@ -74,9 +70,10 @@ export default class SingleTodo extends Vue {
|
|||||||
console.log('itemtodo.hoursplanned', this.itemtodo.hoursplanned)
|
console.log('itemtodo.hoursplanned', this.itemtodo.hoursplanned)
|
||||||
this.watchupdate('hoursplanned')
|
this.watchupdate('hoursplanned')
|
||||||
}
|
}
|
||||||
@Watch('itemtodo.status') public valueChangedstatus() {
|
// ++TODO: FIX! STATUSTODO WILL NOT UPDATE IF I DON'T PUT { immediate: true } parameter. ! WHY???
|
||||||
console.log('itemtodo.status', this.itemtodo.status)
|
@Watch('itemtodo.statustodo', {immediate: true}) public valueChangedstatus() {
|
||||||
this.watchupdate('status')
|
console.log('itemtodo.statustodo', this.itemtodo.statustodo)
|
||||||
|
this.watchupdate('statustodo')
|
||||||
}
|
}
|
||||||
@Watch('itemtodo.completed_at') public valueChangedcompleted_at() {
|
@Watch('itemtodo.completed_at') public valueChangedcompleted_at() {
|
||||||
console.log('itemtodo.completed_at', this.itemtodo.completed_at)
|
console.log('itemtodo.completed_at', this.itemtodo.completed_at)
|
||||||
@@ -145,7 +142,7 @@ export default class SingleTodo extends Vue {
|
|||||||
|
|
||||||
this.classExpiring = 'flex-item data-item shadow-1 hide-if-small'
|
this.classExpiring = 'flex-item data-item shadow-1 hide-if-small'
|
||||||
this.classExpiringEx = ''
|
this.classExpiringEx = ''
|
||||||
if (this.itemtodo.status === tools.Status.COMPLETED) {
|
if (this.itemtodo.statustodo === tools.Status.COMPLETED) {
|
||||||
this.percentageProgress = 100
|
this.percentageProgress = 100
|
||||||
this.classCompleted += ' icon_completed'
|
this.classCompleted += ' icon_completed'
|
||||||
this.classDescr += ' status_completed'
|
this.classDescr += ' status_completed'
|
||||||
@@ -162,7 +159,7 @@ export default class SingleTodo extends Vue {
|
|||||||
let mycolcl = ' ' + tools.getProgressClassColor(this.itemtodo.progress)
|
let mycolcl = ' ' + tools.getProgressClassColor(this.itemtodo.progress)
|
||||||
this.colProgress = tools.getProgressColor(this.itemtodo.progress)
|
this.colProgress = tools.getProgressColor(this.itemtodo.progress)
|
||||||
|
|
||||||
if (this.itemtodo.status === tools.Status.COMPLETED) {
|
if (this.itemtodo.statustodo === tools.Status.COMPLETED) {
|
||||||
mycolcl = ' percompleted'
|
mycolcl = ' percompleted'
|
||||||
this.colProgress = 'gray'
|
this.colProgress = 'gray'
|
||||||
}
|
}
|
||||||
@@ -174,7 +171,7 @@ export default class SingleTodo extends Vue {
|
|||||||
|
|
||||||
this.clButtPopover = this.sel ? 'pos-item-popover comp_selected' : 'pos-item-popover'
|
this.clButtPopover = this.sel ? 'pos-item-popover comp_selected' : 'pos-item-popover'
|
||||||
|
|
||||||
if (this.itemtodo.status !== tools.Status.COMPLETED) {
|
if (this.itemtodo.statustodo !== tools.Status.COMPLETED) {
|
||||||
this.clButtPopover += ' pos-item-popover_cursor'
|
this.clButtPopover += ' pos-item-popover_cursor'
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -271,7 +268,7 @@ export default class SingleTodo extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public editTodo() {
|
public editTodo() {
|
||||||
if (this.itemtodo.status !== tools.Status.COMPLETED) {
|
if (this.itemtodo.statustodo !== tools.Status.COMPLETED) {
|
||||||
// console.log('INIZIO - editTodo')
|
// console.log('INIZIO - editTodo')
|
||||||
this.$emit('click')
|
this.$emit('click')
|
||||||
this.precDescr = this.itemtodo.descr
|
this.precDescr = this.itemtodo.descr
|
||||||
@@ -407,11 +404,12 @@ export default class SingleTodo extends Vue {
|
|||||||
|
|
||||||
public setCompleted() {
|
public setCompleted() {
|
||||||
// console.log('setCompleted')
|
// console.log('setCompleted')
|
||||||
if (this.itemtodo.status === tools.Status.COMPLETED) {
|
if (this.itemtodo.statustodo === tools.Status.COMPLETED) {
|
||||||
this.itemtodo.status = tools.Status.OPENED
|
this.itemtodo.statustodo = tools.Status.OPENED
|
||||||
} else {
|
} else {
|
||||||
this.itemtodo.status = tools.Status.COMPLETED
|
this.itemtodo.statustodo = tools.Status.COMPLETED
|
||||||
}
|
}
|
||||||
|
this.watchupdate('statustodo')
|
||||||
|
|
||||||
this.deselectAndExitEdit()
|
this.deselectAndExitEdit()
|
||||||
}
|
}
|
||||||
@@ -424,7 +422,7 @@ export default class SingleTodo extends Vue {
|
|||||||
|
|
||||||
public updateicon() {
|
public updateicon() {
|
||||||
// console.log('updateicon')
|
// console.log('updateicon')
|
||||||
if (this.itemtodo.status === tools.Status.COMPLETED) {
|
if (this.itemtodo.statustodo === tools.Status.COMPLETED) {
|
||||||
this.iconCompleted = 'check_circle'
|
this.iconCompleted = 'check_circle'
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -4,12 +4,12 @@
|
|||||||
<q-btn push flat
|
<q-btn push flat
|
||||||
:class="classCompleted"
|
:class="classCompleted"
|
||||||
:icon="iconCompleted"
|
:icon="iconCompleted"
|
||||||
@click.native="setCompleted">
|
@click="setCompleted">
|
||||||
</q-btn>
|
</q-btn>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex-item donotdrag divdescrTot">
|
<div class="flex-item donotdrag divdescrTot">
|
||||||
<q-input v-if="sel && itemtodo.status !== tools.Status.COMPLETED" hide-underline type="textarea" ref="inputdescr"
|
<q-input v-if="sel && itemtodo.statustodo !== tools.Status.COMPLETED" hide-underline type="textarea" ref="inputdescr"
|
||||||
v-model.trim="precDescr"
|
v-model.trim="precDescr"
|
||||||
autogrow
|
autogrow
|
||||||
borderless
|
borderless
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<q-checkbox v-model="itemtodo.enableExpiring"/>
|
<q-checkbox v-model="itemtodo.enableExpiring"/>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
<q-item-section side v-if="field.value === 110">
|
<q-item-section side v-if="field.value === 110">
|
||||||
<q-checkbox v-model="itemtodo.status"/>
|
<q-checkbox v-model="itemtodo.statustodo"/>
|
||||||
</q-item-section>
|
</q-item-section>
|
||||||
</q-item>
|
</q-item>
|
||||||
<q-item clickable v-if="(field.value === 120)" :icon="field.icon"
|
<q-item clickable v-if="(field.value === 120)" :icon="field.icon"
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export interface IProject {
|
|||||||
hoursplanned?: number
|
hoursplanned?: number
|
||||||
hoursworked?: number
|
hoursworked?: number
|
||||||
priority?: number
|
priority?: number
|
||||||
status?: number
|
statusproj?: number
|
||||||
created_at?: Date
|
created_at?: Date
|
||||||
modify_at?: Date
|
modify_at?: Date
|
||||||
completed_at?: Date
|
completed_at?: Date
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ export interface ITodo {
|
|||||||
category?: string
|
category?: string
|
||||||
descr?: string,
|
descr?: string,
|
||||||
priority?: number,
|
priority?: number,
|
||||||
status?: number,
|
statustodo?: number,
|
||||||
created_at?: Date,
|
created_at?: Date,
|
||||||
modify_at?: Date,
|
modify_at?: Date,
|
||||||
completed_at?: Date,
|
completed_at?: Date,
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ const stateglob: IProjectsState = {
|
|||||||
visuLastCompleted: 10
|
visuLastCompleted: 10
|
||||||
}
|
}
|
||||||
|
|
||||||
const listFieldsToChange: string [] = ['descr', 'longdescr', 'hoursplanned', 'hoursworked', 'id_parent', 'status', 'category', 'expiring_at', 'priority', 'id_prev', 'pos', 'enableExpiring', 'progress', 'live_url', 'test_url', 'begin_development', 'begin_test']
|
const listFieldsToChange: string [] = ['descr', 'longdescr', 'hoursplanned', 'hoursworked', 'id_parent', 'statusproj', 'category', 'expiring_at', 'priority', 'id_prev', 'pos', 'enableExpiring', 'progress', 'live_url', 'test_url', 'begin_development', 'begin_test']
|
||||||
|
|
||||||
const b = storeBuilder.module<IProjectsState>('Projects', stateglob)
|
const b = storeBuilder.module<IProjectsState>('Projects', stateglob)
|
||||||
const stateGetter = b.state()
|
const stateGetter = b.state()
|
||||||
@@ -50,7 +50,7 @@ namespace Getters {
|
|||||||
longdescr: '',
|
longdescr: '',
|
||||||
id_parent: '',
|
id_parent: '',
|
||||||
priority: tools.Priority.PRIORITY_NORMAL,
|
priority: tools.Priority.PRIORITY_NORMAL,
|
||||||
status: tools.Status.OPENED,
|
statusproj: tools.Status.OPENED,
|
||||||
created_at: tools.getDateNow(),
|
created_at: tools.getDateNow(),
|
||||||
modify_at: tools.getDateNow(),
|
modify_at: tools.getDateNow(),
|
||||||
completed_at: tools.getDateNull(),
|
completed_at: tools.getDateNull(),
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ const state: ITodosState = {
|
|||||||
visuLastCompleted: 10
|
visuLastCompleted: 10
|
||||||
}
|
}
|
||||||
|
|
||||||
const listFieldsToChange: string [] = ['descr', 'status', 'category', 'expiring_at', 'priority', 'id_prev', 'pos', 'enableExpiring', 'progress', 'phase', 'assigned_to_userId', 'hoursplanned', 'hoursworked', 'start_date', 'completed_at']
|
const listFieldsToChange: string [] = ['descr', 'statustodo', 'category', 'expiring_at', 'priority', 'id_prev', 'pos', 'enableExpiring', 'progress', 'phase', 'assigned_to_userId', 'hoursplanned', 'hoursworked', 'start_date', 'completed_at']
|
||||||
|
|
||||||
const b = storeBuilder.module<ITodosState>('Todos', state)
|
const b = storeBuilder.module<ITodosState>('Todos', state)
|
||||||
const stateGetter = b.state()
|
const stateGetter = b.state()
|
||||||
@@ -65,7 +65,7 @@ namespace Getters {
|
|||||||
userId: UserStore.state.userId,
|
userId: UserStore.state.userId,
|
||||||
descr: '',
|
descr: '',
|
||||||
priority: tools.Priority.PRIORITY_NORMAL,
|
priority: tools.Priority.PRIORITY_NORMAL,
|
||||||
status: tools.Status.OPENED,
|
statustodo: tools.Status.OPENED,
|
||||||
created_at: tools.getDateNow(),
|
created_at: tools.getDateNow(),
|
||||||
modify_at: tools.getDateNow(),
|
modify_at: tools.getDateNow(),
|
||||||
completed_at: tools.getDateNull(),
|
completed_at: tools.getDateNull(),
|
||||||
@@ -89,7 +89,7 @@ namespace Getters {
|
|||||||
const items_dacompletare = b.read((state: ITodosState) => (cat: string): ITodo[] => {
|
const items_dacompletare = b.read((state: ITodosState) => (cat: string): ITodo[] => {
|
||||||
const indcat = getindexbycategory(cat)
|
const indcat = getindexbycategory(cat)
|
||||||
if (state.todos[indcat]) {
|
if (state.todos[indcat]) {
|
||||||
return state.todos[indcat].filter((todo) => todo.status !== tools.Status.COMPLETED)
|
return state.todos[indcat].filter((todo) => todo.statustodo !== tools.Status.COMPLETED)
|
||||||
} else {
|
} else {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
@@ -99,13 +99,13 @@ namespace Getters {
|
|||||||
const indcat = getindexbycategory(cat)
|
const indcat = getindexbycategory(cat)
|
||||||
if (state.todos[indcat]) {
|
if (state.todos[indcat]) {
|
||||||
if (state.showtype === costanti.ShowTypeTask.SHOW_LAST_N_COMPLETED) { // Show only the first N completed
|
if (state.showtype === costanti.ShowTypeTask.SHOW_LAST_N_COMPLETED) { // Show only the first N completed
|
||||||
return state.todos[indcat].filter((todo) => todo.status === tools.Status.COMPLETED).slice(0, state.visuLastCompleted)
|
return state.todos[indcat].filter((todo) => todo.statustodo === tools.Status.COMPLETED).slice(0, state.visuLastCompleted)
|
||||||
}
|
}
|
||||||
else if (state.showtype === costanti.ShowTypeTask.SHOW_ONLY_TOCOMPLETE) {
|
else if (state.showtype === costanti.ShowTypeTask.SHOW_ONLY_TOCOMPLETE) {
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
else if (state.showtype === costanti.ShowTypeTask.SHOW_ALL) {
|
else if (state.showtype === costanti.ShowTypeTask.SHOW_ALL) {
|
||||||
return state.todos[indcat].filter((todo) => todo.status === tools.Status.COMPLETED)
|
return state.todos[indcat].filter((todo) => todo.statustodo === tools.Status.COMPLETED)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return []
|
return []
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export default class ProjList extends Vue {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public watchupdatetodo(field = '') {
|
public watchupdatetodo(field = '') {
|
||||||
console.log('watchupdate', field)
|
console.log('watchupdatetodo', field)
|
||||||
this.$emit('eventupdate', {myitem: this.itemtodosel, field } )
|
this.$emit('eventupdate', {myitem: this.itemtodosel, field } )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
<q-icon class="flex-item flex-icon" name="work_outline"/>
|
<q-icon class="flex-item flex-icon" name="work_outline"/>
|
||||||
<div class="flex-item itemdescr">
|
<div class="flex-item itemdescr">
|
||||||
<q-input
|
<q-input
|
||||||
ref="input"
|
ref="input2"
|
||||||
readonly
|
readonly
|
||||||
v-model="itemsel.hoursworked"
|
v-model="itemsel.hoursworked"
|
||||||
type="number"
|
type="number"
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
<q-icon class="flex-item flex-icon" name="watch_later"/>
|
<q-icon class="flex-item flex-icon" name="watch_later"/>
|
||||||
<div class="flex-item itemdata content-center">
|
<div class="flex-item itemdata content-center">
|
||||||
<q-input
|
<q-input
|
||||||
ref="input"
|
ref="input3"
|
||||||
type="number"
|
type="number"
|
||||||
readonly
|
readonly
|
||||||
v-model="itemsel.hoursplanned"
|
v-model="itemsel.hoursplanned"
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
<q-icon class="flex-item flex-icon" name="border_color"/>
|
<q-icon class="flex-item flex-icon" name="border_color"/>
|
||||||
<div class="flex-item itemdescr">
|
<div class="flex-item itemdescr">
|
||||||
<q-input
|
<q-input
|
||||||
ref="input"
|
ref="input4"
|
||||||
v-model="itemtodosel.descr"
|
v-model="itemtodosel.descr"
|
||||||
:label="$t('proj.longdescr')"
|
:label="$t('proj.longdescr')"
|
||||||
outlined
|
outlined
|
||||||
@@ -192,9 +192,9 @@
|
|||||||
<div class="flex-container clMain">
|
<div class="flex-container clMain">
|
||||||
<q-icon class="flex-item flex-icon" name="done_outline"/>
|
<q-icon class="flex-item flex-icon" name="done_outline"/>
|
||||||
<div class="flex-item itemstatus">
|
<div class="flex-item itemstatus">
|
||||||
<q-select rounded outlined v-model="itemtodosel.status" :options="selectStatus"
|
<q-select rounded outlined v-model="itemtodosel.statustodo" :options="selectStatus"
|
||||||
:label="$t('todo.status')" emit-value map-options
|
:label="$t('todo.status')" emit-value map-options
|
||||||
@input="watchupdatetodo('status')">
|
@input="watchupdatetodo('statustodo')">
|
||||||
</q-select>
|
</q-select>
|
||||||
</div>
|
</div>
|
||||||
<q-icon class="flex-item flex-icon" name="outlined_flag"/>
|
<q-icon class="flex-item flex-icon" name="outlined_flag"/>
|
||||||
@@ -209,7 +209,7 @@
|
|||||||
<q-icon class="flex-item flex-icon" name="work_outline"/>
|
<q-icon class="flex-item flex-icon" name="work_outline"/>
|
||||||
<div class="flex-item itemdescr">
|
<div class="flex-item itemdescr">
|
||||||
<q-input
|
<q-input
|
||||||
ref="input"
|
ref="input5"
|
||||||
v-model="itemtodosel.hoursworked"
|
v-model="itemtodosel.hoursworked"
|
||||||
type="number"
|
type="number"
|
||||||
rounded outlined
|
rounded outlined
|
||||||
@@ -222,7 +222,7 @@
|
|||||||
<q-icon class="flex-item flex-icon" name="watch_later"/>
|
<q-icon class="flex-item flex-icon" name="watch_later"/>
|
||||||
<div class="flex-item itemdata content-center">
|
<div class="flex-item itemdata content-center">
|
||||||
<q-input
|
<q-input
|
||||||
ref="input"
|
ref="input6"
|
||||||
type="number"
|
type="number"
|
||||||
v-model="itemtodosel.hoursplanned"
|
v-model="itemtodosel.hoursplanned"
|
||||||
rounded outlined
|
rounded outlined
|
||||||
@@ -247,7 +247,7 @@
|
|||||||
<div style="margin: 10px;"></div>
|
<div style="margin: 10px;"></div>
|
||||||
<q-icon class="flex-item flex-icon" name="event"/>
|
<q-icon class="flex-item flex-icon" name="event"/>
|
||||||
<div class="flex-item itemdata">
|
<div class="flex-item itemdata">
|
||||||
<CDate :readonly="itemtodosel.status !== tools.Status.COMPLETED"
|
<CDate :readonly="itemtodosel.statustodo !== tools.Status.COMPLETED"
|
||||||
:mydate="itemtodosel.completed_at" @input="itemtodosel.completed_at = new Date(arguments[0])"
|
:mydate="itemtodosel.completed_at" @input="itemtodosel.completed_at = new Date(arguments[0])"
|
||||||
:label="$t('todo.completed_at')">
|
:label="$t('todo.completed_at')">
|
||||||
</CDate>
|
</CDate>
|
||||||
|
|||||||
Reference in New Issue
Block a user