- Cataloghi

- Import ed Export Pagine
- ObjectID sostituita con ObjectId
This commit is contained in:
Surya Paolo
2024-12-17 17:56:03 +01:00
parent 8baf1e99f0
commit 7619ce5b51
67 changed files with 287 additions and 173 deletions

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="19"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="19"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,6 +1,6 @@
{
"name": "abitaregliiblei",
"version": "1.1.12",
"version": "1.1.14",
"description": "Abitare Gli Iblei",
"productName": "AbitareGliIblei",
"author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,6 +1,6 @@
{
"name": "riso",
"version": "1.1.12",
"version": "1.1.14",
"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",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="15"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="15"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,6 +1,6 @@
{
"name": "fioredellavita",
"version": "1.1.12",
"version": "1.1.14",
"description": "Fiore Della Vita",
"productName": "Fiore Della Vita",
"author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="18"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,25 +1,24 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16"
APP_ID="18"
DIRECTORY_LOCAL=newfreeplanet
DIRECTORY_SERVER=test.freeplanet_serverside
SERVERDIR_WEBSITE="test.piuchebuono.app"
SERVERPW_WEBSITE="pwdadmin@1AOK"
APP_URL="https://test.piuchebuono.app"
DIRECTORY_SERVER=/var/www/nodejs_test.piuchebuono_server
SERVERDIR_WEBSITE="/var/www/test.gruppomacro.app"
APP_URL="https://test.gruppomacro.app"
URL_FACEBOOK=""
PROVA_PAOLO=""
LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://test.freeplanet.app:3001"
LOGO_REG='piuchebuono-logo-full.png'
MONGODB_HOST="https://testapi.gruppomacro.app"
LOGO_REG='gruppomacro-logo-full.png'
TEST_NAME=""
TEST_SURNAME=""
TEST_EMAIL=""
TEST_USERNAME=""
TEST_PASSWORD=""
TEST_APORTADOR=""
PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
IN_CONSTRUCTION="0"
DEBUG="1"
TELEGRAM_SUPPORT=""

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -1,6 +1,6 @@
{
"name": "gruppomacro",
"version": "1.1.12",
"version": "1.1.14",
"description": "GruppoMacro",
"productName": "Gruppo Macro",
"author": "Paolo Arena",
@@ -57,8 +57,8 @@
"html2canvas": "^1.4.1",
"html2pdf.js": "^0.10.2",
"jquery": "^3.7.1",
"jsbarcode": "^3.11.6",
"js-cookie": "^3.0.5",
"jsbarcode": "^3.11.6",
"jspdf": "^2.5.2",
"leaflet": "^1.9.4",
"leaflet-routing-machine": "^3.2.12",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17"
DIRECTORY_LOCAL="newfreeplanet"

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

View File

@@ -1,6 +1,6 @@
{
"name": "piuchebuono",
"version": "1.1.12",
"version": "1.1.14",
"description": "PiuCheBuono",
"productName": "PiuCheBuono",
"author": "Paolo Arena",

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,4 +1,4 @@
APP_VERSION="1.1.12"
APP_VERSION="1.1.14"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,6 +1,6 @@
{
"name": "riso",
"version": "1.1.12",
"version": "1.1.14",
"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",

View File

@@ -1 +1 @@
TERMINA DI LAVORARE SU riso.app: (Sovrascrivo !)
TERMINA DI LAVORARE SU piuchebuono.app: (Sovrascrivo !)

View File

@@ -1,6 +1,6 @@
{
"name": "gruppomacro",
"version": "1.1.12",
"version": "1.1.14",
"description": "GruppoMacro",
"productName": "Gruppo Macro",
"author": "Paolo Arena",

View File

@@ -34,7 +34,7 @@ self.addEventListener('activate', (event) => {
});
const APP_VERSION = "1.1.12";
const APP_VERSION = "1.1.14";
console.log(' [ VER-' + APP_VERSION + ' ] _---------________------ PAO: this is my custom service worker');

View File

@@ -207,6 +207,7 @@ export const shared_consts = {
FILTER_USER_SI_TELEGRAM_ID: 4194304,
FILTER_USER_WITHOUT_USERNAME_TELEGRAM: 8388608,
FILTER_USER_PROVINCE: 16777216,
FILTER_USER_SENZA_PROVINCE: 33554432,
OPTIONS_SEARCH_ONLY_FULL_WORDS: 1,
OPTIONS_SEARCH_USER_ONLY_FULL_WORDS: 2,

View File

@@ -166,11 +166,11 @@
{{ myproduct.productInfo.publisher.name }}
</div>
<div
v-if="myproduct.productInfo.date_publishing && complete"
v-if="myproduct.productInfo.date_pub && complete"
class="book-data-pub"
>
Data Pubblicazione:
{{ tools.getstrDate(myproduct.productInfo.date_publishing) }}
{{ tools.getstrDate(myproduct.productInfo.date_pub) }}
</div>
<q-separator class="q-my-sm"></q-separator>

View File

@@ -578,7 +578,7 @@ export default defineComponent({
function isProductNovita() {
const monthsAgo = props.scheda.etichette?.novita?.months ?? 6; // Numero di mesi da considerare "recenti"
const publishingDate = new Date(myproduct.value!.productInfo.date_publishing!);
const publishingDate = new Date(myproduct.value!.productInfo.date_pub!);
// Calcola i millisecondi corrispondenti a X mesi fa
const monthsInMilliseconds = monthsAgo * 30 * 24 * 60 * 60 * 1000; // Approssimazione, non tutti i mesi hanno 30 giorni

View File

@@ -623,7 +623,7 @@
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="date_publishing"
mykey="date_pub"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.date"
@@ -717,7 +717,7 @@
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="totaleVenduti"
mykey="totVen"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
@@ -729,7 +729,7 @@
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="venditeLastM"
mykey="vLastM"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"
@@ -741,7 +741,7 @@
table="productinfos"
:id="myproduct.productInfo._id"
:rec="myproduct.productInfo"
mykey="venditeLast6M"
mykey="vLast6M"
debounce="1000"
:save="updateproductmodif()"
:type="costanti.FieldType.number"

View File

@@ -8,12 +8,16 @@ import { PropType, defineComponent, onMounted, ref } from 'vue'
import { IMyPage } from '@src/model'
export default defineComponent({
name: 'CExportPage',
name: 'CExportImportPage',
props: {
idPage: {
type: String,
required: true,
},
esporta: {
type: Boolean,
required: true,
},
nomefile: {
type: String,
required: true,

View File

@@ -0,0 +1,55 @@
<template>
<div v-if="myrec && myrec.path" style="width: 800px;" class="">
<div v-if="esporta">
<h2>Pagina '{{ myrec.path }}'</h2>
<br />
<div class="column">
Esporta:
<q-input
outlined
autofocus
v-model="nomefile"
label="Nome File"
></q-input>
<q-btn
color="primary"
:label="esporta ? 'Esporta Pagina' : 'Importa Pagina'"
@click="esportaPagina"
></q-btn>
<CDownloadJsonFile
v-if="testoJson"
:testoJson="testoJson"
:title="`Scarica file ${nomefile}`"
:nomefile="nomefile"
>
</CDownloadJsonFile>
</div>
</div>
<div v-else>
<div class="column">
Importa file JSON:
<input
type="file"
@change="onFileChange">
</input>
fileContent: {{fileContent}}
<q-btn
color="primary"
label="Importa file"
@click="importaPagina"
></q-btn>
</div>
</div>
<div class="row">Risultato:<br>
{{ ris }}</div>
</div>
</template>
<script lang="ts" src="./CExportImportPage.ts"></script>
<style lang="scss" scoped>
@import './CExportImportPage.scss';
</style>

View File

@@ -0,0 +1 @@
export {default as CExportImportPage} from './CExportImportPage.vue'

View File

@@ -1,51 +0,0 @@
<template>
<div v-if="myrec && myrec.path" style="width: 800px;" class="">
<h2>Pagina '{{ myrec.path }}'</h2>
<br />
<div class="column">
Esporta:
<q-input
outlined
autofocus
v-model="nomefile"
label="Nome File"
></q-input>
<q-btn
color="primary"
label="Esporta Pagina"
@click="esportaPagina"
></q-btn>
<CDownloadJsonFile
v-if="testoJson"
:testoJson="testoJson"
:title="`Scarica file ${nomefile}`"
:nomefile="nomefile"
>
</CDownloadJsonFile>
</div>
<div class="column">
Importa file JSON:
<input
type="file"
@change="onFileChange"
outlined
></input>
fileContent: {{fileContent}}
<q-btn
color="primary"
label="Importa file"
@click="importaPagina"
></q-btn>
</div>
<div class="row">Risultato:<br>
{{ ris }}</div>
</div>
</template>
<script lang="ts" src="./CExportPage.ts"></script>
<style lang="scss" scoped>
@import './CExportPage.scss';
</style>

View File

@@ -1 +0,0 @@
export {default as CExportPage} from './CExportPage.vue'

View File

@@ -50,11 +50,13 @@ export default defineComponent({
onMounted(mounted)
function makeClick() {
}
return {
tools,
getmenuByPath,
makeClick,
}
}
})

View File

@@ -1,8 +1,9 @@
<template>
<div :style="{ paddingLeft: `${level * 4}px` }">
<q-separator v-if="item.isseparator" />
<q-expansion-item
v-else-if="item.routes2 || item.sottoMenu"
v-else-if="item.routes2 || (item.sottoMenu && item.sottoMenu.length > 0)"
:content-inset-level="item.level_parent"
:header-class="getmymenuclass(item)"
:header-inset-level="item.level_parent"
@@ -14,8 +15,9 @@
item.mainMenu || item.routes2 ? 'fas fa-chevron-down' : 'none'
"
>
<router-link :to="getroute(item)" custom>
<c-menu-item
v-for="(childItem, childIndex) in item.routes2 || item.sottoMenu"
v-for="(childItem, childIndex) in item.routes2 || (item.sottoMenu && item.sottoMenu.length > 0)"
:key="childIndex"
:item="getmenuByPath(childItem)"
:tools="tools"
@@ -26,11 +28,13 @@
:mainMenu="item.mainMenu"
:level="level + 1"
/>
</router-link>
</q-expansion-item>
<router-link v-else :to="getroute(item)" custom>
<q-item
v-else
clickable
:to="getroute(item)"
@click="makeClick"
:content-inset-level="item.level_parent"
:header-inset-level="item.level_parent"
active-class="my-menu-active"
@@ -53,6 +57,7 @@
<span v-if="item.subtitle" class="subtitle">{{ item.subtitle }}</span>
</q-item-section>
</q-item>
</router-link>
</div>
</template>

View File

@@ -49,7 +49,7 @@ export default defineComponent({
CSelectColor, CSelectFontSize, CSelectImage, CImgPoster, CSelectAnimation, CMySlider,
CMySize, CBorders, CMyDimensioni, CMyText,
},
emits: ['saveElem', 'selElemClick', 'toggleSize', 'deleteElem', 'dupPage', 'expPage'],
emits: ['saveElem', 'selElemClick', 'toggleSize', 'deleteElem', 'dupPage', 'expPage', 'impPage'],
props: {
myelem: {
type: Object as PropType<IMyElem>,
@@ -185,6 +185,9 @@ export default defineComponent({
async function exportPage() {
emit('expPage', null)
}
async function importPage() {
emit('impPage', null)
}
async function dupElem(order?: number) {
const newrec: IMyElem = tools.jsonCopy(props.myelem)
@@ -1090,6 +1093,7 @@ export default defineComponent({
copyfromTemplate,
modifElemAndSchede,
exportPage,
importPage,
}
},

View File

@@ -57,6 +57,15 @@
@click="dupPage()"
>
</q-btn>
<q-btn
icon="fas fa-expand-alt"
label="Importa"
dense
size="sm"
color="primary"
@click="importPage()"
>
</q-btn>
<q-btn
icon="fas fa-expand-alt"
label="Esporta"

View File

@@ -10,7 +10,7 @@ import { CMyElem } from '@/components/CMyElem'
import { CTitleBanner } from '@/components/CTitleBanner'
import { CMyEditElem } from '@/components/CMyEditElem'
import { CMyPageElem2 } from '@/components/CMyPageElem2'
import { CExportPage } from '@/components/CExportPage'
import { CExportImportPage } from '@src/components/CExportImportPage'
import { CImgTitle } from '../CImgTitle/index'
import { CTitle } from '../CTitle/index'
@@ -25,7 +25,7 @@ export default defineComponent({
name: 'CMyPageElem',
components: {
LandingFooter, CImgTitle, CTitle, CMyElem,
CMyEditElem, CMyPageElem2, CTitleBanner, CExportPage,
CMyEditElem, CMyPageElem2, CTitleBanner, CExportImportPage,
},
props: {
title: String,
@@ -79,6 +79,7 @@ export default defineComponent({
const mywidthEditor = ref(400)
const showexportPage = ref(false)
const showimportPage = ref(false)
const editOn = computed({
get(): boolean {
@@ -199,6 +200,7 @@ export default defineComponent({
deleteElem,
duplicatePage,
showexportPage,
showimportPage,
}
},

View File

@@ -52,6 +52,7 @@
@toggleSize="toggleSize"
@dupPage="duplicatePage"
@expPage="showexportPage = !showexportPage"
@impPage="showimportPage = !showimportPage"
>
</CMyEditElem>
</q-drawer>
@@ -177,7 +178,22 @@
</q-toolbar>
<q-card-section class="q-pa-xs inset-shadow">
<br>
<CExportPage :idPage="selElem.idPage" :nomefile="`esporta_${rec.path}.json`"> </CExportPage>
<CExportImportPage :idPage="rec._id" :nomefile="`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">
<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">
<br>
<CExportImportPage :idPage="rec._id" :nomefile="`esporta_${rec.path}.json`"> </CExportImportPage>
<br>
</q-card-section>
</q-card>

View File

@@ -468,7 +468,7 @@ export default defineComponent({
try {
console.log('mounted', 'isFieldDb()', myrow.value, 'sub', props.subfield, 'field', props.field)
// console.log('mounted', 'isFieldDb()', myrow.value, 'sub', props.subfield, 'field', props.field)
if (isFieldDb() && !props.isrec) {
// console.log(' . none...')
} else {

View File

@@ -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.1.12">
<meta name="version" content="1.1.14">
<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<% } %>">

View File

@@ -69,10 +69,15 @@ export default defineComponent({
} */
function getroute(elem: IListRoutes) {
let link = ''
if (elem.idelem) {
return tools.getUrlByTipoProj(elem.urlroute ? elem.urlroute : '') + elem.idelem
link = tools.getUrlByTipoProj(elem.urlroute ? elem.urlroute : '') + elem.idelem
}
return elem.path
if (!link)
link = elem.path
// console.log('getroute LINK=', link)
return link
}
function getmymenuclass(elem: IListRoutes) {

View File

@@ -37,18 +37,18 @@ export interface IProductInfo {
collezione?: string
idPublisher?: string
publisher?: IPublisher
date_publishing?: Date
date_publishing_ts: number
date_pub?: Date
date_pub_ts: number
pagine?: number
productTypes?: number[]
versioneGM?: string
short_descr: string
totaleVenduti?: number,
venditeLastM?: number,
venditeLast6M?: number,
venditeLastY?: number,
venditeLast2Y?: number,
totVen?: number,
vLastM?: number,
vLast6M?: number,
vLastY?: number,
vLast2Y?: number,
dataUltimoOrdine?: Date,
rank3M?: number,
rank6M?: number,

View File

@@ -368,11 +368,11 @@ export default defineComponent({
return importMacroCatalogoJson(cmd, testo);
} else if (cmd === shared_consts.Cmd.MACRO_DESCRELINKSITOWEB) {
console.log('TESTO PRIMA:', testo)
// console.log('TESTO PRIMA:', testo)
const testoJSON = tools.convertXMLStringToJSON(testo)
const testoJSONtoPrint = JSON.stringify(testoJSON, null, 2)
console.log(testoJSONtoPrint)
// console.log(testoJSONtoPrint)
return importMacroCatalogoJson(cmd, testoJSONtoPrint)
}

View File

@@ -65,7 +65,11 @@ export default defineComponent({
{
label: 'Provincia',
value: shared_consts.FILTER_USER_PROVINCE
}
},
{
label: 'Senza Provincia',
value: shared_consts.FILTER_USER_SENZA_PROVINCE
},
]
} else if (tools.appid() === tools.IDAPP_FREEPLANET) {

View File

@@ -0,0 +1,29 @@
.maintenance-page {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
background-color: #f8f9fa;
color: #343a40;
text-align: center;
}
h1 {
margin-bottom: 16px;
}
button {
margin-top: 16px;
padding: 10px 15px;
font-size: 16px;
color: white;
background-color: #007bff;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background-color: #0056b3;
}

View File

@@ -1,8 +1,25 @@
import { defineComponent } from 'vue'
import { computed, defineComponent, onMounted, ref } from 'vue'
import { tools } from '@store/Modules/tools'
import { useRouter } from 'vue-router';
export default defineComponent({
name: 'sito_offline',
setup() {
return {}
const $router = useRouter()
onMounted(() => {
});
const checkStatus = () => {
// Logica per controllare lo stato del servizio (opzionale)
$router.replace('/')
};
return {
checkStatus,
tools,
};
},
})

View File

@@ -1,7 +1,19 @@
<template>
<div>
sito_offline
<div class="maintenance-page">
<h1 class="text-blue text-bold">Sito "{{ tools.getappname() }}" In Manutenzione</h1>
<q-img src="images/sito_in_manutenzione.jpg" width="200px" height="200px">
</q-img>
<br>
<p>Ci scusiamo per l'inconveniente, ma stiamo effettuando lavori di manutenzione sul sito.</p>
<p>Ritorneremo online il prima possibile. Grazie per la vostra pazienza!</p>
<button @click="checkStatus">Riaggiorna la pagina</button>
</div>
</template>
<script lang="ts" src="./sito_offline.ts">
</script>
<style lang="scss" scoped>
@import "./sito_offline.scss";
</style>

View File

@@ -1929,7 +1929,7 @@ const msg_it = {
descrizione_completa_macro: '{descrizione_completa_macro}',
descrizione_breve_macro: '{descrizione_breve_macro}',
link_macro: '{link_macro}',
totaleVenduti: 'Totale Venduti',
totVen: 'Totale Venduti',
}

View File

@@ -1368,7 +1368,7 @@ export const colAttivita = [
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
}),
AddCol({
name: 'date_publishing', label_trans: 'products.date_publishing',
name: 'date_pub', label_trans: 'products.date_pub',
fieldtype: costanti.FieldType.onlydate,
foredit: false,
noshowlabel: true,
@@ -2338,7 +2338,7 @@ export const colTableProductInfos = [
AddCol({ name: 'valori_nutrizionali', label_trans: 'products.valori_nutrizionali', fieldtype: costanti.FieldType.html }),
AddCol({ name: 'author', label_trans: 'products.author', fieldtype: costanti.FieldType.string }),
AddCol({ name: 'collezione', label_trans: 'products.collezione', fieldtype: costanti.FieldType.string }),
AddCol({ name: 'date_publishing', label_trans: 'products.date_publishing', fieldtype: costanti.FieldType.onlydate }),
AddCol({ name: 'date_pub', label_trans: 'products.date_pub', fieldtype: costanti.FieldType.onlydate }),
AddCol({ name: 'publisher', label_trans: 'products.publisher', fieldtype: costanti.FieldType.string }),
AddCol({ name: 'pagine', label_trans: 'products.pagine', fieldtype: costanti.FieldType.number }),
AddCol({ name: 'note', label_trans: 'products.note', fieldtype: costanti.FieldType.html }),

View File

@@ -115,6 +115,7 @@ export const tools = {
IDAPP_CNM: '10',
IDAPP_FREEPLANET: '1',
IDAPP_RISO: '13',
IDAPP_PCB: '17',
IDAPP_MACRO: '18',
TipoMsg: {
@@ -8035,7 +8036,7 @@ export const tools = {
} catch (e) {
console.error('err getDirectoryGall', e)
}
console.log('getDirectoryGall', ris, 'mypath', path, 'myrow', myrow)
// console.log('getDirectoryGall', ris, 'mypath', path, 'myrow', myrow)
return ris
},

View File

@@ -1278,10 +1278,10 @@ export const useProducts = defineStore('Products', {
const maxDescriptionLength = testo.maxlength ?? 100;
const description = myproduct.productInfo.short_descr || '';
const long_descr = myproduct.productInfo.description || '';
const date_pub = tools.getstrDateShort(myproduct.productInfo.date_publishing) || '';
const date_pub = tools.getstrDateShort(myproduct.productInfo.date_pub) || '';
const ranking_globale = myproduct.productInfo.rank1Y! || 0;
const ranking = myproduct.indiceRanking! || 0;
const venduti = myproduct.productInfo.totaleVenduti! || 0;
const venduti = myproduct.productInfo.totVen! || 0;
const linkvenduti = '<a href="http://vps-88271abb.vps.ovh.net/apimacro/public/view-ordini-by-idarticolo/' + myproduct.productInfo.sku + '" target="_blank">'+venduti+'</a>'
const debugstr = " Rank=" + ranking + "<br> 1Y=" + (myproduct.productInfo.rank1Y! || '') + '<br> Venduti=' + linkvenduti + '<br> Data Pubb=' + date_pub

View File

@@ -638,8 +638,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
materialIcon: 'home',
name: 'otherpages.sito_offline',
component: () => import('@src/rootgen/sito_offline/sito_offline.vue'),
inmenu: true,
infooter: true,
inmenu: false,
infooter: false,
}
// console.log('Sito Online? ', toolsext.sito_online(false))
@@ -647,7 +647,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
if (!toolsext.sito_online(false)) {
static_data.routes = [sito_offline, last]
} else {
static_data.routes = [...baseroutes, ...ecommRoutes, ...adminRoutes, ...arrpagesroute, ...AIRoutes, last]
static_data.routes = [sito_offline, ...baseroutes, ...ecommRoutes, ...adminRoutes, ...arrpagesroute, ...AIRoutes, last]
}
/*for (const menu of static_data.routes) {

View File

@@ -426,12 +426,12 @@ export default defineComponent({
if (sort === costanti.SORT_PUBDATE) {
arrprod = arrprod.sort((a: IProduct, b: IProduct) => {
return b.productInfo.date_publishing_ts - a.productInfo.date_publishing_ts
return b.productInfo.date_pub_ts - a.productInfo.date_pub_ts
})
} else if (sort === costanti.SORT_BESTSELLER) {
arrprod = arrprod.sort((a: IProduct, b: IProduct) => {
return b.productInfo.rank1Y! - a.productInfo.rank1Y!
return b.productInfo.rank3M! - a.productInfo.rank3M!
})
arrprod = arrprod.map((product, index) => {