- aggiornato l'Editor HTML
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="19"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="18"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="19"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="18"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker_1.0.39.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="19"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="16"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "abitaregliiblei",
|
||||
"version": "1.0.58",
|
||||
"version": "1.0.60",
|
||||
"description": "Abitare Gli Iblei",
|
||||
"productName": "AbitareGliIblei",
|
||||
"author": "Paolo Arena",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="15"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="15"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "fioredellavita",
|
||||
"version": "1.0.58",
|
||||
"version": "1.0.60",
|
||||
"description": "Fiore Della Vita",
|
||||
"productName": "Fiore Della Vita",
|
||||
"author": "Paolo Arena",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="18"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="16"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "1.0.58",
|
||||
"version": "1.0.60",
|
||||
"description": "GruppoMacro",
|
||||
"productName": "Gruppo Macro",
|
||||
"author": "Paolo Arena",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
APP_VERSION="1.0.58"
|
||||
APP_VERSION="1.0.60"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="16"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "riso",
|
||||
"version": "1.0.58",
|
||||
"version": "1.0.60",
|
||||
"description": "Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.",
|
||||
"productName": "Riso",
|
||||
"author": "Paolo Arena",
|
||||
|
||||
@@ -20,7 +20,8 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
|
||||
|
||||
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
|
||||
rsync -e 'ssh -p 8822' -av --delete dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
#rsync -e 'ssh -p 8822' -av --delete dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
|
||||
echo "Finito $SERVERDIR_WEBSITE "
|
||||
|
||||
|
||||
@@ -20,7 +20,8 @@ if [[ $risposta == "Y" || $risposta == "y" ]]; then
|
||||
|
||||
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
|
||||
sshpass -p $SERVERPW_WEBSITE rsync -e 'ssh -p 8855' -a --exclude 'upload' dist/pwa/ suryapaolo@servereng:/var/www/$SERVERDIR_WEBSITE/
|
||||
rsync -e 'ssh -p 8855' -av --delete dist/pwa/js/ suryapaolo@servereng:/var/www/$SERVERDIR_WEBSITE/js
|
||||
#rsync -e 'ssh -p 8855' -av --delete dist/pwa/js/ suryapaolo@servereng:/var/www/$SERVERDIR_WEBSITE/js
|
||||
rsync -e 'ssh -p 8855' -a dist/pwa/js/ suryapaolo@servereng:/var/www/$SERVERDIR_WEBSITE/js
|
||||
echo "Finito $SERVERDIR_WEBSITE "
|
||||
|
||||
fi
|
||||
|
||||
@@ -19,7 +19,8 @@ npm run buildpwa
|
||||
|
||||
echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..."
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
|
||||
rsync -e 'ssh -p 8822' -av --delete dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
#rsync -e 'ssh -p 8822' -av --delete dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
|
||||
cp .env.prod.bak .env.production
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ npm run buildpwa
|
||||
|
||||
echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..."
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
|
||||
rsync -e 'ssh -p 8822' -av --delete dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
|
||||
cp .env.prod.bak .env.production
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ npm run buildpwa
|
||||
|
||||
echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..."
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
|
||||
rsync -e 'ssh -p 8822' -av --delete dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
rsync -e 'ssh -p 8822' -a dist/pwa/js/ pcbuser@pcb:$SERVERDIR_WEBSITE/js
|
||||
|
||||
|
||||
cp .env.prod.bak .env.production
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "abitaregliiblei",
|
||||
"version": "1.0.58",
|
||||
"version": "1.0.60",
|
||||
"description": "Abitare Gli Iblei",
|
||||
"productName": "AbitareGliIblei",
|
||||
"author": "Paolo Arena",
|
||||
|
||||
@@ -34,7 +34,7 @@ self.addEventListener('activate', (event) => {
|
||||
});
|
||||
|
||||
|
||||
const VersioneApp = "1.0.58";
|
||||
const VersioneApp = "1.0.60";
|
||||
|
||||
console.log(' [ VER-' + VersioneApp + ' ] _---------________------ PAO: this is my custom service worker');
|
||||
|
||||
|
||||
@@ -1788,18 +1788,20 @@ export const shared_consts = {
|
||||
{
|
||||
value: 20,
|
||||
label: 'Testo',
|
||||
icon: 'fas fa-file-alt',
|
||||
},
|
||||
{
|
||||
value: 35,
|
||||
label: 'Immagine',
|
||||
icon: '',
|
||||
},
|
||||
{
|
||||
value: 7,
|
||||
label: 'Scheda (1 Immagine e Testo)',
|
||||
label: 'Scheda (IMG + Testo)',
|
||||
},
|
||||
{
|
||||
value: 9,
|
||||
label: 'Poster (1 Immagine + Testo)',
|
||||
label: 'Poster (IMG + Testo)',
|
||||
},
|
||||
{
|
||||
value: 195,
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/>
|
||||
</q-avatar>
|
||||
</div>
|
||||
<div class="col-fixed" style="width: 200px;">
|
||||
<div class="col-fixed" style="width: 200px">
|
||||
<q-select
|
||||
dense
|
||||
v-model="tablesel"
|
||||
@@ -55,9 +55,12 @@
|
||||
</template>
|
||||
</q-select>
|
||||
</div>
|
||||
<div class="col-auto"> <!-- to the right -->
|
||||
<div class="col-auto">
|
||||
<!-- to the right -->
|
||||
<q-btn
|
||||
v-if="tools.getLabelAddrec(ind)"
|
||||
v-if="
|
||||
tools.getLabelAddrec(ind) && tools.checkIfICanAddNewRecord()
|
||||
"
|
||||
rounded
|
||||
outline
|
||||
color="primary"
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
style="text-align: center"
|
||||
>
|
||||
<q-btn
|
||||
v-if="mytable && visButtRow()"
|
||||
rounded
|
||||
dense
|
||||
color="primary"
|
||||
@@ -347,9 +346,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
v-if="showMapAtLeast1"
|
||||
v-show="showMap">
|
||||
<div v-if="showMapAtLeast1" v-show="showMap">
|
||||
<CMapByTable
|
||||
ref="myMapComp"
|
||||
mytable=""
|
||||
@@ -1152,16 +1149,16 @@
|
||||
autofocus
|
||||
type="search"
|
||||
:hint="
|
||||
(pagination.rowsNumber === 1 && prop_search)
|
||||
pagination.rowsNumber === 1 && prop_search
|
||||
? `${pagination.rowsNumber} ` +
|
||||
t('grid.found') +
|
||||
' ' +
|
||||
getLabelAreaMap(false)
|
||||
: ((pagination.rowsNumber > 1 && prop_search)
|
||||
: pagination.rowsNumber > 1 && prop_search
|
||||
? `${pagination.rowsNumber} ${labelElemFind}` +
|
||||
' ' +
|
||||
getLabelAreaMap(false)
|
||||
: '')
|
||||
: ''
|
||||
"
|
||||
debounce="500"
|
||||
:error-message="noresultLabel"
|
||||
|
||||
@@ -1424,6 +1424,7 @@ export default defineComponent({
|
||||
return pagination.value.rowsNumber
|
||||
}
|
||||
|
||||
|
||||
function createNewRecordDialog() {
|
||||
|
||||
const mydata: any = {
|
||||
|
||||
@@ -162,7 +162,9 @@
|
||||
{{
|
||||
tools.isEntrataByRecMov(row)
|
||||
? t('movement.movin')
|
||||
: (tools.isUscitaByRecMov(row) ? t('movement.movout') : '')
|
||||
: tools.isUscitaByRecMov(row)
|
||||
? t('movement.movout')
|
||||
: ''
|
||||
}}
|
||||
</q-toolbar-title>
|
||||
</q-toolbar>
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
.testo-banda {
|
||||
//background: -webkit-gradient(linear, left top, left bottom, from(#3144f0), to(transparent));
|
||||
//background: linear-gradient(180deg, #3144f0, transparent);
|
||||
@@ -23,8 +22,7 @@ h4 {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.landing {
|
||||
}
|
||||
.landing {}
|
||||
|
||||
.landing_background {
|
||||
background: #000 url(../../../public/images/foto1.jpg) no-repeat 50% fixed;
|
||||
@@ -144,7 +142,8 @@ h4 {
|
||||
text-shadow: .25rem .25rem .5rem $grayshadow;
|
||||
}
|
||||
|
||||
.landing__features h4, .landing__features h6 {
|
||||
.landing__features h4,
|
||||
.landing__features h6 {
|
||||
margin: 1rem 0
|
||||
}
|
||||
|
||||
@@ -252,7 +251,8 @@ body.mobile .landing:before {
|
||||
text-shadow: 0.125rem 0.125rem 0.25rem $grayshadow;
|
||||
}
|
||||
|
||||
.text-h1, h1 {
|
||||
.text-h1,
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
font-weight: bold;
|
||||
line-height: 3rem;
|
||||
@@ -341,14 +341,18 @@ body.mobile .landing:before {
|
||||
.landing__hero {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.landing__header {
|
||||
height: 7vh
|
||||
}
|
||||
|
||||
.clgutter {
|
||||
margin-top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.landing__hero .text-h1, h1 {
|
||||
|
||||
.landing__hero .text-h1,
|
||||
h1 {
|
||||
font-size: 2rem;
|
||||
line-height: 2.05rem;
|
||||
margin-bottom: 1.25rem
|
||||
@@ -376,7 +380,8 @@ body.mobile .landing:before {
|
||||
|
||||
}
|
||||
|
||||
.landing__features h4, .landing__features h6 {
|
||||
.landing__features h4,
|
||||
.landing__features h6 {
|
||||
margin: 1.25rem 0
|
||||
}
|
||||
|
||||
@@ -389,12 +394,15 @@ body.mobile .landing:before {
|
||||
text-align: center;
|
||||
margin-top: 1.25rem;
|
||||
}
|
||||
|
||||
.landing__hero-content {
|
||||
padding-bottom: 11.25rem;
|
||||
}
|
||||
|
||||
.landing__hero2-content {
|
||||
padding-bottom: 7.25rem;
|
||||
}
|
||||
|
||||
.landing__hero-btns {
|
||||
-webkit-box-pack: center;
|
||||
-ms-flex-pack: center;
|
||||
@@ -408,6 +416,7 @@ body.mobile .landing:before {
|
||||
.text-subtitle1 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.text-vers {
|
||||
font-size: 0.6rem;
|
||||
}
|
||||
@@ -480,3 +489,12 @@ body.mobile .landing:before {
|
||||
justify-content: space-between;
|
||||
background-color: green;
|
||||
}
|
||||
|
||||
|
||||
.uniform-button {
|
||||
height: 40px;
|
||||
/* Altezza fissa per tutti i bottoni */
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import {
|
||||
defineComponent, onMounted, PropType, ref, toRef, watch,
|
||||
defineComponent, onMounted, PropType, computed, ref, toRef, watch,
|
||||
} from 'vue'
|
||||
|
||||
import { IElemText, IImgGallery, ILabelValue, IMyCard, IMyElem, IMyPage, IOperators } from '@src/model'
|
||||
@@ -39,7 +39,7 @@ export default defineComponent({
|
||||
CCardCarousel, COpenStreetMap, CMyPage, CMyPageIntro, CMyEditor, CMyFieldRec,
|
||||
CSelectColor, CSelectFontSize, CSelectImage, CImgPoster, CSelectAnimation
|
||||
},
|
||||
emits: ['saveElem', 'selElemClick'],
|
||||
emits: ['saveElem', 'selElemClick', 'toggleSize', 'deleteElem'],
|
||||
props: {
|
||||
myelem: {
|
||||
type: Object as PropType<IMyElem>,
|
||||
@@ -90,6 +90,7 @@ export default defineComponent({
|
||||
const myel = toRef(props, 'myelem')
|
||||
const newtype = ref(<any>'')
|
||||
const visuadd = ref(false)
|
||||
const direzadd = ref(1)
|
||||
|
||||
watch(() => myel.value.order, (value, oldval) => {
|
||||
mounted()
|
||||
@@ -108,29 +109,69 @@ export default defineComponent({
|
||||
// OK
|
||||
disableSave.value = true
|
||||
emit('saveElem', myelem)
|
||||
|
||||
if (exit)
|
||||
elemChanged.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function addNewElem(order?: number) {
|
||||
function getNewOrderByThisElem() {
|
||||
let myelem = props.myelem
|
||||
let neword = 0
|
||||
if (myelem) {
|
||||
neword = myelem.order!
|
||||
const recfound = globalStore.getMyElemNextThisElemId(props.path, myelem._id!)
|
||||
|
||||
if (recfound) {
|
||||
neword = Math.round((recfound.order! + myelem.order!) / 2)
|
||||
}
|
||||
}
|
||||
return neword
|
||||
}
|
||||
|
||||
async function addNewElem(elemsel: any, direz: number) {
|
||||
|
||||
visuadd.value = false
|
||||
|
||||
let newrec = globalStore.prepareAddNewElem(order, $q, t, props.myelem, newtype.value)
|
||||
let neword = 0
|
||||
|
||||
emit('selElemClick', newrec)
|
||||
let recfound = null
|
||||
|
||||
if (direz === -1) { // Sopra
|
||||
// ottieni l'elemento precedente, mantenendo l'ordinamento
|
||||
recfound = globalStore.getMyElemPrecThisElemId(props.path, elemsel._id)
|
||||
} else if (direz === 1) { // Sotto
|
||||
// ottieni l'elemento precedente, mantenendo l'ordinamento
|
||||
recfound = globalStore.getMyElemNextThisElemId(props.path, elemsel._id)
|
||||
}
|
||||
|
||||
function dupElem(order?: number) {
|
||||
if (recfound) {
|
||||
// get the middle of the order number between thie 2 elements
|
||||
neword = Math.round((recfound.order + elemsel.order) / 2)
|
||||
}
|
||||
|
||||
const newrec = props.myelem
|
||||
let newrec = await globalStore.prepareAddNewElem(neword, $q, t, props.myelem, newtype.value)
|
||||
|
||||
emit('selElemClick', newrec)
|
||||
|
||||
// emit('updateAll', newrec)
|
||||
}
|
||||
|
||||
async function dupElem(order?: number) {
|
||||
|
||||
const newrec: IMyElem = { ...props.myelem }
|
||||
|
||||
newrec._id = undefined
|
||||
newrec.order = order ? order : newrec.order! + 10
|
||||
newrec.order = getNewOrderByThisElem()
|
||||
if (newrec.type === shared_consts.ELEMTYPE.HTML) {
|
||||
newrec.containerHtml = 'Copia di ' + newrec.containerHtml
|
||||
}
|
||||
|
||||
const mynewelem = await globalStore.addNewElem($q, t, newrec)
|
||||
|
||||
emit('selElemClick', mynewelem)
|
||||
|
||||
globalStore.addNewElem($q, t, newrec)
|
||||
}
|
||||
|
||||
function delElem() {
|
||||
@@ -151,6 +192,7 @@ export default defineComponent({
|
||||
if (ris) {
|
||||
// OK
|
||||
disableSave.value = true
|
||||
emit('deleteElem', props.myelem)
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -292,6 +334,73 @@ export default defineComponent({
|
||||
modifElem()
|
||||
}
|
||||
|
||||
function toggleSize() {
|
||||
emit('toggleSize', null)
|
||||
}
|
||||
|
||||
const orderOptions = computed(() => {
|
||||
const options = []
|
||||
|
||||
for (let i = 0; i <= 100; i += 1) {
|
||||
options.push({ label: i.toString(), value: i });
|
||||
}
|
||||
|
||||
for (let i = 100; i <= 1000; i += 10) {
|
||||
options.push({ label: i.toString(), value: i });
|
||||
}
|
||||
|
||||
return options;
|
||||
});
|
||||
|
||||
function addOrder(rec: any) {
|
||||
neworder.value = rec
|
||||
}
|
||||
|
||||
async function moveElem(direz: any) {
|
||||
let myelem = props.myelem
|
||||
|
||||
const elemprec = globalStore.getMyElemPrecThisElemId(props.path, myelem._id)
|
||||
const elemnext = globalStore.getMyElemNextThisElemId(props.path, myelem._id!)
|
||||
|
||||
let neworder = 0
|
||||
let oldorder = myelem.order!
|
||||
|
||||
if (direz === -1) {
|
||||
// UP
|
||||
neworder = elemprec.order!
|
||||
elemprec.order = oldorder
|
||||
|
||||
if (oldorder === elemprec.order!) {
|
||||
const elemprec2 = globalStore.getMyElemPrecThisElemId(props.path, elemprec._id!)
|
||||
|
||||
neworder = (elemprec2.order! + elemprec.order) / 2
|
||||
elemprec.order = Math.round((oldorder + neworder) / 2)
|
||||
}
|
||||
|
||||
await globalStore.saveMyElem($q, t, elemprec)
|
||||
emit('saveElem', elemprec)
|
||||
} else if (direz === 1) {
|
||||
// DOWN
|
||||
neworder = elemnext.order!
|
||||
elemnext.order = oldorder
|
||||
|
||||
if (oldorder === elemnext.order!) {
|
||||
const elemnext2 = globalStore.getMyElemNextThisElemId(props.path, elemnext._id!)
|
||||
|
||||
neworder = (elemnext2.order! + elemnext.order) / 2
|
||||
elemnext.order = Math.round((oldorder + neworder) / 2)
|
||||
}
|
||||
|
||||
|
||||
await globalStore.saveMyElem($q, t, elemnext)
|
||||
emit('saveElem', elemnext)
|
||||
}
|
||||
|
||||
myelem.order = neworder
|
||||
await globalStore.saveMyElem($q, t, myelem)
|
||||
emit('saveElem', myelem)
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
@@ -334,6 +443,11 @@ export default defineComponent({
|
||||
Products,
|
||||
generateSizeOptions,
|
||||
updateSizeWidth,
|
||||
direzadd,
|
||||
toggleSize,
|
||||
orderOptions,
|
||||
addOrder,
|
||||
moveElem,
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -8,54 +8,66 @@
|
||||
"
|
||||
>
|
||||
<div v-if="!!myel.type">
|
||||
<div class="column">
|
||||
<div class="row justify-evenly q-gutter-sm">
|
||||
<q-btn
|
||||
class="q-ma-sm"
|
||||
dense
|
||||
@click="toggleSize"
|
||||
label="Espandi"
|
||||
icon="chevron_left"
|
||||
color="primary"
|
||||
/>
|
||||
<q-btn
|
||||
v-if="enableAdd"
|
||||
class="q-ma-sm"
|
||||
label="Aggiungi"
|
||||
icon="fas fa-plus"
|
||||
color="primary"
|
||||
@click="visuadd = true"
|
||||
icon-right="arrow_upward"
|
||||
color="positive"
|
||||
dense
|
||||
@click="
|
||||
direzadd = -1;
|
||||
visuadd = true;
|
||||
"
|
||||
>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="enableAdd"
|
||||
class="q-ma-sm"
|
||||
label="Aggiungi"
|
||||
icon-right="arrow_downward"
|
||||
color="positive"
|
||||
dense
|
||||
@click="
|
||||
direzadd = 1;
|
||||
visuadd = true;
|
||||
"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
<q-bar v-if="enableEdit" dense class="q-px-sm">
|
||||
<q-toggle v-model="myel.active" color="positive" icon="fas fa-eye">
|
||||
</q-toggle>
|
||||
<q-bar v-if="enableEdit" class="q-pa-md bg-light-blue text-white">
|
||||
<!--<q-toggle v-if="tools.isManager()"
|
||||
v-model="enableAdd"
|
||||
icon="fas fa-plus"
|
||||
</q-toggle>
|
||||
>-->
|
||||
|
||||
<q-input
|
||||
style="max-width: 60px"
|
||||
hide-bottom-space
|
||||
borderless
|
||||
dense
|
||||
@update:model-value="modifElem"
|
||||
v-model="neworder"
|
||||
v-on:keyup.enter="saveElem(false)"
|
||||
type="number"
|
||||
>
|
||||
</q-input>
|
||||
|
||||
<q-space />
|
||||
<q-btn
|
||||
icon="fas fa-trash-alt"
|
||||
color="negative"
|
||||
label="Elimina"
|
||||
dense
|
||||
flat
|
||||
size="sm"
|
||||
@click="delElem"
|
||||
>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
icon="far fa-copy"
|
||||
color="primary"
|
||||
label="Duplica"
|
||||
dense
|
||||
flat
|
||||
size="sm"
|
||||
@click="dupElem(myel.order + 10)"
|
||||
@click="dupElem(myel.order + 10 * direzadd)"
|
||||
>
|
||||
</q-btn>
|
||||
</q-bar>
|
||||
@@ -83,6 +95,69 @@
|
||||
</q-btn>-->
|
||||
</div>
|
||||
</div>
|
||||
<q-list padding bordered class="rounded-borders">
|
||||
<q-expansion-item
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
label="Visualizzazione"
|
||||
icon="fas fa-eye"
|
||||
>
|
||||
<div class="row q-gutter-sm q-pa-sm">
|
||||
<q-toggle
|
||||
v-model="myel.active"
|
||||
color="positive"
|
||||
icon="fas fa-eye"
|
||||
label="Attiva"
|
||||
>
|
||||
</q-toggle>
|
||||
<q-select
|
||||
v-model="neworder"
|
||||
:options="orderOptions"
|
||||
label="Posizionamento"
|
||||
options-dense
|
||||
dense
|
||||
emit-value
|
||||
map-options
|
||||
style="width: 100px"
|
||||
@update:model-value="modifElem"
|
||||
use-input
|
||||
hide-selected
|
||||
fill-input
|
||||
text-color="white"
|
||||
@new-value="addOrder"
|
||||
>
|
||||
</q-select>
|
||||
</div>
|
||||
</q-expansion-item>
|
||||
<q-btn
|
||||
v-if="enableAdd"
|
||||
class="q-ma-sm"
|
||||
label="Sposta in SU"
|
||||
icon-right="arrow_upward"
|
||||
color="positive"
|
||||
dense
|
||||
@click="moveElem(-1)"
|
||||
>
|
||||
</q-btn>
|
||||
<q-btn
|
||||
v-if="enableAdd"
|
||||
class="q-ma-sm"
|
||||
label="Sposta in GIU"
|
||||
icon-right="arrow_downward"
|
||||
color="positive"
|
||||
dense
|
||||
@click="moveElem(1)"
|
||||
>
|
||||
</q-btn>
|
||||
|
||||
<q-expansion-item
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
label="Dimensioni"
|
||||
icon="fas fa-expand-alt"
|
||||
>
|
||||
<div class="row">
|
||||
<q-select
|
||||
label="Lunghezza:"
|
||||
@@ -109,7 +184,15 @@
|
||||
>
|
||||
</q-input>
|
||||
</div>
|
||||
</q-expansion-item>
|
||||
|
||||
<q-expansion-item
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
label="Allineamento"
|
||||
icon="fas fa-align-center"
|
||||
>
|
||||
<div class="row">
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
@@ -183,12 +266,21 @@
|
||||
>
|
||||
</q-input>
|
||||
</div>
|
||||
</q-expansion-item>
|
||||
<q-expansion-item
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
label="Animazione"
|
||||
icon="fas fa-play-circle"
|
||||
>
|
||||
<CSelectAnimation
|
||||
v-if="enableEdit && showAnimation"
|
||||
v-model="myel.anim"
|
||||
@update:model-value="modifElem"
|
||||
>
|
||||
</CSelectAnimation>
|
||||
</q-expansion-item>
|
||||
<div v-if="myel.type === shared_consts.ELEMTYPE.TEXT">
|
||||
<div v-if="enableEdit">
|
||||
<q-input
|
||||
@@ -205,6 +297,13 @@
|
||||
<div
|
||||
v-else-if="myel.type === shared_consts.ELEMTYPE.CARD"
|
||||
:class="myel.span ? '' : ''"
|
||||
>
|
||||
<q-expansion-item
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
label="Animazione"
|
||||
icon="fas fa-expand-alt"
|
||||
>
|
||||
<CSelectAnimation
|
||||
v-if="enableEdit && showAnimation"
|
||||
@@ -213,6 +312,7 @@
|
||||
label="Animazione Immagini"
|
||||
>
|
||||
</CSelectAnimation>
|
||||
</q-expansion-item>
|
||||
<div class="row">
|
||||
<q-input
|
||||
dense
|
||||
@@ -266,7 +366,6 @@
|
||||
icon="fas fa-trash-alt"
|
||||
color="negative"
|
||||
dense
|
||||
flat
|
||||
size="sm"
|
||||
@click="delRecCard(rec._id, myel)"
|
||||
>
|
||||
@@ -556,7 +655,6 @@
|
||||
icon="fas fa-trash-alt"
|
||||
color="negative"
|
||||
dense
|
||||
flat
|
||||
size="sm"
|
||||
@click="delRecCard(rec._id, myel)"
|
||||
>
|
||||
@@ -613,15 +711,6 @@
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.HTML">
|
||||
<div v-if="enableEdit">
|
||||
<q-input
|
||||
dense
|
||||
label="Classe:"
|
||||
@update:model-value="modifElem"
|
||||
v-model="myel.class"
|
||||
filled
|
||||
v-on:keyup.enter="saveElem"
|
||||
>
|
||||
</q-input>
|
||||
<CMyEditor
|
||||
v-model:value="myel.containerHtml"
|
||||
title=""
|
||||
@@ -684,7 +773,9 @@
|
||||
>
|
||||
</CMyFieldRec>
|
||||
<div class="">
|
||||
<div class="col-12 col-sm-6 col-md-6 col-lg-6 col-xl-6 col-sticky">
|
||||
<!--<div
|
||||
class="col-12 col-sm-6 col-md-6 col-lg-6 col-xl-6 col-sticky"
|
||||
>
|
||||
<q-select
|
||||
label="Lunghezza:"
|
||||
v-model="myel.widthimg"
|
||||
@@ -708,7 +799,8 @@
|
||||
v-on:keyup.enter="saveElem"
|
||||
>
|
||||
</q-input>
|
||||
</div>
|
||||
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -903,7 +995,9 @@
|
||||
</q-toggle>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_HOME"></div>
|
||||
<div
|
||||
v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_HOME"
|
||||
></div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.BUTTON">
|
||||
<q-input
|
||||
dense
|
||||
@@ -1071,90 +1165,119 @@
|
||||
</q-toggle>
|
||||
</div>
|
||||
</div>
|
||||
</q-list>
|
||||
</div>
|
||||
<br /><br /><br />
|
||||
</div>
|
||||
<div>
|
||||
<q-dialog
|
||||
v-model="visuadd"
|
||||
style="
|
||||
width: 600px;
|
||||
max-width: 100%;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
"
|
||||
transition-show="slide-up"
|
||||
transition-hide="slide-down"
|
||||
:maximized="$q.screen.lt.sm"
|
||||
>
|
||||
<q-card class="dialog_card">
|
||||
<q-card class="">
|
||||
<q-bar dense class="bg-primary text-white">
|
||||
Aggiungi Elemento:
|
||||
<q-space />
|
||||
<q-btn flat round color="white" icon="close" v-close-popup></q-btn>
|
||||
</q-bar>
|
||||
|
||||
<q-card-section class="inset-shadow row q-ma-sm q-pa-sm">
|
||||
<q-tabs v-model="tabadd" inline-label class="bg-gray shadow-2">
|
||||
<q-tab name="tools" label="Strumenti" />
|
||||
<q-tab v-if="tools.isAdmin()" name="others" label="Altri" />
|
||||
<q-tab v-if="tools.isAdmin()" name="others2" label="Altri 2" />
|
||||
</q-tabs>
|
||||
|
||||
<q-tab-panels v-model="tabadd" animated class="row justify-center">
|
||||
<q-tab-panel name="tools">
|
||||
<div class="q-pa-md row justify-center">
|
||||
<div style="width: 100%; max-width: 600px">
|
||||
<q-list padding bordered class="rounded-borders">
|
||||
<q-expansion-item
|
||||
label="Principali"
|
||||
icon="fas fa-eye"
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
default-opened
|
||||
>
|
||||
<div class="row q-pa-sm">
|
||||
<div
|
||||
v-for="(rec, index) in shared_consts.TypesElem"
|
||||
:key="index"
|
||||
class="q-pa-sm"
|
||||
class="col-6 q-pa-xs"
|
||||
>
|
||||
<q-btn
|
||||
v-if="enableAdd"
|
||||
:label="rec.label"
|
||||
icon="fas fa-plus"
|
||||
color="primary"
|
||||
class="full-width uniform-button q-px-sm"
|
||||
@click="
|
||||
newtype = rec.value;
|
||||
addNewElem(myel.order - 10);
|
||||
addNewElem(myel, direzadd);
|
||||
"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="others">
|
||||
</div>
|
||||
</q-expansion-item>
|
||||
<q-expansion-item
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
label="Gestione"
|
||||
icon="fas fa-cog"
|
||||
>
|
||||
<div class="row q-pa-sm">
|
||||
<div
|
||||
v-for="(rec, index) in shared_consts.TypesElemAdmin"
|
||||
:key="index"
|
||||
class="q-pa-sm"
|
||||
class="col-6 q-pa-xs"
|
||||
>
|
||||
<q-btn
|
||||
v-if="enableAdd"
|
||||
:label="rec.label"
|
||||
icon="fas fa-plus"
|
||||
color="primary"
|
||||
class="full-width uniform-button q-px-sm"
|
||||
@click="
|
||||
newtype = rec.value;
|
||||
addNewElem(myel.order - 10);
|
||||
addNewElem(myel, direzadd);
|
||||
"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-tab-panel>
|
||||
<q-tab-panel name="others2">
|
||||
</div>
|
||||
</q-expansion-item>
|
||||
<q-expansion-item
|
||||
dense
|
||||
dense-toggle
|
||||
expand-separator
|
||||
label="Avanzati"
|
||||
icon="fas fa-star"
|
||||
>
|
||||
<div class="row q-pa-sm">
|
||||
<div
|
||||
v-for="(rec, index) in shared_consts.TypesElemAdminTools"
|
||||
:key="index"
|
||||
class="q-pa-sm"
|
||||
class="col-6 q-pa-sm"
|
||||
>
|
||||
<q-btn
|
||||
v-if="enableAdd"
|
||||
:label="rec.label"
|
||||
icon="fas fa-plus"
|
||||
color="primary"
|
||||
class="full-width uniform-button q-px-sm"
|
||||
@click="
|
||||
newtype = rec.value;
|
||||
addNewElem(myel.order - 10);
|
||||
addNewElem(myel, direzadd);
|
||||
"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</q-tab-panel>
|
||||
</q-tab-panels>
|
||||
</q-card-section>
|
||||
</div>
|
||||
</q-expansion-item>
|
||||
</q-list>
|
||||
</div>
|
||||
</div>
|
||||
</q-card>
|
||||
</q-dialog>
|
||||
</div>
|
||||
|
||||
@@ -169,30 +169,6 @@ export default defineComponent({
|
||||
globalStore.addNewElem($q, t, newrec)
|
||||
}
|
||||
|
||||
function delElem() {
|
||||
$q.dialog({
|
||||
message: 'Eliminare ' + props.myelem.container + ' ?',
|
||||
html: true,
|
||||
ok: {
|
||||
label: 'Elimina',
|
||||
push: true,
|
||||
},
|
||||
title: '',
|
||||
cancel: true,
|
||||
persistent: false,
|
||||
}).onOk(async () => {
|
||||
|
||||
// Save Elem record
|
||||
await globalStore.delMyElem($q, t, props.myelem).then((ris) => {
|
||||
if (ris) {
|
||||
// OK
|
||||
disableSave.value = true
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function modifElem() {
|
||||
disableSave.value = false
|
||||
}
|
||||
@@ -278,7 +254,6 @@ export default defineComponent({
|
||||
myel,
|
||||
disableSave,
|
||||
modifElem,
|
||||
delElem,
|
||||
addNewElem,
|
||||
newtype,
|
||||
neworder,
|
||||
|
||||
@@ -84,6 +84,8 @@ export default defineComponent({
|
||||
const selElem = ref(globalStore.selElem)
|
||||
const site = ref(globalStore.site)
|
||||
|
||||
const onloading = ref(false)
|
||||
|
||||
const myelems = computed(() => {
|
||||
if (mypathin.value)
|
||||
return globalStore.getMyElems(mypathin.value)
|
||||
@@ -91,11 +93,11 @@ export default defineComponent({
|
||||
return null
|
||||
})
|
||||
|
||||
function load() {
|
||||
async function load() {
|
||||
// console.log('load', mypathin.value)
|
||||
|
||||
if (mypathin.value !== '') {
|
||||
globalStore.loadPage('/' + mypathin.value, 'cmypageelem').then(ris => {
|
||||
await globalStore.loadPage('/' + mypathin.value, 'cmypageelem').then(ris => {
|
||||
rec.value = ris
|
||||
// console.log('LoadPage', ris)
|
||||
})
|
||||
@@ -124,15 +126,8 @@ export default defineComponent({
|
||||
}
|
||||
})
|
||||
|
||||
function selElemClick(myelem: IMyElem) {
|
||||
// console.log('mypageelem selElemClick', myelem)
|
||||
selElem.value = {}
|
||||
selElem.value = myelem
|
||||
visuEditor.value = !!myelem
|
||||
}
|
||||
|
||||
function mounted() {
|
||||
load()
|
||||
async function mounted() {
|
||||
await load()
|
||||
}
|
||||
|
||||
function saveElem(myelem: IMyElem) {
|
||||
@@ -147,6 +142,20 @@ export default defineComponent({
|
||||
mywidthEditor.value = mywidthEditor.value === 400 ? 1200 : 400
|
||||
}
|
||||
|
||||
function deleteElem() {
|
||||
selElem.value = {}
|
||||
visuEditor.value = false
|
||||
}
|
||||
function selElemClick(myelem: IMyElem) {
|
||||
// console.log('mypageelem selElemClick', myelem)
|
||||
|
||||
selElem.value = {}
|
||||
selElem.value = myelem
|
||||
visuEditor.value = !!myelem
|
||||
|
||||
}
|
||||
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
@@ -164,6 +173,8 @@ export default defineComponent({
|
||||
changeVisuDrawer,
|
||||
mywidthEditor,
|
||||
toggleSize,
|
||||
onloading,
|
||||
deleteElem,
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="mypathin && !!rec">
|
||||
<div v-if="mypathin && !!rec && !onloading">
|
||||
<q-toggle
|
||||
v-if="tools.isManager()"
|
||||
v-model="editOn"
|
||||
@@ -37,13 +37,13 @@
|
||||
></q-btn>
|
||||
</q-bar>
|
||||
|
||||
<q-btn class="q-ma-sm" @click="toggleSize" label="<" color="primary" />
|
||||
|
||||
<CMyEditElem
|
||||
:myelem="selElem"
|
||||
:editOn="true"
|
||||
:path="rec.path"
|
||||
@selElemClick="selElemClick"
|
||||
@deleteElem="deleteElem"
|
||||
@toggleSize="toggleSize"
|
||||
>
|
||||
</CMyEditElem>
|
||||
</q-drawer>
|
||||
@@ -80,8 +80,9 @@
|
||||
></q-video>
|
||||
<div v-if="!!rec.content4" v-html="rec.content4"></div>
|
||||
|
||||
<div v-for="(myelem, ind) in myelems" :key="ind">
|
||||
<div v-for="myelem in myelems" :key="myelem._id">
|
||||
<div>
|
||||
<transition :duration="1000" appear>
|
||||
<CMyElem
|
||||
v-if="(myelem.active || editOn) && !!rec.path"
|
||||
:myelem="myelem"
|
||||
@@ -92,11 +93,13 @@
|
||||
@selElemClick="selElemClick"
|
||||
>
|
||||
</CMyElem>
|
||||
</transition>
|
||||
</div>
|
||||
<div v-if="myelem.type === shared_consts.ELEMTYPE.PAGE">
|
||||
<CMyPageElem2 :mypath="myelem.container"> </CMyPageElem2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="myelems.length === 0">
|
||||
<CMyElem
|
||||
v-if="editOn && !!rec.path"
|
||||
@@ -128,6 +131,9 @@
|
||||
<div v-if="!nofooter"></div>
|
||||
</div>
|
||||
</div>
|
||||
<q-inner-loading id="spinner" :showing="onloading">
|
||||
<q-spinner-tail color="primary" size="4em"> </q-spinner-tail>
|
||||
</q-inner-loading>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ export default defineComponent({
|
||||
})
|
||||
|
||||
function selElemClick(myelem: IMyElem) {
|
||||
console.log('mypageelem selElemClick', myelem)
|
||||
// console.log('mypageelem selElemClick', myelem)
|
||||
selElem.value = {}
|
||||
selElem.value = myelem
|
||||
visuEditor.value = !!myelem
|
||||
|
||||
@@ -15,10 +15,12 @@
|
||||
<q-btn
|
||||
flat
|
||||
round
|
||||
|
||||
color="white"
|
||||
icon="close"
|
||||
@click="visuEditor = false; selElem = {};"
|
||||
@click="
|
||||
visuEditor = false;
|
||||
selElem = {};
|
||||
"
|
||||
></q-btn>
|
||||
</q-bar>
|
||||
<CMyEditElem :myelem="selElem" :editOn="editOn" :path="rec.path">
|
||||
@@ -57,7 +59,7 @@
|
||||
></q-video>
|
||||
<div v-if="!!rec.content4" v-html="rec.content4"></div>
|
||||
|
||||
<div v-for="(myelem, ind) in myelems" :key="ind">
|
||||
<div v-for="myelem in myelems" :key="myelem._id">
|
||||
<CMyElem
|
||||
v-if="myelem.active || editOn"
|
||||
:myelem="myelem"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
:rules="[
|
||||
(val) => !!val || $t('reg.err.required'),
|
||||
(val) =>
|
||||
val.length >= 5 ||
|
||||
$t('reg.err.atleast') + ' 5 ' + $t('reg.err.char'),
|
||||
val.length >= 4 ||
|
||||
$t('reg.err.atleast') + ' 4 ' + $t('reg.err.char'),
|
||||
]"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
|
||||
@@ -165,7 +165,7 @@ export default defineComponent({
|
||||
},
|
||||
username: {
|
||||
required,
|
||||
minLength: minLength(3),
|
||||
minLength: minLength(4),
|
||||
complexityUser,
|
||||
registereduser,
|
||||
},
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
<template>
|
||||
<div>
|
||||
<div
|
||||
v-if="
|
||||
tools.isLogged() && tools.getUsername() && !collettivo
|
||||
"
|
||||
v-if="tools.isLogged() && tools.getUsername() && !collettivo"
|
||||
class="text-center"
|
||||
>
|
||||
<q-banner rounded class="bg-green text-white" style="text-align: center">
|
||||
@@ -13,7 +11,6 @@
|
||||
</span>
|
||||
</q-banner>
|
||||
|
||||
|
||||
<div class="row q-ma-sm q-pa-sm justify-center">
|
||||
<q-btn
|
||||
class="q-ma-sm"
|
||||
@@ -81,9 +78,9 @@
|
||||
<div v-if="signup.terms">
|
||||
<q-input
|
||||
v-if="
|
||||
(showaportador &&
|
||||
signup.aportador_solidario !== tools.APORTADOR_NONE)
|
||||
&& v$.aportador_solidario.$error
|
||||
showaportador &&
|
||||
signup.aportador_solidario !== tools.APORTADOR_NONE &&
|
||||
v$.aportador_solidario.$error
|
||||
"
|
||||
ref="inputAportador"
|
||||
bg-color="lightblue"
|
||||
@@ -158,7 +155,13 @@
|
||||
tools.errorMsg('username', v$.username) ||
|
||||
(isalreadyReg ? 'L\'Username è gia stato registrato!' : '')
|
||||
"
|
||||
:label="tools.getConfSiteOptionEnabled(shared_consts.ConfSite.askUSernameTelegramToTheReg) ? $t('reg.username_telegram') : $t('reg.username_reg')"
|
||||
:label="
|
||||
tools.getConfSiteOptionEnabled(
|
||||
shared_consts.ConfSite.askUSernameTelegramToTheReg
|
||||
)
|
||||
? $t('reg.username_telegram')
|
||||
: $t('reg.username_reg')
|
||||
"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person" />
|
||||
@@ -199,14 +202,21 @@
|
||||
debounce="1000"
|
||||
@keyup.enter="$refs.inputSurname.focus()"
|
||||
:error-message="tools.errorMsg('name', v$.name)"
|
||||
:label="tools.getConfSiteOptionEnabled(shared_consts.ConfSite.regNameSurnameMandatory) ? $t('reg.name') : $t('reg.name_opt')"
|
||||
:label="
|
||||
tools.getConfSiteOptionEnabled(
|
||||
shared_consts.ConfSite.regNameSurnameMandatory
|
||||
)
|
||||
? $t('reg.name')
|
||||
: $t('reg.name_opt')
|
||||
"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person" />
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
<!--<q-input
|
||||
<q-input
|
||||
v-if="signup.surname"
|
||||
ref="inputSurname"
|
||||
v-model="signup.surname"
|
||||
rounded
|
||||
@@ -224,7 +234,7 @@
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person" />
|
||||
</template>
|
||||
</q-input>-->
|
||||
</q-input>
|
||||
<q-input
|
||||
ref="inputPassword"
|
||||
v-model="signup.password"
|
||||
@@ -292,7 +302,6 @@
|
||||
</template>
|
||||
</q-input>
|
||||
|
||||
|
||||
<div class="column">
|
||||
<q-btn
|
||||
rounded
|
||||
@@ -429,7 +438,15 @@
|
||||
tools.errorMsg('username', v$.username) ||
|
||||
(isalreadyReg ? 'L\'Username è gia stato registrato!' : '')
|
||||
"
|
||||
:label="collettivo ? $t('reg.username_reg_collettivo') : (tools.getConfSiteOptionEnabled(shared_consts.ConfSite.askUSernameTelegramToTheReg) ? $t('reg.username_telegram') : $t('reg.username_reg'))"
|
||||
:label="
|
||||
collettivo
|
||||
? $t('reg.username_reg_collettivo')
|
||||
: tools.getConfSiteOptionEnabled(
|
||||
shared_consts.ConfSite.askUSernameTelegramToTheReg
|
||||
)
|
||||
? $t('reg.username_telegram')
|
||||
: $t('reg.username_reg')
|
||||
"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person" />
|
||||
@@ -470,7 +487,13 @@
|
||||
debounce="1000"
|
||||
@keyup.enter="$refs.inputSurname.focus()"
|
||||
:error-message="tools.errorMsg('name', v$.name)"
|
||||
:label="tools.getConfSiteOptionEnabled(shared_consts.ConfSite.regNameSurnameMandatory) ? $t('reg.name') : $t('reg.name_opt')"
|
||||
:label="
|
||||
tools.getConfSiteOptionEnabled(
|
||||
shared_consts.ConfSite.regNameSurnameMandatory
|
||||
)
|
||||
? $t('reg.name')
|
||||
: $t('reg.name_opt')
|
||||
"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person" />
|
||||
@@ -490,7 +513,13 @@
|
||||
!checkifDisabled ? $refs.carousel.next() : null
|
||||
"
|
||||
:error-message="tools.errorMsg('surname', v$.surname)"
|
||||
:label="tools.getConfSiteOptionEnabled(shared_consts.ConfSite.regNameSurnameMandatory) ? $t('reg.surname') : $t('reg.surname_opt')"
|
||||
:label="
|
||||
tools.getConfSiteOptionEnabled(
|
||||
shared_consts.ConfSite.regNameSurnameMandatory
|
||||
)
|
||||
? $t('reg.surname')
|
||||
: $t('reg.surname_opt')
|
||||
"
|
||||
>
|
||||
<template v-slot:prepend>
|
||||
<q-icon name="person" />
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<meta name="description" content="<%= productDescription %>">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
<meta name="msapplication-tap-highlight" content="no">
|
||||
<meta name="version" content="1.0.58">
|
||||
<meta name="version" content="1.0.60">
|
||||
<meta name="viewport"
|
||||
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
|
||||
|
||||
|
||||
@@ -1,28 +1,19 @@
|
||||
<template>
|
||||
<q-page class="">
|
||||
<div v-if="tools.isLogged()">
|
||||
|
||||
<div v-if="true">
|
||||
<CNotifAtTop />
|
||||
<div v-if="tools.isUserOk()">
|
||||
|
||||
<div v-if="true">
|
||||
<CFinder
|
||||
:ind="tools.getIndMainCardsByTable(shared_consts.TABLES_ATTIVITAS)"
|
||||
:table="shared_consts.TABLES_ATTIVITAS"
|
||||
:showMap="true"
|
||||
/>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<CUserNonVerif></CUserNonVerif>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div v-else>
|
||||
<CCheckIfIsLogged></CCheckIfIsLogged>
|
||||
</div>
|
||||
|
||||
</q-page>
|
||||
|
||||
</template>
|
||||
<script lang="ts" src="./activities.ts">
|
||||
</script>
|
||||
|
||||
@@ -311,17 +311,6 @@
|
||||
:rec="mysite"
|
||||
mykey="idMyGroup"
|
||||
debounce="1000"
|
||||
:type="costanti.FieldType.string"
|
||||
@save="updateSite"
|
||||
>
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb
|
||||
title="My Group"
|
||||
table="sites"
|
||||
:id="mysite._id"
|
||||
:rec="mysite"
|
||||
mykey="idMyGroup"
|
||||
debounce="1000"
|
||||
@save="save"
|
||||
:jointable="toolsext.TABMYGROUPS"
|
||||
:type="costanti.FieldType.select"
|
||||
@@ -1091,5 +1080,5 @@
|
||||
"idapp" : "19",
|
||||
"chiave" : "vers",
|
||||
"userId" : "ALL",
|
||||
"valore" : "1.0.58"
|
||||
"valore" : "1.0.60"
|
||||
}
|
||||
@@ -5240,7 +5240,7 @@ export const tools = {
|
||||
const site = globalStore.site
|
||||
|
||||
if (site) {
|
||||
return site.host!
|
||||
return site.host!.replace(/^(https?:\/\/)/, '');
|
||||
}
|
||||
return ''
|
||||
},
|
||||
@@ -8774,8 +8774,16 @@ export const tools = {
|
||||
|
||||
return { text: '<span style="color: ' + color + ';">' + checkDomain + '</span><br>', ok }
|
||||
|
||||
},
|
||||
|
||||
checkIfICanAddNewRecord() {
|
||||
|
||||
// Attualmente se sei loggato puoi inserire Record
|
||||
|
||||
return this.isLogged() && this.isUserOk()
|
||||
}
|
||||
|
||||
|
||||
// FINE !
|
||||
|
||||
// getLocale() {
|
||||
|
||||
@@ -274,6 +274,40 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
return state.myelems.filter((page: IMyElem) => (page.path === path)).sort((a: any, b: any) => a.order - b.order)
|
||||
},
|
||||
|
||||
getMyElemPrecThisElemId: (state: IGlobalState) => (path: string, idelem: string): IMyElem => {
|
||||
// Ottieni tutti gli myelem con lo stesso path e ordinali per order
|
||||
const sortedElems = state.myelems
|
||||
.filter((elem: IMyElem) => elem.path === path)
|
||||
.sort((a: any, b: any) => a.order - b.order);
|
||||
|
||||
// Trova l'indice dell'elemento con _id = idelem
|
||||
const index = sortedElems.findIndex((elem: IMyElem) => elem._id === idelem);
|
||||
|
||||
// ritorna l'elemento precedente
|
||||
if (index > 0) {
|
||||
return sortedElems[index - 1];
|
||||
} else {
|
||||
return sortedElems[0];
|
||||
}
|
||||
},
|
||||
|
||||
getMyElemNextThisElemId: (state: IGlobalState) => (path: string, idelem: string): IMyElem => {
|
||||
// Ottieni tutti gli myelem con lo stesso path e ordinali per order
|
||||
const sortedElems = state.myelems
|
||||
.filter((elem: IMyElem) => elem.path === path)
|
||||
.sort((a: any, b: any) => a.order - b.order);
|
||||
|
||||
// Trova l'indice dell'elemento con _id = idelem
|
||||
const index = sortedElems.findIndex((elem: IMyElem) => elem._id === idelem);
|
||||
|
||||
// ritorna l'elemento successivo
|
||||
if (index < sortedElems.length - 1) {
|
||||
return sortedElems[index + 1];
|
||||
} else {
|
||||
return sortedElems[sortedElems.length - 1];
|
||||
}
|
||||
},
|
||||
|
||||
getmenu: (state: IGlobalState): any => {
|
||||
// console.log('getmenu', cfgrouter.getmenu())
|
||||
|
||||
@@ -1630,6 +1664,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
if (page.loadFirst)
|
||||
page.loaded = true
|
||||
}
|
||||
this.myelems = []
|
||||
this.myelems = (res.data.myelems) ? [...res.data.myelems] : []
|
||||
// console.log('this.mypage', this.mypage)
|
||||
|
||||
@@ -2040,16 +2075,19 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
if (!myelem._id)
|
||||
return false
|
||||
|
||||
return await this.DeleteRec({ table: 'myelems', id: myelem._id }).then((ris) => {
|
||||
return await this.DeleteRec({ table: 'myelems', id: myelem._id })
|
||||
.then(async (ris) => {
|
||||
if (ris) {
|
||||
this.myelems = this.myelems.filter((rec) => rec._id !== myelem._id)
|
||||
|
||||
// Aggiorna anche tutto il sito...
|
||||
this.loadSite()
|
||||
// await this.loadSite()
|
||||
|
||||
tools.showPositiveNotif($q, t('db.deletedrecord'))
|
||||
return true
|
||||
} else {
|
||||
tools.showNegativeNotif($q, t('db.recdelfailed'))
|
||||
return false
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -2062,26 +2100,27 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
mydata.data = myelem
|
||||
|
||||
return await this.saveTable(mydata)
|
||||
.then(async (newelem) => {
|
||||
if (newelem) {
|
||||
console.log('*** newelem', newelem)
|
||||
|
||||
// Save in Memory
|
||||
for (let i = 0; i < this.myelems.length; i++) {
|
||||
if (this.myelems[i]._id === myelem._id) {
|
||||
this.myelems[i] = myelem;
|
||||
if (this.myelems[i]._id === newelem._id) {
|
||||
this.myelems[i] = newelem;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return await this.saveTable(mydata)
|
||||
.then((ris) => {
|
||||
if (ris) {
|
||||
|
||||
// Aggiorna anche tutto il sito...
|
||||
this.loadSite()
|
||||
// await this.loadSite()
|
||||
|
||||
tools.showPositiveNotif($q, t('db.recupdated'))
|
||||
} else {
|
||||
tools.showNegativeNotif($q, t('db.recfailed'))
|
||||
}
|
||||
return ris
|
||||
return newelem
|
||||
}).catch((e) => {
|
||||
tools.showNegativeNotif($q, t('db.recfailed'))
|
||||
return false
|
||||
@@ -2091,11 +2130,12 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
},
|
||||
|
||||
async addNewElem($q: any, t: any, myelem: IMyElem) {
|
||||
const myrec = await this.saveMyElem($q, t, myelem)
|
||||
if (myrec) {
|
||||
myelem._id = myrec._id
|
||||
this.myelems.push(myelem)
|
||||
const newelem = await this.saveMyElem($q, t, myelem)
|
||||
if (newelem) {
|
||||
this.myelems.push(newelem)
|
||||
}
|
||||
|
||||
return newelem
|
||||
},
|
||||
|
||||
changeVisuDrawer(path: string, edit: boolean) {
|
||||
@@ -2117,7 +2157,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
})
|
||||
},
|
||||
|
||||
prepareAddNewElem(order: any, $q: any, t: any, myelem: any, newtype: any) {
|
||||
async prepareAddNewElem(order: any, $q: any, t: any, myelem: any, newtype: any) {
|
||||
|
||||
const newrec: IMyElem = {
|
||||
_id: undefined,
|
||||
@@ -2145,9 +2185,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
}
|
||||
}
|
||||
|
||||
this.addNewElem($q, t, newrec)
|
||||
const mynewrec = await this.addNewElem($q, t, newrec)
|
||||
|
||||
return newrec
|
||||
return mynewrec
|
||||
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user