diff --git a/_ALL_SITES/arcadei.it/quasar.conf.js b/_ALL_SITES/arcadei.it/quasar.conf.js index ae5241a1..de675575 100755 --- a/_ALL_SITES/arcadei.it/quasar.conf.js +++ b/_ALL_SITES/arcadei.it/quasar.conf.js @@ -37,7 +37,9 @@ module.exports = configure((ctx) => ({ // --> boot files are part of "main.js" // https://v2.quasar.dev/quasar-cli/boot-files // boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'], - boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar'], + boot: ['i18n', 'axios', 'vee-validate', + 'myconfig', 'local-storage', 'error-handler', 'globalroutines', + 'calendar'], // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css css: [ @@ -97,7 +99,7 @@ module.exports = configure((ctx) => ({ chainWebpack(chain, { isServer, isClient }) { chain.resolve.alias - // .set('myalias', path.resolve(__dirname, './src/somefolder')) + // .set('myalias', path.resolve(__dirname, './src/somefolder')) .set('@', helpers.root('src')) .set('@components', helpers.root('src/components/index.ts')) .set('@boot', helpers.root('src/boot/*')) diff --git a/src/App.ts b/src/App.ts index eaa86c33..c6d813c3 100755 --- a/src/App.ts +++ b/src/App.ts @@ -11,6 +11,8 @@ import { computed } from 'vue' import { CProvaPao } from '@/components/CProvaPao' import { tools } from '@store/Modules/tools' +import 'animate.css'; + export default { components: { appHeader: MyHeader, diff --git a/src/common/shared_vuejs.ts b/src/common/shared_vuejs.ts index 761a7526..adb66b8b 100755 --- a/src/common/shared_vuejs.ts +++ b/src/common/shared_vuejs.ts @@ -1248,10 +1248,6 @@ export const shared_consts = { value: 110, label: 'Carosello Immagini', }, - { - value: 90, - label: 'Footer', - }, { value: 100, label: 'Check Email', @@ -1280,7 +1276,6 @@ export const shared_consts = { CALENDAR: 70, CAROUSEL_IDISCIPLINE: 80, CAROUSEL_HOME: 85, - FOOTER: 90, CHECK_EMAIL: 100, CAROUSEL_IMGS: 110, OPENSTREETMAP: 120, @@ -1302,7 +1297,6 @@ export const shared_consts = { UP_LEFT: 5, }, - getStatusStr(status: number) { const trovatorec = this.OrderStatusStr.find((rec) => rec.value === status) return (trovatorec) ? trovatorec.label : '' diff --git a/src/components/CMyEditElem/CMyEditElem.ts b/src/components/CMyEditElem/CMyEditElem.ts index 072234c8..f9c331ea 100755 --- a/src/components/CMyEditElem/CMyEditElem.ts +++ b/src/components/CMyEditElem/CMyEditElem.ts @@ -19,6 +19,7 @@ import { CEventsCalendar } from '@src/components/CEventsCalendar' import { CMyEditor } from '@src/components/CMyEditor' import { CMyFieldRec } from '@src/components/CMyFieldRec' import { CSelectImage } from '@src/components/CSelectImage' +import { CSelectAnimation } from '@src/components/CSelectAnimation' import { CSelectColor } from '@src/components/CSelectColor' import { CSelectFontSize } from '@src/components/CSelectFontSize' @@ -35,7 +36,7 @@ export default defineComponent({ components: { CImgTitle, CTitle, LandingFooter, CEventsCalendar, CCardCarousel, COpenStreetMap, CMyPage, CMyPageIntro, CMyEditor, CMyFieldRec, - CSelectColor, CSelectFontSize, CSelectImage, CImgPoster + CSelectColor, CSelectFontSize, CSelectImage, CImgPoster, CSelectAnimation }, emits: ['saveElem'], props: { @@ -247,6 +248,7 @@ export default defineComponent({ return (myel.value.type === shared_consts.ELEMTYPE.IMAGE) || (myel.value.type === shared_consts.ELEMTYPE.IMGTITLE) || (myel.value.type === shared_consts.ELEMTYPE.TEXT) + || (myel.value.type === shared_consts.ELEMTYPE.CARD) || (myel.value.type === shared_consts.ELEMTYPE.HTML) || (myel.value.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS) } diff --git a/src/components/CMyEditElem/CMyEditElem.vue b/src/components/CMyEditElem/CMyEditElem.vue index 4da2e2a4..6b59d5f3 100755 --- a/src/components/CMyEditElem/CMyEditElem.vue +++ b/src/components/CMyEditElem/CMyEditElem.vue @@ -182,22 +182,12 @@ > - - - - + +
- -
- - + +
{{ rec.alt }}
-
+
-
-
- -
-
-   +
Pagina: {{myel.container}}
diff --git a/src/components/CMyPageElem/CMyPageElem.ts b/src/components/CMyPageElem/CMyPageElem.ts index 79f70ca1..289bcd6e 100755 --- a/src/components/CMyPageElem/CMyPageElem.ts +++ b/src/components/CMyPageElem/CMyPageElem.ts @@ -8,6 +8,7 @@ import { useGlobalStore } from '@store/globalStore' import { LandingFooter } from '@/components/LandingFooter' import { CMyElem } from '@/components/CMyElem' import { CMyEditElem } from '@/components/CMyEditElem' +import { CMyPageElem2 } from '@/components/CMyPageElem2' import { CImgTitle } from '../CImgTitle/index' import { CTitle } from '../CTitle/index' @@ -19,7 +20,7 @@ import objectId from '@src/js/objectId' export default defineComponent({ name: 'CMyPageElem', - components: { LandingFooter, CImgTitle, CTitle, CMyElem, CMyEditElem }, + components: { LandingFooter, CImgTitle, CTitle, CMyElem, CMyEditElem, CMyPageElem2 }, props: { title: String, mypath: { @@ -79,6 +80,7 @@ export default defineComponent({ function load() { // console.log('load', mypathin.value) + if (mypathin.value !== '') { globalStore.loadPage('/' + mypathin.value, 'cmypageelem').then(ris => { rec.value = ris diff --git a/src/components/CMyPageElem/CMyPageElem.vue b/src/components/CMyPageElem/CMyPageElem.vue index ec723f98..5401a133 100755 --- a/src/components/CMyPageElem/CMyPageElem.vue +++ b/src/components/CMyPageElem/CMyPageElem.vue @@ -34,16 +34,10 @@ round color="white" icon="close" - @click=" - visuEditor = false; - " + @click="visuEditor = false" > - + @@ -81,16 +75,21 @@
- - +
+ + +
+
+   +
+
diff --git a/src/components/CMyPageElem2/CMyPageElem2.scss b/src/components/CMyPageElem2/CMyPageElem2.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/CMyPageElem2/CMyPageElem2.ts b/src/components/CMyPageElem2/CMyPageElem2.ts new file mode 100755 index 00000000..53352c3e --- /dev/null +++ b/src/components/CMyPageElem2/CMyPageElem2.ts @@ -0,0 +1,145 @@ +import { + computed, + defineComponent, onMounted, ref, toRef, watch, +} from 'vue' + +import { IMyElem, IMyPage } from '@src/model' +import { useGlobalStore } from '@store/globalStore' +import { LandingFooter } from '@/components/LandingFooter' +import { CMyElem } from '@/components/CMyElem' +import { CMyEditElem } from '@/components/CMyEditElem' + +import { CImgTitle } from '../CImgTitle/index' +import { CTitle } from '../CTitle/index' +import { tools } from '@store/Modules/tools' +import { useQuasar } from 'quasar' +import { useI18n } from '@/boot/i18n' +import { shared_consts } from '@/common/shared_vuejs' +import objectId from '@src/js/objectId' + +export default defineComponent({ + name: 'CMyPageElem2', + components: { LandingFooter, CImgTitle, CTitle, CMyElem, CMyEditElem }, + props: { + title: String, + mypath: { + type: String, + required: true, + }, + img: { + type: String, + required: false, + default: '', + }, + imgbackground: { + type: String, + required: false, + default: '', + }, + sizes: { + type: String, + required: false, + default: '', + }, + styleadd: { + type: String, + required: false, + default: '', + }, + nofooter: { + type: Boolean, + required: false, + default: false, + }, + }, + + setup(props) { + const rec = ref(null) + const mypathin = toRef(props, 'mypath') + + const $q = useQuasar() + + const { t } = useI18n() + const globalStore = useGlobalStore() + + const editOn = ref(false) + const visuEditor = ref(false) + const addOn = ref(false) + const myelemVoid = ref({ _id: objectId(), active: true, type: shared_consts.ELEMTYPE.TEXT, container: '...', path: mypathin.value } as IMyElem) + + + const selElem = ref(globalStore.selElem) + + const myelems = computed(() => { + if (mypathin.value) + return globalStore.getMyElems(mypathin.value) + else + return null + }) + + function load() { + // console.log('load', mypathin.value) + + if (mypathin.value !== '') { + globalStore.loadPage('/' + mypathin.value, 'cmypageelem').then(ris => { + rec.value = ris + }) + } + + if (tools.isManager()) { + editOn.value = tools.getCookie('EDITPAGES', '0') === '-1' ? true : false + console.log('getcookie: ', editOn.value, mypathin.value) + } + } + + watch(() => props.mypath, (to: string, from: string) => { + console.log('... load', mypathin.value, props.mypath) + selElem.value = {} + load() + }) + + watch( + () => editOn.value, + () => { + if (!editOn.value) { + selElem.value = {} + } + }) + + function selElemClick(myelem: IMyElem) { + console.log('mypageelem selElemClick', myelem) + selElem.value = myelem + visuEditor.value = !!myelem + } + + function mounted() { + load() + } + + function saveElem(myelem: IMyElem) { + // + } + + function changeVisuDrawer(path: string, edit: boolean) { + globalStore.changeVisuDrawer(path, edit) + } + + onMounted(mounted) + + return { + rec, myelems, + mypathin, + editOn, + visuEditor, + addOn, + tools, + shared_consts, + myelemVoid, + selElemClick, + selElem, + saveElem, + changeVisuDrawer, + } + }, + +}) diff --git a/src/components/CMyPageElem2/CMyPageElem2.vue b/src/components/CMyPageElem2/CMyPageElem2.vue new file mode 100755 index 00000000..ea999047 --- /dev/null +++ b/src/components/CMyPageElem2/CMyPageElem2.vue @@ -0,0 +1,135 @@ + + + + diff --git a/src/components/CMyPageElem2/index.ts b/src/components/CMyPageElem2/index.ts new file mode 100755 index 00000000..73031517 --- /dev/null +++ b/src/components/CMyPageElem2/index.ts @@ -0,0 +1 @@ +export { default as CMyPageElem2 } from './CMyPageElem2.vue' diff --git a/src/components/CSelectAnimation/CSelectAnimation.scss b/src/components/CSelectAnimation/CSelectAnimation.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/CSelectAnimation/CSelectAnimation.ts b/src/components/CSelectAnimation/CSelectAnimation.ts new file mode 100755 index 00000000..0bd7521d --- /dev/null +++ b/src/components/CSelectAnimation/CSelectAnimation.ts @@ -0,0 +1,60 @@ +import { defineComponent, onMounted, ref } from 'vue' + +import { tools } from '@src/store/Modules/tools' +import { shared_consts } from '@src/common/shared_vuejs' +import { emit } from 'process' + +export default defineComponent({ + name: 'CSelectAnimation', + emits: ['update:modelValue'], + props: { + modelValue: { + type: String, + required: true, + default: '', + }, + label: { + type: String, + required: false, + default: '', + }, + }, + + setup(props, { emit }) { + + const myclass = ref('') + const animType = ref('') + const animSpeed = ref('') + const animDelay = ref('') + + function updateClass() { + + let mycl = '' + + myclass.value = 'animate__animated ' + animType.value + ' ' + animSpeed.value + ' ' + animDelay.value + + emit('update:modelValue', myclass.value) + } + + function mounted() { + + const myarr = props.modelValue.split(' ') + + animType.value = tools.findFirstElemInCommon(tools.SelectListAnimation, myarr) + animSpeed.value = tools.findFirstElemInCommon(tools.SelectListSpeed, myarr) + animDelay.value = tools.findFirstElemInCommon(tools.SelectListDelay, myarr) + + } + + onMounted(mounted) + + return { + tools, + updateClass, + animType, + animSpeed, + animDelay, + } + }, + +}) diff --git a/src/components/CSelectAnimation/CSelectAnimation.vue b/src/components/CSelectAnimation/CSelectAnimation.vue new file mode 100755 index 00000000..28bb5b06 --- /dev/null +++ b/src/components/CSelectAnimation/CSelectAnimation.vue @@ -0,0 +1,52 @@ + + + + diff --git a/src/components/CSelectAnimation/index.ts b/src/components/CSelectAnimation/index.ts new file mode 100755 index 00000000..5de09283 --- /dev/null +++ b/src/components/CSelectAnimation/index.ts @@ -0,0 +1 @@ +export { default as CSelectAnimation } from './CSelectAnimation.vue' diff --git a/src/model/Calendar.ts b/src/model/Calendar.ts index 297358b3..5012d7c5 100755 --- a/src/model/Calendar.ts +++ b/src/model/Calendar.ts @@ -77,6 +77,11 @@ export interface ILabelValue { value: number } +export interface ILabelValueStr { + label: string + value: string +} + export interface IValue { value: number } diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index 811c3562..733dc9ef 100755 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -190,6 +190,8 @@ export interface IMyPage { infooter?: boolean internalpage?: boolean extraclass?: string + loadFirst?: boolean + showFooter?: boolean } export interface IOption { diff --git a/src/store/Modules/fieldsTable.ts b/src/store/Modules/fieldsTable.ts index df90fa4a..9ec87261 100755 --- a/src/store/Modules/fieldsTable.ts +++ b/src/store/Modules/fieldsTable.ts @@ -237,6 +237,8 @@ export const colmypage = [ AddCol({ name: 'l_par', label_trans: 'pages.l_par', fieldtype: costanti.FieldType.number }), AddCol({ name: 'l_child', label_trans: 'pages.l_child', fieldtype: costanti.FieldType.number }), AddCol({ name: 'internalpage', label_trans: 'pages.internalpage', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'loadFirst', label_trans: 'pages.loadFirst', fieldtype: costanti.FieldType.boolean }), + AddCol({ name: 'showFooter', label_trans: 'pages.showFooter', fieldtype: costanti.FieldType.boolean }), AddCol({ name: 'iconsize', label_trans: 'pages.iconsize', fieldtype: costanti.FieldType.string }), AddCol({ name: 'extraclass', label_trans: 'pages.extraclass', fieldtype: costanti.FieldType.string }), AddCol(DeleteRec), diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index d67b93ca..231d6a93 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -12,7 +12,7 @@ import { ITodo, IUserFields, Privacy, - TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, IMyCircuit, ISendCoin, IMovement, IMovVisu, INotif, IMyElem, IMyCard, + TipoVisu, IGroup, IMySkill, IMyBacheca, IImgGallery, IMsgGlobParam, IUserExport, ISpecialField, IAccount, IMyCircuit, ISendCoin, IMovement, IMovVisu, INotif, IMyElem, IMyCard, ILabelValue, ILabelValueStr, } from '@model' import { fieldsTable } from '@store/Modules/fieldsTable' @@ -593,19 +593,257 @@ export const tools = { }, ], + SelectListSpeed: [ + { + label: '[Nessuna]', + value: '', + }, + { + label: 'Slow 2s', + value: 'animate__slow', + }, + { + label: 'Slower 3s', + value: 'animate__slower', + }, + { + label: 'Fast .8s', + value: 'animate__fast', + }, + { + label: 'Faster .5s', + value: 'animate__faster', + }, + ], + + SelectListDelay: [ + { + label: '[Nessuna]', + value: '', + }, + { + label: 'Delay 2s', + value: 'animate__delay-2s', + }, + { + label: 'Delay 3s', + value: 'animate__delay-3s', + }, + { + label: 'Delay 4s', + value: 'animate__delay-4s', + }, + { + label: 'Delay 5s', + value: 'animate__delay-5s', + }, + + ], + + SelectListAnimation: [ { label: '[Nessuna]', value: '', }, { - label: 'Dal basso verso l\'alto', - value: 'anim_toBottom', + label: 'HeartBeat', + value: 'animate__heartBeat', }, { - label: 'Da sinistra verso Destra', - value: 'anim_toRight', + label: 'Jello', + value: 'animate__jello', }, + { + label: 'Pulse', + value: 'animate__pulse', + }, + { + label: 'slideIn Left', + value: 'animate__slideInLeft', + }, + { + label: 'slideIn Right', + value: 'animate__slideInRight', + }, + { + label: 'slideIn Up', + value: 'animate__slideInUp', + }, + { + label: 'slideIn Down', + value: 'animate__slideInDown', + }, + { + label: 'slideOut Left', + value: 'animate__slideOutLeft', + }, + { + label: 'slideOut Right', + value: 'animate__slideOutRight', + }, + { + label: 'slideOut Up', + value: 'animate__slideOutUp', + }, + { + label: 'slideOut Down', + value: 'animate__slideOutDown', + }, + { + label: 'zoomIn Left', + value: 'animate__zoomInLeft', + }, + { + label: 'zoomIn Right', + value: 'animate__zoomInRight', + }, + { + label: 'zoomIn Up', + value: 'animate__zoomInUp', + }, + { + label: 'zoomIn Down', + value: 'animate__zoomInDown', + }, + { + label: 'zoomOut Left', + value: 'animate__zoomOutLeft', + }, + { + label: 'zoomOut Right', + value: 'animate__zoomOutRight', + }, + { + label: 'zoomOut Up', + value: 'animate__zoomOutUp', + }, + { + label: 'zoomOut Down', + value: 'animate__zoomOutDown', + }, + { + label: 'FadeIn Left', + value: 'animate__fadeInLeft', + }, + { + label: 'FadeIn Right', + value: 'animate__fadeInRight', + }, + { + label: 'FadeIn Up', + value: 'animate__fadeInUp', + }, + { + label: 'FadeIn Up Big', + value: 'animate__fadeInUpBig', + }, + { + label: 'FadeIn Down', + value: 'animate__fadeInDown', + }, + { + label: 'FadeIn Down Big', + value: 'animate__fadeInDownBig', + }, + { + label: 'FadeOut Left', + value: 'animate__fadeOutLeft', + }, + { + label: 'FadeOut Right', + value: 'animate__fadeOutRight', + }, + { + label: 'FadeOut Up', + value: 'animate__fadeOutUp', + }, + { + label: 'FadeOut Down', + value: 'animate__fadeOutDown', + }, + { + label: 'bounceIn Left', + value: 'animate__bounceInLeft', + }, + { + label: 'bounceIn Right', + value: 'animate__bounceInRight', + }, + { + label: 'bounceIn Up', + value: 'animate__bounceInUp', + }, + { + label: 'bounceIn Down', + value: 'animate__bounceInDown', + }, + { + label: 'bounceOut Left', + value: 'animate__bounceOutLeft', + }, + { + label: 'bounceOut Right', + value: 'animate__bounceOutRight', + }, + { + label: 'bounceOut Up', + value: 'animate__bounceOutUp', + }, + { + label: 'bounceOut Down', + value: 'animate__bounceOutDown', + }, + { + label: 'backIn Left', + value: 'animate__backInLeft', + }, + { + label: 'backIn Right', + value: 'animate__backInRight', + }, + { + label: 'backIn Up', + value: 'animate__backInUp', + }, + { + label: 'backIn Down', + value: 'animate__backInDown', + }, + { + label: 'backOut Left', + value: 'animate__backOutLeft', + }, + { + label: 'backOut Right', + value: 'animate__backOutRight', + }, + { + label: 'backOut Up', + value: 'animate__backOutUp', + }, + { + label: 'backOut Down', + value: 'animate__backOutDown', + }, + { + label: 'lightSpeedIn Left', + value: 'animate__lightSpeedInLeft', + }, + { + label: 'lightSpeedIn Right', + value: 'animate__lightSpeedInRight', + }, + { + label: 'lightSpeedOut Left', + value: 'animate__lightSpeedOutLeft', + }, + { + label: 'lightSpeedOut Right', + value: 'animate__lightSpeedOutRight', + }, + + ], @@ -6900,6 +7138,18 @@ export const tools = { } }, + findFirstElemInCommon(arr1: ILabelValueStr[], arr2: string[]) { + for (let i = 0; i < arr1.length; i++) { + for (let j = 0; j < arr2.length; j++) { + if (arr1[i].value == arr2[j] && arr1[i].value !== '') { + return arr1[i].value + } + } + } + + return '' + } + // getLocale() { // if (navigator.languages && navigator.languages.length > 0) { // return navigator.languages[0] diff --git a/src/store/globalStore.ts b/src/store/globalStore.ts index 49b89fad..4d462cca 100644 --- a/src/store/globalStore.ts +++ b/src/store/globalStore.ts @@ -917,7 +917,7 @@ export const useGlobalStore = defineStore('GlobalStore', { const mypage = this.getPage(`/${path}`) // Controlla se l'ho giĆ  caricato - if (!!mypage && !!mypage.content) { + if (!!mypage && (!!mypage.content || mypage.loadFirst)) { return mypage }