1277 lines
38 KiB
Vue
Executable File
1277 lines
38 KiB
Vue
Executable File
<template>
|
|
<div>
|
|
<!-- CMyElem -->
|
|
<div
|
|
v-if="myel"
|
|
:class="
|
|
(editOn ? ` clEditDiv` : ``) +
|
|
`` +
|
|
getClass() +
|
|
(!myel.active ? ` clEditNotActive` : ``)
|
|
"
|
|
>
|
|
<div v-if="myel.type">
|
|
<q-btn
|
|
v-if="editOn"
|
|
class="btn-edit-floating"
|
|
rounded
|
|
dense
|
|
size="sm"
|
|
color="primary"
|
|
icon="fas fa-pencil-alt"
|
|
@click="clickOnElem"
|
|
>
|
|
</q-btn>
|
|
<div v-if="myel.type === shared_consts.ELEMTYPE.TEXT">
|
|
<transition
|
|
appear
|
|
enter-active-class="animated fadeIn"
|
|
leave-active-class="animated fadeOut"
|
|
>
|
|
<div
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
>
|
|
{{ myel.container }}
|
|
</div>
|
|
</transition>
|
|
</div>
|
|
<CCardCarouselComp
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CARD"
|
|
:myel="myel"
|
|
:edit-on="editOn"
|
|
:path="path"
|
|
:card-column-class="cardColumnClass()"
|
|
:card-width="myel.widthcard"
|
|
:card-height="myel.heightcarousel"
|
|
:card-img="myel.heightimg"
|
|
/>
|
|
<div v-if="myel.type === shared_consts.ELEMTYPE.MARGINI">
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
@click="clickOnElem"
|
|
:style="`margin: ` + myel.size"
|
|
>
|
|
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.TITLE"
|
|
class="myElemBase"
|
|
>
|
|
<div>
|
|
<div
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
@click="clickOnElem"
|
|
>
|
|
<CTitle
|
|
:imgbackground="myel.imgback"
|
|
:headtitle="myel.container"
|
|
:sizes="myel.size"
|
|
:styleadd="myel.styleadd"
|
|
>
|
|
</CTitle>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.RISOHOME"
|
|
class="myElemBase"
|
|
>
|
|
<HomeRiso />
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.PAGERIS"
|
|
class="myElemBase"
|
|
>
|
|
<PageRis />
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CMYCIRCUITS"
|
|
class="myElemBase"
|
|
>
|
|
<mycircuits />
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.RISOHOME_MODERN"
|
|
class="myElemBase"
|
|
>
|
|
<Riso_Home_Modern />
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.IMGTITLE"
|
|
class="myElemBase"
|
|
>
|
|
<div>
|
|
<div
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
@click="clickOnElem"
|
|
>
|
|
<CImgTitle
|
|
v-if="myel.image"
|
|
:src="tools.getImgFileByElem(myel, undefined, path)"
|
|
:title="myel.container"
|
|
:legendinside="myel.container2"
|
|
>
|
|
</CImgTitle>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.IMGPOSTER"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
@click="clickOnElem"
|
|
>
|
|
<CImgPoster
|
|
v-if="myel.image"
|
|
:src="tools.getImgFileByElem(myel, undefined, path)"
|
|
:title="myel.container"
|
|
:myheight="myel.heightimg"
|
|
:vertalign="myel.vertalign"
|
|
:speed="speedSafe"
|
|
:elemsText="myel.elemsText"
|
|
:logo="tools.getImgFileByFilename(myel, myel.img)"
|
|
:logoheight="myel.height ? myel.height.toString() : '100'"
|
|
:logowidth="myel.width ? myel.width.toString() : '100'"
|
|
:fit="myel.fit"
|
|
:anim="myel.anim"
|
|
>
|
|
</CImgPoster>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.HTML"
|
|
class="myElemBase"
|
|
>
|
|
<div>
|
|
<div
|
|
ref="htmlContainer"
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
@click="clickOnElem"
|
|
v-html="
|
|
tools.convertHTMLForElement(
|
|
myel.containerHtml,
|
|
myel.parambool2,
|
|
myel.container2
|
|
)
|
|
"
|
|
></div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.QRCODE"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
QRCODE:
|
|
</div>
|
|
<CQRCode
|
|
:read="myel.parambool"
|
|
:link="myel.container"
|
|
:textlink="myel.container2"
|
|
:imglogo="tools.getImgFileByElem(myel, undefined, path)"
|
|
></CQRCode>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE"
|
|
class="myElemBase"
|
|
>
|
|
<div class="text-center">
|
|
<div
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
@click="clickOnElem"
|
|
>
|
|
<q-img
|
|
:src="tools.getImgFileByElem(myel, undefined, path)"
|
|
:fit="myel.fit"
|
|
class="img"
|
|
:width="myel.widthimg ? myel.widthimg : undefined"
|
|
:height="myel.heightimg ? myel.heightimg : undefined"
|
|
></q-img>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGEUPLOAD"
|
|
class="myElemBase"
|
|
>
|
|
<div class="text-center">
|
|
<div
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
@click="clickOnElem"
|
|
>
|
|
<q-img
|
|
v-if="tools.getImgFileByElem(myel, undefined, path)"
|
|
:src="tools.getImgFileByElem(myel, undefined, path)"
|
|
:fit="myel.fit ? myel.fit : 'contain'"
|
|
class="img"
|
|
:width="myel.widthimg ? myel.widthimg : undefined"
|
|
:height="myel.heightimg ? myel.heightimg : undefined"
|
|
></q-img>
|
|
<q-img
|
|
v-else
|
|
src="images/noimg.png"
|
|
:fit="myel.fit ? myel.fit : 'contain'"
|
|
class="img"
|
|
:width="myel.widthimg ? myel.widthimg : undefined"
|
|
:height="myel.heightimg ? myel.heightimg : undefined"
|
|
></q-img>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
@click="clickOnElem"
|
|
>
|
|
<q-video
|
|
v-if="myel && !!myel.container"
|
|
:src="myel.container"
|
|
:ratio="myel.ratio"
|
|
>
|
|
</q-video>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.VIDEO_YOUTUBE"
|
|
class="myElemBase"
|
|
>
|
|
<CMyVideoYoutube
|
|
:url="myelem.container"
|
|
:title="myelem.container2 || ''"
|
|
:ratio="myelem.ratio || 16 / 9"
|
|
:privacyMode="myelem.privacyMode ?? true"
|
|
:thumbnailClickToPlay="myelem.thumbnailClickToPlay ?? true"
|
|
:autoplay="myelem.autoplay ?? false"
|
|
:controls="myelem.controls ?? true"
|
|
:mute="myelem.mute ?? false"
|
|
:loop="myelem.loop ?? false"
|
|
:start="myelem.start || 0"
|
|
:end="myelem.end || 0"
|
|
:rel="myelem.rel ?? false"
|
|
:modestBranding="myelem.modestBranding ?? true"
|
|
:playsinline="myelem.playsinline ?? true"
|
|
:ccLang="myelem.ccLang || ''"
|
|
:ccLoad="myelem.ccLoad ?? false"
|
|
/>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.IMAGE_GALLERY"
|
|
class="myElemBase"
|
|
>
|
|
<CMyImageGallery> </CMyImageGallery>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.HEADING">
|
|
<CMyHeading
|
|
:text="myel.container"
|
|
:level="myelem.number"
|
|
:color="myelem.color"
|
|
>
|
|
</CMyHeading>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.LIST">
|
|
<CMyList> </CMyList>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CODE">
|
|
<CMyCode> </CMyCode>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.DIVIDER">
|
|
<CMyDivider> </CMyDivider>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGE">
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
@click="clickOnElem"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
style="color: gray"
|
|
>
|
|
Pagina: {{ myel.container }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGEINTRO">
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
@click="clickOnElem"
|
|
>
|
|
<CMyPageIntro
|
|
:mypath="myel.container"
|
|
:maxheightimg="myel.heightimg"
|
|
:maxwidthimg="myel.widthimg"
|
|
:link="myel.link"
|
|
></CMyPageIntro>
|
|
</div>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IDISCIPLINE">
|
|
<CCardCarousel :myarr="getArrDisciplines()"> </CCardCarousel>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.OPENSTREETMAP">
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
@click="clickOnElem"
|
|
>
|
|
<div v-if="myel.container">
|
|
<!-- Da Fare -->
|
|
<COpenStreetMap
|
|
:imgmap="myel.container"
|
|
:urlmap="myel.container2"
|
|
:title="myel.container3"
|
|
:coordinates="myel.containerHtml"
|
|
:coord_big="myel.link"
|
|
>
|
|
</COpenStreetMap>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS">
|
|
<section
|
|
:class="
|
|
($q.dark.isActive ? `bg-black text-white` : `bg-white text-grey-10`) +
|
|
` padding_gallery text-center`
|
|
"
|
|
>
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
|
|
@click="clickOnElem"
|
|
>
|
|
<q-carousel
|
|
swipeable
|
|
animated
|
|
:autoplay="myel.container2 ? myel.container2 * 1000 : 8000"
|
|
v-model="slide2"
|
|
arrows
|
|
:fit="myel.fit"
|
|
:thumbnails="myel.parambool2"
|
|
infinite
|
|
:height="
|
|
myel.heightimg ? myel.heightimg.toString() : tools.getheightgallery()
|
|
"
|
|
>
|
|
<q-carousel-slide
|
|
v-for="(rec, index) in myel.list"
|
|
:key="index"
|
|
:name="index"
|
|
:img-src="
|
|
getsrcbyimg(
|
|
tools.getDirUpload() + `pages/` + path + `/` + rec.imagefile
|
|
)
|
|
"
|
|
:alt="rec.alt"
|
|
class="carousel_slide"
|
|
>
|
|
<div
|
|
v-if="myel.parambool"
|
|
class="absolute-bottom custom-caption"
|
|
style="margin-bottom: 70px"
|
|
>
|
|
<div class="text-h5">
|
|
<span class="text-h6 text-grey-1 shadow-max"
|
|
>{{ index + 1 }}.
|
|
</span>
|
|
<span
|
|
v-if="rec.alt"
|
|
class="text-h6 text-grey-2 shadow"
|
|
>{{ rec.alt }}</span
|
|
>
|
|
</div>
|
|
<div
|
|
class="text-subtitle1"
|
|
v-if="rec.description"
|
|
>
|
|
<span class="text-grey-4 shadow">{{ rec.description }}</span>
|
|
</div>
|
|
</div>
|
|
</q-carousel-slide>
|
|
</q-carousel>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_HOME">
|
|
<section>
|
|
<div class="landing">
|
|
<div class="landing__hero maxwidth1200 text-white">
|
|
<q-carousel
|
|
animated
|
|
:autoplay="animare"
|
|
swipeable
|
|
infinite
|
|
navigation
|
|
transition-next="slide-left"
|
|
transition-prev="slide-right"
|
|
v-model="slide"
|
|
:height="getheightgallery()"
|
|
width="100%"
|
|
>
|
|
<q-carousel-slide
|
|
v-for="(myrec, ind) in myel.list"
|
|
:key="ind"
|
|
:name="ind"
|
|
:img-src="getsrcbyimg(`/images/` + myrec.imagefile)"
|
|
>
|
|
<div class="landing__header"></div>
|
|
<div
|
|
class="landing__hero-content row justify-center q-gutter-xs clgutter"
|
|
>
|
|
<div class="row"> </div>
|
|
<div class="flex justify-end">
|
|
<div class="q-gutter-xs testo-banda clgutter">
|
|
<h1 class="text-h1 shadow-max">
|
|
{{ tools.getappname() }}
|
|
</h1>
|
|
<div class="text-subtitle1 shadow text-italic q-pl-sm">
|
|
{{ myel.container }}
|
|
</div>
|
|
<div class="text-subtitle1 shadow-max big text-italic q-pl-sm">
|
|
{{ myel.container2 }}
|
|
</div>
|
|
<div class="text-subtitle2 shadow text-italic q-pl-sm">
|
|
{{ myel.container3 }}
|
|
</div>
|
|
<div>
|
|
<br /><br />
|
|
<div
|
|
v-if="!tools.isLogged()"
|
|
style="margin: 5px; padding: 5px"
|
|
class="home"
|
|
>
|
|
<br /><br />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!--<div class="landing__arrow absolute-bottom text-center">
|
|
<i aria-hidden="true"
|
|
class="q-icon text-h2 text-white material-icons">expand_more</i>
|
|
</div>-->
|
|
</q-carousel-slide>
|
|
</q-carousel>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CALENDAR">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Calendario Eventi
|
|
</div>
|
|
<CEventsCalendar
|
|
:mysingleevent="null"
|
|
:showfirstN="myel.number || 3"
|
|
>
|
|
</CEventsCalendar>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.MAINVIEW"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CMainView
|
|
</div>
|
|
<CMainView></CMainView>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PROFILETUTORIAL">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CprofileCompletitionBanner
|
|
</div>
|
|
<CProfileCompletitionBanner />
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.REGISTRATION"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Registrazione
|
|
</div>
|
|
|
|
<div>
|
|
<CRegistration slide="start" />
|
|
</div>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.BUTTON">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
></div>
|
|
<div
|
|
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass() + ' q-ma-sm'"
|
|
@click="clickOnElem"
|
|
>
|
|
<q-btn
|
|
class="text-center"
|
|
v-if="myel.container"
|
|
type="a"
|
|
rounded
|
|
:label="myel.container"
|
|
size=""
|
|
:color="myel.color"
|
|
:text-color="myel.containerHtml"
|
|
:icon="myel.container2"
|
|
:href="myel.link"
|
|
:target="myel.container3"
|
|
>
|
|
</q-btn>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.DASHBOARD"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CDashboard
|
|
</div>
|
|
<CDashboard></CDashboard>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.DASHGROUP"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CDashGroup
|
|
</div>
|
|
<CDashGroup></CDashGroup>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.MOVEMENTS"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Lista Movimenti
|
|
</div>
|
|
<CMovements :showbuttolastmov="true"></CMovements>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CSENDRISTO"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Bottoni (Invia/Ricevi RIS) CSendRISTo
|
|
</div>
|
|
<CSendRISTo></CSendRISTo>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.GRID_ORIZ"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Visualizzatore Tabelle
|
|
</div>
|
|
<CGridOriz
|
|
:table="myel.container"
|
|
:tipovisu="myel.number"
|
|
:prop_search="myel.parambool"
|
|
:finder="myel.parambool2"
|
|
:showMap="myel.parambool3"
|
|
:heightcarousel="myel.heightcarousel"
|
|
:prop_modif="myel.parambool4"
|
|
></CGridOriz>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.SEARCHPRODUCT"
|
|
class="myElemBase"
|
|
>
|
|
<CSearchProduct
|
|
v-model="myel.catalogo"
|
|
table="products"
|
|
>
|
|
</CSearchProduct>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGLIST"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Cataloghi
|
|
</div>
|
|
<q-tabs
|
|
v-if="tools.isCollaboratore()"
|
|
v-model="tabcatalogo"
|
|
dense
|
|
class="bg-green text-white"
|
|
>
|
|
<q-tab
|
|
name="griglia"
|
|
icon="fas fa-eye"
|
|
label="Griglia"
|
|
>
|
|
</q-tab>
|
|
<!--<q-tab name="statistiche" icon="fas fa-chart-pie" label="Statistiche"> </q-tab>-->
|
|
<q-tab
|
|
name="lista"
|
|
icon="fas fa-list"
|
|
label="Lista"
|
|
>
|
|
</q-tab>
|
|
<q-tab
|
|
name="tutorial"
|
|
icon="fas fa-info"
|
|
label="Tutorial"
|
|
>
|
|
</q-tab>
|
|
</q-tabs>
|
|
<q-tab-panels
|
|
v-model="tabcatalogo"
|
|
animated
|
|
keep-alive
|
|
>
|
|
<q-tab-panel name="lista">
|
|
<CGridOriz
|
|
table="catalogs"
|
|
:tipovisu="costanti.VISUTABLE_TABLELIST"
|
|
:prop_search="true"
|
|
:finder="true"
|
|
:isCatalogoGenerale="myel.parambool3"
|
|
:showMap="false"
|
|
:prop_modif="tools.isAdmin()"
|
|
:enableExport="true"
|
|
></CGridOriz>
|
|
</q-tab-panel>
|
|
|
|
<q-tab-panel name="griglia">
|
|
<CCatalogList
|
|
:prop_search="myel.parambool"
|
|
:finder="myel.parambool2"
|
|
:heightcarousel="myel.heightcarousel"
|
|
:heightimg="myel.heightimg"
|
|
:widthimg="myel.widthimg"
|
|
:heightcard="myel.heightcard"
|
|
:widthcard="myel.widthcard"
|
|
:isCatalogoGenerale="myel.parambool3"
|
|
>
|
|
</CCatalogList>
|
|
</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="statistiche">
|
|
<div class="q-pa-md q-ma-sm text-center">
|
|
<CStatMacro></CStatMacro>
|
|
</div>
|
|
</q-tab-panel>
|
|
</q-tab-panels>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.STAT_PAGES"
|
|
class="myElemBase"
|
|
>
|
|
<CPageViewStats></CPageViewStats>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.RACCOLTE_CATALOGHI"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Raccolte Cataloghi
|
|
</div>
|
|
<q-tabs
|
|
v-if="tools.isCollaboratore()"
|
|
v-model="tabcatalogo"
|
|
dense
|
|
class="bg-green text-white"
|
|
>
|
|
<q-tab
|
|
name="griglia"
|
|
icon="fas fa-eye"
|
|
label="Griglia"
|
|
>
|
|
</q-tab>
|
|
<q-tab
|
|
name="lista"
|
|
icon="fas fa-list"
|
|
label="Lista"
|
|
>
|
|
</q-tab>
|
|
</q-tabs>
|
|
<q-tab-panels
|
|
v-model="tabcatalogo"
|
|
animated
|
|
keep-alive
|
|
>
|
|
<q-tab-panel name="lista">
|
|
<CGridOriz
|
|
table="raccoltacataloghis"
|
|
:tipovisu="costanti.VISUTABLE_TABLELIST"
|
|
:prop_search="true"
|
|
:finder="true"
|
|
:isCatalogoGenerale="myel.parambool3"
|
|
:showMap="false"
|
|
:prop_modif="tools.isAdmin()"
|
|
:enableExport="true"
|
|
></CGridOriz>
|
|
</q-tab-panel>
|
|
|
|
<q-tab-panel name="griglia">
|
|
<CRaccoltaCataloghi
|
|
:prop_search="myel.parambool"
|
|
:finder="myel.parambool2"
|
|
:heightcarousel="myel.heightcarousel"
|
|
:heightimg="myel.heightimg"
|
|
:widthimg="myel.widthimg"
|
|
:heightcard="myel.heightcard"
|
|
:widthcard="myel.widthcard"
|
|
:isCatalogoGenerale="myel.parambool3"
|
|
>
|
|
</CRaccoltaCataloghi>
|
|
</q-tab-panel>
|
|
</q-tab-panels>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.STATUSREG"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CStatusReg
|
|
</div>
|
|
<CStatusReg> </CStatusReg>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKIFISLOGGED"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CCheckIfIsLogged
|
|
</div>
|
|
<CCheckIfIsLogged :showalways="myel.container"></CCheckIfIsLogged>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.VISUVIDEOPROMOANDPDF"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Visu Video Promo and PDF
|
|
</div>
|
|
<CVisuVideoPromoAndPDF :showalways="myel.container"></CVisuVideoPromoAndPDF>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.INFO_VERSION"
|
|
class="myElemBase"
|
|
>
|
|
<div>Versione: {{ tools.getvers() }}</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.BOTT_CONDIVIDI"
|
|
class="myElemBase"
|
|
>
|
|
<div class="row justify-evenly items-center q-pa-sm q-ma-sm">
|
|
<q-btn
|
|
icon="fas fa-share"
|
|
text-color="blue"
|
|
type="a"
|
|
size="md"
|
|
color="yellow"
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
rounded
|
|
:label="$t('reg.link_reg_and_msg')"
|
|
@click="mostraInviti = true"
|
|
>
|
|
</q-btn>
|
|
</div>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.BOTT_CHAT_TERRITORIALE"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Bottone Chat Territoriale
|
|
</div>
|
|
<div class="row justify-evenly items-center">
|
|
<q-btn
|
|
v-if="tools.getLinkChatTerritoriale()"
|
|
icon="fab fa-telegram"
|
|
color="blue"
|
|
type="a"
|
|
size="md"
|
|
rounded
|
|
:label="
|
|
t('dashboard.link_gruppo_telegram', {
|
|
prov: tools.getProvincia(),
|
|
})
|
|
"
|
|
:href="tools.getLinkChatTerritoriale()"
|
|
target="__blank"
|
|
>
|
|
</q-btn>
|
|
</div>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECK_EMAIL">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Msg di Controllo Verifica Email
|
|
</div>
|
|
<div class="q-pa-xs q-gutter-md">
|
|
<div
|
|
v-if="tools.isLogged() && !tools.isVerified()"
|
|
class="text-verified"
|
|
>
|
|
{{ t('components.authentication.email_verification.link_sent') }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PRESENTAZIONE">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Pagina di Presentazione
|
|
</div>
|
|
<CPresentazione></CPresentazione>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.MYACTIVITIES"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Pagina Attività
|
|
</div>
|
|
<CMyActivities></CMyActivities>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.ECOMMERCE"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
PRODOTTI ECOMMERCE:
|
|
</div>
|
|
<CECommerce></CECommerce>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGO"
|
|
class="myElemBase"
|
|
>
|
|
<CCatalogo
|
|
v-model="myel.catalogo"
|
|
:idPage="idPage"
|
|
@updateCatalogo="updateCatalogoEmit(myel.catalogo)"
|
|
/>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.RACCOLTA"
|
|
class="myElemBase"
|
|
>
|
|
<CRaccolta
|
|
v-model="myel.catalogo"
|
|
:idPage="idPage"
|
|
@updateCatalogo="updateCatalogoEmit(myel.catalogo)"
|
|
/>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPA"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
MAPPA:
|
|
</div>
|
|
<!--<CMapMarker :coord_center="{lat: 47.41322, long: -1.219482}"
|
|
|
|
></CMapMarker>-->
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPAUTENTI"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
MAPPA UTENTI:
|
|
</div>
|
|
<CMapUsers></CMapUsers>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPAGETCOORDINATE"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
MAPPA COORDINATE:
|
|
</div>
|
|
<CMapGetCoordinates></CMapGetCoordinates>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.EDITADDRESSBYCOORD"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
EDIT ADDRESS BY COORD:
|
|
</div>
|
|
<CMapEditAddressByCoord
|
|
:editaddress="true"
|
|
v-model:model-value="coordaddr"
|
|
></CMapEditAddressByCoord>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.MAPPACOMUNI"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
MAPPA COMUNI:
|
|
</div>
|
|
<CMapComuni></CMapComuni>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.TOOLSAI"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
STRUMENTI AI:
|
|
</div>
|
|
<CAITools></CAITools>
|
|
</div>
|
|
<div
|
|
v-else-if="myel.type === shared_consts.ELEMTYPE.CHATBOT"
|
|
class="myElemBase"
|
|
>
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CHATBOT:
|
|
</div>
|
|
<ChatBot></ChatBot>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKAPPRUNNING">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CheckAppRunning
|
|
</div>
|
|
<CCheckAppRunning v-if="enablePwa" />
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PROFILE_COMPLETITION">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
CProfileCompletitionBanner
|
|
</div>
|
|
<CProfileCompletitionBanner :showAlsoIfSkipped="myel.parambool" />
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.NOTIFATTOP">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Notifiche in Cima
|
|
</div>
|
|
<CNotifAtTop></CNotifAtTop>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKTESTENV">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Check Sito di Test
|
|
</div>
|
|
<q-banner
|
|
v-if="tools.isTest() && false"
|
|
rounded
|
|
dense
|
|
class="bg-negative text-white"
|
|
color="primary q-title"
|
|
style="text-align: center"
|
|
>
|
|
<template v-slot:avatar>
|
|
<q-icon
|
|
name="fas fa-exclamation-triangle"
|
|
color="yellow"
|
|
size="xs"
|
|
/>
|
|
</template>
|
|
<span class="mybanner"> TEST !</span>
|
|
</q-banner>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CHECKNEWVERSION">
|
|
<div
|
|
v-if="editOn"
|
|
class="elemEdit"
|
|
>
|
|
Controllo Nuova Versione
|
|
</div>
|
|
<q-banner
|
|
v-if="isNewVersionAvailable && !nascondiBottone"
|
|
rounded
|
|
class="update-banner"
|
|
>
|
|
<template v-slot:avatar>
|
|
<q-icon
|
|
name="fas fa-sync-alt"
|
|
class="update-icon"
|
|
/>
|
|
</template>
|
|
|
|
<div class="update-content">
|
|
<div class="update-title">Aggiornamento Disponibile</div>
|
|
<div class="update-message">
|
|
<span v-if="$q.platform.is.ios">
|
|
Chiudi e riapri l'app per completare l'aggiornamento
|
|
</span>
|
|
<span v-else>
|
|
Aggiornamento in corso... Se dopo 1 minuto il messaggio persiste,
|
|
ricarica la pagina.
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Pulsante chiudi -->
|
|
<template v-slot:action>
|
|
<q-btn
|
|
flat
|
|
round
|
|
dense
|
|
icon="close"
|
|
@click="nascondiBottone = true"
|
|
class="q-ml-sm"
|
|
/>
|
|
</template>
|
|
</q-banner>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.BTN_REG">
|
|
<q-btn
|
|
rounded
|
|
size="md"
|
|
color="primary"
|
|
:to="`/registrati/${tools.getInvitante()}`"
|
|
:label="$t('reg.submit')"
|
|
>
|
|
</q-btn>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.BTN_REG_BYBOT">
|
|
<q-btn
|
|
type="a"
|
|
rounded
|
|
size="lg"
|
|
color="primary"
|
|
href="/bot"
|
|
:label="$t('reg.submit')"
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
>
|
|
</q-btn>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.MODIFICA_PROFILO">
|
|
<editprofile> </editprofile>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.BTN_LOGIN">
|
|
<q-btn
|
|
:class="
|
|
myel.class +
|
|
(editOn ? ` clEdit` : ``) +
|
|
getClass() +
|
|
` ` +
|
|
tools.getClassAnim(myel.anim)
|
|
"
|
|
rounded
|
|
size="lg"
|
|
color="primary"
|
|
@click="PagLogin"
|
|
>
|
|
{{ t('login.enter') }}
|
|
</q-btn>
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.FOOTER">
|
|
<LandingFooter />
|
|
</div>
|
|
<div v-else-if="myel.type === shared_consts.ELEMTYPE.PAGE_SECTION">
|
|
<FeaturesSection
|
|
:title="myel.container"
|
|
:subtitle="myel.container2"
|
|
:description="myel.container3"
|
|
:features="myel.features"
|
|
:isDark="myel.parambool2"
|
|
>
|
|
</FeaturesSection>
|
|
</div>
|
|
|
|
<div v-if="editOn">
|
|
<div class="q-ma-md"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<slot></slot>
|
|
</div>
|
|
|
|
<q-dialog
|
|
v-model="visushare"
|
|
transition-show="slide-up"
|
|
transition-hide="slide-down"
|
|
:maximized="$q.screen.lt.sm"
|
|
>
|
|
<CShareSocial
|
|
v-if="social && social.description"
|
|
:description="social.description"
|
|
:title="social.title"
|
|
:url="social.url"
|
|
>
|
|
</CShareSocial>
|
|
</q-dialog>
|
|
<q-dialog
|
|
v-model="mostraInviti"
|
|
maximized
|
|
>
|
|
<q-card
|
|
:style="{
|
|
minWidth: '350px',
|
|
maxWidth: $q.screen.lt.sm ? '100vw' : '800px',
|
|
}"
|
|
>
|
|
<!-- Header con bottone chiudi -->
|
|
<q-bar class="bg-primary text-white">
|
|
<q-space />
|
|
<q-btn
|
|
dense
|
|
flat
|
|
icon="close"
|
|
@click="mostraInviti = false"
|
|
/>
|
|
</q-bar>
|
|
|
|
<!-- Il tuo componente -->
|
|
<q-card-section class="q-pa-none">
|
|
<invita-amico
|
|
@invito-inviato="onInvitoInviato"
|
|
@telegram-click="onTelegramClick"
|
|
persistent
|
|
/>
|
|
</q-card-section>
|
|
</q-card>
|
|
</q-dialog>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts" src="./CMyElem.ts"></script>
|
|
<style lang="scss" scoped>
|
|
@import './CMyElem.scss';
|
|
</style>
|