fixed "Booking Users"

This commit is contained in:
Paolo Arena
2021-10-04 15:55:43 +02:00
parent 76918f6b2c
commit 1a9a81a1ba
20 changed files with 145 additions and 88 deletions

View File

@@ -13,7 +13,7 @@
:dense="dense" :dense="dense"
mask="####-##-## ##:##" mask="####-##-## ##:##"
debounce="500" debounce="500"
@input="changeval" @update:model-value="changeval"
:input-class="getclass()" :input-class="getclass()"
> >
</q-input> </q-input>

View File

@@ -4,7 +4,7 @@ import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore' import { useGlobalStore } from '@store/globalStore'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { colors, Screen, Platform, date } from 'quasar' import { colors, Screen, Platform, date } from 'quasar'
import { EState, IBookedEvent, IBookedEventPage, IEvents, IMessage, IMessagePage } from '@model' import { EState, IBookedEvent, IBookedEventPage, IEvents, IMessage, IMessagePage, IParamDialog } from '@model'
import { Logo } from '../logo' import { Logo } from '../logo'
import { Footer } from '../Footer' import { Footer } from '../Footer'
import { CTitle } from '../CTitle' import { CTitle } from '../CTitle'
@@ -25,6 +25,8 @@ import { useCalendarStore } from '@store/CalendarStore'
import { func_tools, toolsext } from '@store/Modules/toolsext' import { func_tools, toolsext } from '@store/Modules/toolsext'
import { useMessageStore } from '@store/MessageStore' import { useMessageStore } from '@store/MessageStore'
import { static_data } from '@/db/static_data' import { static_data } from '@/db/static_data'
import { lists } from '@store/Modules/lists'
import translate from '@/globalroutines/util'
export default defineComponent({ export default defineComponent({
name: 'CEventsCalendar', name: 'CEventsCalendar',
@@ -441,6 +443,61 @@ export default defineComponent({
tools.CancelEvent($q, eventparam) tools.CancelEvent($q, eventparam)
} }
function executefunc(mythisq: any, table: string, func: number, par: IParamDialog) {
if (func === lists.MenuAction.DELETE) {
// console.log('param1', par.param1)
calendarStore.CancelBookingEvent({
ideventbook: par.param1,
notify: par.param2 === true ? '1' : '0',
}).then((ris: any) => {
if (ris) {
tools.showPositiveNotif(mythisq, t('cal.canceledbooking') + ' "' + par.param3 + '"')
if (bookEventpage.value)
bookEventpage.value.show = false
} else {
tools.showNegativeNotif(mythisq, t('cal.cancelederrorbooking'))
}
})
}
}
function CancelBookingEvent(mythisq: any, eventparam: IEvents, bookeventid: string, notify: boolean, mythis?: any) {
const mytitle = translate('cal.titlebooking')
const mytext = translate('cal.cancelbooking') + ' ' + tools.gettextevent(eventparam) + '?'
const ok = translate('dialog.yes')
const funcok = lists.MenuAction.DELETE
const table = ''
const funccancel = 0
const par = {
param1: bookeventid,
param2: notify,
param3: eventparam.title,
}
console.log('CancelBookingEvent ', eventparam)
return $q.dialog({
message: mytext,
html: true,
ok: {
label: ok,
push: true,
},
title: mytitle,
cancel: true,
persistent: false,
}).onOk(() => {
// console.log('OK')
executefunc($q, table, funcok, par)
return true
}).onCancel(() => {
// console.log('CANCEL')
executefunc($q, table, funccancel, par)
return false
})
}
function duplicateEvent(eventparam: any, numgg: number, numev = 1) { function duplicateEvent(eventparam: any, numgg: number, numev = 1) {
for (let i = 0; i < numev; ++i) { for (let i = 0; i < numev; ++i) {
globalStore.DuplicateRec({ table: costanti.TABEVENTS, id: eventparam._id }).then((rec) => { globalStore.DuplicateRec({ table: costanti.TABEVENTS, id: eventparam._id }).then((rec) => {
@@ -962,6 +1019,8 @@ export default defineComponent({
createContribType, createContribType,
static_data, static_data,
editEvent, editEvent,
EState,
CancelBookingEvent,
} }
} }
}) })

View File

@@ -465,12 +465,13 @@
<q-btn <q-btn
v-if="bookEventpage.state === EState.Modifying" flat :label="$t('cal.cancelbooking')" v-if="bookEventpage.state === EState.Modifying" flat :label="$t('cal.cancelbooking')"
color="negative" color="negative"
@click="tools.CancelBookingEvent($q, myevent, bookEventForm._id, true)"></q-btn> @click="CancelBookingEvent($q, myevent, bookEventForm._id, true)"></q-btn>
<q-btn <q-btn
v-if="checkseinviaMsg" flat :label="$t('dialog.sendonlymsg')" color="primary" v-if="checkseinviaMsg()" flat :label="$t('dialog.sendonlymsg')" color="primary"
@click="sendMsg(myevent)"></q-btn> @click="sendMsg(myevent)"></q-btn>
<q-btn <q-btn
v-else :label="getTitleBtnBooking" color="primary" @click="saveBookEvent(myevent)" v-else
:label="getTitleBtnBooking()" color="primary" @click="saveBookEvent(myevent)"
:disable="!(bookEventpage.state === EState.Creating || hasModifiedBooking)"></q-btn> :disable="!(bookEventpage.state === EState.Creating || hasModifiedBooking)"></q-btn>

View File

@@ -52,7 +52,7 @@
label="Id" label="Id"
dense dense
@keyup.enter.stop @keyup.enter.stop
@input="save" @update:model-value="save"
debounce="1000" debounce="1000"
autofocus> autofocus>
</q-input> </q-input>
@@ -71,7 +71,7 @@
:label="$t('disc.order')" :label="$t('disc.order')"
dense dense
@keyup.enter.stop @keyup.enter.stop
@input="save" @update:model-value="save"
debounce="1000" debounce="1000"
autofocus> autofocus>
</q-input>--> </q-input>-->
@@ -79,7 +79,7 @@
label="Alt" label="Alt"
dense dense
@keyup.enter.stop @keyup.enter.stop
@input="save" @update:model-value="save"
debounce="1000" debounce="1000"
autofocus> autofocus>
</q-input>--> </q-input>-->
@@ -89,7 +89,7 @@
dense dense
:label="$t('proj.longdescr')" :label="$t('proj.longdescr')"
@keyup.enter.stop @keyup.enter.stop
@input="save" @update:model-value="save"
debounce="1000" debounce="1000"
autofocus> autofocus>
</q-input> </q-input>

View File

@@ -532,27 +532,9 @@ export default defineComponent({
} }
function executefunc(table: string, func: number, par: IParamDialog) { function exec_func_table(table: string, func: number, par: IParamDialog) {
const globalStore = useGlobalStore()
const calendarStore = useCalendarStore()
if (func === lists.MenuAction.DELETE) { if (func === lists.MenuAction.DELETE_RECTABLE) {
// console.log('param1', par.param1)
calendarStore.CancelBookingEvent({
ideventbook: par.param1,
notify: par.param2 === true ? '1' : '0',
}).then((ris: any) => {
if (ris) {
tools.showPositiveNotif($q, t('cal.canceledbooking') + ' "' + par.param3 + '"')
//++Todo: Calendar FIX:
// if (myself.bookEventpage)
// myself.bookEventpage.show = false
} else {
tools.showNegativeNotif($q, t('cal.cancelederrorbooking'))
}
})
} else if (func === lists.MenuAction.DELETE_RECTABLE) {
// console.log('param1', par.param1)
globalStore.DeleteRec({ table, id: par.param1 }).then((ris) => { globalStore.DeleteRec({ table, id: par.param1 }).then((ris) => {
if (ris) { if (ris) {
ActionAfterYes(func, par.param2, null) ActionAfterYes(func, par.param2, null)
@@ -562,7 +544,6 @@ export default defineComponent({
} }
}) })
} else if (func === lists.MenuAction.DUPLICATE_RECTABLE) { } else if (func === lists.MenuAction.DUPLICATE_RECTABLE) {
// console.log('param1', par.param1)
globalStore.DuplicateRec({ table, id: par.param1 }).then((ris) => { globalStore.DuplicateRec({ table, id: par.param1 }).then((ris) => {
if (ris) { if (ris) {
ActionAfterYes(func, par.param2, ris.data) ActionAfterYes(func, par.param2, ris.data)
@@ -598,11 +579,11 @@ export default defineComponent({
persistent: false, persistent: false,
}).onOk(() => { }).onOk(() => {
// console.log('OK') // console.log('OK')
executefunc(table, col.action, par) exec_func_table(table, col.action, par)
return true return true
}).onCancel(() => { }).onCancel(() => {
// console.log('CANCEL') // console.log('CANCEL')
executefunc(table, funccancel, par) exec_func_table(table, funccancel, par)
return false return false
}) })

View File

@@ -225,7 +225,7 @@
<!--<vue-tel-input <!--<vue-tel-input
@country-changed="intcode_change" @country-changed="intcode_change"
:value="myvalue" :value="myvalue"
@input="onInput" @update:model-value="onInput"
:disabledFetchingCountry="true" :disabledFetchingCountry="true"
:preferredCountries="tools.getprefCountries" :preferredCountries="tools.getprefCountries"
:placeholder="$t('reg.cell')" :placeholder="$t('reg.cell')"

View File

@@ -7,7 +7,7 @@
v-model="myvalue" v-model="myvalue"
autogrow autogrow
@keyup.enter.stop @keyup.enter.stop
@input="changevalRec" @update:model-value="changevalRec"
autofocus autofocus
:label="col.label"> :label="col.label">
</q-input> </q-input>
@@ -20,7 +20,7 @@
:readonly="false" :readonly="false"
:minuteinterval="minuteinterval" :minuteinterval="minuteinterval"
:dense="true" :dense="true"
@input="changevalRec" @update:model-value="changevalRec"
canEdit="true" canEdit="true"
@savetoclose="SaveValueInt" @savetoclose="SaveValueInt"
@show="OpenEdit"> @show="OpenEdit">
@@ -34,7 +34,7 @@
:readonly="false" :readonly="false"
:minuteinterval="minuteinterval" :minuteinterval="minuteinterval"
:dense="true" :dense="true"
@input="changevalRec" @update:model-value="changevalRec"
canEdit="true" canEdit="true"
@savetoclose="SaveValueInt" @savetoclose="SaveValueInt"
@show="OpenEdit" @show="OpenEdit"
@@ -45,7 +45,7 @@
<q-input <q-input
v-model="myvalue" type="number" v-model="myvalue" type="number"
autofocus autofocus
@input="changevalRec" @update:model-value="changevalRec"
:label="col.label" :label="col.label"
> >
@@ -56,7 +56,7 @@
<q-input <q-input
v-model="myvalue" type="number" v-model="myvalue" type="number"
autofocus autofocus
@input="changevalRec" @update:model-value="changevalRec"
style="max-width: 100px;" style="max-width: 100px;"
:label="col.label" :label="col.label"
> >
@@ -76,7 +76,7 @@
<!--<q-input v-model="myvalue" type="number" <!--<q-input v-model="myvalue" type="number"
autofocus autofocus
@input="changevalRec" @update:model-value="changevalRec"
:label="col.label"> :label="col.label">
</q-input> </q-input>
--> -->
@@ -86,7 +86,7 @@
<CGallery <CGallery
:gall="row" :listimages="myvalue" :edit="isviewfield()" :gall="row" :listimages="myvalue" :edit="isviewfield()"
@showandsave="Savedb" @showandsave="Savedb"
@input="changevalRec" @update:model-value="changevalRec"
> >
</CGallery> </CGallery>
@@ -94,7 +94,7 @@
<div v-else-if="col.fieldtype === costanti.FieldType.image"> <div v-else-if="col.fieldtype === costanti.FieldType.image">
<CGallery <CGallery
:gall="row" :listimages="myvalue" :edit="isviewfield()" :gall="row" :listimages="myvalue" :edit="isviewfield()"
@input="changevalRec" @update:model-value="changevalRec"
@showandsave="Savedb"> @showandsave="Savedb">
</CGallery> </CGallery>
@@ -103,7 +103,7 @@
<CMyChipList <CMyChipList
:type="costanti.FieldType.binary" :type="costanti.FieldType.binary"
:value="myvalue" :value="myvalue"
@input="changevalRec" @update:model-value="changevalRec"
:options="globalStore.getTableJoinByName(col.jointable)" :options="globalStore.getTableJoinByName(col.jointable)"
:optval="fieldsTable.getKeyByTable(col.jointable)" :optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)" :optlab="fieldsTable.getLabelByTable(col.jointable)"
@@ -112,7 +112,7 @@
<!-- Show Value --> <!-- Show Value -->
<div v-else-if="col.fieldtype === costanti.FieldType.multiselect"> <div v-else-if="col.fieldtype === costanti.FieldType.multiselect">
<CMyChipList <CMyChipList
@input="changevalRec" @update:model-value="changevalRec"
:type="costanti.FieldType.multiselect" :type="costanti.FieldType.multiselect"
:value="myvalue" :value="myvalue"
:options="globalStore.getTableJoinByName(col.jointable)" :options="globalStore.getTableJoinByName(col.jointable)"
@@ -122,7 +122,7 @@
</div> </div>
<div v-else-if="col.fieldtype === costanti.FieldType.select"> <div v-else-if="col.fieldtype === costanti.FieldType.select">
<CMyChipList <CMyChipList
@input="changevalRec" @update:model-value="changevalRec"
myclass="text-center" myclass="text-center"
:type="costanti.FieldType.select" :type="costanti.FieldType.select"
:value="myvalue" :value="myvalue"
@@ -359,7 +359,7 @@
<!-- <vue-tel-input <!-- <vue-tel-input
@country-changed="intcode_change" @country-changed="intcode_change"
:value="scope.value" :value="scope.value"
@input="oninput" @update:model-value="oninput"
:placeholder="$t('reg.cell')" :placeholder="$t('reg.cell')"
:enabledCountryCode="true" :enabledCountryCode="true"
inputClasses="clCell" inputClasses="clCell"
@@ -385,7 +385,7 @@
:option-label="fieldsTable.getLabelByTable(col.jointable)" :option-label="fieldsTable.getLabelByTable(col.jointable)"
:option-value="fieldsTable.getKeyByTable(col.jointable)" :option-value="fieldsTable.getKeyByTable(col.jointable)"
style="min-width: 150px" style="min-width: 150px"
@input="changeCol"> @update:model-value="changeCol">
</q-select> </q-select>
</div> </div>

View File

@@ -89,6 +89,7 @@ export default defineComponent({
isEventEnabled, isEventEnabled,
findEventIndex, findEventIndex,
UpdateDbByFields, UpdateDbByFields,
selected,
} }
} }

View File

@@ -2,7 +2,7 @@
<div> <div>
<CMyPage <CMyPage
v-if="myevent" :imgbackground="myevent.img" :title="myevent.title" keywords="" description="" v-if="myevent" :imgbackground="myevent.img" :title="myevent.title" keywords="" description=""
nofooter="true"> :nofooter="true">
<div class="q-mx-md"> <div class="q-mx-md">
<div class="listaev__align_chips q-ma-md"> <div class="listaev__align_chips q-ma-md">

View File

@@ -13,7 +13,7 @@
dense dense
label="Altezza" label="Altezza"
emit-value map-options emit-value map-options
@input="changedim" @update:model-value="changedim"
></q-select> ></q-select>
</div> </div>

View File

@@ -28,7 +28,7 @@
<!--<q-item-label class="title">Condiviso: {{ shared.numshared }}</q-item-label> <!--<q-item-label class="title">Condiviso: {{ shared.numshared }}</q-item-label>
<q-item-label class="title">Rating: {{ shared.rating }}</q-item-label>--> <q-item-label class="title">Rating: {{ shared.rating }}</q-item-label>-->
</q-item-section> </q-item-section>
<!--<q-rating v-model="shared.rating" :max="5" size="16px" @input="change_rating(shared.rating, shared)"/>--> <!--<q-rating v-model="shared.rating" :max="5" size="16px" @update:model-value="change_rating(shared.rating, shared)"/>-->
</div> </div>
@@ -80,7 +80,7 @@
@click="add_newshare(shared.description)"></q-btn> @click="add_newshare(shared.description)"></q-btn>
<!--<q-item-label class="title">Condiviso: {{ shared.numshared }}</q-item-label> <!--<q-item-label class="title">Condiviso: {{ shared.numshared }}</q-item-label>
<q-item-label class="title">Rating: {{ shared.rating }}</q-item-label>--> <q-item-label class="title">Rating: {{ shared.rating }}</q-item-label>-->
<!--<q-rating v-model="shared.rating" :max="5" size="16px" @input="change_rating(shared.rating, shared)"/>--> <!--<q-rating v-model="shared.rating" :max="5" size="16px" @update:model-value="change_rating(shared.rating, shared)"/>-->
</div> </div>
</transition> </transition>

View File

@@ -14,7 +14,7 @@
v-model="signup.email" v-model="signup.email"
rounded outlined rounded outlined
@blur="v$.email.$touch" @blur="v$.email.$touch"
@input="changeemail()" @update:model-value="changeemail()"
:error="v$.email.$error" :error="v$.email.$error"
:error-message="tools.errorMsg( 'email', v$.email)" :error-message="tools.errorMsg( 'email', v$.email)"
maxlength="50" maxlength="50"
@@ -31,7 +31,7 @@
v-model="signup.username" v-model="signup.username"
rounded outlined rounded outlined
@blur="v$.username.$touch" @blur="v$.username.$touch"
@input="changeusername" @update:model-value="changeusername"
:error="v$.username.$error" :error="v$.username.$error"
@keydown.space="(event) => event.preventDefault()" @keydown.space="(event) => event.preventDefault()"
maxlength="20" maxlength="20"

View File

@@ -24,7 +24,7 @@
<q-checkbox <q-checkbox
class="bg-grey-4" class="bg-grey-4"
v-model="accetta_saw_video" v-model="accetta_saw_video"
@input="changeval" @update:model-value="changeval"
color="primary" color="primary"
:label="$t('steps.saw_video_intro')"> :label="$t('steps.saw_video_intro')">

View File

@@ -18,7 +18,7 @@ const functionality: IFunctionality = {
ENABLE_PROJECTS_LOADING: false, ENABLE_PROJECTS_LOADING: false,
SHOW_IF_IS_SERVER_CONNECTION: false, SHOW_IF_IS_SERVER_CONNECTION: false,
SHOW_MESSAGES: false, SHOW_MESSAGES: false,
BOOKING_EVENTS: false, BOOKING_EVENTS: true,
ENABLE_ECOMMERCE: true, ENABLE_ECOMMERCE: true,
ENABLE_REG_CNM: true, ENABLE_REG_CNM: true,
} }

View File

@@ -11,7 +11,7 @@ import { useI18n } from '@/boot/i18n'
// You can declare a mixin as the same style as components. // You can declare a mixin as the same style as components.
export default function () { export default function () {
function getImgEvent(event: IEvents) { function getImgEvent(event: IEvents) {
if (!!event.img) if (event && !!event.img)
return event.img return event.img
else else
return 'images/noimg.png' return 'images/noimg.png'

View File

@@ -139,6 +139,7 @@ export default defineComponent({
isnotmyevent, isnotmyevent,
setmeta, setmeta,
myevent, myevent,
selected,
} }
} }

View File

@@ -3,7 +3,16 @@ import { tools } from '@src/store/Modules/tools'
import { func_tools } from '@src/store/Modules/toolsext' import { func_tools } from '@src/store/Modules/toolsext'
import { CTitle } from '../../../components/CTitle/index' import { CTitle } from '../../../components/CTitle/index'
import { CMyPage } from '../../../components/CMyPage/index' import { CMyPage } from '../../../components/CMyPage/index'
import { IBookedEvent, ICalendarState, IEvents, ITodo, ITodosState, IUserState, IUserFields } from '@src/model' import {
IBookedEvent,
ICalendarState,
IEvents,
ITodo,
ITodosState,
IUserState,
IUserFields,
IParamDialog
} from '@src/model'
import { lists } from '@src/store/Modules/lists' import { lists } from '@src/store/Modules/lists'
import MixinUsers from '@src/mixins/mixin-users' import MixinUsers from '@src/mixins/mixin-users'
@@ -14,6 +23,7 @@ import { useCalendarStore } from '@store/CalendarStore'
import { useUserStore } from '@store/UserStore' import { useUserStore } from '@store/UserStore'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { useI18n } from '@/boot/i18n' import { useI18n } from '@/boot/i18n'
import translate from '@/globalroutines/util'
export default defineComponent({ export default defineComponent({
name: 'Eventlist', name: 'Eventlist',
@@ -21,6 +31,7 @@ export default defineComponent({
setup() { setup() {
const showpeople = ref(false)
const shownote = ref(false) const shownote = ref(false)
const eventsel = ref(null) const eventsel = ref(null)
const showPrev = ref(false) const showPrev = ref(false)
@@ -36,6 +47,8 @@ export default defineComponent({
const { UpdateDbByFields } = MixinEvents() const { UpdateDbByFields } = MixinEvents()
const { isValidUsername } = MixinUsers()
function getEventList() { function getEventList() {
const eventsloc: IEvents[] = [] const eventsloc: IEvents[] = []
@@ -115,10 +128,6 @@ export default defineComponent({
return eventsloc return eventsloc
} }
function mostra() {
return $route.name
}
function showall() { function showall() {
return $route.name === 'otherpages.admin.usereventlist' return $route.name === 'otherpages.admin.usereventlist'
} }
@@ -134,7 +143,9 @@ export default defineComponent({
getNumEvent() getNumEvent()
} }
function change_rec(eventparam: any) { function change_rec(eventparam: any) {
console.log('change_rec')
UpdateDbByFields($q, eventparam) UpdateDbByFields($q, eventparam)
} }
@@ -151,6 +162,12 @@ export default defineComponent({
getTeacherByUsername, getTeacherByUsername,
numrec, numrec,
shownote, shownote,
showpeople,
eventsel,
isValidUsername,
gettitle,
change_rec,
$q,
} }
} }
}) })

View File

@@ -115,7 +115,7 @@
autogrow autogrow
type="textarea" debounce="500" type="textarea" debounce="500"
input-class="myinput-area" input-class="myinput-area"
@input="change_rec(eventsel)"> @update:model-value="change_rec(eventsel)">
</q-input> </q-input>
</q-card-section> </q-card-section>
@@ -161,7 +161,7 @@
<td class="text-center"> <td class="text-center">
<q-btn <q-btn
flat round color="red" icon="fas fa-trash-alt" size="sm" flat round color="red" icon="fas fa-trash-alt" size="sm"
@click="tools.CancelBookingEvent(mythis, eventsel, eventbook._id, false)"></q-btn> @click="tools.CancelBookingEvent($q, eventsel, eventbook._id, false)"></q-btn>
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@@ -1709,9 +1709,6 @@ export const tools = {
}).then((ris: any) => { }).then((ris: any) => {
if (ris) { if (ris) {
this.showPositiveNotif(mythisq, t('cal.canceledbooking') + ' "' + par.param3 + '"') this.showPositiveNotif(mythisq, t('cal.canceledbooking') + ' "' + par.param3 + '"')
//++Todo: Calendar FIX:
// if (myself.bookEventpage)
// myself.bookEventpage.show = false
} else { } else {
this.showNegativeNotif(mythisq, t('cal.cancelederrorbooking')) this.showNegativeNotif(mythisq, t('cal.cancelederrorbooking'))
} }

View File

@@ -206,7 +206,7 @@
:label="$t('proj.longdescr')" :label="$t('proj.longdescr')"
outlined outlined
debounce="1000" debounce="1000"
@input="modifyfieldproj('privacywrite')" @update:model-value="modifyfieldproj('privacywrite')"
autogrow autogrow
style="flex: auto"> style="flex: auto">
</q-input> </q-input>
@@ -235,7 +235,7 @@
:readonly="readonly_PanelPrivacySel" :readonly="readonly_PanelPrivacySel"
rounded outlined v-model="itemselproj.groupId" :options="selectGroup" rounded outlined v-model="itemselproj.groupId" :options="selectGroup"
:label="$t('proj.group')" emit-value map-options :label="$t('proj.group')" emit-value map-options
@input="modifyfieldproj('groupId')"> @update:model-value="modifyfieldproj('groupId')">
</q-select> </q-select>
</div> </div>
</div> </div>
@@ -247,7 +247,7 @@
:readonly="readonly_PanelPrivacySel" :readonly="readonly_PanelPrivacySel"
rounded outlined v-model="itemselproj.respUsername" :options="selectResp" rounded outlined v-model="itemselproj.respUsername" :options="selectResp"
:label="$t('proj.respUsername')" emit-value map-options :label="$t('proj.respUsername')" emit-value map-options
@input="modifyfieldproj('respUsername')"> @update:model-value="modifyfieldproj('respUsername')">
</q-select> </q-select>
</div> </div>
</div> </div>
@@ -259,14 +259,14 @@
:readonly="readonly_PanelPrivacySel" :readonly="readonly_PanelPrivacySel"
rounded outlined v-model="itemselproj.viceRespUsername" :options="selectResp" rounded outlined v-model="itemselproj.viceRespUsername" :options="selectResp"
:label="$t('proj.viceRespUsername')" emit-value map-options :label="$t('proj.viceRespUsername')" emit-value map-options
@input="modifyfieldproj('viceRespUsername')"> @update:model-value="modifyfieldproj('viceRespUsername')">
</q-select> </q-select>
<q-select <q-select
style="min-width: 200px" style="min-width: 200px"
:readonly="readonly_PanelPrivacySel" :readonly="readonly_PanelPrivacySel"
rounded outlined v-model="itemselproj.vice2RespUsername" :options="selectResp" rounded outlined v-model="itemselproj.vice2RespUsername" :options="selectResp"
:label="$t('proj.vice2RespUsername')" emit-value map-options :label="$t('proj.vice2RespUsername')" emit-value map-options
@input="modifyfieldproj('vice2RespUsername')"> @update:model-value="modifyfieldproj('vice2RespUsername')">
</q-select> </q-select>
</div> </div>
</div> </div>
@@ -277,7 +277,7 @@
style="min-width: 150px" :readonly="readonly_PanelPrivacySel" rounded outlined style="min-width: 150px" :readonly="readonly_PanelPrivacySel" rounded outlined
v-model="itemselproj.tipovisu" v-model="itemselproj.tipovisu"
:options="selectTipoVisu" :options="selectTipoVisu"
@input="modifyfieldproj('tipovisu')" @update:model-value="modifyfieldproj('tipovisu')"
:label="$t('proj.tipovisu')" emit-value map-options> :label="$t('proj.tipovisu')" emit-value map-options>
</q-select> </q-select>
</div> </div>
@@ -290,7 +290,7 @@
:readonly="readonly_PanelPrivacySel" :readonly="readonly_PanelPrivacySel"
rounded outlined v-model="itemselproj.privacyread" :options="selectPrivacy" rounded outlined v-model="itemselproj.privacyread" :options="selectPrivacy"
:label="$t('proj.privacyread')" emit-value map-options :label="$t('proj.privacyread')" emit-value map-options
@input="modifyfieldproj('privacyread')"> @update:model-value="modifyfieldproj('privacyread')">
</q-select> </q-select>
</div> </div>
</div> </div>
@@ -301,7 +301,7 @@
style="min-width: 200px" :readonly="readonly_PanelPrivacySel" rounded outlined style="min-width: 200px" :readonly="readonly_PanelPrivacySel" rounded outlined
v-model="itemselproj.privacywrite" :options="selectPrivacy" v-model="itemselproj.privacywrite" :options="selectPrivacy"
:label="$t('proj.privacywrite')" emit-value map-options :label="$t('proj.privacywrite')" emit-value map-options
@input="modifyfieldproj('privacywrite')"> @update:model-value="modifyfieldproj('privacywrite')">
</q-select> </q-select>
</div> </div>
</div> </div>
@@ -330,7 +330,7 @@
:label="$t('proj.longdescr')" :label="$t('proj.longdescr')"
outlined outlined
:readonly="readonly_PanelPrivacy" :readonly="readonly_PanelPrivacy"
@input="modifyfieldtodo('descr')" @update:model-value="modifyfieldtodo('descr')"
debounce="1000" debounce="1000"
autogrow autogrow
style="flex: auto"> style="flex: auto">
@@ -349,7 +349,7 @@
:label="$t('proj.note')" :label="$t('proj.note')"
outlined outlined
:readonly="readonly_PanelPrivacy" :readonly="readonly_PanelPrivacy"
@input="modifyfieldtodo('note')" @update:model-value="modifyfieldtodo('note')"
debounce="1000" debounce="1000"
autogrow autogrow
style="flex: auto"> style="flex: auto">
@@ -365,7 +365,7 @@
v-model="itemtodosel.pos" v-model="itemtodosel.pos"
type="number" type="number"
debounce="500" debounce="500"
@input="modifyfieldtodo('pos')" @update:model-value="modifyfieldtodo('pos')"
rounded outlined rounded outlined
style="max-width: 100px;" style="max-width: 100px;"
:label="$t('dashboard.posizione')"> :label="$t('dashboard.posizione')">
@@ -378,7 +378,7 @@
<q-select <q-select
style="min-width: 200px" style="min-width: 200px"
:readonly="readonly_PanelPrivacy" :readonly="readonly_PanelPrivacy"
@input="modifyfieldtodo('assigned_to_userId')" @update:model-value="modifyfieldtodo('assigned_to_userId')"
rounded outlined v-model="itemtodosel.assigned_to_userId" :options="selectWorkers" rounded outlined v-model="itemtodosel.assigned_to_userId" :options="selectWorkers"
:label="$t('todo.assigned_to_userId')" emit-value map-options> :label="$t('todo.assigned_to_userId')" emit-value map-options>
</q-select> </q-select>
@@ -390,7 +390,7 @@
:idmain="itemtodosel.category" :idmain="itemtodosel.category"
table="todos" table="todos"
mykey="assignedToUsers" mykey="assignedToUsers"
@input="modifyfieldtodo('assignedToUsers')" @update:model-value="modifyfieldtodo('assignedToUsers')"
:type="costanti.FieldType.multiselect" :type="costanti.FieldType.multiselect"
jointable="workers"> jointable="workers">
</CMyFieldDb> </CMyFieldDb>
@@ -403,7 +403,7 @@
rounded outlined v-model="itemtodosel.statustodo" :options="selectStatus" rounded outlined v-model="itemtodosel.statustodo" :options="selectStatus"
:readonly="readonly_PanelPrivacy" :readonly="readonly_PanelPrivacy"
:label="$t('todo.status')" emit-value map-options :label="$t('todo.status')" emit-value map-options
@input="modifyfieldtodo('statustodo')"> @update:model-value="modifyfieldtodo('statustodo')">
</q-select> </q-select>
</div> </div>
@@ -485,7 +485,7 @@
readonly readonly
v-model="itemselproj.hoursplanned" v-model="itemselproj.hoursplanned"
rounded outlined rounded outlined
@input="modifyfieldproj('hoursplanned')" @update:model-value="modifyfieldproj('hoursplanned')"
:label="$t('proj.hoursplanned')" :label="$t('proj.hoursplanned')"
debounce="500"> debounce="500">
@@ -500,7 +500,7 @@
<div class="flex-item itemdata"> <div class="flex-item itemdata">
<CDate <CDate
:readonly="readonly_PanelPrivacySel" :mydate="itemselproj.begin_development" :readonly="readonly_PanelPrivacySel" :mydate="itemselproj.begin_development"
@input="itemselproj.begin_development = new Date(arguments[0]); modifyfieldproj('begin_development')" @update:model-value="itemselproj.begin_development = new Date(arguments[0]); modifyfieldproj('begin_development')"
:label="$t('proj.begin_development')"> :label="$t('proj.begin_development')">
</CDate> </CDate>
</div> </div>
@@ -508,7 +508,7 @@
<div class="flex-item itemdata"> <div class="flex-item itemdata">
<CDate <CDate
:readonly="readonly_PanelPrivacySel" :mydate="itemselproj.begin_test" :readonly="readonly_PanelPrivacySel" :mydate="itemselproj.begin_test"
@input="itemselproj.begin_test = new Date(arguments[0]); modifyfieldproj('begin_test')" @update:model-value="itemselproj.begin_test = new Date(arguments[0]); modifyfieldproj('begin_test')"
:label="$t('proj.begin_test')"> :label="$t('proj.begin_test')">
</CDate> </CDate>
</div> </div>
@@ -520,7 +520,7 @@
style="min-width: 150px" :readonly="readonly_PanelPrivacySel" rounded outlined style="min-width: 150px" :readonly="readonly_PanelPrivacySel" rounded outlined
v-model="itemselproj.actualphase" v-model="itemselproj.actualphase"
:options="selectPhase" :options="selectPhase"
@input="modifyfieldproj('actualphase')" @update:model-value="modifyfieldproj('actualphase')"
:label="$t('proj.actualphase')" emit-value map-options> :label="$t('proj.actualphase')" emit-value map-options>
</q-select> </q-select>
</div> </div>
@@ -530,7 +530,7 @@
style="min-width: 150px" style="min-width: 150px"
:readonly="readonly_PanelPrivacySel" rounded outlined v-model="itemselproj.totalphases" :readonly="readonly_PanelPrivacySel" rounded outlined v-model="itemselproj.totalphases"
:options="selectPhase" :options="selectPhase"
@input="modifyfieldproj('totalphases')" @update:model-value="modifyfieldproj('totalphases')"
:label="$t('proj.totalphases')" emit-value map-options> :label="$t('proj.totalphases')" emit-value map-options>
</q-select> </q-select>
</div> </div>
@@ -599,7 +599,7 @@
:descr="$t('proj.progresstask')" :descr="$t('proj.progresstask')"
:readonly="readonly_PanelPrivacy" :readonly="readonly_PanelPrivacy"
:progressval="itemtodosel.progress" :progressval="itemtodosel.progress"
:slider="true" @input="itemtodosel.progress = arguments[0]"></CProgress> :slider="true" @update:model-value="itemtodosel.progress = arguments[0]"></CProgress>
</div> </div>
</div> </div>
<div class="flex-container clMain"> <div class="flex-container clMain">
@@ -608,7 +608,7 @@
<CDate <CDate
:mydate="itemtodosel.start_date" :mydate="itemtodosel.start_date"
:readonly="readonly_PanelPrivacy" :readonly="readonly_PanelPrivacy"
@input="itemtodosel.start_date = new Date(arguments[0]); modifyfieldtodo('start_date')" @update:model-value="itemtodosel.start_date = new Date(arguments[0]); modifyfieldtodo('start_date')"
:label="$t('todo.start_date')"> :label="$t('todo.start_date')">
</CDate> </CDate>
@@ -619,7 +619,7 @@
<CDate <CDate
:readonly="((itemtodosel.statustodo !== tools.Status.COMPLETED) || readonly_PanelPrivacy)" :readonly="((itemtodosel.statustodo !== tools.Status.COMPLETED) || readonly_PanelPrivacy)"
:mydate="itemtodosel.completed_at" :mydate="itemtodosel.completed_at"
@input="itemtodosel.completed_at = new Date(arguments[0]); modifyfieldtodo('completed_at')" @update:model-value="itemtodosel.completed_at = new Date(arguments[0]); modifyfieldtodo('completed_at')"
:label="$t('todo.completed_at')"> :label="$t('todo.completed_at')">
</CDate> </CDate>
</div> </div>
@@ -630,7 +630,7 @@
<q-select <q-select
rounded outlined v-model="itemtodosel.phase" :options="selectPhase" rounded outlined v-model="itemtodosel.phase" :options="selectPhase"
:readonly="readonly_PanelPrivacy" :readonly="readonly_PanelPrivacy"
@input="modifyfieldtodo('phase')" @update:model-value="modifyfieldtodo('phase')"
:label="$t('todo.phase')" emit-value map-options> :label="$t('todo.phase')" emit-value map-options>
</q-select> </q-select>
</div> </div>