- aggiornati gli argomenti in base a GM

This commit is contained in:
Surya Paolo
2025-02-12 18:32:10 +01:00
parent 0ad4dcff75
commit cdefb91bef
26 changed files with 230 additions and 71 deletions

View File

@@ -1103,6 +1103,12 @@ export const shared_consts = {
icon: 'fas fa-user-tie', icon: 'fas fa-user-tie',
color: 'yellow', color: 'yellow',
}, },
Grafico: {
value: 128,
label: 'dashboard.grafico',
icon: 'fas fa-paint-brush',
color: 'green',
},
}, },
MessageOptions: { MessageOptions: {

View File

@@ -64,7 +64,8 @@ export default defineComponent({
// Funzione per disegnare il codice a barre // Funzione per disegnare il codice a barre
const drawBarcode = () => { const drawBarcode = () => {
if (value.value) { try {
if (value.value && value.value.length > 2) {
JsBarcode("#C" + value.value, value.value, { JsBarcode("#C" + value.value, value.value, {
format: format.value, format: format.value,
width: widthlines.value, width: widthlines.value,
@@ -79,6 +80,9 @@ export default defineComponent({
textPosition: "bottom", textPosition: "bottom",
}); });
} }
} catch (e) {
}
} }
// Chiamato quando il componente è montato // Chiamato quando il componente è montato

View File

@@ -45,13 +45,23 @@ export default defineComponent({
heightcard: { heightcard: {
type: String, type: String,
required: false, required: false,
default: '150px', default: '400px',
}, },
widthcard: { widthcard: {
type: String, type: String,
required: false, required: false,
default: '300px', default: '300px',
}, },
heightimg: {
type: String,
required: false,
default: '150px',
},
widthimg: {
type: String,
required: false,
default: '300px',
},
}, },
components: { components: {
CMyFieldDb, CGridTableRec, CTitlePage, CMyFieldDb, CGridTableRec, CTitlePage,

View File

@@ -34,7 +34,7 @@
:prop_showMap="false" :prop_showMap="false"
:heightcarousel="heightcarousel" :heightcarousel="heightcarousel"
@clickButtBar="clickButtBar" @clickButtBar="clickButtBar"
:opt="{rowclass: true, widthcard, heightcard}" :opt="{rowclass: true, widthcard, heightcard, widthimg, heightimg}"
> >
</CGridTableRec> </CGridTableRec>
</div> </div>

View File

@@ -11,13 +11,15 @@ import { useUserStore } from '@store/UserStore'
import { CTitlePage } from '@/components/CTitlePage' import { CTitlePage } from '@/components/CTitlePage'
import { CGridTableRec } from '@/components/CGridTableRec' import { CGridTableRec } from '@/components/CGridTableRec'
import { IColGridTable, IMyBacheca, IMySkill, ISearchList, ISkill } from 'model' import { IColGridTable, IMyBacheca, IMySkill, ISearchList, ISkill, TipoVisu } from 'model'
import { shared_consts } from '@/common/shared_vuejs' import { shared_consts } from '@/common/shared_vuejs'
import { useI18n } from '@/boot/i18n' import { useI18n } from '@/boot/i18n'
import { toolsext } from '@store/Modules/toolsext' import { toolsext } from '@store/Modules/toolsext'
import { fieldsTable } from '@store/Modules/fieldsTable' import { fieldsTable } from '@store/Modules/fieldsTable'
import { useQuasar } from 'quasar' import { useQuasar } from 'quasar'
import { func } from '@src/store/Modules/fieldsTable'
export default defineComponent({ export default defineComponent({
name: 'CGridOriz', name: 'CGridOriz',
emits: ['clickButtBar'], emits: ['clickButtBar'],
@@ -46,6 +48,11 @@ export default defineComponent({
required: false, required: false,
default: true, default: true,
}, },
prop_modif: {
type: Boolean,
required: false,
default: false,
},
finder: { finder: {
type: Boolean, type: Boolean,
required: false, required: false,
@@ -75,6 +82,7 @@ export default defineComponent({
const searchList_Events = ref(<ISearchList[]>[]) const searchList_Events = ref(<ISearchList[]>[])
const searchList_Hosp = ref(<ISearchList[]>[]) const searchList_Hosp = ref(<ISearchList[]>[])
const searchList_Attivita = ref(<ISearchList[]>[]) const searchList_Attivita = ref(<ISearchList[]>[])
const searchList_Cataloghi = ref(<ISearchList[]>[])
const search = ref('') const search = ref('')
const myrecfiltertoggle = ref(tools.FILTER_ALL) const myrecfiltertoggle = ref(tools.FILTER_ALL)
@@ -84,6 +92,12 @@ export default defineComponent({
const col_footer = ref('idCity') const col_footer = ref('idCity')
const col_tabfooter = ref('mycities') const col_tabfooter = ref('mycities')
function gettablesList() {
if (props.table === 'catalogs')
return func.gettablesListByTable(props.table)
}
const strextra = ref('') const strextra = ref('')
const myoptions = ref(<any>[]) const myoptions = ref(<any>[])
@@ -181,8 +195,10 @@ export default defineComponent({
return searchList_Hosp.value return searchList_Hosp.value
else if (props.table === shared_consts.TABLES_ATTIVITAS) else if (props.table === shared_consts.TABLES_ATTIVITAS)
return searchList_Attivita.value return searchList_Attivita.value
else if (props.table === shared_consts.TABLES_CATALOG)
return searchList_Cataloghi.value
return searchList_Servizi.value return searchList_Cataloghi.value
}) })
const showType = computed(() => { const showType = computed(() => {
@@ -626,6 +642,24 @@ export default defineComponent({
] ]
searchList_Cataloghi.value = [
{
visible: true,
label: 'Regione',
table: 'regions',
key: 'idReg',
type: costanti.FieldType.select,
value: tools.getCookie(tools.COOK_SEARCH + costanti.FILTER_SEP + props.table + costanti.FILTER_SEP + 'regions', costanti.FILTER_TUTTI),
keycookie: '_hosp',
addall: true,
arrvalue: [],
filter: null,
useinput: false,
icon: 'fas fa-globe-europe'
},
]
searchList_Hosp.value = [ searchList_Hosp.value = [
{ {
visible: true, visible: true,
@@ -1135,6 +1169,7 @@ export default defineComponent({
mySortFieldsAvailable, mySortFieldsAvailable,
clickButtBar, clickButtBar,
myGridRef, myGridRef,
gettablesList,
} }
}, },
}) })

View File

@@ -21,7 +21,7 @@
:finder="finder" :finder="finder"
labelElemFind="trovati" labelElemFind="trovati"
:choose_visutype="visuType" :choose_visutype="visuType"
:butt_modif_new="false" :butt_modif_new="prop_modif"
:noresultLabel=" :noresultLabel="
t('grid.nosearchfound') + ' ' + (showMap ? t('grid.intheareamap') : '') t('grid.nosearchfound') + ' ' + (showMap ? t('grid.intheareamap') : '')
" "
@@ -35,6 +35,7 @@
:prop_showMap="showMap" :prop_showMap="showMap"
:heightcarousel="heightcarousel" :heightcarousel="heightcarousel"
@clickButtBar="clickButtBar" @clickButtBar="clickButtBar"
:tablesList="gettablesList()"
> >
</CGridTableRec> </CGridTableRec>
</div> </div>

View File

@@ -2,7 +2,7 @@
<div v-if="tools.isDebugOn()"></div> <div v-if="tools.isDebugOn()"></div>
<div :class="$q.screen.lt.sm ? `` : `q-pa-xs`" v-if="isfinishLoading"> <div :class="$q.screen.lt.sm ? `` : `q-pa-xs`" v-if="isfinishLoading">
<q-toggle <q-toggle
v-if="(tools.isManager() || tools.isEditor()) && !showMap && editOn" v-if="(tools.isManager() || tools.isEditor() || tools.isGrafico()) && !showMap && editOn"
v-model="editOn" v-model="editOn"
color="green" color="green"
icon="fas fa-pencil-alt" icon="fas fa-pencil-alt"

View File

@@ -1283,6 +1283,7 @@
:options="[ :options="[
{ label: 'Eventi', value: 'mybachecas' }, { label: 'Eventi', value: 'mybachecas' },
{ label: 'Servizi', value: 'myskills' }, { label: 'Servizi', value: 'myskills' },
{ label: 'Lista Cataloghi', value: 'catalogs' },
]" ]"
label="Tabella" label="Tabella"
emit-value emit-value
@@ -1299,6 +1300,7 @@
{ label: 'Griglia', value: costanti.VISUTABLE_LISTA }, { label: 'Griglia', value: costanti.VISUTABLE_LISTA },
{ label: 'Scheda User', value: costanti.VISUTABLE_SCHEDA_USER }, { label: 'Scheda User', value: costanti.VISUTABLE_SCHEDA_USER },
{ label: 'User Info', value: costanti.SHOW_USERINFO }, { label: 'User Info', value: costanti.SHOW_USERINFO },
{ label: 'Lista Tabelle', value: costanti.VISUTABLE_TABLELIST },
]" ]"
label="Visualizzazione" label="Visualizzazione"
emit-value emit-value
@@ -1325,6 +1327,12 @@
label="Mostra Mappa" label="Mostra Mappa"
@update:model-value="modifElem" @update:model-value="modifElem"
></q-toggle> ></q-toggle>
<q-toggle
v-model="myel.parambool4"
color="positive"
label="Bottone Modifica"
@update:model-value="modifElem"
></q-toggle>
</div> </div>
</div> </div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGLIST"> <div v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGLIST">

View File

@@ -562,6 +562,7 @@
:finder="myel.parambool2" :finder="myel.parambool2"
:showMap="myel.parambool3" :showMap="myel.parambool3"
:heightcarousel="myel.heightcarousel" :heightcarousel="myel.heightcarousel"
:prop_modif="myel.parambool4"
></CGridOriz> ></CGridOriz>
</div> </div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGLIST"> <div v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGLIST">
@@ -570,8 +571,10 @@
:prop_search="myel.parambool" :prop_search="myel.parambool"
:finder="myel.parambool2" :finder="myel.parambool2"
:heightcarousel="myel.heightcarousel" :heightcarousel="myel.heightcarousel"
:heightcard="myel.heightimg" :heightimg="myel.heightimg"
:widthcard="myel.widthimg" :widthimg="myel.widthimg"
:heightcard="myel.height"
:widthcard="myel.width"
></CCatalogList> ></CCatalogList>
</div> </div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.STATUSREG"> <div v-else-if="myel.type === shared_consts.ELEMTYPE.STATUSREG">

View File

@@ -111,6 +111,7 @@ export default defineComponent({
if (myrec.value.argomenti) { if (myrec.value.argomenti) {
for (const arg of myrec.value.argomenti!) { for (const arg of myrec.value.argomenti!) {
const recargomento: ICatProd = products.catprods!.find((catprod: ICatProd) => catprod._id === arg) const recargomento: ICatProd = products.catprods!.find((catprod: ICatProd) => catprod._id === arg)
if (recargomento)
argomentistr.value += recargomento.name + ' ' argomentistr.value += recargomento.name + ' '
} }
} }

View File

@@ -2,9 +2,8 @@
<div class="q-pa-sm row items-start q-gutter-sm"> <div class="q-pa-sm row items-start q-gutter-sm">
<q-card <q-card
v-if="myrec" v-if="myrec"
flat
bordered bordered
:style="`width: ` + opt.widthcard + `; `" :style="`width: ` + opt.widthcard + `; ` + (opt.heightcard ? `height: ` + opt.heightcard + `; ` : '')"
> >
<!--<q-skeleton <!--<q-skeleton
v-if="!myrec.foto_collana" v-if="!myrec.foto_collana"
@@ -13,9 +12,9 @@
:height="opt.heightcard" :height="opt.heightcard"
/>--> />-->
<q-img <q-img
:width="opt.widthcard" :width="opt.widthimg"
@click="apriInfo = true" @click="apriInfo = true"
:height="opt.heightcard" :height="opt.heightimg"
class="clickable-image" class="clickable-image"
fit="cover" fit="cover"
:src=" :src="
@@ -189,7 +188,7 @@
? myrec.referenti.join(', ') ? myrec.referenti.join(', ')
: '[Non Assegnato]' : '[Non Assegnato]'
" "
:label="$t('cataloglist.argomenti') + `:`" :label="$t('cataloglist.referenti') + `:`"
:color=" :color="
myrec.referenti && myrec.referenti.length > 0 myrec.referenti && myrec.referenti.length > 0
? 'text-blue' ? 'text-blue'

View File

@@ -71,7 +71,7 @@
<q-toggle :icon="'fas fa-moon'" v-model="dark"> </q-toggle> <q-toggle :icon="'fas fa-moon'" v-model="dark"> </q-toggle>
</div> </div>
<div <div
v-if="tools.isLogged() && (isAdmin() || tools.isEditor())" v-if="tools.isLogged() && (isAdmin() || tools.isEditor()|| tools.isGrafico())"
class="text-h7" class="text-h7"
> >
<q-toggle :icon="'fas fa-pencil-alt'" v-model="globalStore.editOn"> </q-toggle> <q-toggle :icon="'fas fa-pencil-alt'" v-model="globalStore.editOn"> </q-toggle>

View File

@@ -93,6 +93,7 @@ export default defineComponent({
if (elem.onlyDepartment) menu += ' isDepartment' if (elem.onlyDepartment) menu += ' isDepartment'
if (elem.onlyFacilitatore) menu += ' isFacilitatore' if (elem.onlyFacilitatore) menu += ' isFacilitatore'
if (elem.onlyEditor) menu += ' isEditor' if (elem.onlyEditor) menu += ' isEditor'
if (elem.onlyGrafico) menu += ' isGrafico'
} }
if (elem.extraclass) menu += ` ${elem.extraclass}` if (elem.extraclass) menu += ` ${elem.extraclass}`

View File

@@ -141,6 +141,7 @@ export interface IMyElem {
parambool?: boolean parambool?: boolean
parambool2?: boolean parambool2?: boolean
parambool3?: boolean parambool3?: boolean
parambool4?: boolean
number?: number number?: number
num2?: number num2?: number
imgback?: string imgback?: string
@@ -581,6 +582,7 @@ export interface IListRoutes {
onlyFacilitatore?: boolean onlyFacilitatore?: boolean
color?: string color?: string
onlyEditor?: boolean onlyEditor?: boolean
onlyGrafico?: boolean
extraclass?: string extraclass?: string
meta?: any meta?: any
idelem?: string idelem?: string
@@ -1035,6 +1037,8 @@ export interface IOptGrid {
rowclass?: boolean rowclass?: boolean
widthcard?: string widthcard?: string
heightcard?: string heightcard?: string
widthimg?: string
heightimg?: string
} }
export interface IFilter { export interface IFilter {

View File

@@ -38,6 +38,7 @@ export interface IProductInfo {
collana?: ICollana collana?: ICollana
collezione?: string collezione?: string
idPublisher?: string idPublisher?: string
ListaArgomenti?: string
publisher?: IPublisher publisher?: IPublisher
date_pub?: Date date_pub?: Date
date_pub_ts: number date_pub_ts: number
@@ -213,6 +214,7 @@ export interface ICategory {
export interface ICatProd { export interface ICatProd {
_id?: any _id?: any
idArgomento?: number,
name: string, name: string,
descr_estesa?: string, descr_estesa?: string,
img?: string, img?: string,

View File

@@ -281,6 +281,7 @@ export interface IUserState {
isZoomeri?: boolean isZoomeri?: boolean
isTratuttrici?: boolean isTratuttrici?: boolean
isEditor?: boolean isEditor?: boolean
isGrafico?: boolean
isTeacher?: boolean isTeacher?: boolean
usersList?: IUserFields[] usersList?: IUserFields[]
countusers?: number countusers?: number

View File

@@ -268,7 +268,7 @@ function getRoutesAd(site: ISites) {
onlyAdmin: true, onlyAdmin: true,
onlyManager: true onlyManager: true
}, },
{ /*{
active: false, active: false,
order: 10, order: 10,
path: '/admin/zoomlist', path: '/admin/zoomlist',
@@ -281,7 +281,7 @@ function getRoutesAd(site: ISites) {
level_child: 0.5, level_child: 0.5,
onlyManager: true, onlyManager: true,
onlyFacilitatore: false onlyFacilitatore: false
}, },*/
{ {
active: true, active: true,
order: 27, order: 27,
@@ -539,7 +539,7 @@ function getRoutesAd(site: ISites) {
onlyAdmin: true, onlyAdmin: true,
onlyManager: true, onlyManager: true,
onlyFacilitatore: true, onlyFacilitatore: true,
onlyEditor: true onlyEditor: false
}, },
...routes_manager, ...routes_manager,

View File

@@ -465,6 +465,7 @@ const msg_it = {
facilitatore: 'Facilitatore', facilitatore: 'Facilitatore',
Editor: 'Editor', Editor: 'Editor',
zoomeri: 'Zoomeri', zoomeri: 'Zoomeri',
grafico: 'Grafico',
/* sonomediatore: 'Quando diventi Meditore vieni contattato da un <strong>FACILITATORE</strong>, con lui devi:<br><ol class="lista">' + /* sonomediatore: 'Quando diventi Meditore vieni contattato da un <strong>FACILITATORE</strong>, con lui devi:<br><ol class="lista">' +
'<li>Aprire la tua <strong>Gift Chat</strong> (tu come proprietario e il Facilitatore ' + '<li>Aprire la tua <strong>Gift Chat</strong> (tu come proprietario e il Facilitatore ' +
'come amministratore) con questo nome:<br><strong>{nomenave}</strong></li>' + 'come amministratore) con questo nome:<br><strong>{nomenave}</strong></li>' +

View File

@@ -349,6 +349,7 @@ export const costanti = {
VISUTABLE_USER_TABCIRCUIT: -5, VISUTABLE_USER_TABCIRCUIT: -5,
VISUTABLE_GROUP_CIRCUIT: -6, VISUTABLE_GROUP_CIRCUIT: -6,
VISUTABLE_GRID_ORIZ: -10, VISUTABLE_GRID_ORIZ: -10,
VISUTABLE_TABLELIST: -20,
DIR_UPLOAD: 'upload/', DIR_UPLOAD: 'upload/',
DIR_PRODUCTS: 'products/', DIR_PRODUCTS: 'products/',

View File

@@ -133,10 +133,16 @@ export const colTableCatalogList = [
isadvanced_field: false, isadvanced_field: false,
}), }),
AddCol({ AddCol({
name: 'idCollane', name: 'idPageAssigned',
label_trans: 'cataloglist.collane', label_trans: 'cataloglist.idPageAssigned',
fieldtype: costanti.FieldType.select,
jointable: 'mypages_id',
}),
AddCol({
name: 'referenti',
label_trans: 'cataloglist.referenti',
fieldtype: costanti.FieldType.multiselect, fieldtype: costanti.FieldType.multiselect,
jointable: 'collanas', jointable: 'lista_editori',
}), }),
AddCol({ AddCol({
name: 'argomenti', name: 'argomenti',
@@ -144,6 +150,12 @@ export const colTableCatalogList = [
fieldtype: costanti.FieldType.multiselect, fieldtype: costanti.FieldType.multiselect,
jointable: 'catprods', jointable: 'catprods',
}), }),
AddCol({
name: 'idCollane',
label_trans: 'cataloglist.collane',
fieldtype: costanti.FieldType.multiselect,
jointable: 'collanas',
}),
AddCol({ AddCol({
name: 'editore', name: 'editore',
label_trans: 'cataloglist.editore', label_trans: 'cataloglist.editore',
@@ -151,19 +163,6 @@ export const colTableCatalogList = [
jointable: 'publishers', jointable: 'publishers',
}), }),
AddCol({
name: 'idPageAssigned',
label_trans: 'cataloglist.idPageAssigned',
fieldtype: costanti.FieldType.select,
jointable: 'mypages_id',
}),
AddCol({
name: 'referenti',
label_trans: 'cataloglist.referenti',
fieldtype: costanti.FieldType.multiselect,
jointable: 'lista_editori',
}),
AddCol({ name: 'descr_introduttiva', label_trans: 'cataloglist.descr_introduttiva', fieldtype: costanti.FieldType.html, maxlength: 1300 }), AddCol({ name: 'descr_introduttiva', label_trans: 'cataloglist.descr_introduttiva', fieldtype: costanti.FieldType.html, maxlength: 1300 }),
AddCol({ name: 'pagina_introduttiva_sfondo_nero', label_trans: 'cataloglist.pagina_introduttiva_sfondo_nero', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'pagina_introduttiva_sfondo_nero', label_trans: 'cataloglist.pagina_introduttiva_sfondo_nero', fieldtype: costanti.FieldType.boolean }),
@@ -360,6 +359,7 @@ export const colmyelems = [
AddCol({ name: 'parambool', label_trans: 'myelems.parambool', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'parambool', label_trans: 'myelems.parambool', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'parambool2', label_trans: 'myelems.parambool2', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'parambool2', label_trans: 'myelems.parambool2', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'parambool3', label_trans: 'myelems.parambool3', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'parambool3', label_trans: 'myelems.parambool3', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'parambool4', label_trans: 'myelems.parambool4', fieldtype: costanti.FieldType.boolean }),
AddCol({ name: 'number', label_trans: 'myelems.number', fieldtype: costanti.FieldType.number }), AddCol({ name: 'number', label_trans: 'myelems.number', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'num2', label_trans: 'myelems.num2', fieldtype: costanti.FieldType.number }), AddCol({ name: 'num2', label_trans: 'myelems.num2', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'imgback', label_trans: 'myelems.imgback' }), AddCol({ name: 'imgback', label_trans: 'myelems.imgback' }),
@@ -414,7 +414,10 @@ export const colmsg_templates = [
] ]
export const colmypage = [ export const colmypage = [
AddCol({ name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.string }), AddCol({
name: '_id', label_trans: 'index', fieldtype: costanti.FieldType.string,
showWhen: costanti.showWhen.InPage + costanti.showWhen.InEdit,
}),
AddCol({ name: 'path', label_trans: 'pages.path' }), AddCol({ name: 'path', label_trans: 'pages.path' }),
AddCol({ name: 'icon', label_trans: 'pages.icon' }), AddCol({ name: 'icon', label_trans: 'pages.icon' }),
AddCol({ name: 'order', label_trans: 'pages.order', fieldtype: costanti.FieldType.number }), AddCol({ name: 'order', label_trans: 'pages.order', fieldtype: costanti.FieldType.number }),
@@ -5079,6 +5082,16 @@ export const func = {
return mylist return mylist
} }
return []
},
gettablesListByTable(table: string) {
const userStore = useUserStore()
if (fieldsTable.tablesList) {
const mylist = fieldsTable.tablesList.filter((rec: any) => ((rec.onlyAdmin === userStore.isAdmin) || (!rec.onlyAdmin)) && (!rec.noshow) && rec.value === table)
return mylist
}
return [] return []
}, },
} }

View File

@@ -2654,6 +2654,7 @@ export const tools = {
|| (elem.onlyNotSoci && !userStore.my.profile.socio) || (elem.onlyNotSoci && !userStore.my.profile.socio)
|| (elem.onlyFacilitatore && userStore.isFacilitatore) || (elem.onlyFacilitatore && userStore.isFacilitatore)
|| (elem.onlyEditor && userStore.isEditor) || (elem.onlyEditor && userStore.isEditor)
|| (elem.onlyGrafico && userStore.isGrafico)
|| (elem.onlyDepartment && userStore.isDepartment) || (elem.onlyDepartment && userStore.isDepartment)
|| ((!elem.onlyAdmin) && (!elem.onlyManager) && (!elem.onlyFacilitatore) && (!elem.onlyEditor) && (!elem.onlyDepartment) || ((!elem.onlyAdmin) && (!elem.onlyManager) && (!elem.onlyFacilitatore) && (!elem.onlyEditor) && (!elem.onlyDepartment)
&& (!elem.onlySocioResidente) && (!elem.onlyConsiglio) && (!elem.onlyNotSoci))) && elem.active && (!elem.onlySocioResidente) && (!elem.onlyConsiglio) && (!elem.onlyNotSoci))) && elem.active
@@ -3170,7 +3171,11 @@ export const tools = {
isEditor() { isEditor() {
const userStore = useUserStore() const userStore = useUserStore()
return userStore.isEditor return userStore.isEditor || userStore.isAdmin
},
isGrafico() {
const userStore = useUserStore()
return userStore.isGrafico || userStore.isAdmin
}, },
isTeacher() { isTeacher() {
@@ -7536,7 +7541,7 @@ export const tools = {
// return true // return true
if (shared_consts.TABLES_PER_EDITORI.includes(tablesel)) { if (shared_consts.TABLES_PER_EDITORI.includes(tablesel)) {
if (userStore.isEditor || userStore.isAdmin) { if (userStore.isEditor || userStore.isGrafico || userStore.isAdmin) {
return true return true
} }
} }

View File

@@ -1363,7 +1363,7 @@ export const useProducts = defineStore('Products', {
const prezzo_scontato = tools.arrotonda2Dec(myproduct.arrvariazioni![0].sale_price) || '' const prezzo_scontato = tools.arrotonda2Dec(myproduct.arrvariazioni![0].sale_price) || ''
const categoria = this.getCatProdsStrByCatProds(myproduct.productInfo.catprods!) const categoria = this.getCatProdsStrByCatProds(myproduct.productInfo.catprods!)
const sottocategoria = myproduct.productInfo.subcatprods && myproduct.productInfo.subcatprods.length > 0 ? myproduct.productInfo.subcatprods[0].name! : '' const sottocategoria = myproduct.productInfo.subcatprods && myproduct.productInfo.subcatprods.length > 0 ? myproduct.productInfo.subcatprods[0].name! : ''
const descr_categoria = myproduct.productInfo.catprods ? this.getCatProdDescrStrByIdCatProd(myproduct.productInfo.catprods![0].name) : '' const descr_categoria = myproduct.productInfo.catprods && myproduct.productInfo.catprods.length > 0 ? this.getCatProdDescrStrByIdCatProd(myproduct.productInfo.catprods![0].name) : ''
const misure = myproduct.arrvariazioni![0].misure || '' const misure = myproduct.arrvariazioni![0].misure || ''
const formato = myproduct.arrvariazioni![0].formato || '' const formato = myproduct.arrvariazioni![0].formato || ''
const pagine = myproduct.arrvariazioni![0].pagine || '' const pagine = myproduct.arrvariazioni![0].pagine || ''

View File

@@ -209,6 +209,7 @@ export const useUserStore = defineStore('UserStore', {
isZoomeri: false, isZoomeri: false,
isTratuttrici: false, isTratuttrici: false,
isEditor: false, isEditor: false,
isGrafico: false,
isTeacher: false, isTeacher: false,
usersList: [], usersList: [],
countusers: 0, countusers: 0,
@@ -1202,6 +1203,7 @@ export const useUserStore = defineStore('UserStore', {
this.isDepartment = tools.isBitActive(this.my.perm, shared_consts.Permissions.Department.value) this.isDepartment = tools.isBitActive(this.my.perm, shared_consts.Permissions.Department.value)
this.isTeacher = tools.isBitActive(this.my.perm, shared_consts.Permissions.Teacher.value) this.isTeacher = tools.isBitActive(this.my.perm, shared_consts.Permissions.Teacher.value)
this.isEditor = tools.isBitActive(this.my.perm, shared_consts.Permissions.Editor.value) this.isEditor = tools.isBitActive(this.my.perm, shared_consts.Permissions.Editor.value)
this.isGrafico = tools.isBitActive(this.my.perm, shared_consts.Permissions.Grafico.value)
this.my.tokens = [] this.my.tokens = []
this.resetArrToken(this.my.tokens) this.resetArrToken(this.my.tokens)

View File

@@ -397,6 +397,14 @@
></q-btn> ></q-btn>
<br /> <br />
</div> </div>
<div class="row">
<q-btn
label="Elimina CatProds e SubCatProds"
color="negative"
@click="EseguiFunz('eliminaCatProds')"
></q-btn>
<br />
</div>
<div class="row"> <div class="row">
<q-input <q-input
v-model="valmin" v-model="valmin"

View File

@@ -11,10 +11,15 @@ import { costanti } from '@costanti'
import { shared_consts } from '@/common/shared_vuejs' import { shared_consts } from '@/common/shared_vuejs'
import { CProductCard } from '@src/components/CProductCard' import { CProductCard } from '@src/components/CProductCard'
import { CMySelect } from '@src/components/CMySelect' import { CMySelect } from '@src/components/CMySelect'
import { CContainerCatalogoCard } from '@src/components/CContainerCatalogoCard' import { CContainerCatalogoCard } from '@src/components/CContainerCatalogoCard'
import { CSelectUserActive } from '@src/components/CSelectUserActive' import { CSelectUserActive } from '@src/components/CSelectUserActive'
import { IOptCatalogo, IDimensioni, IFilterCatalogo, IMyScheda, IProdView, IProduct, ISchedaSingola, ISearchList, ICatalog, IImg, IMyPage } from 'model' import {
IOptCatalogo, IDimensioni, IFilterCatalogo,
IMyScheda, IProdView, IProduct, ISchedaSingola, ISearchList, ICatalog, IImg, IMyPage,
} from 'model'
import { fieldsTable } from '@store/Modules/fieldsTable' import { fieldsTable } from '@store/Modules/fieldsTable'
@@ -145,6 +150,10 @@ export default defineComponent({
return catalogStore.catalogs?.find((catalog: ICatalog) => catalog.idPageAssigned === props.idPage) return catalogStore.catalogs?.find((catalog: ICatalog) => catalog.idPageAssigned === props.idPage)
}) })
const ispageCatalogata = computed(() => {
return !!getCatalogoByMyPage.value
})
// Register the scroll event on component mount // Register the scroll event on component mount
const handleScroll = () => { const handleScroll = () => {
const scrollTop = window.scrollY || document.documentElement.scrollTop; const scrollTop = window.scrollY || document.documentElement.scrollTop;
@@ -374,11 +383,12 @@ export default defineComponent({
let catstr = '' let catstr = ''
if (optcatalogo.value.argomenti) { if (optcatalogo.value.argomenti && optcatalogo.value.argomenti.length > 0) {
// ha la priorità questo scelto sul catalogo // ha la priorità questo scelto sul catalogo
arrargomstr = getArgomentiDaFiltrare(optcatalogo.value.argomenti!) arrargomstr = getArgomentiDaFiltrare(optcatalogo.value.argomenti!)
} else { } else {
catstr = cat.value || '' arrargomstr = getArgomentiDaFiltrare([cat.value || ''])
// catstr = cat.value || ''
} }
@@ -541,7 +551,7 @@ export default defineComponent({
let catstr = '' let catstr = ''
if (optcatalogo.value.argomenti) { if (optcatalogo.value.argomenti && optcatalogo.value.argomenti.length > 0) {
// ha la priorità questo scelto sul catalogo // ha la priorità questo scelto sul catalogo
arrargomstr = getArgomentiDaFiltrare(optcatalogo.value.argomenti!) arrargomstr = getArgomentiDaFiltrare(optcatalogo.value.argomenti!)
} else { } else {
@@ -1139,6 +1149,10 @@ export default defineComponent({
return page && page.length > 0 && page[0] && page[0].length > 0 return page && page.length > 0 && page[0] && page[0].length > 0
} }
function naviga(path: string) {
router.push(path)
}
onMounted(mounted) onMounted(mounted)
return { return {
@@ -1191,6 +1205,8 @@ export default defineComponent({
updateOptCatalogo, updateOptCatalogo,
optcatalogo, optcatalogo,
getTestoIntroduttivo, getTestoIntroduttivo,
ispageCatalogata,
naviga,
} }
} }
}) })

View File

@@ -7,9 +7,22 @@
class="bg-green text-white" class="bg-green text-white"
> >
<q-tab name="visu" icon="fas fa-eye" label="Visualizza"> </q-tab> <q-tab name="visu" icon="fas fa-eye" label="Visualizza"> </q-tab>
<q-tab name="sfondo" icon="fas fa-image" label="Sfondo"> </q-tab> <q-tab
<q-tab name="pagine" icon="fas fa-book-reader" label="Pagine"> </q-tab> v-if="tools.isGrafico()"
<q-tab name="opzioni" icon="fas fa-save" label="Opzioni"> </q-tab> name="sfondo"
icon="fas fa-image"
label="Sfondo"
>
</q-tab>
<q-tab
v-if="tools.isGrafico()"
name="pagine"
icon="fas fa-book-reader"
label="Pagine"
>
</q-tab>
<q-tab name="tutorial" icon="fas fa-info" label="Tutorial"> </q-tab>
<q-tab name="opzioni" icon="fas fa-save" label="Avanzati"> </q-tab>
</q-tabs> </q-tabs>
<q-tab-panels v-model="tabcatalogo" animated class="" keep-alive> <q-tab-panels v-model="tabcatalogo" animated class="" keep-alive>
<q-tab-panel name="visu" v-if="optcatalogo"> <q-tab-panel name="visu" v-if="optcatalogo">
@@ -24,7 +37,12 @@
</div> </div>
<div v-if="loadpage" class="panel"> <div v-if="loadpage" class="panel">
<div class="container"> <div class="container">
<q-tabs v-model="tabvisu" dense class="bg-indigo text-white"> <q-tabs
v-if="!ispageCatalogata"
v-model="tabvisu"
dense
class="bg-indigo text-white"
>
<q-tab <q-tab
name="categorie" name="categorie"
icon="fas fa-folder-open" icon="fas fa-folder-open"
@@ -32,17 +50,27 @@
> >
<q-badge v-if="cat" color="red" floating>1</q-badge> <q-badge v-if="cat" color="red" floating>1</q-badge>
</q-tab> </q-tab>
<q-tab name="autori" icon="fas fa-user" label="Autori"> <q-tab
v-if="!ispageCatalogata"
name="autori"
icon="fas fa-user"
label="Autori"
>
<q-badge v-if="filter.author" color="red" floating>1</q-badge> <q-badge v-if="filter.author" color="red" floating>1</q-badge>
</q-tab> </q-tab>
<q-tab name="ricerca" icon="fas fa-search" label="Cerca"> <q-tab
v-if="!ispageCatalogata"
name="ricerca"
icon="fas fa-search"
label="Cerca"
>
<q-badge v-if="getSearchText()" color="red" floating <q-badge v-if="getSearchText()" color="red" floating
>1</q-badge >1</q-badge
> >
</q-tab> </q-tab>
</q-tabs> </q-tabs>
<q-tab-panels v-model="tabvisu" animated class="" keep-alive> <q-tab-panels v-model="tabvisu" animated class="" keep-alive>
<q-tab-panel name="categorie"> <q-tab-panel v-if="!ispageCatalogata" name="categorie">
<div class="row justify-center q-mx-auto bg-blue-1"> <div class="row justify-center q-mx-auto bg-blue-1">
<div v-for="(reccat, index) in getCatProds()" :key="index"> <div v-for="(reccat, index) in getCatProds()" :key="index">
<span <span
@@ -157,7 +185,10 @@
</q-tab-panel> </q-tab-panel>
</q-tab-panels> </q-tab-panels>
<div class="row justify-center q-mx-auto"> <div
v-if="!ispageCatalogata"
class="row justify-center q-mx-auto"
>
<q-select <q-select
v-model="filter.sort_field" v-model="filter.sort_field"
dense dense
@@ -311,8 +342,7 @@
?.contenuto ?.contenuto
" "
:style="{ :style="{
'--scalecatalog': '--scalecatalog': tools.getScale(optcatalogo),
tools.getScale(optcatalogo),
'line-height': 'line-height':
recscheda.scheda.dimensioni.pagina?.testo_up recscheda.scheda.dimensioni.pagina?.testo_up
?.font.line_height, ?.font.line_height,
@@ -321,9 +351,7 @@
}" }"
> >
<div <div
v-html=" v-html="getTestoIntroduttivo(recscheda)"
getTestoIntroduttivo(recscheda)
"
style="display: flex; flex-direction: row" style="display: flex; flex-direction: row"
></div> ></div>
</div> </div>
@@ -483,9 +511,19 @@
</q-img> </q-img>
</div> </div>
</q-tab-panel> </q-tab-panel>
<q-tab-panel name="tutorial">
<div class="q-pa-md q-ma-sm text-center">
<q-btn
rounded
label="Apri Tutorial"
color="primary"
@click="naviga('/tutorial')"
></q-btn>
</div>
</q-tab-panel>
<q-tab-panel name="opzioni"> <q-tab-panel name="opzioni">
<pre> <pre>
<strong>PASSI DA COMPIERE:</strong> <strong>PASSI DA COMPIERE PER FARE AGGIORNAMENTI :</strong>
1. Ottenere il file delle descrizioni aggiornato (da Matteo chiedere l'export di tutti i prodotti presenti su GruppoMacro - XML) 1. Ottenere il file delle descrizioni aggiornato (da Matteo chiedere l'export di tutti i prodotti presenti su GruppoMacro - XML)