Files
newfreeplanet_OLD/src/components/CMyPopupEdit/CMyPopupEdit.vue

1322 lines
47 KiB
Vue
Raw Normal View History

2021-09-16 21:08:02 +02:00
<template>
<div :class="getclassCol(col)">
<div
2022-11-23 10:27:36 +01:00
v-if="
tools.checkIfShowField(
col,
insertMode
? tools.TIPOVIS_NEW_RECORD
: isInModif
? tools.TIPOVIS_EDIT_RECORD
: tools.TIPOVIS_SHOW_RECORD,
visulabel,
myvalue
)
"
style="flex-grow: 1"
>
<div :class="{ flex: !isInModif, 'justify-center': true }">
2021-12-03 22:47:53 +01:00
<div>
<!-- Edit Value -->
<div v-if="col.fieldtype === costanti.FieldType.boolean">
2021-12-03 22:47:53 +01:00
<div v-if="isInModif">
2022-05-08 13:19:35 +02:00
<q-toggle
:disable="!isInModif || col.disable"
2022-11-23 10:27:36 +01:00
dark
color="green"
v-model="myvalue"
:label="col.title ? col.title : col.label"
@update:model-value="changevalRec"
></q-toggle>
2021-12-03 22:47:53 +01:00
</div>
<div v-else>
<q-toggle
2022-11-23 10:27:36 +01:00
dark
color="green"
v-model="myvalue"
:label="col.title"
:disable="
(disable && col.name !== 'profile.saw_zoom_presentation') ||
(!isInModif && !canModify && !canEdit)
"
@update:model-value="Savedb"
></q-toggle>
2021-12-03 22:47:53 +01:00
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.link">
<div v-if="isInModif">
<q-input
v-bind="$attrs"
v-model="myvalue"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
:style="$q.screen.lt.sm ? 'min-width: 300px' : ''"
:disable="disable"
:readonly="disable"
:type="`text`"
@keyup.enter.stop
@update:model-value="changevalRec"
autofocus
2022-11-23 10:27:36 +01:00
:label="col.label"
>
</q-input>
</div>
<div v-else>
<div class="q-ma-xs">
2022-11-23 10:27:36 +01:00
<q-btn
v-if="myvalue"
type="a"
rounded
size="md"
:class="{ disabled: disable }"
color="white"
text-color="blue"
:icon="col.icon ? col.icon : `fas fa-globe`"
:href="tools.getlinkstd(myvalue)"
:label="tools.firstchars(myvalue, 40)"
target="_blank"
>
</q-btn>
</div>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.username_chip">
<div class="q-ma-xs">
2022-09-12 18:36:54 +02:00
<span v-if="col.extrafield">
<span class="extrafield">{{ $t(col.extrafield) }}</span>
2022-09-12 18:36:54 +02:00
</span>
2022-11-23 10:27:36 +01:00
<q-btn
v-if="col.tipovisu === costanti.TipoVisu.LINK && myvalue"
rounded
size="md"
:class="{ disabled: disable }"
color="white"
text-color="blue"
:icon="`img:` + userStore.getImgUserByUsername(myvalue)"
:to="col.link.replace(col.name, myvalue)"
:label="myvalue"
>
</q-btn>
2022-11-23 10:27:36 +01:00
<q-avatar
v-else-if="
col.tipovisu === costanti.TipoVisu.LINKIMG && myvalue
"
size="60px"
>
<q-img
:src="userStore.getImgUserByRow(row, col)"
:alt="myvalue"
img-class="imgprofile"
height="60px"
/>
</q-avatar>
2022-11-23 10:27:36 +01:00
<q-btn
v-else-if="col.tipovisu === costanti.TipoVisu.BUTTON && myvalue"
rounded
size="sm"
color="primary"
icon="person"
:to="col.link.replace(col.name, myvalue)"
:label="myvalue"
>
</q-btn>
</div>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="
col.fieldtype === costanti.FieldType.string ||
col.fieldtype === costanti.FieldType.crypted
"
>
<div v-if="isInModif" :class="{ flex: !isInModif }">
2021-12-03 22:47:53 +01:00
<q-input
2022-01-03 21:53:41 +01:00
v-bind="$attrs"
2021-12-03 22:47:53 +01:00
v-model="myvalue"
2022-02-04 23:48:53 +01:00
:autogrow="col.fieldtype !== costanti.FieldType.crypted"
2022-01-23 23:25:19 +01:00
:style="$q.screen.lt.sm ? 'min-width: 300px' : ''"
counter
2022-01-23 23:25:19 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2022-01-03 21:53:41 +01:00
:disable="disable"
2022-01-05 19:11:47 +01:00
:readonly="disable"
2022-11-23 10:27:36 +01:00
:type="
col.fieldtype === costanti.FieldType.crypted
? `password`
: `text`
"
2021-12-03 22:47:53 +01:00
@keyup.enter.stop
@update:model-value="changevalRec"
autofocus
:label="col.visulabel ? $t(col.label_trans) : col.label"
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="col.tipovisu === costanti.TipoVisu.TESTO_BORDATO"
:class="{ flex: !isInModif }"
>
<CLabel
v-bind="$attrs"
:value="myvalue"
:label="$t(col.label_trans)"
/>
</div>
2021-12-03 22:47:53 +01:00
<div v-else>
2022-11-23 10:27:36 +01:00
<q-btn
v-if="col.tipovisu === costanti.TipoVisu.LINK && myvalue"
type="a"
rounded
size="md"
:class="{ disabled: disable }"
color="white"
text-color="blue"
:icon="`img:` + userStore.getImgUserByUsername(myvalue)"
:to="col.link.replace(col.name, myvalue)"
:label="myvalue"
2022-01-26 01:31:07 +01:00
>
2022-01-03 21:53:41 +01:00
</q-btn>
2022-11-23 10:27:36 +01:00
<q-avatar
v-else-if="
col.tipovisu === costanti.TipoVisu.LINKIMG && myvalue
"
size="60px"
>
<q-img
:src="userStore.getImgUserByRow(row, col)"
:alt="myvalue"
img-class="imgprofile"
height="60px"
/>
</q-avatar>
2022-11-23 10:27:36 +01:00
<q-btn
v-else-if="col.tipovisu === costanti.TipoVisu.BUTTON && myvalue"
rounded
size="sm"
color="primary"
icon="person"
:to="col.link.replace(col.name, myvalue)"
:label="myvalue"
>
2022-01-03 21:53:41 +01:00
</q-btn>
2022-11-23 10:27:36 +01:00
<span
v-else
:class="{ disabled: disable }"
v-html="visuValByType(myvalue, col, row)"
></span>
2021-12-03 22:47:53 +01:00
</div>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="
col.fieldtype === costanti.FieldType.number ||
col.fieldtype === costanti.FieldType.currency
"
>
2021-12-03 22:47:53 +01:00
<div v-if="canEdit || isInModif">
<q-input
2022-01-03 21:53:41 +01:00
v-bind="$attrs"
debounce="1000"
2021-12-03 22:47:53 +01:00
v-model="myvalue"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2021-12-03 22:47:53 +01:00
@update:model-value="Savedb"
2022-11-23 10:27:36 +01:00
:label="
col.visulabel
? $t(col.label_trans)
2022-11-23 10:27:36 +01:00
: visulabel
? $t(col.label_trans)
2022-11-23 10:27:36 +01:00
: ''
"
2021-12-03 22:47:53 +01:00
type="number"
2022-11-23 10:27:36 +01:00
autofocus
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
2022-09-12 18:36:54 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.currency">
<CCurrencyValue
:symbol="tools.getSymbolByCircuit(row)"
:color="tools.getColorByCircuit(row)"
:value="myvalue"
:label="$t(col.label_trans)"
2022-11-23 10:27:36 +01:00
>
2022-09-12 18:36:54 +02:00
</CCurrencyValue>
</div>
2021-12-03 22:47:53 +01:00
<div v-else>
<span v-html="visuValByType(myvalue, col, row)"></span>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.hours">
<div v-if="isFieldDb()">
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
2021-12-03 22:47:53 +01:00
label="Ore"
v-model:value="myvalue"
@update:value="changevalRec"
2022-11-23 10:27:36 +01:00
optval="_id"
optlab="label"
:useinput="false"
:col="col"
:row="row"
2022-11-23 10:27:36 +01:00
:options="tools.SelectHours"
>
</CMySelect>
2021-09-16 21:08:02 +02:00
</div>
<div v-else>
<q-input
2022-11-23 10:27:36 +01:00
v-model="myvalue"
type="number"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2021-12-03 22:47:53 +01:00
@update:value="changevalRec"
2022-11-23 10:27:36 +01:00
autofocus
>
</q-input>
2021-09-16 21:08:02 +02:00
</div>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="col.fieldtype === costanti.FieldType.listimages"
style="text-align: center"
>
2021-12-03 22:47:53 +01:00
<CGallery
2022-11-23 10:27:36 +01:00
:imagebak="
col.showpicprofile_ifnotset
? userStore.getImgByProfile(row, true) === ''
? costanti.NESSUN_IMMAGINE
: userStore.getImgByProfile(row, true)
: ''
"
2022-11-18 18:54:30 +01:00
:title="tools.getTitleGall(table)"
2022-11-17 08:10:43 +01:00
:directory="tools.getDirectoryGall(myrow, table, path)"
2021-12-11 22:12:44 +01:00
:imgGall="myvalue"
:isInModif="isInModif"
2022-01-26 01:31:07 +01:00
:edit="isviewfield() && isInModif"
:canModify="canModify && isInModif"
2022-11-23 10:27:36 +01:00
@showandsave="Savedb"
>
2021-12-03 22:47:53 +01:00
</CGallery>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="col.fieldtype === costanti.FieldType.listobj"
style="text-align: center"
>
2022-05-05 23:56:23 +02:00
<CAccomodation
:mylist="myvalue"
:isInModif="isInModif"
:edit="isviewfield() && isInModif"
:canModify="canModify && isInModif"
2022-11-23 10:27:36 +01:00
@showandsave="Savedb"
>
2022-05-05 23:56:23 +02:00
</CAccomodation>
</div>
2021-12-03 22:47:53 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.image">
<div v-if="canEdit">
{{ $t('reg.photo') }}
<CGallery
2022-11-23 10:27:36 +01:00
:imagebak="
col.showpicprofile_ifnotset
? userStore.getImgByProfile(row['profile'], true)
: ''
"
2022-11-18 18:54:30 +01:00
:title="tools.getTitleGall(table)"
:directory="tools.getDirectoryGall(myrow, table, path)"
2021-12-03 22:47:53 +01:00
:imgGall="[{ imagefile: myvalue }]"
:edit="isviewfield()"
2021-12-11 22:12:44 +01:00
:canModify="canModify"
:isInModif="isInModif"
2022-11-17 08:10:43 +01:00
:single="true"
2021-12-03 22:47:53 +01:00
@update:imgGall="changevalRec"
2022-11-23 10:27:36 +01:00
@showandsave="Savedb"
>
2021-12-03 22:47:53 +01:00
</CGallery>
</div>
<div v-else>
<div v-if="myvalue" class="text-center">
<q-img
:src="myvalue"
class="text-center"
2022-11-23 10:27:36 +01:00
style="height: 100px; width: 100px"
alt="foto"
>
2021-12-03 22:47:53 +01:00
</q-img>
</div>
<div v-else class="text-center">
<q-img
2022-11-23 10:27:36 +01:00
:src="
col.showpicprofile_ifnotset
? userStore.getImgByProfile(row['profile'], true)
: 'images/noimg-user.svg'
"
2021-12-03 22:47:53 +01:00
class="text-center"
2022-11-23 10:27:36 +01:00
style="height: 100px; width: 100px"
alt="nessuna immagine"
>
2021-12-03 22:47:53 +01:00
</q-img>
</div>
<q-btn
v-if="myvalue"
label="Rimuovi Foto"
2022-11-23 10:27:36 +01:00
color="blue"
icon="fas fa-trash-alt"
size="sm"
@click="removephoto"
></q-btn>
2021-12-03 22:47:53 +01:00
</div>
</div>
2022-11-17 08:10:43 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.imgcard">
<div v-if="canEdit">
{{ $t('reg.photo') }}
<CSelectImage
v-bind="$attrs"
2022-11-23 10:27:36 +01:00
:imagebak="
col.showpicprofile_ifnotset
? userStore.getImgByProfile(row['profile'], true)
: ''
"
2022-11-18 18:54:30 +01:00
:title="tools.getTitleGall(table)"
:directory="tools.getDirectoryGall(myrow, table, path)"
2022-11-17 08:10:43 +01:00
:imgGall="[myvalue]"
:edit="isviewfield()"
:canModify="canModify"
:isInModif="isInModif"
@update:imgGall="changevalRec"
2022-11-23 10:27:36 +01:00
@showandsave="Savedb"
>
2022-11-17 08:10:43 +01:00
</CSelectImage>
</div>
<div v-else>
<div v-if="myvalue" class="text-center">
<q-img
:src="myvalue"
class="text-center"
2022-11-23 10:27:36 +01:00
style="height: 100px; width: 100px"
alt="foto"
>
2022-11-17 08:10:43 +01:00
</q-img>
</div>
<div v-else class="text-center">
<q-img
2022-11-23 10:27:36 +01:00
:src="
col.showpicprofile_ifnotset
? userStore.getImgByProfile(row['profile'], true)
: 'images/noimg-user.svg'
"
2022-11-17 08:10:43 +01:00
class="text-center"
2022-11-23 10:27:36 +01:00
style="height: 100px; width: 100px"
alt="nessuna immagine"
>
2022-11-17 08:10:43 +01:00
</q-img>
</div>
<q-btn
v-if="myvalue"
label="Rimuovi Foto"
2022-11-23 10:27:36 +01:00
color="blue"
icon="fas fa-trash-alt"
size="sm"
@click="removephoto"
></q-btn>
2022-11-17 08:10:43 +01:00
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.nationality">
2022-11-23 10:27:36 +01:00
<div
v-if="isInModif"
class="justify-center q-gutter-sm clgutter q-mt-sm"
>
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
v-model:value="myvalue"
2021-12-03 22:47:53 +01:00
@update:value="changevalRec"
:tablesel="tablesel"
:pickup="pickup"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:useinput="false"
>
</CMySelect>
</div>
2021-12-03 22:47:53 +01:00
<div v-else>
<span v-html="visuValByType(myvalue, col, row)"></span>
2021-12-03 22:47:53 +01:00
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.intcode">
2022-11-23 10:27:36 +01:00
<div
v-if="isInModif"
class="justify-center q-gutter-sm clgutter q-mt-sm"
>
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
v-model:value="myvalue"
@update:value="changevalRec"
:tablesel="tablesel"
:pickup="pickup"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:useinput="false"
>
</CMySelect>
2021-12-03 22:47:53 +01:00
</div>
<div v-else>
<span v-html="visuValByType(myvalue, col, row)"></span>
2021-12-03 22:47:53 +01:00
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.date">
<div v-if="myvalue">
<CDateTime
:label="col.label ? col.label : (col.label_trans ? $t(col.label_trans) : '')"
class="cursor-pointer"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
2022-11-23 10:27:36 +01:00
@show="OpenEdit"
>
</CDateTime>
</div>
<div v-else-if="canEdit">
<q-btn
dense
2022-11-23 10:27:36 +01:00
color="primary"
@click="OpenEditDateToday"
icon="fas fa-calendar-day"
/>
</div>
2021-12-03 22:47:53 +01:00
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.onlydate">
<CDateTime
:label="col.label ? col.label : $t(col.label_trans)"
2021-12-03 22:47:53 +01:00
class="cursor-pointer"
:valueDate="myvalue"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
@show="OpenEdit"
2022-11-23 10:27:36 +01:00
view="date"
>
2021-12-03 22:47:53 +01:00
</CDateTime>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.binary">
<div v-if="isInModif">
<span v-if="insertMode">
{{ col.label ? col.label : $t(col.label_trans) }}:
</span>
2021-12-03 22:47:53 +01:00
<CMyToggleList
:label="col.titlepopupedit ? col.titlepopupedit : ''"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
2021-12-03 22:47:53 +01:00
v-model:value="myvalue"
@update:value="changevalRec"
:optval="fieldsTable.getKeyByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:optlab="fieldsTable.getLabelByTable(col.jointable)"
>
2021-12-03 22:47:53 +01:00
</CMyToggleList>
</div>
<div v-else>
<CMyChipList
:rec="row"
2021-12-03 22:47:53 +01:00
:type="costanti.FieldType.binary"
:value="myvalue"
@update:value="changevalRec"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
2021-12-03 22:47:53 +01:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:opticon="fieldsTable.getIconByTable(col.jointable)"
></CMyChipList>
2021-12-03 22:47:53 +01:00
</div>
</div>
2021-12-03 22:47:53 +01:00
<!-- Show Value -->
<div v-else-if="col.fieldtype === costanti.FieldType.multiselect">
2021-12-03 22:47:53 +01:00
<div v-if="isInModif">
2022-01-23 23:25:19 +01:00
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
2022-01-23 23:25:19 +01:00
:multiple="true"
:withToggle="true"
:label="col.label ? col.label : $t(col.label_trans)"
2022-01-26 01:31:07 +01:00
:filter_table="col.filter_table"
:filter_field="col.filter_field"
:value_extra="value_extra"
2022-01-23 23:25:19 +01:00
v-model:arrvalue="myvalue"
@update:arrvalue="changevalRec"
:addall="false"
:addnone="false"
2022-01-23 23:25:19 +01:00
label-color="primary"
class="combowidth"
color="primary"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
2022-01-23 23:25:19 +01:00
:sola_lettura="!isInModif"
:useinput="col.allowNewValue"
2022-11-23 10:27:36 +01:00
:newvaluefunc="addNewValue"
>
2022-01-23 23:25:19 +01:00
</CMySelect>
<!--<q-select
2021-12-03 22:47:53 +01:00
v-model="myvalue"
rounded
outlined
multiple
dense
options-dense
:display-value="fieldsTable.getTitleByTable(col.jointable)"
emit-value
map-options
:options="globalStore.getTableJoinByName(col.jointable, col.addall, col.addnone, col.filter)"
2021-12-31 01:44:16 +01:00
class="combowidth"
2021-12-03 22:47:53 +01:00
:option-value="fieldsTable.getKeyByTable(col.jointable)"
@update:model-value="changevalRec">
<template v-slot:option="{ itemProps, opt, selected, toggleOption }">
<q-item v-bind="itemProps">
<q-item-section>
<q-item-label>{{ opt[fieldsTable.getLabelByTable(col.jointable)] }}</q-item-label>
</q-item-section>
<q-item-section side>
<q-toggle :model-value="selected" @update:model-value="toggleOption(opt)"/>
2021-12-03 22:47:53 +01:00
</q-item-section>
</q-item>
</template>
2022-01-23 23:25:19 +01:00
</q-select>-->
2021-12-03 22:47:53 +01:00
</div>
<div v-else>
<CMyChipList
:rec="row"
2021-12-03 22:47:53 +01:00
:type="col.fieldtype"
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
2021-12-03 22:47:53 +01:00
@update:value="changevalRec"
:value="myvalue"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
2021-12-03 22:47:53 +01:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:opticon="fieldsTable.getIconByTable(col.jointable)"
></CMyChipList>
2021-12-03 22:47:53 +01:00
</div>
</div>
2022-11-23 10:27:36 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.color">
<div v-if="myvalue" :style="`color: text-${myvalue};`">
{{ myvalue }}
</div>
<div v-else> (Scegli) </div>
</div>
<div
2022-11-23 10:27:36 +01:00
v-else-if="
col.fieldtype === costanti.FieldType.select ||
col.fieldtype === costanti.FieldType.select_by_server
"
>
2021-12-03 22:47:53 +01:00
<div v-if="isInModif">
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
2021-12-03 22:47:53 +01:00
v-model:value="myvalue"
:pickup="col.fieldtype === costanti.FieldType.select_by_server"
2022-11-23 10:27:36 +01:00
:tablesel="
col.fieldtype === costanti.FieldType.select_by_server
? tablesel
: ''
"
2021-12-03 22:47:53 +01:00
@update:value="changevalRec"
@update:model-value="Savedb"
:newvaluefunc="addNewValue"
2022-01-26 01:31:07 +01:00
:filter_table="col.filter_table"
:addnone="col.addnone"
2022-01-26 01:31:07 +01:00
:filter_field="col.filter_field"
:value_extra="value_extra"
2021-12-03 22:47:53 +01:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:useinput="col.allowNewValue"
>
2021-12-03 22:47:53 +01:00
</CMySelect>
</div>
<div v-else>
<!--
rec: {{rec}}
row: {{row}}
col.jointable {{col.jointable}}
myvalue {{myvalue}}
opt: {{globalStore.getTableJoinByName(col.jointable, col.addall, col.addnone, col.filter)}}
val: {{fieldsTable.getKeyByTable(col.jointable)}}
lab: {{fieldsTable.getLabelByTable(col.jointable)}}-->
2021-12-03 22:47:53 +01:00
<CMyChipList
:rec="row"
2021-12-03 22:47:53 +01:00
myclass="text-center"
:type="col.fieldtype"
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
2021-12-03 22:47:53 +01:00
@update:value="changevalRec"
v-model:value="myvalue"
2022-11-23 10:27:36 +01:00
:labelifblank="canEdit ? 'Selezionare' : ''"
:filter_table="col.filter_table"
:filter_field="col.filter_field"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
2021-12-03 22:47:53 +01:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:opticon="fieldsTable.getIconByTable(col.jointable)"
></CMyChipList>
2021-12-03 22:47:53 +01:00
</div>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="
col.fieldtype === costanti.FieldType.multiselect_by_server
"
>
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:multiselect_by_server="true"
:label="col.label ? col.label : $t(col.label_trans)"
v-model:arrvalue="myvalue"
@update:arrvalue="changevalRec"
2022-01-20 01:17:21 +01:00
:addall="false"
:addnone="false"
2022-01-20 01:17:21 +01:00
:tablesel="col.tablesel"
:pickup="true"
2022-01-26 01:31:07 +01:00
:filter_table="col.filter_table"
:filter_field="col.filter_field"
:value_extra="value_extra"
label-color="primary"
class="combowidth"
color="primary"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:sola_lettura="!isInModif"
2022-11-23 10:27:36 +01:00
:useinput="isInModif"
>
</CMySelect>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="
col.fieldtype === costanti.FieldType.star5 ||
col.fieldtype === costanti.FieldType.star3
"
>
2021-12-03 22:47:53 +01:00
<div v-if="isInModif">
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
2021-12-03 22:47:53 +01:00
v-model:value="myvalue"
@update:value="changevalRec"
2022-01-26 01:31:07 +01:00
:filter_table="col.filter_table"
:filter_field="col.filter_field"
:value_extra="value_extra"
2021-12-03 22:47:53 +01:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:useinput="false"
>
2021-12-03 22:47:53 +01:00
</CMySelect>
</div>
<div v-else>
<q-rating
:model-value="`${myvalue}` - 1"
@update:model-value="changevalRec"
size="1.5rem"
:color="tools.getColByLevel(myvalue)"
icon="star_border"
icon-selected="star"
:max="col.fieldtype === costanti.FieldType.star5 ? 5 : 3"
2021-12-03 22:47:53 +01:00
:readonly="true"
/>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.html">
<div v-if="isInModif">
<q-bar v-if="isInModif" dense class="bg-primary text-white">
<span v-if="col.label_trans">{{ $t(col.label_trans) }}</span
2022-11-23 10:27:36 +01:00
><span v-else> {{ $t('event.testo_di_spiegazione') }}: </span>
<q-space />
</q-bar>
2021-12-03 22:47:53 +01:00
<div v-if="!isFieldDb()">
<CMyEditor
2022-11-23 10:27:36 +01:00
v-model:value="myvalue"
:title="!isInModif ? getTitleEditor(col, row) : ''"
@keyup.enter.stop
2021-12-03 22:47:53 +01:00
:showButtons="false"
2021-12-11 22:12:44 +01:00
:canModify="canModify"
2021-12-03 22:47:53 +01:00
@update:value="changevalRec"
2022-11-23 10:27:36 +01:00
@showandsave="Savedb"
>
2021-12-03 22:47:53 +01:00
</CMyEditor>
</div>
</div>
<div v-else>
2022-01-26 01:31:07 +01:00
<div class="row justify-evenly">
<q-btn
v-if="myvalue"
class="q-mx-md"
2022-11-23 10:27:36 +01:00
icon="fas fa-info"
color="primary"
text-color="white"
2022-01-26 01:31:07 +01:00
round
2022-11-23 10:27:36 +01:00
@click="visuhtml = true"
>
2022-01-26 01:31:07 +01:00
</q-btn>
<q-btn
v-if="myvalue && col.field_extra1"
2022-11-23 10:27:36 +01:00
icon="far fa-file-alt"
:label="col.titlepopupedit"
color="primary"
text-color="white"
:to="tools.getToByCol(col)"
2022-01-26 01:31:07 +01:00
>
</q-btn>
</div>
2022-11-23 10:27:36 +01:00
<div
v-html="visuValByType(myvalue, col, row)"
@click="visueditor = true"
></div>
2022-01-03 21:53:41 +01:00
2021-12-03 22:47:53 +01:00
<div v-if="!isFieldDb()">
2022-01-23 23:25:19 +01:00
<q-dialog v-model="visuhtml" full-height full-width>
2022-01-03 21:53:41 +01:00
<q-card>
<q-bar dense class="bg-primary text-white">
2022-01-26 01:31:07 +01:00
<span> {{ getTitleEditor(col, row) }} </span>
2022-11-23 10:27:36 +01:00
<q-space />
<q-btn
flat
round
color="white"
icon="close"
v-close-popup
></q-btn>
2022-01-03 21:53:41 +01:00
</q-bar>
<q-card-section class="inset-shadow">
<q-card class="dialog_card">
<div v-html="myvalue" class="wrap_anywhere"></div>
</q-card>
</q-card-section>
</q-card>
</q-dialog>
2022-11-23 10:27:36 +01:00
<q-dialog
v-model="visueditor"
no-backdrop-dismiss
persistent
full-height
full-width
>
2022-01-03 21:53:41 +01:00
<q-card class="dialog_card">
2021-12-03 22:47:53 +01:00
<q-card-section>
<CMyEditor
2022-11-23 10:27:36 +01:00
v-if="visueditor"
v-model:value="myvalue"
:title="col.title"
@keyup.enter.stop
2021-12-11 22:12:44 +01:00
:canModify="canModify"
2022-11-23 10:27:36 +01:00
@showandsave="Savedb"
@annulla="visueditor = false"
>
2021-12-03 22:47:53 +01:00
</CMyEditor>
</q-card-section>
</q-card>
</q-dialog>
</div>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.password">
<div v-if="isInModif">
<q-input
v-model="myvalue"
@update:model-value="changevalRec"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2021-12-03 22:47:53 +01:00
type="password"
@keyup.enter="scope.set"
2022-11-23 10:27:36 +01:00
autofocus
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
<div v-else>
<span v-html="visuValByType(myvalue, col, row)"></span>
</div>
</div>
<div v-else>
<span v-html="visuValByType(myvalue, col, row)"></span>
</div>
2022-11-17 08:10:43 +01:00
2021-12-03 22:47:53 +01:00
<q-popup-edit
2022-11-23 10:27:36 +01:00
v-if="!isInModif && canEdit && noPopupeditByCol(col)"
v-model="myvalue"
2022-01-05 19:11:47 +01:00
:disable="col.disable || disable"
:readonly="col.disable || disable"
2021-12-03 22:47:53 +01:00
:title="col.title ? col.title : col.titlepopupedit"
buttons
persistent
@save="SaveValueInt"
@show="OpenEdit"
2022-11-23 10:27:36 +01:00
v-slot="scope"
>
2021-12-03 22:47:53 +01:00
<div v-if="col.fieldtype === costanti.FieldType.boolean">
2022-11-23 10:27:36 +01:00
<q-checkbox
v-model="scope.value"
:label="col.title ? col.title : col.titlepopupedit"
>
2021-12-03 22:47:53 +01:00
</q-checkbox>
<span v-html="visuValByType(myvalue, col, row)"></span>
</div>
<div
2022-11-23 10:27:36 +01:00
v-else-if="
col.fieldtype === costanti.FieldType.string ||
col.fieldtype === costanti.FieldType.crypted
"
>
2021-12-03 22:47:53 +01:00
<q-input
2022-01-03 21:53:41 +01:00
v-bind="$attrs"
counter
2022-11-23 10:27:36 +01:00
:type="
col.fieldtype === costanti.FieldType.crypted
? 'password'
: 'text'
"
2022-01-23 23:25:19 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2022-07-10 01:24:54 +02:00
:minlength="col.minlength ? col.minlength : undefined"
2021-12-03 22:47:53 +01:00
v-model="scope.value"
:label="col.visulabel ? $t(col.label_trans) : ''"
2022-02-04 23:48:53 +01:00
:autogrow="col.fieldtype !== costanti.FieldType.crypted"
2021-12-03 22:47:53 +01:00
@keyup.enter.stop
2022-11-23 10:27:36 +01:00
autofocus
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.number">
<div v-if="visulabel">
<q-input
2022-11-23 10:27:36 +01:00
v-model="scope.value"
type="number"
debounce="1000"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2021-12-03 22:47:53 +01:00
autofocus
2022-11-23 10:27:36 +01:00
:label="
col.visulabel
? $t(col.label_trans)
2022-11-23 10:27:36 +01:00
: visulabel
? col.label
: ''
"
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
<div v-else>
<span v-html="visuValByType(myvalue, col, row)"></span>
</div>
</div>
2022-09-12 18:36:54 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.currency">
<CCurrencyValue
:symbol="tools.getSymbolByCircuit(row)"
:color="tools.getColorByCircuit(row)"
:value="scope.value"
:label="$t(col.label_trans)"
2022-11-23 10:27:36 +01:00
>
2022-09-12 18:36:54 +02:00
</CCurrencyValue>
</div>
2021-12-03 22:47:53 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.hours">
<div v-if="visulabel">
<q-input
2022-11-23 10:27:36 +01:00
v-model="myvalue"
type="number"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2021-12-03 22:47:53 +01:00
autofocus
@update:model-value="changevalRec"
2022-11-23 10:27:36 +01:00
style="max-width: 100px"
:label="col.label ? col.label : $t(col.label_trans)"
2022-11-23 10:27:36 +01:00
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
<div v-if="isFieldDb()">
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
2022-11-23 10:27:36 +01:00
label="Ore"
v-model:value="myvalue"
optval="value"
optlab="label"
2021-12-03 22:47:53 +01:00
:dense="false"
:use-input="false"
@changeval="changevalRecHours"
2022-11-23 10:27:36 +01:00
style="max-width: 100px"
:options="tools.SelectHours"
>
2021-12-03 22:47:53 +01:00
</CMySelect>
</div>
<div v-else>
<q-input
2022-11-23 10:27:36 +01:00
v-model="scope.value"
type="number"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2022-11-23 10:27:36 +01:00
autofocus
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
</div>
<div
2022-11-23 10:27:36 +01:00
v-else-if="
col.fieldtype === costanti.FieldType.select ||
col.fieldtype === costanti.FieldType.select_by_server
"
>
2021-12-03 22:47:53 +01:00
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
2021-12-03 22:47:53 +01:00
v-model:value="scope.value"
:pickup="col.fieldtype === costanti.FieldType.select_by_server"
:addnone="col.addnone"
2022-11-23 10:27:36 +01:00
:tablesel="
col.fieldtype === costanti.FieldType.select_by_server
? tablesel
: ''
"
2022-01-26 01:31:07 +01:00
:filter_table="col.filter_table"
:filter_field="col.filter_field"
:value_extra="value_extra"
:newvaluefunc="addNewValue"
2021-12-03 22:47:53 +01:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:useinput="col.allowNewValue"
>
2021-12-03 22:47:53 +01:00
</CMySelect>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="
col.fieldtype === costanti.FieldType.multiselect_by_server
"
>
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:multiselect_by_server="true"
:label="col.label ? col.label : $t(col.label_trans)"
v-model:arrvalue="scope.value"
@update:arrvalue="changevalRec"
:addall="false"
:addnone="false"
:tablesel="tablesel"
2022-01-26 01:31:07 +01:00
:filter_table="col.filter_table"
:filter_field="col.filter_field"
:value_extra="value_extra"
:pickup="true"
label-color="primary"
class="combowidth"
color="primary"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:useinput="true"
>
</CMySelect>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.multiselect">
<q-select
v-model="scope.value"
rounded
outlined
multiple
dense
options-dense
:display-value="fieldsTable.getTitleByTable(col.jointable)"
emit-value
map-options
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
class="combowidth"
:useinput="col.allowNewValue"
:newvaluefunc="addNewValue"
:option-value="fieldsTable.getKeyByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
@update:model-value="changeval"
>
<template
v-slot:option="{ itemProps, opt, selected, toggleOption }"
>
<q-item v-bind="itemProps">
<q-item-section>
2022-11-23 10:27:36 +01:00
<q-item-label>{{
opt[fieldsTable.getLabelByTable(col.jointable)]
}}</q-item-label>
</q-item-section>
<q-item-section side>
2022-11-23 10:27:36 +01:00
<q-toggle
:model-value="selected"
@update:model-value="toggleOption(opt)"
/>
</q-item-section>
</q-item>
</template>
</q-select>
</div>
2021-12-03 22:47:53 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.nationality">
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
v-model:value="scope.value"
@update:value="changevalRec"
:tablesel="tablesel"
2022-01-26 01:31:07 +01:00
:filter_table="col.filter_table"
:filter_field="col.filter_field"
:value_extra="value_extra"
:pickup="pickup"
:optval="fieldsTable.getKeyByTable(tablesel)"
:optlab="fieldsTable.getLabelByTable(tablesel)"
:options="[]"
2022-11-23 10:27:36 +01:00
:useinput="false"
>
</CMySelect>
2021-12-03 22:47:53 +01:00
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.intcode">
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
v-model:value="scope.value"
@update:value="changevalRec"
:tablesel="tablesel"
:pickup="pickup"
:optval="fieldsTable.getKeyByTable(tablesel)"
:optlab="fieldsTable.getLabelByTable(tablesel)"
:options="[]"
2022-11-23 10:27:36 +01:00
:useinput="false"
>
</CMySelect>
</div>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.date">
<CDateTime
:label="col.label ? col.label : (col.label_trans ? $t(col.label_trans) : '')"
class="cursor-pointer"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
2022-11-23 10:27:36 +01:00
@show="OpenEdit"
>
</CDateTime>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.onlydate">
<CDateTime
:label="col.label ? col.label : $t(col.label_trans)"
class="cursor-pointer"
:valueDate="myvalue"
v-model:value="myvalue"
:readonly="false"
:minuteinterval="minuteinterval"
:dense="true"
:canEdit="canEdit"
@savetoclose="SaveValueInt"
@show="OpenEdit"
2022-11-23 10:27:36 +01:00
view="date"
>
</CDateTime>
</div>
2021-12-03 22:47:53 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.binary">
<CMyToggleList
:label="col.titlepopupedit ? col.titlepopupedit : ''"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
2021-12-03 22:47:53 +01:00
v-model:value="scope.value"
:optval="fieldsTable.getKeyByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:optlab="fieldsTable.getLabelByTable(col.jointable)"
>
2021-12-03 22:47:53 +01:00
</CMyToggleList>
</div>
2022-11-23 10:27:36 +01:00
<div
v-else-if="
col.fieldtype === costanti.FieldType.star5 ||
col.fieldtype === costanti.FieldType.star3
"
>
2021-12-03 22:47:53 +01:00
<CMySelect
2022-02-04 23:48:53 +01:00
:type_out="col.field_outtype"
:col="col"
:row="row"
:label="col.label ? col.label : $t(col.label_trans)"
2021-12-03 22:47:53 +01:00
v-model:value="scope.value"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2022-11-23 10:27:36 +01:00
:options="
globalStore.getTableJoinByName(
col.jointable,
col.addall,
col.addnone,
col.filter
)
"
:useinput="false"
>
2021-12-03 22:47:53 +01:00
</CMySelect>
</div>
<div v-else-if="col.fieldtype === costanti.FieldType.password">
<q-input
v-model="scope.value"
2022-02-21 18:14:38 +01:00
:maxlength="col.maxlength ? col.maxlength : undefined"
2022-07-10 01:24:54 +02:00
:minlength="col.minlength ? col.minlength : undefined"
2021-12-03 22:47:53 +01:00
type="password"
@keyup.enter="scope.set"
2022-11-23 10:27:36 +01:00
autofocus
>
2021-12-03 22:47:53 +01:00
</q-input>
</div>
2022-02-03 00:33:05 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.html">
<div v-if="!isFieldDb()">
<CMyEditor
2022-11-23 10:27:36 +01:00
v-model:value="myvalue"
:title="!isInModif ? getTitleEditor(col, row) : ''"
@keyup.enter.stop
2022-02-03 00:33:05 +01:00
:showButtons="false"
:canModify="canModify"
@update:value="changevalRec"
2022-11-23 10:27:36 +01:00
@showandsave="Savedb"
>
2022-02-03 00:33:05 +01:00
</CMyEditor>
</div>
</div>
2022-11-23 10:27:36 +01:00
<div v-else-if="col.fieldtype === costanti.FieldType.color">
<q-select
rounded
style="min-width: 150px"
outlined
v-model="scope.value"
:options="shared_consts.LISTBESTCOLORS"
@update:model-value="changevalRec"
dense
label="Colore:"
emit-value
map-options
>
</q-select>
</div>
</q-popup-edit>
2021-09-16 21:08:02 +02:00
</div>
</div>
</div>
</div>
</template>
<script lang="ts" src="./CMyPopupEdit.ts">
</script>
<style lang="scss" scoped>
@import './CMyPopupEdit.scss';
</style>