Files
salvato.newfreeplanet/src/components/CGridTableUser/CGridTableUser.vue
Surya Paolo a46b988440 - ok
2024-11-02 19:25:47 +01:00

449 lines
14 KiB
Vue
Executable File

<template>
<div v-if="tools.isDebugOn()"></div>
<div :class="$q.screen.lt.sm ? `` : `q-pa-xs`" v-if="isfinishLoading">
<q-infinite-scroll
ref="myinfscroll"
:initial-index="0"
@load="onLoadScroll"
:offset="350"
debounce="300"
>
<div v-if="showHeaderCol">
<div
v-for="col in mycolumns"
:key="col.name"
class="text-italic text-weight-bold"
>
<span
v-if="col && showColCheck(col, tools.TIPOVIS_SHOW_RECORD, true)"
>
{{ col.label }}
</span>
</div>
</div>
<div v-for="(row, index) in serverData" :key="index">
<div
v-if="
showType === costanti.SHOW_MYCARD ||
(myvertical !== costanti.VISUTABLE_USER_TABGROUP &&
myvertical !== costanti.VISUTABLE_USER_TABCIRCUIT &&
myvertical === costanti.VISUTABLE_LISTA &&
shared_consts.TABLES_VISU_CMYSRECCARD.includes(tablesel))
"
>
<div v-if="row && shared_consts.TABLES_WITH_DATE.includes(tablesel)">
<div
v-if="
actmonth !== tools.getstrMonth(row.dateTimeStart) ||
!actmonth ||
index === 0
"
>
<span style="display: none">{{
(actmonth = tools.getstrMonth(row.dateTimeStart))
}}</span>
<div class="">
<div>
<strong>{{ tools.getstrMonth(row.dateTimeStart) }}</strong>
</div>
<div>
<q-separator />
</div>
</div>
</div>
<div
v-if="
false &&
((row.dateTimeStart &&
tools.getstrVeryShortDate(row.dateTimeStart) !== actual) ||
index === 0)
"
class="actualdate"
>
<span style="display: none">{{
(actual = tools.getstrVeryShortDate(row.dateTimeStart))
}}</span>
<q-chip
class="text-center shadow-5 glossy bg-orange"
icon="fas fa-calendar-day"
>{{ tools.getstrDateLong(row.dateTimeStart) }}</q-chip
>
</div>
</div>
<CMyRecGrpCard
v-if="tablesel === shared_consts.TABLES_MYGROUPS"
:table="tablesel"
:prop_myrec="row"
@cmdext="cmdExt"
>
</CMyRecGrpCard>
<CMyRecCard
v-else
:table="tablesel"
:prop_myrec="row"
@cmdext="cmdExt"
:editOn="editOn"
:margin_right="margin_right"
>
</CMyRecCard>
</div>
<div
v-else-if="
(showType === costanti.SHOW_USERINFO &&
myvertical !== costanti.VISUTABLE_SCHEDA_USER) ||
(myvertical === 2 &&
shared_consts.TABLES_VISU_LISTA_USER.includes(tablesel))
"
class="fill-all-width"
>
<div>
<CMyUser
:notsetcmd="true"
:mycontact="row"
:visu="visufind"
:groupname="extrafield"
:circuitname="circuitname"
:labelextra="col_title ? row[col_title] : ''"
:labelFooter="
col_footer
? tools.getLabelFooterByRow(row, col_footer, tablesel)
: ''
"
@showInnerDialog="showInnerDialog"
>
</CMyUser>
<q-separator></q-separator>
</div>
</div>
<div
v-else-if="
(showType === costanti.SHOW_GROUPINFO &&
myvertical !== costanti.VISUTABLE_SCHEDA_GROUP) ||
(myvertical === 2 && tablesel === 'mygroups') ||
myvertical === costanti.VISUTABLE_GROUP_CIRCUIT
"
class="fill-all-width"
>
<div>
<CMyGroups
v-model="filtergrp"
:circuitname="circuitname"
:finder="false"
:mygrp="row"
:visu="visufind ? visufind : costanti.FIND_GROUP"
/>
</div>
</div>
<div
v-else-if="
showType === costanti.SHOW_MOVEMENTS && tablesel === 'movements'
"
>
<div class="q-pa-xs row items-start q-gutter-xs">
<q-card class="my-card text-black">
<q-toolbar class="bg-primary text-white" style="min-height: 30px">
<q-toolbar-title>
<span class="q-ma-sm">
<q-icon
v-if="tools.isEntrataByRecMov(row)"
name="fas fa-box-tissue"
color="green"
></q-icon>
<q-icon
v-else-if="tools.isUscitaByRecMov(row)"
name="fas fa-share-square"
color="red"
></q-icon>
</span>
{{
tools.isEntrataByRecMov(row)
? t('movement.movin')
: tools.isUscitaByRecMov(row)
? t('movement.movout')
: ''
}}
</q-toolbar-title>
</q-toolbar>
<q-card-section>
<div v-for="col in mycolumns" :key="col.name">
<div
v-if="
showColCheck(col, tools.TIPOVIS_SHOW_RECORD, true, 1, row)
"
:class="
!col.extrafield ||
(col.extrafield &&
(col.tipovisu !== costanti.TipoVisu.LINK ||
(col.tipovisu === costanti.TipoVisu.LINK &&
userStore.getImgByProfile(row, true, col))))
? `tdclass`
: ``
"
>
<div :class="getclrow(row)">
<CMyPopupEdit
:table="mytable"
:canEdit="false"
:canModify="false"
:disable="false"
:mycol="col"
:row="row"
:field="col.field"
:visulabel="true"
:subfield="col.subfield"
minuteinterval="1"
@save="SaveValue"
@show="selItem(row, col)"
@showandsave="showandsave"
>
</CMyPopupEdit>
</div>
</div>
</div>
</q-card-section>
</q-card>
</div>
</div>
</div>
<template v-slot:loading>
<div v-if="!hidetitleIfEmpty" class="text-center">
<q-spinner-dots color="primary" size="40px" />
</div>
</template>
</q-infinite-scroll>
<q-page-sticky
v-if="mytable && butt_modif_new && !hidetitleIfEmpty"
position="bottom-right"
:offset="[18, 68]"
>
<q-btn
fab
glossy
class="semi-transparent"
icon="add"
color="primary"
@click="createNewRecordDialog"
/>
</q-page-sticky>
<div v-if="rowclicksel">
<CTitleBanner title="Record:"></CTitleBanner>
<div
class="q-ma-xs q-pa-xs text-center rounded-borders q-list--bordered"
v-for="mycol in mycolumns"
:key="mycol.name"
>
<div v-if="showColCheck(mycol, tools.TIPOVIS_SHOW_RECORD, false)">
<div class="row items-center justify-center q-gutter-md q-ma-xs">
<div class="q-ma-xs">
<q-field
rounded
outlined
:bg-color="$q.dark.isActive ? '' : 'orange-3'"
dense
>
<template v-slot:control>
<div class="self-center full-width no-outline" tabindex="0">
{{ mycol.label }}
</div>
</template>
</q-field>
</div>
<div
class="q-ma-sm q-pa-sm colmodif col-grow popupedit"
@click="colclicksel = mycol"
>
<CMyPopupEdit
:table="mytable"
:canEdit="true"
:canModify="
tools.canModifyThisRec(rowclicksel, tablesel) || editOn
"
:disable="disabilita()"
:isInModif="mycol.isInModif"
view="field"
:mycol="mycol"
:showall="true"
:row="rowclicksel"
:tablesel="mycol.tablesel"
:field="mycol.field"
:subfield="mycol.subfield"
@save="SaveValdb"
@show="selItem(rowclicksel, mycol)"
@showandsave="showandsave"
@annulla="annulla"
@update_col="update_col"
>
</CMyPopupEdit>
</div>
</div>
</div>
</div>
</div>
<q-dialog
v-model="newRecordBool"
@hide="hidewindow"
:maximized="$q.screen.lt.sm"
:persistent="true"
>
<q-card class="dialog_card">
<q-bar dense class="bg-primary text-white">
Aggiungi {{ mytitle }}:
<q-space />
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-bar>
<q-card-section class="inset-shadow">
<div
:class="$q.screen.lt.sm ? `` : `row` + ` text-blue `"
v-for="col in mycolumns"
:key="col.name"
>
<!--<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)">
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
</div>-->
<div
v-if="
showColCheck(
col,
tools.TIPOVIS_NEW_RECORD,
true,
0,
newRecord
) && col.foredit
"
>
<div class="">
<CMyPopupEdit
:table="mytable"
:canEdit="true"
:canModify="true"
:mycol="col"
v-model:row="newRecord"
:field="col.field"
:subfield="col.subfield"
:tablesel="col.tablesel"
:value_extra="getValueExtra(col, newRecord)"
:isInModif="true"
minuteinterval="1"
:visulabel="true"
:insertMode="true"
@save="SaveValue"
@show="selItem(newRecord, col)"
@showandsave="showandsave"
@update_col="update_col"
>
</CMyPopupEdit>
</div>
</div>
</div>
</q-card-section>
<q-card-actions align="center">
<q-btn
:label="$t('dialog.insert')"
color="primary"
@click="saveNewRecord"
></q-btn>
<q-btn
flat
:label="$t('dialog.cancel')"
color="primary"
v-close-popup
@click="annulla"
></q-btn>
</q-card-actions>
</q-card>
</q-dialog>
<q-dialog
v-model="editRecordBool"
@hide="hidewindow"
:maximized="$q.screen.lt.sm"
>
<q-card class="dialog_card">
<q-bar dense class="bg-primary text-white">
<span class="ellipsis">{{ recModif[col_title] }}</span>
<q-space />
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-bar>
<q-card-section class="inset-shadow">
<div v-for="col in mycolumns" :key="col.name">
<!--<div class="text-center q-my-xs" v-if="(col.fieldtype === costanti.FieldType.separator)">
<q-btn color="primary" size="md" dense :icon="!showfilteradv ? 'fas fa-arrow-down' : 'fas fa-arrow-up'"
label="Campi Avanzati" @click="showfilteradv = !showfilteradv"></q-btn>
</div>-->
<div
v-if="
showColCheck(col, tools.TIPOVIS_EDIT_RECORD, false) &&
col.foredit
"
class="tdclass"
>
<div>
<CMyPopupEdit
:table="mytable"
:canEdit="true"
:canModify="
tools.canModifyThisRec(recModif, tablesel) || editOn
"
:tablesel="col.tablesel"
:mycol="col"
:isInModif="true"
v-model:row="recModif"
:field="col.field"
:subfield="col.subfield"
:value_extra="getValueExtra(col, recModif)"
minuteinterval="1"
@save="SaveValue"
@show="selItem(recModif, col, true)"
@showandsave="showandsave"
@update_col="update_col"
>
</CMyPopupEdit>
</div>
</div>
</div>
</q-card-section>
<q-card-actions align="center">
<q-btn
:label="$t('dialog.ok')"
color="primary"
@click="saverecModif"
></q-btn>
<q-btn
flat
:label="$t('dialog.cancel')"
color="primary"
@click="cancelrecModif"
></q-btn>
</q-card-actions>
</q-card>
</q-dialog>
<span v-if="!hidetitleIfEmpty"> <br /></span>
</div>
<q-dialog v-model="showNotification" :maximized="$q.screen.lt.sm">
<q-card class="dialog_card">
<q-toolbar class="bg-primary text-white">
<q-toolbar-title> Notifiche </q-toolbar-title>
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
</q-toolbar>
<q-card-section class="inset-shadow">
<CNotifSettings> </CNotifSettings>
</q-card-section>
</q-card>
</q-dialog>
</template>
<script lang="ts" src="./CGridTableUser.ts">
</script>
<style lang="scss">
@import './CGridTableUser.scss';
</style>