Files
myprojplanet_vite/src/components/CMyPageElem/CMyPageElem.vue

280 lines
7.5 KiB
Vue
Raw Normal View History

2022-11-10 19:32:56 +01:00
<template>
<div>
2024-11-02 19:25:47 +01:00
<div v-if="mypathin && !!rec">
<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-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
>
<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"
:idPage="rec._id"
2024-11-02 19:25:47 +01:00
@selElemClick="selElemClick"
@deleteElem="deleteElem"
@toggleSize="toggleSize"
@dupPage="duplicatePage"
@expPage="showexportPage = !showexportPage"
@impPage="showimportPage = !showimportPage"
2024-11-02 19:25:47 +01:00
>
</CMyEditElem>
</q-drawer>
2022-11-10 19:32:56 +01:00
<div
:class="{ 'q-gutter-xs': !hideHeader }"
:style="[{'margin-left': hideHeader ? 0 : 1 + 'px', 'margin-right': hideHeader ? 0 : 1 + 'px' }]"
>
<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
<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
<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
<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
<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>
<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>
<div
v-if="!!rec.content4"
v-html="rec.content4"
></div>
2022-11-10 19:32:56 +01:00
<div
v-for="myelem in myelems"
:key="myelem._id"
>
2024-11-02 19:25:47 +01:00
<div>
<transition
:duration="1000"
appear
>
2024-11-02 19:25:47 +01:00
<CTitleBanner
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`"
:mystyle="myelem.color ? `color: ${myelem.color} !important;` : ``"
2024-11-02 19:25:47 +01:00
:myclass="myelem.classBanner"
:canopen="true"
>
<CMyElem
:myelem="myelem"
: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>
<CMyElem
2024-11-02 19:25:47 +01:00
v-else-if="(myelem.active || editOn) && !!rec.path"
:myelem="myelem"
:editOn="editOn"
:addOn="addOn"
:idPage="rec._id"
: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">&nbsp;</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"
: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">
<CImgTitle
v-if="img"
:src="img"
:title="title"
>
</CImgTitle>
2022-11-10 19:32:56 +01:00
</div>
<slot></slot>
<div v-if="!nofooter"></div>
2022-11-10 19:32:56 +01:00
</div>
</div>
<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>
<q-btn
flat
round
color="white"
icon="close"
v-close-popup
></q-btn>
</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 />
</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>
<q-btn
flat
round
color="white"
icon="close"
v-close-popup
></q-btn>
</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 />
</q-card-section>
</q-card>
</q-dialog>
2022-11-10 19:32:56 +01:00
</div>
</template>
<script lang="ts" src="./CMyPageElem.ts"></script>
2022-11-10 19:32:56 +01:00
<style lang="scss" scoped>
@import './CMyPageElem.scss';
2022-11-10 19:32:56 +01:00
</style>