diff --git a/quasar.config.ts b/quasar.config.ts index e99ac3cb..a74297bc 100644 --- a/quasar.config.ts +++ b/quasar.config.ts @@ -347,7 +347,8 @@ export default defineConfig((ctx) => { set plugins(value) { this._plugins = value; }, - iconSet: 'fontawesome-v5', + // iconSet: 'fontawesome-v5', + iconSet: 'material-icons', lang: 'it', // Quasar language }, diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts index 9ca51971..031b5a88 100755 --- a/src/common/shared_vuejs.ts +++ b/src/common/shared_vuejs.ts @@ -132,6 +132,11 @@ export const shared_consts = { CAROUSEL_IDISCIPLINE: 80, CAROUSEL_HOME: 85, CHECK_EMAIL: 100, + IMAGE_GALLERY: 101, + HEADING: 102, + LIST: 103, + CODE: 104, + DIVIDER: 105, CAROUSEL_IMGS: 110, OPENSTREETMAP: 120, MAINVIEW: 130, @@ -178,11 +183,7 @@ export const shared_consts = { SECTION: 1000, ROW: 1100, COLUMN: 1200, - IMAGE_GALLERY: 101, - HEADING: 102, - LIST: 103, - CODE: 104, - DIVIDER: 105, + PAGE_SECTION: 1500, }, QUERYTYPE_MYGROUP: 1, @@ -2085,6 +2086,11 @@ export const shared_consts = { label: 'Scheda (IMG + Testo)', icon: 'fas fa-id-card', }, + { + value: 1500, + label: 'Sezione Pagina', + icon: 'fas fa-newspaper', + }, /* Disattivato perchè attualmente non funziona bene { diff --git a/src/components/CMyEditElem/CMyEditElem.ts b/src/components/CMyEditElem/CMyEditElem.ts index ea458d05..f36bad99 100755 --- a/src/components/CMyEditElem/CMyEditElem.ts +++ b/src/components/CMyEditElem/CMyEditElem.ts @@ -260,7 +260,7 @@ export default defineComponent({ // @ts-ignore label: page.title, // @ts-ignore - value: page.idPage, + value: page.path, }; arrPages.value.push(rec); } @@ -820,6 +820,19 @@ export default defineComponent({ colorPicker.value.openDialog(); } + function removeFeature(index: number) { + myel.value.features.splice(index, 1); + saveElem(); + } + + function addFeature() { + myel.value.features.push({ + name: 'Titolo', + description: 'sottotitolo', + icon: 'fas fa-heading',}); + saveElem(); + } + onMounted(mounted); return { @@ -890,6 +903,8 @@ export default defineComponent({ AddedNewElem, openColorPicker, colorPicker, + removeFeature, + addFeature, }; }, }); diff --git a/src/components/CMyEditElem/CMyEditElem.vue b/src/components/CMyEditElem/CMyEditElem.vue index ebbfc49b..4f11a3d2 100755 --- a/src/components/CMyEditElem/CMyEditElem.vue +++ b/src/components/CMyEditElem/CMyEditElem.vue @@ -2774,6 +2774,82 @@
+
+ + + + + + + +
+
+
Testo {{index + 1}}:
+ + + + +
+
+ +



diff --git a/src/components/CMyElem/CMyElem.ts b/src/components/CMyElem/CMyElem.ts index 2a8b097d..2bbefe33 100755 --- a/src/components/CMyElem/CMyElem.ts +++ b/src/components/CMyElem/CMyElem.ts @@ -6,6 +6,7 @@ import { IMyCard, IMyPage, IOperators } from '@src/model'; import { useGlobalStore } from '@store/globalStore'; import { CImgTitle } from '../CImgTitle/index'; +import { FeaturesSection } from '../FeaturesSection/index'; import { CImgPoster } from '@src/components/CImgPoster'; import CSection from '@src/components/CSection/CSection.vue'; import CRow from '@src/components/CRow/CRow.vue'; @@ -71,6 +72,7 @@ import { useRouter } from 'vue-router'; import { LatLng } from 'leaflet'; import { costanti } from '@costanti'; +import objectId from 'app/src/js/objectId'; export default defineComponent({ name: 'CMyElem', @@ -114,6 +116,7 @@ export default defineComponent({ CDashGroup, CMovements, CGridOriz, + FeaturesSection, CQRCode, CCatalogList, CSearchProduct, @@ -207,6 +210,18 @@ export default defineComponent({ groups.push(cards.slice(i, i + currentCardsPerSlide.value)); } + if (!groups.length) { + groups.push([ + { + _id: objectId(), + imagefile: '', + alt: '', + description: '', + vers_img: 0, + } as IMyCard, + ]); + } + return groups; }); @@ -253,7 +268,7 @@ export default defineComponent({ $q, t, props.myelem, - {idPage: props.idPage, path: props.path}, + { idPage: props.idPage, path: props.path }, newtype.value ); } @@ -341,7 +356,6 @@ export default defineComponent({ shared_consts.MsgTeleg.SHARE_MSGREG, true ); - } // Classe per le colonne delle card @@ -350,11 +364,11 @@ export default defineComponent({ return `col-${width}`; } -function updateCatalogoEmit(updatedCatalogo?: IOptCatalogo) { - if (!updatedCatalogo) return; - console.log('CMyElem: updateCatalogoEmit'); - myel.value.catalogo = updatedCatalogo; -} + function updateCatalogoEmit(updatedCatalogo?: IOptCatalogo) { + if (!updatedCatalogo) return; + console.log('CMyElem: updateCatalogoEmit'); + myel.value.catalogo = updatedCatalogo; + } function naviga(path?: string): void { if (path) { diff --git a/src/components/CMyElem/CMyElem.vue b/src/components/CMyElem/CMyElem.vue index 45c3641e..fa8f4868 100755 --- a/src/components/CMyElem/CMyElem.vue +++ b/src/components/CMyElem/CMyElem.vue @@ -129,7 +129,7 @@
+
+
+ + + + + +
diff --git a/src/components/CMyElemAdd/CMyElemAdd.ts b/src/components/CMyElemAdd/CMyElemAdd.ts index 3b909350..3d5b6ad5 100755 --- a/src/components/CMyElemAdd/CMyElemAdd.ts +++ b/src/components/CMyElemAdd/CMyElemAdd.ts @@ -121,13 +121,15 @@ export default defineComponent({ let neword = 0; // Ordinamento dell'elemento da aggiungere let recfound = null; // Variabile per conservare l'elemento trovato - // Gestisci il movimento sopra o sotto - if (direz === -1) { - // Sopra: ottieni l'elemento precedente, mantenendo l'ordinamento - recfound = globalStore.getMyElemPrecThisElemId(props.idPage, elemsel._id); - } else if (direz === 1) { - // Sotto: ottieni l'elemento successivo, mantenendo l'ordinamento - recfound = globalStore.getMyElemNextThisElemId(props.idPage, elemsel._id); + if (elemsel) { + // Gestisci il movimento sopra o sotto + if (direz === -1) { + // Sopra: ottieni l'elemento precedente, mantenendo l'ordinamento + recfound = globalStore.getMyElemPrecThisElemId(props.idPage, elemsel._id); + } else if (direz === 1) { + // Sotto: ottieni l'elemento successivo, mantenendo l'ordinamento + recfound = globalStore.getMyElemNextThisElemId(props.idPage, elemsel._id); + } } // Se è stato trovato un elemento precedente o successivo diff --git a/src/components/CMyPageElem/CMyPageElem.ts b/src/components/CMyPageElem/CMyPageElem.ts index 16e43376..1e123109 100755 --- a/src/components/CMyPageElem/CMyPageElem.ts +++ b/src/components/CMyPageElem/CMyPageElem.ts @@ -167,13 +167,22 @@ export default defineComponent({ const addAtEnd = () => { visuadd.value = true; - const last = - myelems.value.length > 0 ? myelems.value[myelems.value.length - 1] : null; - myElemSel.value = last; - myElemParent.value = last; + if (myelems.value === null) { + myElemSel.value = myelemVoid.value; + myElemParent.value = myelemVoid.value; + } else { + const last = myelems.value[myelems.value.length - 1]; + if (last) { + myElemSel.value = last; + myElemParent.value = last; + } else { + myElemSel.value = myelemVoid.value; + myElemParent.value = myelemVoid.value; + } + } }; - const showOrder = ref(false) + const showOrder = ref(false); const myelems = computed(() => { if (myidPage.value) return globalStore.getMyElemsByIdPage(myidPage.value); @@ -502,6 +511,7 @@ export default defineComponent({ function AddedNewElem(newrec: any) { emit('selElemClick', newrec); + visuadd.value = false; } function getColClasses(col: any, rowOrCount?: any, idx = 0) { diff --git a/src/components/CMyPageElem/CMyPageElem.vue b/src/components/CMyPageElem/CMyPageElem.vue index 7bcd87e2..1863430b 100755 --- a/src/components/CMyPageElem/CMyPageElem.vue +++ b/src/components/CMyPageElem/CMyPageElem.vue @@ -369,22 +369,6 @@ />
- -
- - Aggiungi Elemento - -
@@ -401,6 +385,23 @@ @selElemClick="selElemClick" /> + + +
+ + Aggiungi Elemento + +
diff --git a/src/components/CMyVideoYoutube/CMyVideoYoutube.vue b/src/components/CMyVideoYoutube/CMyVideoYoutube.vue index b7aa0cd0..7bc4931a 100755 --- a/src/components/CMyVideoYoutube/CMyVideoYoutube.vue +++ b/src/components/CMyVideoYoutube/CMyVideoYoutube.vue @@ -3,10 +3,7 @@
- Link YouTube non valido. -
- Esempi accettati: https://youtu.be/ID, https://www.youtube.com/watch?v=ID -
+ Inserire un link YouTube valido
diff --git a/src/components/FeaturesSection/FeaturesSection.scss b/src/components/FeaturesSection/FeaturesSection.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/FeaturesSection/FeaturesSection.ts b/src/components/FeaturesSection/FeaturesSection.ts new file mode 100755 index 00000000..5a1398cc --- /dev/null +++ b/src/components/FeaturesSection/FeaturesSection.ts @@ -0,0 +1,43 @@ +import { defineComponent } from 'vue'; + +// Importiamo icone da Quasar - esempio con quelle disponibili tramite Quasar Extras +// Assicurati di averle abilitate in quasar.config.js +import { IFeatSection } from 'app/src/model'; +import { tools } from 'app/src/store/Modules/tools'; +import { useQuasar } from 'quasar'; + +export default defineComponent({ + name: 'FeaturesSection', + props: { + title: { + type: String, + required: true, + }, + isDark: { + type: Boolean, + required: false, + default: false, + }, + subtitle: { + type: String, + required: false, + default: '', + }, + description: { + type: String, + required: false, + default: '', + }, + features: { + type: Array as () => IFeatSection[], + required: true, + }, + }, + + setup(props) { + + return { + tools, + }; + }, +}); diff --git a/src/components/FeaturesSection/FeaturesSection.vue b/src/components/FeaturesSection/FeaturesSection.vue new file mode 100755 index 00000000..3bc85f1a --- /dev/null +++ b/src/components/FeaturesSection/FeaturesSection.vue @@ -0,0 +1,60 @@ + + + + diff --git a/src/components/FeaturesSection/index.ts b/src/components/FeaturesSection/index.ts new file mode 100755 index 00000000..62b0e841 --- /dev/null +++ b/src/components/FeaturesSection/index.ts @@ -0,0 +1 @@ +export { default as FeaturesSection } from './FeaturesSection.vue' diff --git a/src/css/app.scss b/src/css/app.scss index df0ba6f2..47b1c0a8 100755 --- a/src/css/app.scss +++ b/src/css/app.scss @@ -262,7 +262,7 @@ h3 { font-weight: 400; line-height: 1.75rem; letter-spacing: .00937em; - text-shadow: .25rem .25rem .5rem $grayshadow; + text-shadow: .0625rem .0625rem .125rem $grayshadow; } .text-subtitle3 { diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index 4cae0a38..a2b1be6e 100755 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -199,6 +199,13 @@ export interface IMyElem { rows?: any[] columns?: any[] elems?: any[] + features?: IFeatSection[] +} + +export interface IFeatSection { + name?: string + icon?: string + description?: string } export interface IElemText { diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts index 0baa6e9b..b703b640 100644 --- a/src/store/globalStore.ts +++ b/src/store/globalStore.ts @@ -3079,10 +3079,19 @@ export const useGlobalStore = defineStore('GlobalStore', { newrec.catalogo = this.createRaccoltaCataloghiVuoto(); } else if (newrec.type === shared_consts.ELEMTYPE.TEXT) { newrec.container = "Inserisci qui il testo" + newrec.align = shared_consts.ALIGNTYPE.CEHTER } else if (newrec.type === shared_consts.ELEMTYPE.HTML) { newrec.containerHtml = "Inserisci qui il testo" + newrec.align = shared_consts.ALIGNTYPE.CEHTER } else if (newrec.type === shared_consts.ELEMTYPE.IMAGEUPLOAD) { - newrec.containerHtml + newrec.align = shared_consts.ALIGNTYPE.CEHTER + } else if (newrec.type === shared_consts.ELEMTYPE.BUTTON) { + newrec.container = "Bottone 1" + newrec.containerHtml = "primary" + newrec.container2 = "fas fa-home" + newrec.align = shared_consts.ALIGNTYPE.CEHTER + newrec.link = "https://www.pippo.it" + newrec.container3 = "_blank" } // Aggiungi il nuovo elemento alla struttura