2021-09-16 21:08:02 +02:00
|
|
|
<template>
|
|
|
|
|
<!--<div class="q-pa-md items-start " style="display: inline-flex; width: 800px;"> -->
|
2022-02-10 23:31:18 +01:00
|
|
|
|
2021-10-28 00:37:48 +02:00
|
|
|
<div v-if="!edit">
|
2022-02-17 00:44:52 +01:00
|
|
|
<div class="q-pa-xs">
|
2022-02-15 19:01:10 +01:00
|
|
|
<q-card v-if="isListImgValid" :class="getclass()" @click="apri">
|
2021-10-28 00:37:48 +02:00
|
|
|
<div v-for="(mygallery, index) in getlistimages()" :key="index">
|
|
|
|
|
<div v-if="index === 0">
|
|
|
|
|
<q-img
|
2024-09-17 17:38:57 +02:00
|
|
|
:src="tools.getsrcimg(mygallery, getrealdirectory())"
|
|
|
|
|
:class="getclimg()"
|
|
|
|
|
:alt="mygallery.alt"
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
v-if="getnumimages() > 1"
|
|
|
|
|
class="absolute-bottom text-shadow no-padding"
|
|
|
|
|
>
|
2021-11-23 15:59:26 +01:00
|
|
|
({{ getnumimages() }})
|
2021-10-28 00:37:48 +02:00
|
|
|
</div>
|
|
|
|
|
</q-img>
|
2021-09-16 21:08:02 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2021-10-28 00:37:48 +02:00
|
|
|
</q-card>
|
2022-02-15 19:01:10 +01:00
|
|
|
<div v-else-if="!isInModif && !isListImgValid && imagebak">
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-card
|
|
|
|
|
v-if="imagebak !== costanti.NESSUN_IMMAGINE"
|
|
|
|
|
:class="getclass()"
|
|
|
|
|
@click="ImgFullScreen(mygallery)"
|
|
|
|
|
>
|
|
|
|
|
<q-img :src="imagebak" :class="getclimg()"> </q-img>
|
2022-02-10 23:31:18 +01:00
|
|
|
</q-card>
|
|
|
|
|
</div>
|
2022-02-15 19:01:10 +01:00
|
|
|
<div v-else>
|
|
|
|
|
<q-card :class="getclass()" @click="apri">
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-img src="images/noimg.png" :class="getclimg()" alt="no image">
|
2022-02-15 19:01:10 +01:00
|
|
|
</q-img>
|
|
|
|
|
</q-card>
|
|
|
|
|
</div>
|
2022-02-10 23:31:18 +01:00
|
|
|
<q-btn
|
|
|
|
|
v-if="isInModif"
|
2024-09-17 17:38:57 +02:00
|
|
|
color="primary"
|
|
|
|
|
@click="apri"
|
2022-02-17 17:43:27 +01:00
|
|
|
icon="fas fa-file-upload"
|
2024-09-17 17:38:57 +02:00
|
|
|
:label="$t('gallery.load_image')"
|
|
|
|
|
>
|
2022-02-10 23:31:18 +01:00
|
|
|
</q-btn>
|
2021-09-16 21:08:02 +02:00
|
|
|
</div>
|
2021-10-28 00:37:48 +02:00
|
|
|
</div>
|
|
|
|
|
<div v-else>
|
2022-02-15 19:01:10 +01:00
|
|
|
<div v-if="!isListImgValid">
|
2021-11-22 18:28:45 +01:00
|
|
|
<q-btn
|
2024-09-17 17:38:57 +02:00
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
color="blue"
|
|
|
|
|
icon="fas fa-tools"
|
|
|
|
|
size="md"
|
|
|
|
|
@click="apri"
|
|
|
|
|
></q-btn>
|
2021-11-22 18:28:45 +01:00
|
|
|
</div>
|
|
|
|
|
<div v-else>
|
2024-09-17 17:38:57 +02:00
|
|
|
<div class="row">
|
2021-11-22 18:28:45 +01:00
|
|
|
<!--<q-draggable-rows
|
|
|
|
|
v-model="order">-->
|
2021-10-28 00:37:48 +02:00
|
|
|
|
2024-09-17 17:38:57 +02:00
|
|
|
<div v-for="(mygallery, index) in getlistimages()" :key="index">
|
2021-11-22 18:28:45 +01:00
|
|
|
<div
|
|
|
|
|
class="q-pa-sm q-gutter-sm"
|
|
|
|
|
@dragenter="onDragEnter"
|
|
|
|
|
@dragleave="onDragLeave"
|
2024-09-17 17:38:57 +02:00
|
|
|
@dragover="onDragOver"
|
|
|
|
|
>
|
2021-11-22 18:28:45 +01:00
|
|
|
<q-card
|
2024-09-17 17:38:57 +02:00
|
|
|
:id="mygallery._id"
|
|
|
|
|
:class="getclass()"
|
2021-12-11 22:12:44 +01:00
|
|
|
:draggable="canModify"
|
2021-11-22 18:28:45 +01:00
|
|
|
@dragstart="onDragStart"
|
|
|
|
|
@drop="onDrop"
|
|
|
|
|
>
|
|
|
|
|
<q-img
|
2024-09-17 17:38:57 +02:00
|
|
|
:src="tools.getsrcimg(mygallery, getrealdirectory())"
|
2021-11-22 18:28:45 +01:00
|
|
|
:class="getclimg()"
|
2024-09-17 17:38:57 +02:00
|
|
|
:alt="mygallery.alt"
|
|
|
|
|
>
|
2021-11-22 18:28:45 +01:00
|
|
|
<div class="absolute-bottom text-shadow">
|
|
|
|
|
<!-- <div class="text-h6 text-trans">{{ mygallery.description }} </div> -->
|
2024-09-17 17:38:57 +02:00
|
|
|
<div class="text-subtitle-carica text-trans">
|
|
|
|
|
{{ mygallery.description }}
|
|
|
|
|
</div>
|
2021-11-22 18:28:45 +01:00
|
|
|
</div>
|
|
|
|
|
</q-img>
|
|
|
|
|
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-field v-if="canModify" stack-label dense label="Nome File">
|
2021-11-22 18:28:45 +01:00
|
|
|
<template v-slot:control>
|
2024-09-17 17:38:57 +02:00
|
|
|
<div class="self-center full-width no-outline" tabindex="0">
|
|
|
|
|
{{ mygallery.imagefile }}
|
|
|
|
|
</div>
|
2021-11-22 18:28:45 +01:00
|
|
|
</template>
|
|
|
|
|
</q-field>
|
|
|
|
|
|
|
|
|
|
<q-input
|
2022-02-10 23:31:18 +01:00
|
|
|
v-if="canModify"
|
2021-11-22 18:28:45 +01:00
|
|
|
v-model="mygallery.description"
|
|
|
|
|
dense
|
|
|
|
|
:label="$t('proj.longdescr')"
|
|
|
|
|
@keyup.enter.stop
|
|
|
|
|
@update:model-value="save"
|
|
|
|
|
debounce="1000"
|
2024-09-17 17:38:57 +02:00
|
|
|
autofocus
|
|
|
|
|
>
|
2021-11-22 18:28:45 +01:00
|
|
|
</q-input>
|
|
|
|
|
|
|
|
|
|
<q-card-actions align="center">
|
|
|
|
|
<q-btn
|
2021-12-11 22:12:44 +01:00
|
|
|
v-if="canModify"
|
2024-09-17 17:38:57 +02:00
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
color="blue"
|
|
|
|
|
icon="fas fa-copy"
|
|
|
|
|
size="sm"
|
|
|
|
|
@click="copytoclipboard(mygallery)"
|
|
|
|
|
></q-btn>
|
2021-11-22 18:28:45 +01:00
|
|
|
<q-btn
|
2021-12-11 22:12:44 +01:00
|
|
|
v-if="canModify"
|
2024-09-17 17:38:57 +02:00
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
color="red"
|
|
|
|
|
icon="fas fa-trash-alt"
|
|
|
|
|
size="sm"
|
|
|
|
|
@click="deleteFile(mygallery)"
|
|
|
|
|
></q-btn>
|
2021-11-22 18:28:45 +01:00
|
|
|
</q-card-actions>
|
|
|
|
|
</q-card>
|
|
|
|
|
</div>
|
2021-09-16 21:08:02 +02:00
|
|
|
</div>
|
2021-11-22 18:28:45 +01:00
|
|
|
<div class="q-pa-sm">
|
2024-09-17 17:38:57 +02:00
|
|
|
<div
|
|
|
|
|
v-if="edit"
|
|
|
|
|
class="q-gutter-sm"
|
|
|
|
|
style="max-height: 200px; width: 208px"
|
|
|
|
|
>
|
2021-11-22 18:28:45 +01:00
|
|
|
<q-uploader
|
2024-09-17 17:38:57 +02:00
|
|
|
:label="
|
|
|
|
|
single &&
|
|
|
|
|
gallerylist.length > 0 &&
|
|
|
|
|
gallerylist[0].imagefile !== ''
|
|
|
|
|
? 'Sostituisci Immagine'
|
|
|
|
|
: 'Aggiungi Immagine'
|
|
|
|
|
"
|
2023-04-17 00:11:45 +02:00
|
|
|
accept="image/*"
|
2021-11-22 18:28:45 +01:00
|
|
|
:url="getUrl()"
|
|
|
|
|
:headers="tools.getheaders()"
|
2022-01-12 00:38:31 +01:00
|
|
|
:max-file-size="3000000"
|
2024-03-02 22:53:35 +01:00
|
|
|
:multiple="!single"
|
2021-11-22 18:28:45 +01:00
|
|
|
auto-upload
|
|
|
|
|
hide-upload-btn
|
|
|
|
|
no-thumbnails
|
|
|
|
|
@uploaded="uploaded"
|
2022-01-23 23:25:19 +01:00
|
|
|
@rejected="onRejected"
|
2021-11-22 18:28:45 +01:00
|
|
|
style="width: 208px"
|
|
|
|
|
></q-uploader>
|
|
|
|
|
</div>
|
2021-09-16 21:08:02 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2021-10-28 00:37:48 +02:00
|
|
|
<q-dialog
|
|
|
|
|
v-model="displayGall"
|
|
|
|
|
persistent
|
|
|
|
|
:maximized="maximizedToggle"
|
|
|
|
|
transition-show="slide-up"
|
|
|
|
|
transition-hide="slide-down"
|
|
|
|
|
>
|
|
|
|
|
<q-card>
|
|
|
|
|
<q-bar class="bg-primary text-white">
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-space />
|
2021-10-28 00:37:48 +02:00
|
|
|
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-btn
|
|
|
|
|
dense
|
|
|
|
|
flat
|
|
|
|
|
icon="minimize"
|
|
|
|
|
@click="maximizedToggle = false"
|
|
|
|
|
:disable="!maximizedToggle"
|
|
|
|
|
>
|
|
|
|
|
<q-tooltip
|
|
|
|
|
v-if="maximizedToggle"
|
|
|
|
|
:class="
|
|
|
|
|
($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`
|
|
|
|
|
"
|
|
|
|
|
>Minimize</q-tooltip
|
|
|
|
|
>
|
2021-10-28 00:37:48 +02:00
|
|
|
</q-btn>
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-btn
|
|
|
|
|
dense
|
|
|
|
|
flat
|
|
|
|
|
icon="crop_square"
|
|
|
|
|
@click="maximizedToggle = true"
|
|
|
|
|
:disable="maximizedToggle"
|
|
|
|
|
>
|
|
|
|
|
<q-tooltip
|
|
|
|
|
v-if="!maximizedToggle"
|
|
|
|
|
:class="
|
|
|
|
|
($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`
|
|
|
|
|
"
|
|
|
|
|
>Maximize</q-tooltip
|
|
|
|
|
>
|
2021-10-28 00:37:48 +02:00
|
|
|
</q-btn>
|
2021-11-22 18:28:45 +01:00
|
|
|
<q-btn dense flat icon="close" v-close-popup>
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-tooltip
|
|
|
|
|
:class="
|
|
|
|
|
($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`
|
|
|
|
|
"
|
|
|
|
|
>{{ t('dialog.close') }}</q-tooltip
|
|
|
|
|
>
|
2021-10-28 00:37:48 +02:00
|
|
|
</q-btn>
|
|
|
|
|
</q-bar>
|
|
|
|
|
|
|
|
|
|
<q-card-section>
|
|
|
|
|
<div class="text-h6">{{ title }}</div>
|
|
|
|
|
</q-card-section>
|
|
|
|
|
|
|
|
|
|
<q-card-section class="q-pt-none">
|
2024-09-17 17:38:57 +02:00
|
|
|
<div class="row">
|
2021-10-28 00:37:48 +02:00
|
|
|
<div v-for="(mygallery, index) in getlistimages()" :key="index">
|
|
|
|
|
<div
|
2021-11-23 15:59:26 +01:00
|
|
|
class="q-pa-sm barwidth"
|
2021-10-28 00:37:48 +02:00
|
|
|
@dragenter="onDragEnter"
|
|
|
|
|
@dragleave="onDragLeave"
|
2021-11-23 15:59:26 +01:00
|
|
|
@dragover="onDragOver"
|
|
|
|
|
>
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-bar class="bg-primary text-white">
|
|
|
|
|
<q-btn flat round dense icon="menu" class="q-mr-sm" />
|
2021-11-23 15:59:26 +01:00
|
|
|
<q-btn
|
2021-12-11 22:12:44 +01:00
|
|
|
v-if="canModify"
|
2024-09-17 17:38:57 +02:00
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
icon="fas fa-copy"
|
|
|
|
|
size="sm"
|
|
|
|
|
@click="copytoclipboard(mygallery)"
|
|
|
|
|
></q-btn>
|
|
|
|
|
<div>Foto {{ index + 1 }}</div>
|
2021-11-23 15:59:26 +01:00
|
|
|
<q-space></q-space>
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-btn
|
|
|
|
|
v-if="canModify"
|
|
|
|
|
flat
|
|
|
|
|
round
|
|
|
|
|
color="red"
|
|
|
|
|
icon="fas fa-trash-alt"
|
|
|
|
|
@click="deleteFile(mygallery)"
|
|
|
|
|
></q-btn>
|
2021-11-23 15:59:26 +01:00
|
|
|
</q-bar>
|
2021-10-28 00:37:48 +02:00
|
|
|
|
|
|
|
|
<q-card
|
2024-09-17 17:38:57 +02:00
|
|
|
:id="mygallery._id"
|
|
|
|
|
:class="getclass()"
|
2021-11-23 15:59:26 +01:00
|
|
|
:data-ind="index"
|
2021-12-11 22:12:44 +01:00
|
|
|
:draggable="canModify"
|
2021-10-28 00:37:48 +02:00
|
|
|
@dragstart="onDragStart"
|
|
|
|
|
@drop="onDrop"
|
|
|
|
|
>
|
|
|
|
|
<q-img
|
2024-09-17 17:38:57 +02:00
|
|
|
:src="tools.getsrcimg(mygallery, getrealdirectory())"
|
2021-10-28 00:37:48 +02:00
|
|
|
:class="getclimg()"
|
2021-12-11 22:12:44 +01:00
|
|
|
@click="ImgFullScreen(mygallery)"
|
2024-09-17 17:38:57 +02:00
|
|
|
:alt="mygallery.alt"
|
|
|
|
|
>
|
|
|
|
|
<div
|
|
|
|
|
v-if="mygallery.description"
|
|
|
|
|
class="absolute-bottom text-shadow"
|
|
|
|
|
>
|
2021-10-28 00:37:48 +02:00
|
|
|
<!-- <div class="text-h6 text-trans">{{ mygallery.description }} </div> -->
|
2024-09-17 17:38:57 +02:00
|
|
|
<div class="text-subtitle-carica text-trans">
|
|
|
|
|
{{ mygallery.description }}
|
|
|
|
|
</div>
|
2021-10-28 00:37:48 +02:00
|
|
|
</div>
|
|
|
|
|
</q-img>
|
|
|
|
|
<q-card-section>
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-field v-if="canModify" stack-label dense label="Nome File">
|
2021-10-28 00:37:48 +02:00
|
|
|
<template v-slot:control>
|
2024-09-17 17:38:57 +02:00
|
|
|
<div
|
|
|
|
|
class="self-center full-width no-outline"
|
|
|
|
|
tabindex="0"
|
|
|
|
|
>
|
|
|
|
|
{{ mygallery.imagefile }}
|
|
|
|
|
</div>
|
2021-10-28 00:37:48 +02:00
|
|
|
</template>
|
|
|
|
|
</q-field>
|
|
|
|
|
<q-input
|
2022-02-10 23:31:18 +01:00
|
|
|
v-if="canModify"
|
2021-10-28 00:37:48 +02:00
|
|
|
v-model="mygallery.description"
|
|
|
|
|
dense
|
|
|
|
|
:label="$t('proj.longdescr')"
|
|
|
|
|
@keyup.enter.stop
|
|
|
|
|
@update:model-value="save"
|
|
|
|
|
debounce="1000"
|
2024-09-17 17:38:57 +02:00
|
|
|
autofocus
|
|
|
|
|
>
|
2021-10-28 00:37:48 +02:00
|
|
|
</q-input>
|
|
|
|
|
</q-card-section>
|
|
|
|
|
</q-card>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-09-17 17:38:57 +02:00
|
|
|
<div v-if="canModify" class="q-pa-sm">
|
|
|
|
|
<div class="q-gutter-sm" style="max-height: 200px; width: 208px">
|
2021-10-28 00:37:48 +02:00
|
|
|
<q-uploader
|
2021-11-22 18:28:45 +01:00
|
|
|
label="Aggiungi Immagine"
|
2023-04-17 00:11:45 +02:00
|
|
|
accept="image/*"
|
2021-10-28 00:37:48 +02:00
|
|
|
:url="getUrl()"
|
|
|
|
|
:headers="tools.getheaders()"
|
2022-02-15 19:01:10 +01:00
|
|
|
:max-file-size="40000000"
|
2021-10-28 00:37:48 +02:00
|
|
|
multiple
|
|
|
|
|
auto-upload
|
|
|
|
|
hide-upload-btn
|
|
|
|
|
no-thumbnails
|
|
|
|
|
@uploaded="uploaded"
|
2022-01-23 23:25:19 +01:00
|
|
|
@rejected="onRejected"
|
2021-10-28 00:37:48 +02:00
|
|
|
style="width: 208px"
|
|
|
|
|
></q-uploader>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2022-02-15 19:01:10 +01:00
|
|
|
<div v-if="!isInModif && !isListImgValid && imagebak">
|
2022-02-10 23:31:18 +01:00
|
|
|
<q-card :class="getclass()" @click="ImgFullScreen(mygallery)">
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-img :src="imagebak" :class="getclimg()"> </q-img>
|
2022-02-10 23:31:18 +01:00
|
|
|
</q-card>
|
|
|
|
|
</div>
|
2021-10-28 00:37:48 +02:00
|
|
|
</div>
|
|
|
|
|
|
2021-11-22 18:28:45 +01:00
|
|
|
<q-card-actions align="right">
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-btn
|
|
|
|
|
v-if="canModify"
|
|
|
|
|
flat
|
|
|
|
|
label="Annulla"
|
|
|
|
|
color="primary"
|
|
|
|
|
v-close-popup
|
|
|
|
|
/>
|
|
|
|
|
<q-btn
|
|
|
|
|
v-if="canModify"
|
|
|
|
|
label="salva"
|
|
|
|
|
color="primary"
|
|
|
|
|
v-close-popup
|
|
|
|
|
@click="save"
|
|
|
|
|
/>
|
|
|
|
|
<q-btn
|
|
|
|
|
v-if="!canModify"
|
|
|
|
|
label="Chiudi"
|
|
|
|
|
color="primary"
|
|
|
|
|
v-close-popup
|
|
|
|
|
/>
|
2021-11-22 18:28:45 +01:00
|
|
|
</q-card-actions>
|
2021-10-28 00:37:48 +02:00
|
|
|
</q-card-section>
|
|
|
|
|
</q-card>
|
|
|
|
|
</q-dialog>
|
2021-12-11 22:12:44 +01:00
|
|
|
<q-dialog
|
|
|
|
|
v-model="fullscreen"
|
|
|
|
|
:maximized="false"
|
|
|
|
|
transition-show="slide-up"
|
|
|
|
|
transition-hide="slide-down"
|
|
|
|
|
>
|
|
|
|
|
<q-card class="my-card">
|
2024-09-17 17:38:57 +02:00
|
|
|
<q-img
|
|
|
|
|
v-if="fullscreensrc"
|
|
|
|
|
alt="fullscreen"
|
|
|
|
|
:src="fullscreensrc"
|
|
|
|
|
@click="fullscreen = false"
|
|
|
|
|
></q-img>
|
2021-12-11 22:12:44 +01:00
|
|
|
</q-card>
|
|
|
|
|
</q-dialog>
|
2021-09-16 21:08:02 +02:00
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script lang="ts" src="./CGallery.ts">
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
@import './CGallery.scss';
|
|
|
|
|
</style>
|