2022-11-10 19:32:56 +01:00
|
|
|
<template>
|
|
|
|
|
<div>
|
2024-11-02 19:25:47 +01:00
|
|
|
<div v-if="mypathin && !!rec">
|
2025-05-29 18:23:02 +02:00
|
|
|
<q-inner-loading
|
|
|
|
|
id="spinner"
|
|
|
|
|
:showing="onloading"
|
|
|
|
|
>
|
|
|
|
|
<q-spinner-tail
|
|
|
|
|
color="primary"
|
|
|
|
|
size="4em"
|
|
|
|
|
>
|
|
|
|
|
</q-spinner-tail>
|
2024-11-02 19:25:47 +01:00
|
|
|
</q-inner-loading>
|
2022-11-18 18:54:30 +01:00
|
|
|
|
2024-11-02 19:25:47 +01:00
|
|
|
<div v-if="!onloading">
|
|
|
|
|
<q-toggle
|
|
|
|
|
v-if="tools.isManager()"
|
|
|
|
|
v-model="editOn"
|
|
|
|
|
dense
|
|
|
|
|
color="green"
|
|
|
|
|
size="sm"
|
|
|
|
|
@update:model-value="changeVisuDrawer(mypathin, editOn)"
|
|
|
|
|
icon="fas fa-pencil-alt"
|
|
|
|
|
>
|
|
|
|
|
</q-toggle>
|
2024-09-06 19:57:17 +02:00
|
|
|
|
2024-11-02 19:25:47 +01:00
|
|
|
<q-drawer
|
|
|
|
|
v-model="visuEditor"
|
2025-03-01 14:14:43 +01:00
|
|
|
v-if="selElem && editOn && !tools.isObjectEmpty(selElem)"
|
2024-11-02 19:25:47 +01:00
|
|
|
show-if-above
|
|
|
|
|
:breakpoint="350"
|
|
|
|
|
side="right"
|
|
|
|
|
:width="tools.isMobile() ? 350 : mywidthEditor"
|
|
|
|
|
elevated
|
|
|
|
|
style="transition: 'width 0.3s ease'"
|
2022-11-29 13:59:18 +01:00
|
|
|
>
|
2025-05-29 18:23:02 +02:00
|
|
|
<q-bar
|
|
|
|
|
dense
|
|
|
|
|
class="q-ma-xs bg-primary text-white"
|
|
|
|
|
>
|
2024-11-02 19:25:47 +01:00
|
|
|
<q-toolbar-title> Editor </q-toolbar-title>
|
|
|
|
|
<q-btn
|
|
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
size="md"
|
|
|
|
|
color="white"
|
|
|
|
|
icon="close"
|
|
|
|
|
@click="
|
|
|
|
|
visuEditor = false;
|
|
|
|
|
selElem = {};
|
|
|
|
|
"
|
|
|
|
|
></q-btn>
|
|
|
|
|
</q-bar>
|
2022-11-10 19:32:56 +01:00
|
|
|
|
2024-11-02 19:25:47 +01:00
|
|
|
<CMyEditElem
|
|
|
|
|
:myelem="selElem"
|
|
|
|
|
:editOn="true"
|
|
|
|
|
:path="rec.path"
|
2024-12-13 18:10:04 +01:00
|
|
|
:idPage="rec._id"
|
2024-11-02 19:25:47 +01:00
|
|
|
@selElemClick="selElemClick"
|
|
|
|
|
@deleteElem="deleteElem"
|
|
|
|
|
@toggleSize="toggleSize"
|
|
|
|
|
@dupPage="duplicatePage"
|
2024-12-13 18:10:04 +01:00
|
|
|
@expPage="showexportPage = !showexportPage"
|
2024-12-17 17:56:03 +01:00
|
|
|
@impPage="showimportPage = !showimportPage"
|
2024-11-02 19:25:47 +01:00
|
|
|
>
|
|
|
|
|
</CMyEditElem>
|
|
|
|
|
</q-drawer>
|
2022-11-10 19:32:56 +01:00
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
2025-05-29 19:19:35 +02:00
|
|
|
:class="{ 'q-gutter-xs': !hideHeader }"
|
|
|
|
|
:style="[{'margin-left': hideHeader ? 0 : 1 + 'px', 'margin-right': hideHeader ? 0 : 1 + 'px' }]"
|
2025-05-29 18:23:02 +02:00
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
v-if="!!rec.img1"
|
|
|
|
|
class="text-center"
|
|
|
|
|
>
|
|
|
|
|
<q-img
|
|
|
|
|
:src="`` + rec.img1"
|
|
|
|
|
class="img"
|
|
|
|
|
></q-img>
|
2024-11-02 19:25:47 +01:00
|
|
|
</div>
|
2022-11-10 19:32:56 +01:00
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
|
|
|
|
v-if="!!rec.content"
|
|
|
|
|
v-html="rec.content"
|
|
|
|
|
></div>
|
|
|
|
|
<q-video
|
|
|
|
|
v-if="!!rec.video1"
|
|
|
|
|
:src="rec.video1"
|
|
|
|
|
:ratio="rec.ratio1"
|
|
|
|
|
>
|
2024-11-02 19:25:47 +01:00
|
|
|
</q-video>
|
2022-11-10 19:32:56 +01:00
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
|
|
|
|
v-if="!!rec.img2"
|
|
|
|
|
class="text-center"
|
|
|
|
|
>
|
|
|
|
|
<q-img
|
|
|
|
|
:src="`` + rec.img2"
|
|
|
|
|
class="img"
|
|
|
|
|
></q-img>
|
2024-11-02 19:25:47 +01:00
|
|
|
</div>
|
2022-11-10 19:32:56 +01:00
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
|
|
|
|
v-if="!!rec.content2"
|
|
|
|
|
v-html="rec.content2"
|
|
|
|
|
></div>
|
2024-11-02 19:25:47 +01:00
|
|
|
<q-video
|
|
|
|
|
v-if="!!rec.video2"
|
|
|
|
|
:src="rec.video2"
|
|
|
|
|
:ratio="rec.ratio2"
|
|
|
|
|
></q-video>
|
2022-11-10 19:32:56 +01:00
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
|
|
|
|
v-if="!!rec.img3"
|
|
|
|
|
class="text-center"
|
|
|
|
|
>
|
|
|
|
|
<q-img
|
|
|
|
|
:src="`` + rec.img2"
|
|
|
|
|
class="img"
|
|
|
|
|
></q-img>
|
2024-11-02 19:25:47 +01:00
|
|
|
</div>
|
|
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
|
|
|
|
v-if="!!rec.content3"
|
|
|
|
|
v-html="rec.content3"
|
|
|
|
|
></div>
|
2024-11-02 19:25:47 +01:00
|
|
|
<q-video
|
|
|
|
|
v-if="!!rec.video3"
|
|
|
|
|
:src="rec.video3"
|
|
|
|
|
:ratio="rec.ratio3"
|
|
|
|
|
></q-video>
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
|
|
|
|
v-if="!!rec.content4"
|
|
|
|
|
v-html="rec.content4"
|
|
|
|
|
></div>
|
2022-11-10 19:32:56 +01:00
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<div
|
|
|
|
|
v-for="myelem in myelems"
|
|
|
|
|
:key="myelem._id"
|
|
|
|
|
>
|
2024-11-02 19:25:47 +01:00
|
|
|
<div>
|
2025-05-29 18:23:02 +02:00
|
|
|
<transition
|
|
|
|
|
:duration="1000"
|
|
|
|
|
appear
|
|
|
|
|
>
|
2024-11-02 19:25:47 +01:00
|
|
|
<CTitleBanner
|
2025-05-29 18:23:02 +02:00
|
|
|
v-if="(myelem.active || editOn) && !!rec.path && myelem.titleBanner"
|
2024-11-02 19:25:47 +01:00
|
|
|
:class="`q-pa-xs `"
|
|
|
|
|
:title="myelem.titleBanner"
|
|
|
|
|
bgcolor="bg-primary"
|
|
|
|
|
:clcolor="myelem.color ? `` : `text-white`"
|
2025-05-29 18:23:02 +02:00
|
|
|
:mystyle="myelem.color ? `color: ${myelem.color} !important;` : ``"
|
2024-11-02 19:25:47 +01:00
|
|
|
:myclass="myelem.classBanner"
|
|
|
|
|
:canopen="true"
|
|
|
|
|
>
|
|
|
|
|
<CMyElem
|
|
|
|
|
:myelem="myelem"
|
2025-02-10 22:48:53 +01:00
|
|
|
:idPage="rec._id"
|
2024-11-02 19:25:47 +01:00
|
|
|
:editOn="editOn"
|
|
|
|
|
:addOn="addOn"
|
|
|
|
|
:path="!!rec.path ? rec.path : ''"
|
|
|
|
|
:selElem="selElem"
|
|
|
|
|
@selElemClick="selElemClick"
|
|
|
|
|
>
|
|
|
|
|
</CMyElem>
|
|
|
|
|
</CTitleBanner>
|
2024-09-26 02:14:50 +02:00
|
|
|
<CMyElem
|
2024-11-02 19:25:47 +01:00
|
|
|
v-else-if="(myelem.active || editOn) && !!rec.path"
|
2024-09-26 02:14:50 +02:00
|
|
|
:myelem="myelem"
|
|
|
|
|
:editOn="editOn"
|
|
|
|
|
:addOn="addOn"
|
2025-02-10 22:48:53 +01:00
|
|
|
:idPage="rec._id"
|
2024-09-26 02:14:50 +02:00
|
|
|
:path="!!rec.path ? rec.path : ''"
|
|
|
|
|
:selElem="selElem"
|
|
|
|
|
@selElemClick="selElemClick"
|
|
|
|
|
>
|
|
|
|
|
</CMyElem>
|
2024-11-02 19:25:47 +01:00
|
|
|
</transition>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-if="myelem.type === shared_consts.ELEMTYPE.PAGE">
|
|
|
|
|
<CMyPageElem2 :mypath="myelem.container"> </CMyPageElem2>
|
|
|
|
|
</div>
|
2022-11-20 10:21:02 +01:00
|
|
|
</div>
|
2024-09-13 19:42:55 +02:00
|
|
|
|
2024-11-02 19:25:47 +01:00
|
|
|
<div v-if="myelems.length === 0">
|
|
|
|
|
<CMyElem
|
|
|
|
|
v-if="editOn && !!rec.path"
|
|
|
|
|
:myelem="myelemVoid"
|
|
|
|
|
:editOn="editOn"
|
|
|
|
|
:addOn="addOn"
|
2025-02-10 22:48:53 +01:00
|
|
|
:idPage="rec._id"
|
2024-11-02 19:25:47 +01:00
|
|
|
:selElem="selElem"
|
|
|
|
|
:path="rec.path"
|
|
|
|
|
@selElemClick="selElemClick"
|
|
|
|
|
>
|
|
|
|
|
</CMyElem>
|
|
|
|
|
</div>
|
2022-11-11 18:16:28 +01:00
|
|
|
</div>
|
2024-11-02 19:25:47 +01:00
|
|
|
<LandingFooter v-if="rec.showFooter"></LandingFooter>
|
2022-11-10 19:32:56 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div v-else>
|
|
|
|
|
<div v-if="!!title">
|
|
|
|
|
<CTitle
|
2022-11-13 22:39:25 +01:00
|
|
|
v-if="imgbackground"
|
|
|
|
|
:imgbackground="imgbackground"
|
|
|
|
|
:headtitle="title"
|
|
|
|
|
:sizes="sizes"
|
|
|
|
|
:styleadd="styleadd"
|
|
|
|
|
></CTitle>
|
2022-11-10 19:32:56 +01:00
|
|
|
<div v-if="!imgbackground">
|
2025-05-29 18:23:02 +02:00
|
|
|
<CImgTitle
|
|
|
|
|
v-if="img"
|
|
|
|
|
:src="img"
|
|
|
|
|
:title="title"
|
|
|
|
|
>
|
|
|
|
|
</CImgTitle>
|
2022-11-10 19:32:56 +01:00
|
|
|
</div>
|
|
|
|
|
<slot></slot>
|
2024-09-06 19:57:17 +02:00
|
|
|
<div v-if="!nofooter"></div>
|
2022-11-10 19:32:56 +01:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-12-13 18:10:04 +01:00
|
|
|
|
|
|
|
|
<q-dialog v-model="showexportPage">
|
|
|
|
|
<q-card class="dialog_card">
|
|
|
|
|
<q-toolbar class="bg-primary text-white">
|
2025-03-01 14:14:43 +01:00
|
|
|
<q-toolbar-title> Esporta Pagina </q-toolbar-title>
|
2025-05-29 18:23:02 +02:00
|
|
|
<q-btn
|
|
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
color="white"
|
|
|
|
|
icon="close"
|
|
|
|
|
v-close-popup
|
|
|
|
|
></q-btn>
|
2024-12-13 18:10:04 +01:00
|
|
|
</q-toolbar>
|
|
|
|
|
<q-card-section class="q-pa-xs inset-shadow">
|
2025-03-01 14:14:43 +01:00
|
|
|
<br />
|
|
|
|
|
<CExportImportPage
|
|
|
|
|
:idPage="rec._id"
|
|
|
|
|
:nomefileprop="`esporta_${rec.path}.json`"
|
|
|
|
|
:esporta="true"
|
|
|
|
|
>
|
|
|
|
|
</CExportImportPage>
|
|
|
|
|
<br />
|
2024-12-17 17:56:03 +01:00
|
|
|
</q-card-section>
|
|
|
|
|
</q-card>
|
|
|
|
|
</q-dialog>
|
|
|
|
|
<q-dialog v-model="showimportPage">
|
|
|
|
|
<q-card class="dialog_card">
|
|
|
|
|
<q-toolbar class="bg-primary text-white">
|
2025-03-01 14:14:43 +01:00
|
|
|
<q-toolbar-title> Esporta Pagina </q-toolbar-title>
|
2025-05-29 18:23:02 +02:00
|
|
|
<q-btn
|
|
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
color="white"
|
|
|
|
|
icon="close"
|
|
|
|
|
v-close-popup
|
|
|
|
|
></q-btn>
|
2024-12-17 17:56:03 +01:00
|
|
|
</q-toolbar>
|
|
|
|
|
<q-card-section class="q-pa-xs inset-shadow">
|
2025-03-01 14:14:43 +01:00
|
|
|
<br />
|
|
|
|
|
<CExportImportPage
|
|
|
|
|
:idPage="rec._id"
|
|
|
|
|
:nomefileprop="`esporta_${rec.path}.json`"
|
|
|
|
|
>
|
|
|
|
|
</CExportImportPage>
|
|
|
|
|
<br />
|
2024-12-13 18:10:04 +01:00
|
|
|
</q-card-section>
|
|
|
|
|
</q-card>
|
|
|
|
|
</q-dialog>
|
2022-11-10 19:32:56 +01:00
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
2025-05-29 18:23:02 +02:00
|
|
|
<script lang="ts" src="./CMyPageElem.ts"></script>
|
2022-11-10 19:32:56 +01:00
|
|
|
<style lang="scss" scoped>
|
2025-05-29 18:23:02 +02:00
|
|
|
@import './CMyPageElem.scss';
|
2022-11-10 19:32:56 +01:00
|
|
|
</style>
|