Files
newfreeplanet_OLD/src/components/CMyFieldDb/CMyFieldDb.vue

317 lines
11 KiB
Vue
Raw Normal View History

2021-09-04 15:05:34 +02:00
<template>
<div class="text-center">
<div class="row items-center justify-center q-gutter-md q-ma-xs">
<div class="q-ma-xs">
<q-field rounded outlined bg-color="blue-1" dense style="min-width:110px;">
<template v-slot:control>
<div class="centermydiv">
<div v-if="myimg" class="text-center">
<q-img
2021-09-19 02:59:24 +02:00
:src="myimg"
class="text-center"
style="height: 50px; width: 50px;"
:alt="title">
2021-09-04 15:05:34 +02:00
</q-img>
</div>
<div class="self-center full-width no-outline text-center" tabindex="0">{{ title }}</div>
</div>
</template>
</q-field>
</div>
2021-11-04 16:02:14 +01:00
<div :class="` q-ma-sm q-pa-sm col-grow rounded-borders `" style="border: 1px solid #bbb">
<CMyPopupEdit
:title="title"
:field="mykey"
:subfield="mysubkey"
:mysubsubkey="mysubsubkey"
:indrec="indrec"
:type="type"
:serv="serv"
:disable="disable"
:jointable="jointable"
:table="table"
:myimg="myimg"
:id="id"
:idmain="idmain"
:canEdit="true"
:mycol="col"
v-model:row="row"
minuteinterval="1"
2021-11-22 18:28:45 +01:00
@showandsave="showandsel"
2021-11-04 16:02:14 +01:00
>
</CMyPopupEdit>
</div>
<!--
@save="SaveValue"
@show="selItem(props.row, col)"
@showandsave="showandsel"
2021-10-28 00:37:48 +02:00
<div :class="getclassCol(col) + ` q-ma-sm q-pa-sm col-grow rounded-borders `" style="border: 1px solid #bbb">
2021-09-19 02:59:24 +02:00
<div v-if="type === costanti.FieldType.date">
2021-09-04 15:05:34 +02:00
<CDateTime
:label="col.label"
class="cursor-pointer"
2021-09-16 21:08:02 +02:00
v-model:value="myvalue"
2021-09-04 15:05:34 +02:00
:readonly="false"
:dense="true"
:canEdit="canEdit"
>
</CDateTime>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.onlydate">
2021-09-04 15:05:34 +02:00
<CDateTime
:label="col.label"
class="cursor-pointer"
2021-09-16 21:08:02 +02:00
v-model:value="myvalue"
2021-09-04 15:05:34 +02:00
:readonly="false"
:dense="true"
:canEdit="canEdit"
view="date"
>
</CDateTime>
</div>
<div v-else :class="mycl">
2021-09-19 02:59:24 +02:00
<div v-if="type === costanti.FieldType.binary">
2021-09-04 15:05:34 +02:00
<CMyChipList
2021-09-19 02:59:24 +02:00
:type="costanti.FieldType.binary"
2021-09-04 15:05:34 +02:00
:value="myvalue"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:opticon="fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
2021-09-04 15:05:34 +02:00
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.nationality">
2021-09-04 15:05:34 +02:00
<q-input
input-class="cursor-pointer text-center"
:readonly="true"
v-model="countryname"
rounded
dense
debounce="1000"
>
<div class="hidden">
</div>
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.intcode">
2021-09-04 15:05:34 +02:00
2021-09-19 02:59:24 +02:00
<div v-html="myvalprinted()"></div>
2021-09-04 15:05:34 +02:00
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="((type === costanti.FieldType.multiselect) || (type === costanti.FieldType.multioption))">
2021-09-04 15:05:34 +02:00
<CMyChipList
:type="type"
:value="myvalue"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:opticon="fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
2021-09-04 15:05:34 +02:00
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.select">
2021-09-04 15:05:34 +02:00
<CMyChipList
myclass="text-center"
2021-09-19 02:59:24 +02:00
:type="costanti.FieldType.select"
2021-09-04 15:05:34 +02:00
:value="myvalue"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:opticon="fieldsTable.getIconByTable(col.jointable)"></CMyChipList>
2021-09-04 15:05:34 +02:00
</div>
2021-10-28 00:37:48 +02:00
<div v-else-if="type === costanti.FieldType.image">
<div v-if="myvalue" class="text-center">
<q-img
:src="myvalue"
class="text-center"
style="height: 100px; width: 100px;"
alt="foto del profilo">
</q-img>
</div>
<div v-else class="text-center">
<q-img
src="images/noimg-user.svg"
class="text-center"
style="height: 100px; width: 100px;"
alt="nessuna immagine">
</q-img>
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.html">
<div v-html="myvalprinted()">
2021-09-04 15:05:34 +02:00
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.boolean">
2021-09-16 21:08:02 +02:00
<q-toggle
2021-09-19 02:59:24 +02:00
dark color="green" v-model="myvalue" :label="col.title"
2021-10-01 03:08:43 +02:00
@update:model-value="savefieldboolean"></q-toggle>
2021-09-04 15:05:34 +02:00
</div>
<div v-else>
2021-09-19 02:59:24 +02:00
<div v-html="myvalprinted()"></div>
2021-09-04 15:05:34 +02:00
</div>
<q-popup-edit
2021-09-19 02:59:24 +02:00
v-if="(canEdit && type !== costanti.FieldType.boolean) && !disable"
2021-09-04 15:05:34 +02:00
v-model="myvalue"
:disable="col.disable"
:title="col.title"
@save="(val, initialValue) => savefield(val, initialValue, myq)"
2021-09-04 15:05:34 +02:00
buttons
v-slot="scope"
2021-10-28 00:37:48 +02:00
class="clinput"
2021-09-04 15:05:34 +02:00
>
2021-09-19 02:59:24 +02:00
<div v-if="type === costanti.FieldType.boolean">
<q-checkbox v-model="scope.value" :label="col.title">
2021-09-04 15:05:34 +02:00
</q-checkbox>
<div v-html="visuValByType(myvalue)">
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.string">
2021-09-16 21:08:02 +02:00
<q-input
2021-10-28 00:37:48 +02:00
:label="title"
v-model="scope.value"
2021-10-28 00:37:48 +02:00
:autogrow="$q.screen.gt.md"
2021-09-19 02:59:24 +02:00
@keyup.enter.stop
autofocus>
2021-09-04 15:05:34 +02:00
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.password">
2021-09-16 21:08:02 +02:00
<q-input
v-model="scope.value"
2021-09-19 02:59:24 +02:00
type="password"
@keyup.enter="scope.set"
2021-09-19 02:59:24 +02:00
autofocus>
2021-09-04 15:05:34 +02:00
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.number">
2021-09-16 21:08:02 +02:00
<q-input
v-model="scope.value" type="number"
@keyup.enter="scope.set"
2021-09-19 02:59:24 +02:00
autofocus>
2021-09-04 15:05:34 +02:00
</q-input>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.hours">
2021-09-16 21:08:02 +02:00
<CMySelect
2021-09-19 02:59:24 +02:00
label="Ore" v-model:value="myvalue"
optval="_id" optlab="label"
:useinput="false"
:options="tools.SelectHours">
2021-09-04 15:05:34 +02:00
</CMySelect>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.binary">
2021-09-16 21:08:02 +02:00
<CMyToggleList
2021-09-19 02:59:24 +02:00
:label="col.title"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
2021-09-19 02:59:24 +02:00
v-model:value="myvalue"
2021-10-01 03:08:43 +02:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)">
2021-09-04 15:05:34 +02:00
</CMyToggleList>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.html">
2021-09-16 21:08:02 +02:00
<CMyEditor v-model:value="myvalue" :title="title" @keyup.enter.stop>
2021-09-04 15:05:34 +02:00
</CMyEditor>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="type === costanti.FieldType.select">
2021-09-16 21:08:02 +02:00
<CMySelect
2021-09-19 02:59:24 +02:00
:label="col.title"
v-model:value="myvalue"
2021-10-01 03:08:43 +02:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
:options="globalStore.getTableJoinByName(col.jointable)"
2021-09-19 02:59:24 +02:00
:useinput="false">
2021-09-04 15:05:34 +02:00
</CMySelect>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.nationality">
2021-09-04 15:05:34 +02:00
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
<q-input
v-model="countryname"
:readonly="true"
rounded dense
debounce="1000"
@keyup.enter="scope.set"
2021-09-04 15:05:34 +02:00
:label="title">
<template v-slot:prepend>
<div style="font-size: 1rem;">
</div>
</template>
</q-input>
<div style="height: 180px;">
</div>
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.intcode">
2021-09-04 15:05:34 +02:00
<div class="justify-center q-gutter-sm clgutter q-mt-sm">
<div style="height: 180px;">
</div>
</div>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.multiselect">
2021-09-16 21:08:02 +02:00
<CMyToggleList
2021-09-19 02:59:24 +02:00
:label="col.title"
2021-10-01 03:08:43 +02:00
:options="globalStore.getTableJoinByName(col.jointable)"
2021-09-19 02:59:24 +02:00
v-model:value="myvalue"
2021-10-01 03:08:43 +02:00
:optval="fieldsTable.getKeyByTable(col.jointable)"
:optlab="fieldsTable.getLabelByTable(col.jointable)"
2021-09-19 02:59:24 +02:00
:isarray="true">
2021-09-04 15:05:34 +02:00
</CMyToggleList>
</div>
2021-09-19 02:59:24 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.multioption">
2021-09-04 15:05:34 +02:00
</div>
2021-10-28 00:37:48 +02:00
<div v-else-if="col.fieldtype === costanti.FieldType.image">
<q-uploader
label="Aggiungi Foto"
accept=".jpg, image/*"
:url="tools.geturlupload()+ tools.escapeslash(`profile/` + getMyUsername())"
:headers="tools.getheaders()"
:max-file-size="2000000"
auto-upload
hide-upload-btn
@uploaded="uploaded"
style="width: 208px"
></q-uploader>
</div>
2021-09-04 15:05:34 +02:00
</q-popup-edit>
</div>
</div>
2021-10-28 00:37:48 +02:00
<div>
<div v-if="type === costanti.FieldType.image">
<q-btn
v-if="myvalue"
label="Rimuovi Foto"
color="blue" icon="fas fa-trash-alt" size="sm"
@click="removephoto"></q-btn>
</div>
2021-11-04 16:02:14 +01:00
</div>-->
2021-09-04 15:05:34 +02:00
</div>
</div>
</template>
<script lang="ts" src="./CMyFieldDb.ts">
</script>
<style lang="scss" scoped>
@import './CMyFieldDb.scss';
</style>