Project e Todos sistemati...

aggiunti Gruppi
This commit is contained in:
Paolo Arena
2021-02-03 01:32:56 +01:00
parent d02044ae17
commit 7d0b3fb26f
40 changed files with 1487 additions and 767 deletions

View File

@@ -83,6 +83,26 @@ export default class SingleProject extends Vue {
this.watchupdate('themecolor')
}
@Watch('itemproject.pos')
public valueChangedpos() {
this.watchupdate('pos')
}
@Watch('itemproject.groupId')
public valueChangedgroupId() {
this.watchupdate('groupId')
}
@Watch('itemproject.respUsername')
public valueChangedresp() {
this.watchupdate('respUsername')
}
@Watch('itemproject.viceRespUsername')
public valueChangedviceResp() {
this.watchupdate('viceRespUsername')
}
@Watch('itemproject.themebgcolor')
public valueChangedthemebgcolor() {
this.watchupdate('themebgcolor')
@@ -130,7 +150,7 @@ export default class SingleProject extends Vue {
@Watch('itemproject.progressCalc')
public valueChanged6() {
console.log('itemproject.progressCalc')
// console.log('itemproject.progressCalc')
this.updateClasses()
// console.log('this.percentageProgress', this.percentageProgress, 'this.itemproject.progressCalc', this.itemproject.progressCalc)
@@ -169,7 +189,7 @@ export default class SingleProject extends Vue {
}
public watchupdate(field = '') {
console.log('watchupdate PROJ', field)
// console.log('watchupdate PROJ', field)
this.$emit('eventupdateproj', { myitem: this.itemproject, field })
this.updateicon()
}
@@ -231,7 +251,7 @@ export default class SingleProject extends Vue {
}
public clickRiga(clickmenu: boolean = false) {
console.log('CLICK RIGA PROJ ************')
// console.log('CLICK RIGA PROJ ************')
// if (!this.sel) {
@@ -287,7 +307,7 @@ export default class SingleProject extends Vue {
}
public activeEdit() {
console.log('Attiva Edit')
// console.log('Attiva Edit')
this.attivaEdit = true
this.editProject()
}
@@ -297,7 +317,11 @@ export default class SingleProject extends Vue {
}
get tipoProj() {
return this.$route.name
const myarr = this.$route.name.split('.')
if (myarr)
return myarr[1]
else
return this.$route.name
}
get getrouteto() {
@@ -342,7 +366,7 @@ export default class SingleProject extends Vue {
}
// console.log('focus()')
}, 400)
}, 100)
}
public getFocus(e) {
@@ -379,7 +403,9 @@ export default class SingleProject extends Vue {
}
public keyDownArea(e) {
console.log('keyDownArea')
// console.log('keyDownArea', e.keyCode, 'key', e.key)
// console.log('precDescr', this.precDescr)
// console.log('shiftKey', e.shiftKey)
/*
if ((e.key === 'ArrowUp') && !e.shiftKey) {
e.key = 'Tab'
@@ -405,6 +431,7 @@ export default class SingleProject extends Vue {
}
if (((e.key === 'Enter') || (e.key === 'Tab')) && !e.shiftKey) {
// console.log(' updateTodo...')
this.updateTodo()
if ((e.key === 'Tab') && !e.shiftKey) {
@@ -427,14 +454,17 @@ export default class SingleProject extends Vue {
}
public updateTodo() {
// console.log('this.itemproject.descr', this.itemproject.descr)
// console.log('precDescr', this.precDescr)
if (this.itemproject.descr === this.precDescr) {
return
}
this.itemproject.descr = this.precDescr
console.log('updateTodo', this.precDescr, this.itemproject.descr)
console.log('itemproject', this.itemproject)
console.log('Prec:', this.itemprojectPrec)
// console.log('updateTodo', this.precDescr, this.itemproject.descr)
// console.log('itemproject', this.itemproject)
// console.log('Prec:', this.itemprojectPrec)
this.watchupdate('descr')
this.inEdit = false
@@ -467,7 +497,7 @@ export default class SingleProject extends Vue {
public updatedata(field: string) {
// const myitem = tools.jsonCopy(this.itemproject)
console.log('calling this.$emit(eventupdateproj)', this.itemproject)
// console.log('calling this.$emit(eventupdateproj)', this.itemproject)
this.$emit('eventupdateproj', { myitem: this.itemproject, field })
}
@@ -497,7 +527,7 @@ export default class SingleProject extends Vue {
}
public async clickMenu(action) {
console.log('click menu: ', action)
// console.log('click menu: ', action)
if (action === lists.MenuAction.DELETE) {
return await this.askConfirmDelete()
} else if (action === lists.MenuAction.TOGGLE_EXPIRING) {

View File

@@ -1,67 +1,71 @@
<template>
<div :class="getClassRow()" @click="clickProject" >
<div :class="getClassRow()" @click="clickProject">
<q-btn :disable="isDisable" class="flex-item donotdrag " size="sm" push color="primary" round icon="arrow_forward"
:to="getrouteto"></q-btn>
<q-btn :disable="isDisable" class="flex-item donotdrag " size="sm" push color="primary" round icon="arrow_forward"
:to="getrouteto"></q-btn>
<div class="flex-item donotdrag divdescrTot">
<q-input v-if="(sel && inEdit)" hide-underline type="textarea" ref="inputprojdescr"
v-model.trim="precDescr"
autogrow
borderless
debounce="1000"
:label="getlabeltext"
dense
@focus="getFocus($event)"
:class="classDescrEdit" :max-height="100"
@keydown="keyDownArea" v-on:keydown.esc="exitEdit" @blur="exitEdit(true)" @click="editProject()">
</q-input>
<div class="flex-item donotdrag divdescrTot">
<q-input v-if="(sel && inEdit)" hide-underline type="textarea" ref="inputprojdescr"
v-model.trim="precDescr"
autogrow
borderless
:label="getlabeltext"
dense
@focus="getFocus($event)"
:class="classDescrEdit" :max-height="100"
@keydown="keyDownArea" v-on:keydown.esc="exitEdit" @blur="exitEdit(true)" @click="editProject()">
</q-input>
<div v-else :class="classDescr"
@keydown="keyDownRow">{{itemproject.descr}}
</div>
</div>
<div v-if="isProject()" class="flex-item progress-item shadow-1">
<q-linear-progress
stripe
rounded
:value="percentageProgress / 100"
class="progrbar-item"
:color="colProgress"
>
</q-linear-progress>
<div :class="percProgress">
{{percentageProgress}}%
</div>
</div>
<div v-if="itemproject.enableExpiring" :class="classExpiring">
<CDate :mydate="itemproject.expiring_at" @input="itemproject.expiring_at = new Date(arguments[0])"
data_class="data_string">
</CDate>
</div>
<div v-if="isProject()" class="flex-item pos-item " @mousedown="clickRiga">
<q-btn flat
:class="clButtPopover"
:readonly="!CanIModifyProject"
:disable="!CanIModifyProject"
icon="menu">
<q-menu ref="popmenu" self="top right">
<SubMenusProj :menuPopupProj="menuPopupProj" :itemproject="itemproject" @clickMenu="clickMenu"
@selectSubMenu="selectSubMenu"></SubMenusProj>
</q-menu>
</q-btn>
</div>
<div v-else :class="classDescr"
@keydown="keyDownRow"><div class="clpos">{{ itemproject.pos }}: </div> {{ itemproject.descr }}
</div>
</div>
<div>
{{ tools.getGroupById(itemproject.groupId) }}
</div>
<div v-if="isProject()" class="flex-item progress-item shadow-1">
<q-linear-progress
stripe
rounded
:value="percentageProgress / 100"
class="progrbar-item"
:color="colProgress"
>
</q-linear-progress>
<div :class="percProgress">
{{ percentageProgress }}%
</div>
</div>
<div v-if="itemproject.enableExpiring" :class="classExpiring">
<CDate :mydate="itemproject.expiring_at" @input="itemproject.expiring_at = new Date(arguments[0])"
data_class="data_string">
</CDate>
</div>
<div v-if="isProject()" class="flex-item pos-item " @mousedown="clickRiga">
<q-btn flat
:class="clButtPopover"
:readonly="!CanIModifyProject"
:disable="!CanIModifyProject"
icon="menu">
<q-menu ref="popmenu" self="top right">
<SubMenusProj :menuPopupProj="menuPopupProj" :itemproject="itemproject" @clickMenu="clickMenu"
@selectSubMenu="selectSubMenu"></SubMenusProj>
</q-menu>
</q-btn>
</div>
</div>
</template>
<script lang="ts" src="./SingleProject.ts">
</script>
<style lang="scss" scoped>
@import './SingleProject.scss';
@import './SingleProject.scss';
</style>