AITools prime cose
@@ -1,6 +1,6 @@
|
||||
APP_VERSION="1.0.21"
|
||||
APP_VERSION="1.0.22"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="17"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
DIRECTORY_SERVER="freeplanet_serverside"
|
||||
SERVERDIR_WEBSITE=""
|
||||
@@ -12,7 +12,7 @@ LANG_DEFAULT="it"
|
||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||
MONGODB_HOST="https://localhost:3000"
|
||||
LOGO_REG='piuchebuono-logo-full.png'
|
||||
LOGO_REG='riso-logo-full.png'
|
||||
TEST_NAME="Paolo"
|
||||
TEST_SURNAME="Arena"
|
||||
TEST_EMAIL=""
|
||||
|
||||
2
.vscode/settings.json
vendored
@@ -11,6 +11,8 @@
|
||||
"vetur.experimental.templateInterpolationService": true,
|
||||
"files.watcherExclude": {
|
||||
"**/.git/objects/**": true,
|
||||
"**/public": true,
|
||||
"**/images": true,
|
||||
"**/node_modules/**": true
|
||||
},
|
||||
}
|
||||
30
_ALL_SITES/gruppomacro.app/.env.development
Executable file
@@ -0,0 +1,30 @@
|
||||
APP_VERSION="1.0.21"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="18"
|
||||
DIRECTORY_LOCAL="newfreeplanet"
|
||||
DIRECTORY_SERVER="freeplanet_serverside"
|
||||
SERVERDIR_WEBSITE=""
|
||||
SERVERPW_WEBSITE=""
|
||||
APP_URL="https://localhost"
|
||||
URL_FACEBOOK="https://www.facebook.com/freeplanetapp"
|
||||
PROVA_PAOLO="PROVA ENV FUNZIONA!"
|
||||
LANG_DEFAULT="it"
|
||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||
MONGODB_HOST="https://localhost:3000"
|
||||
LOGO_REG='gruppomacro-logo-full.png'
|
||||
TEST_NAME="Paolo"
|
||||
TEST_SURNAME="Arena"
|
||||
TEST_EMAIL=""
|
||||
TEST_USERNAME=""
|
||||
TEST_PASSWORD=""
|
||||
TEST_APORTADOR=""
|
||||
PUBLICKEY_PUSH='BDncvMiUZmjaCG2Kr1V9N0_33hOG-AuNSbHSvL24y2dzBiUjAxKm02emx5SeJvz2IGmtRf6YqCgopeQwCwUmZw8'
|
||||
IN_CONSTRUCTION="0"
|
||||
DEBUG="1"
|
||||
TELEGRAM_SUPPORT=""
|
||||
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||
TEST_CELL=""
|
||||
ISTEST=1
|
||||
INLOCALE=1
|
||||
BAK_MONGODB_HOST="http://192.168.0.200:3000"
|
||||
28
_ALL_SITES/gruppomacro.app/.env.test
Executable file
@@ -0,0 +1,28 @@
|
||||
APP_VERSION="1.0.20"
|
||||
SERVICE_WORKER_FILE="service-worker.js"
|
||||
APP_ID="13"
|
||||
DIRECTORY_LOCAL=newfreeplanet
|
||||
DIRECTORY_SERVER=test.freeplanet_serverside
|
||||
SERVERDIR_WEBSITE="test.riso.app"
|
||||
SERVERPW_WEBSITE="pwdadmin@1AOK"
|
||||
APP_URL="https://test.riso.app"
|
||||
URL_FACEBOOK=""
|
||||
PROVA_PAOLO=""
|
||||
LANG_DEFAULT="it"
|
||||
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
|
||||
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
|
||||
MONGODB_HOST="https://test.freeplanet.app:3001"
|
||||
LOGO_REG='riso-logo-full.png'
|
||||
TEST_NAME=""
|
||||
TEST_SURNAME=""
|
||||
TEST_EMAIL=""
|
||||
TEST_USERNAME=""
|
||||
TEST_PASSWORD=""
|
||||
TEST_APORTADOR=""
|
||||
PUBLICKEY_PUSH="BGXRf1TgcqocqD6J7qnRgCG7AvM2lxAoW7peb7UEzB4SxBb6DxGRdJ0UvD9ewnrB9KrSrh0-aDCODXBm7sZ1DDs"
|
||||
IN_CONSTRUCTION="0"
|
||||
DEBUG="1"
|
||||
TELEGRAM_SUPPORT=""
|
||||
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
|
||||
TEST_CELL=""
|
||||
ISTEST=1
|
||||
448
_ALL_SITES/gruppomacro.app/db/data/popolazione.js
Normal file
11
_ALL_SITES/gruppomacro.app/db/db_data.js
Executable file
@@ -0,0 +1,11 @@
|
||||
import { IEvents } from '../model';
|
||||
|
||||
export const db_data = {
|
||||
URL_FACEBOOK: '',
|
||||
|
||||
userdata: {
|
||||
calendar_editable: false,
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
392
_ALL_SITES/gruppomacro.app/db/i18n_website.js
Executable file
@@ -0,0 +1,392 @@
|
||||
const msg_website = {
|
||||
it: {
|
||||
pages: {
|
||||
home: 'Principale',
|
||||
SignUp: 'Registrazione',
|
||||
SignUp2: 'Registrazione2',
|
||||
SignIn: 'Login',
|
||||
vreg: 'Verifica Reg',
|
||||
Test: 'Test',
|
||||
TestLocal: 'TestLocal',
|
||||
Category: 'Categorie',
|
||||
Todo: 'Todo',
|
||||
personal: 'Personale',
|
||||
bacheca: 'Bacheca',
|
||||
shopping: 'Spesa',
|
||||
Admin: 'Admin',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
projects: 'Progetti',
|
||||
favproj: 'Favoriti',
|
||||
},
|
||||
projall: 'Tutti',
|
||||
projectsShared: 'Miei Condivisi',
|
||||
myprojects: 'Miei Personali',
|
||||
msg: {
|
||||
hello: 'Buongiorno',
|
||||
myAppName: 'FreePlanet',
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito e senza Pubblicità',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Il primo Vero Social',
|
||||
sottoTitoloApp2: 'Libero, Equo e Solidale',
|
||||
sottoTitoloApp3: 'dove Vive Consapevolezza e Aiuto Comunitario',
|
||||
sottoTitoloApp4: 'Gratuito e senza Pubblicità',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa pittaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>senso della vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
+ 'così piano piano dalla <strong>schiavitù</strong> del <strong>"Lavoro per generare Denaro"</strong> e trasformando le nostre <strong>Capacitá</strong> in '
|
||||
+ '<strong>Risorse Umane</strong> per poterci sostenere e vivere in <strong>Armonia</strong> con gli altri.',
|
||||
freesocial: {
|
||||
title: 'Free Social',
|
||||
descr: 'Una Community organizzata per <strong>Categorie</strong>, dove potrai unirti a <strong>Gruppi Tematici</strong>, '
|
||||
+ 'Condividere <strong>Esperienze</strong> e unire Competenze per organizzare e sostenere <strong>Progetti Innovativi</strong> per il Popolo.<br><br>'
|
||||
+ 'Verranno evidenziati sviluppi <strong>Etici</strong> come l\'<strong>Auto-Produzione</strong>, la <strong>Sostenibilitá</strong>, '
|
||||
+ 'la Buona <strong>Salute Naturale</strong> e il <strong>Rispetto per l\'Ambiente</strong> e per tutti gli <strong>Esseri Viventi</strong> di questo '
|
||||
+ '<strong>Pianeta</strong>. Chiunque potrá esprimere il proprio <strong>Consenso o Dissenso</strong> partecipando a <strong>Sondaggi Interattivi</strong>'
|
||||
+ ' e realizzare insieme i <strong>Cambiamenti</strong> necessari alla nostra Società.',
|
||||
},
|
||||
freetalent: {
|
||||
title: 'Free Talent',
|
||||
descr: 'Condividi i tuoi <strong>Talenti</strong> e <strong>Abilità</strong>, '
|
||||
+ 'al posto del denaro guadagnagnerai <strong>Tempo</strong>.<br> '
|
||||
+ '<strong>"1 ora"</strong> diventa moneta di scambio, uguale per tutti.<br>'
|
||||
+ 'Potrai utilizzare questi tuoi <strong>"Crediti Tempo"</strong> per soddisfare le tue necessità, cercando nelle <strong>Competenze Disponibili</strong>.<br>'
|
||||
+ 'Nel Dare e Ricevere, si creeranno così legami di <strong>Amicizia, Solidarietà, Cooperazione e Divertimento</strong><br><br>'
|
||||
+ 'Questo progetto vuole diffondere, ora in maniera informatizzata, questa realtà che gia esiste da tanti anni, e viene chiamata <strong>"Banca del Tempo"</strong>. '
|
||||
+ 'Le <strong>segreterie</strong> sparse in tutto il mondo, serviranno a dare maggiore <strong>affidabilità</strong> e <strong>fiducia</strong> negli scambi di talenti tra persone sconosciute. '
|
||||
+ 'Creeremo così una <strong>rete di fiducia</strong> nel vicinato, come giá viene praticato in numerosi <strong>Ecovillaggi</strong> e Comunità del mondo.',
|
||||
},
|
||||
freegas: {
|
||||
title: 'Free G.A.S.',
|
||||
descr: 'Ti piacerebbe utilizzare una App che ti permetta facilmente di acquistare Prodotti Locali direttamente dal <strong>Produttore</strong>?<br>'
|
||||
+ 'Con i <strong>Gruppi di Acquisto Solidale</strong> si evitano intermediazioni inutili, ottenendo parecchi benefici tra cui:<br>'
|
||||
+ '<ul class="mylist" style="padding-left: 20px;"><li><strong>Qualitá Superiore</strong> del prodotto</li>'
|
||||
+ '<li>Le <strong>Recensioni</strong> dei consumatori favoriranno i Produttori con Sani Intenti</li>'
|
||||
+ '<li>Possiblità d\'interagire con il Produttore</li>'
|
||||
+ '<li>Apertura alle Relazioni tra persone, condividendo <strong>Ricette</strong> e <strong>Consigli</strong> preziosi</li>'
|
||||
+ '<li><strong>Risparmio</strong> di soldi (prezzi all\'Ingrosso)</li>'
|
||||
+ '<li>Valorizzare il <strong>Territorio</strong> e l\'Economia <strong>Locale</strong></li>'
|
||||
+ '<li>Condizioni <strong>Eque</strong> per i Lavoratori</li>'
|
||||
+ '<li>Ridotto <strong>Impatto Ambientale</strong></ul>',
|
||||
},
|
||||
freeliving: {
|
||||
title: 'Free Co-Living',
|
||||
descr: 'Unire più realtà, condividendo l\'esperienza di abitare insieme, per un periodo definito:<br>'
|
||||
+ '1) C\'è chi <strong>Vive solo</strong> ed ha una casa.<br>'
|
||||
+ '2) Chi ha bisogno di un <strong>alloggio</strong> temporaneo.<br><br>'
|
||||
+ 'Oggi sempre più persone <strong>abitano da sole</strong> e vorrebbero continuare a vivere nella propria abitazione.<br>'
|
||||
+ 'Altre persone invece hanno bisogno di una <strong>stanza</strong>, per scelta o per necessita, ed in cambio sono disponibili a '
|
||||
+ '<strong>contribuire alle spese</strong> per le utenze domestiche o magari <strong>aiutare</strong> la persona a <strong>fare la spesa</strong>, cucinare, <strong>pulire casa</strong> oppure offrendogli semplicemente <strong>compagnia</strong>.<br><br>'
|
||||
+ 'Tramite questo strumento, le persone potranno trovarsi, mettersi in contatto e decidere in che forma <strong>co-abitare</strong> e per quanto tempo. Le <strong>recensioni</strong> rilasciate ed il <strong>dettaglio</strong> dei profili utenti, '
|
||||
+ 'aiuterà nella scelta della persona più in <strong>sintonia</strong>.',
|
||||
|
||||
},
|
||||
freecollabora: {
|
||||
title: 'Chi può Collaborare?',
|
||||
descr: 'Tutti coloro che sono in linea con <strong>Princìpi Etici</strong> e ricerca del <strong>Benessere Globale del Pianeta</strong><br>'
|
||||
+ 'Pertanto sono i benvenuti:'
|
||||
+ '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li><strong>Associazioni no-profit, Ecovillaggi, Comunità</strong></li>'
|
||||
+ '<li>Gruppi che intendono promuovere <strong>Progetti Sociali Innovativi</strong> per una <strong>Decrescita Felice</strong></li>'
|
||||
+ '<li>Chi gestisce un <strong>Gruppo di Acquisto Solidale (G.A.S.)</strong></li>'
|
||||
+ '<li><strong>Produttori Locali Etici</strong></li>'
|
||||
+ '<li>Chi gestisce una <strong>Banca del Tempo</strong></li>'
|
||||
+ '<li><strong>Chiunque voglia partecipare</strong>, nella forma che ritiene più opportuna.</li>'
|
||||
+ '</ul>',
|
||||
},
|
||||
freesostieni: {
|
||||
title: 'Come Sostenere il progetto?',
|
||||
descr: '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li><strong>Condividendolo</strong> a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era</li>'
|
||||
+ '<li>Rispondendo ai <strong>Sondaggi Popolari</strong> e lasciando <strong>Feedback</strong></li>'
|
||||
+ '<li>Tramite una <strong>donazione</strong> (<strong>anche 1€</strong> ) per le spese.<br>'
|
||||
+ '</ul>'
|
||||
+ 'Vedo un <strong>futuro</strong> dove non si utilizzerà più denaro. Dove le persone si <strong>aiuteranno</strong> a vicenda e non avranno bisogno di "possedere" cose, ma le <strong>condivideranno</strong> con gli altri.<br>',
|
||||
},
|
||||
multiplatform: {
|
||||
title: 'Multi-piattaforma',
|
||||
descr: 'E\' compatibile con Google Chrome, Firefox, Safari, iOS, Android e PC. L\'Applicazione s\'installa facilmente, senza passare dallo store. '
|
||||
+ 'basta condividere il nome del sito <strong>www.freeplanet.app</strong>.<br>'
|
||||
+ 'Dopo la registrazione chiederà di aggiungerlo alla lista delle applicazioni e sullo sfondo',
|
||||
},
|
||||
free: {
|
||||
title: 'Gratuita, Open Source e Niente Pubblicità',
|
||||
descr: 'Questa App <strong>non è in vendita</strong>, non ha scopi commerciali, <strong>non ha prezzo</strong> ed appartiene al <strong>Popolo del Nuovo Mondo</strong>.<br>Chiunque potrá utilizzarla e beneficiarne.<br>A me il compito di gestirla e proteggerla. '
|
||||
+ 'Verranno accettate solo donazioni Libere di privati ed Associazioni no-profit, in linea con i Principi, che serviranno per coprire le spese.<br>' +
|
||||
+ '<strong>Grazie a Tutti per il sostegno</strong>. ',
|
||||
},
|
||||
contacts: 'Contatti',
|
||||
},
|
||||
},
|
||||
es: {
|
||||
pages: {
|
||||
home: 'Principal',
|
||||
SignUp: 'Nueva Cuenta',
|
||||
SignIn: 'Entrar',
|
||||
vreg: 'Verifica Reg',
|
||||
Test: 'Test',
|
||||
Category: 'Categorías',
|
||||
Todo: 'Tareas',
|
||||
personal: 'Personal',
|
||||
work: 'Trabajo',
|
||||
shopping: 'Compras',
|
||||
Admin: 'Administración',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
projects: 'Proyectos',
|
||||
},
|
||||
favproj: 'Favoritos',
|
||||
projall: 'Todos',
|
||||
projectsShared: 'Mis Compartidos',
|
||||
myprojects: 'Mis Personales',
|
||||
msg: {
|
||||
hello: 'Buenos Días',
|
||||
myAppName: 'FreePlanet',
|
||||
myAppDescription: 'El primer Verdadero Social Libre, justo y Solidario Donde vive Conciencia y Ayuda comunitaria, Gratis y sin publicidad',
|
||||
underconstruction: 'App en construcción...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'El primer Verdadero Social',
|
||||
sottoTitoloApp2: 'Libre, justo y Solidario',
|
||||
sottoTitoloApp3: 'Donde vive Conciencia y Ayuda comunitaria',
|
||||
sottoTitoloApp4: 'Gratis y sin publicidad',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Unidos para evolucionar y experimentar',
|
||||
descrapp_pag1: 'Redescubra cómo el valor de <strong>Compartir</strong> y <strong>Cooperación</strong> puede ayudarnos a encontrar el profundo '
|
||||
+ 'sentido de la <strong>Vida</strong>, perdido en esta sociedad consumista, y mostrando esos <strong>Principios Naturales Saludables</strong> y la <strong>Hermandad Humana</strong>'
|
||||
+ 'que toda la población antigua conocía bien.',
|
||||
descrapp_pag2: 'Ha llegado el momento de utilizar las nuevas herramientas <strong>tecnológicas</strong> en nuestro <strong>favor</strong>, para <strong>liberarnos</strong> '
|
||||
+ 'tan lentamente desde la <strong>esclavitud</strong> de <strong>"Trabaja para generar dinero"</strong> y transformando nuestra <strong>Capacidad</strong> en'
|
||||
+ '<strong>Recursos humanos</strong> para poder apoyar y vivir en <strong>Armonia</strong> con otros.',
|
||||
freesocial: {
|
||||
title: 'Free Social',
|
||||
descr: 'Una comunidad organizada por <strong>Categorías</strong>, donde puedes unirte a <strong>Grupos temáticos</strong>, '
|
||||
+ 'Compartir <strong>experiencias</strong> y combinar habilidades para organizar y apoyar <strong>proyectos innovadores</strong> para la gente.<br><br>'
|
||||
+ 'Los desarrollos <strong>éticos</strong> como <strong>:<br>Auto-producción</strong>, <strong>Sostenibilidad</strong>, '
|
||||
+ 'la Buena <strong>Salud natural</strong> y <strong>Respeto por el Medio Ambiente</strong> y para todos los <strong>Seres vivos</strong> de este'
|
||||
+ '<strong>Planeta</strong>. Cualquiera puede expresar su <strong>consentimiento o disidencia</strong> participando en <strong>Encuestas Interactivas</strong> '
|
||||
+ 'y llevar a cabo juntos los <strong>Cambios</strong> necesarios para nuestra sociedad.',
|
||||
},
|
||||
freetalent: {
|
||||
title: 'Free Talent',
|
||||
descr: 'Comparte tus <strong>Talentos</strong> y <strong>Habilidades</strong>, '
|
||||
+ 'en lugar de dinero, ganarás <strong>Tiempo</strong>. <br>'
|
||||
+ '<strong>"1 hora"</strong> se convierte en una moneda de intercambio, igual para todos. <br>'
|
||||
+ 'Puedes usar estos <strong>"Créditos de tiempo"</strong> para satisfacer tus necesidades, buscando en <strong>Habilidades disponibles</strong>. <br> '
|
||||
+ 'En Dar y Recibir, crearemos así vínculos de <strong>Amistad, Solidaridad, Cooperación y Diversión</strong>. <br> <br>'
|
||||
+ 'Este proyecto apunta a difundir esta realidad, que ya existe desde hace muchos años y se llama <strong>"Banco de tiempo"</strong>. '
|
||||
+ 'Las <strong>secretarías</strong> dispersas por todo el mundo, servirán para dar mayor <strong>fiabilidad</strong> y <strong>confianza</strong> en el intercambio de talentos entre personas desconocidas. '
|
||||
+ 'Así crearemos una <strong>red de confianza</strong> en el vecindario, como ya se practica en numerosos <strong>Ecoaldeas</strong> y en la Comunidades del mundo.',
|
||||
},
|
||||
freegas: {
|
||||
title: 'Free G.A.S. (G.C.S.)',
|
||||
descr: '¿Le gustaría usar una aplicación que le permita comprar productos locales directamente desde el <strong>Productor</strong>? <br> '
|
||||
+ 'Con <strong>Grupos de Compra Solidarios</strong> evitamos intermediarios innecesarios, obteniendo muchos beneficios, incluyendo: <br>'
|
||||
+ '<ul class = "mylist" style = "padding-left: 20px;"> <li> <strong>Superior Quality</strong> del producto </li>'
|
||||
+ '<li> Opiniones <strong>de consumidores</strong> favorecerá a los productores con intenciones saludables </li>'
|
||||
+ '<li> Posibilidad de interactuar con el Productor </li>'
|
||||
+ '<li> Abierto a relaciones entre personas, compartiendo <strong>Recetas</strong> y <strong>Consejos</strong> preciosos </li>'
|
||||
+ '<li> <strong>Ahorros</strong> de dinero (precios al por mayor) </li>'
|
||||
+ '<li> Mejorando el <strong>Territorio</strong> y la Economía <strong>Local</strong> </li>'
|
||||
+ '<li> Condiciones <strong>Justa</strong> para Trabajadores </li>'
|
||||
+ '<li> Reducido <strong>Impacto Ambiental</strong> </ul>',
|
||||
},
|
||||
freeliving: {
|
||||
title: 'Free Co-Living',
|
||||
descr: 'Para unir más realidad, compartiendo la experiencia de vivir juntos, por un período definido: <br> '
|
||||
+ '1) Hay quien <strong>vive solo</strong> y tiene un hogar. <br>'
|
||||
+ '2) Quién necesita un alojamiento <strong>temporal</strong>. <br><br>'
|
||||
+ 'Hoy en día, más y más personas <strong>viven solas</strong> y les gustaría seguir viviendo en sus propios hogares. <br>'
|
||||
+ 'Otras personas necesitan una <strong>Habitación</strong>, por elección o por necesidad, y a cambio están disponibles en'
|
||||
+ '<strong>contribuir a los gastos</strong> para los billetes de casa o tal vez <strong>ayuda</strong> a la persona mayor para <strong>ir de compras</strong>, cocinar, <strong>limpiar casa</strong> o simplemente ofreciéndole <strong>compañía</strong>. <br><br> '
|
||||
+ 'A través de esta herramienta, las personas pueden ponerse en contacto y decidir en qué forma <strong>co-habitar</strong>. Los <strong>comentarios</strong> publicados y el <strong>detalle</strong> de los perfiles de usuario, '
|
||||
+ 'ayudará a elegir a la persona más en <strong>armonía</strong>.',
|
||||
|
||||
},
|
||||
freecollabora: {
|
||||
title: '¿Quién puede colaborar?',
|
||||
descr: 'Todos aquellos que están en línea con <strong>Principios éticos</strong> y la investigación de <strong>Bienestar Global del Planeta</strong> <br> '
|
||||
+ 'Por eso son bienvenidos:'
|
||||
+ '<ul class = "mylist" style = "padding-left: 20px;">'
|
||||
+ '<li> <strong>Asociaciones sin ánimo de lucro, Ecoaldeas, Comunidades</strong> </li>'
|
||||
+ '<li> Grupos que desean promover <strong>Proyectos sociales innovadores</strong> para <strong>Feliz Decrecimiento</strong> </li>'
|
||||
+ '<li> Quién administra un <strong>Grupo de Compra Solidario (G.C.S.)</strong> </li>'
|
||||
+ '<li><strong>Productores locales Éticos</strong></li>'
|
||||
+ '<li> Quién administra un <strong>Banco de Tiempo</strong> </li>'
|
||||
+ '<li> <strong>Cualquier persona que quiera participar</strong>, en la forma que considere más apropiada. </li>'
|
||||
+ '</ul>',
|
||||
},
|
||||
freesostieni: {
|
||||
title: '¿Cómo apoyar el proyecto?',
|
||||
descr: '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li> <strong>Compartiéndolo</strong> a todos aquellos que quieran unirse en el crecimiento y desarrollo de una Nueva Era </li> '
|
||||
+ '<li> Respondiendo a <strong>Encuestas populares</strong> y dejando <strong>Comentarios</strong> </li>'
|
||||
+ '<li> A través de una <strong>donación</strong> (<strong>incluso € 1</strong>) para los gastos. <br>'
|
||||
+ '</ul>'
|
||||
+ '<br>Veo un <strong>futuro</strong> en el que ya no usarás dinero. Donde las personas <strong>se ayudarán unos a otros</strong> y no necesiten "poseer" cosas, pero <strong>compartirán</strong> con otros. <br> ',
|
||||
},
|
||||
multiplatform: {
|
||||
title: 'Multi-plataforma',
|
||||
descr: 'Compatible con Google Chrome, Firefox, Safari, iOS, Android y PC. La aplicación se instala fácilmente, sin pasar por el store. '
|
||||
+ 'para compartirlo, necesita solo el nombre del sitio web: <strong>www.freeplanet.app</strong>.<br>'
|
||||
+ 'Después del registro, le pedirá que lo agregue a la lista de aplicaciones y en la pantalla.',
|
||||
},
|
||||
free: {
|
||||
title: 'Libre, Código Abierto y Sin Publicidad',
|
||||
descr: 'Esta aplicación <strong>no está a la venta</strong>, no tiene un propósito comercial, <strong>no tiene precio</strong> y pertenece a <strong>la Gente del Nuevo Mundo</strong>.<br>'
|
||||
+ 'Cualquiera puede usarla y beneficiarse.<br> A mí la tarea de gestionarlo y protegerlo. '
|
||||
+ 'Solo se aceptarán donaciones de particulares y asociaciones sin änimo de lucro, en línea con los Principios, que se utilizarán para cubrir los gastos. <br>'
|
||||
+ '<strong>Gracias a todos por el apoyo</strong>. ',
|
||||
},
|
||||
contacts: 'Contactos',
|
||||
},
|
||||
},
|
||||
enUs: {
|
||||
pages: {
|
||||
home: 'Dashboard',
|
||||
SignUp: 'SignUp',
|
||||
SignIn: 'SignIn',
|
||||
vreg: 'Verify Reg',
|
||||
Test: 'Test',
|
||||
Category: 'Category',
|
||||
Todo: 'Todo',
|
||||
personal: 'Personal',
|
||||
work: 'Work',
|
||||
shopping: 'Shopping',
|
||||
Admin: 'Admin',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
projects: 'Projects',
|
||||
},
|
||||
favproj: 'Favorite',
|
||||
projall: 'All',
|
||||
projectsShared: 'My Shared',
|
||||
myprojects: 'My Personals',
|
||||
msg: {
|
||||
hello: 'Hello!',
|
||||
myAppName: 'FreePlanet',
|
||||
myAppDescription: 'The first Real Social Free, Fair and Equitable Where the conscience and community help live. Free and without advertising',
|
||||
underconstruction: 'App in construction...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'The first Real Social',
|
||||
sottoTitoloApp2: 'Free, Fair and Equitable',
|
||||
sottoTitoloApp3: 'Where the conscience and community help live',
|
||||
sottoTitoloApp4: 'Free and without advertising',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Together to Evolve and Experiment',
|
||||
descrapp_pag1: 'Rediscover how the value of <strong>Sharing</strong> and <strong>Cooperation</strong>, can help us find the deep meaning of'
|
||||
+ '<strong>Life</strong>, lost in this consumer society, and showing those <strong>Healthy Natural Principles</strong> and Human <strong>Brotherhood</strong>'
|
||||
+ 'that entire ancient populations knew well.',
|
||||
descrapp_pag2: 'The time has come to use the new <strong>Technological</strong> tools in our <strong>favor</strong>, to <strong>Free ourselves</strong> '
|
||||
+ 'so slowly from the <strong>slavery</strong> of the <strong>"Work to generate Money"</strong> and transforming our <strong>Capacity</strong> into'
|
||||
+ '<strong>Human Resources</strong> to be able to support and live in <strong>Harmony</strong> with others.',
|
||||
freesocial: {
|
||||
title: 'Free Social',
|
||||
descr: 'A Community organized by <strong>Categories</strong>, where you can join <strong>Thematic Groups</strong>, '
|
||||
+ 'Share <strong>Experiences</strong> and combine Skills to organize and support <strong>Innovative Projects</strong> for the People.<br><br>'
|
||||
+ '<strong>Ethical</strong> developments such as <strong>Auto-Production</strong>, <strong>Sustainability</strong>, '
|
||||
+ 'Good <strong>Natural Health</strong> and <strong>Respect for the Environment</strong> and for all <strong>Living Beings</strong> of this'
|
||||
+ '<strong>Planet</strong>. Anyone can express their <strong>Consent or Dissent</strong> by participating in <strong>Interactive Surveys</strong> '
|
||||
+ 'and carry out together the <strong>Changes</strong> needed for our society.',
|
||||
},
|
||||
freetalent: {
|
||||
title: 'Free Talent',
|
||||
descr: 'Share your <strong>Talents</strong> and <strong>Skills</strong>, '
|
||||
+ 'instead of money, you\'ll earn <strong>Time</strong>. <br>'
|
||||
+ '<strong>"1 hour"</strong> becomes a currency of exchange, equal for all. <br>'
|
||||
+ 'You can use these <strong>"Time Credits"</strong> to meet your needs, looking in <strong>Available Skills</strong>. <br>'
|
||||
+ 'In Giving and Receiving, we will thus create bonds of <strong>Friendship, Solidarity, Cooperation and Enjoyment</strong> <br> <br>'
|
||||
+ 'This project aims to spread this reality, which already exists for many years and is called <strong>"Time Bank"</strong>. '
|
||||
+ 'The <strong>secretariats</strong> in all over the world, will serve an extra to give greater <strong>reliability</strong> and <strong>trust</strong> in the exchange of talents between unknown people. '
|
||||
+ 'We will thus create a <strong>trust network</strong> in the neighborhood, as is already practiced in numerous <strong>Ecovillages</strong> and Community of the world. ',
|
||||
},
|
||||
freegas: {
|
||||
title: 'Free G.A.S.',
|
||||
descr: 'Would you like to use an App that allows you to easily Buy Local Products directly from <strong>Manufacturer</strong>? <br> '
|
||||
+ 'With <strong>Solidarity Purchase Groups</strong> (in Italian: "Gruppo di Aacquisto Solidale") we avoid unnecessary intermediaries, obtaining many benefits including: <br>'
|
||||
+ '<ul class="mylist" style="padding-left: 20px;"> <li> <strong>Superior Quality</strong> of the product </li>'
|
||||
+ '<li> Consumer <strong>Reviews</strong> will favor Producers with Healthy Intents </li>'
|
||||
+ '<li> Possibility to interact with the Producer </li>'
|
||||
+ '<li> Open to Relations between people, sharing <strong>Recipes</strong> and precious <strong>Tips</strong> </li>'
|
||||
+ '<li> <strong>Savings</strong> money (wholesale prices) </li>'
|
||||
+ '<li> Enhancing the <strong>Territory</strong> and the <strong>Local Economy</strong> </li>'
|
||||
+ '<li> <strong>Fair Conditions</strong> for Workers </li>'
|
||||
+ '<li> Reduced <strong>Environmental Impact</strong> </ul>',
|
||||
},
|
||||
freeliving: {
|
||||
title: 'Free Co-Living',
|
||||
descr: 'Join more reality, sharing the experience of living together, for a defined period: <br> '
|
||||
+ '1) Someone <strong>Lives alone</strong> and has a house. <br>'
|
||||
+ '2) Who needs a temporary <strong> accommodation </strong>. <br><br>'
|
||||
+ 'Today more and more people <strong> live alone </strong> and would like to continue living in their own house. <br>'
|
||||
+ 'Other people instead need a <strong>room</strong>, by choice or by necessity, and in return they are available to'
|
||||
+ '<strong>contribute to expenses</strong> for households or maybe <strong>help</strong> to <strong>go shopping</strong>, cooking, <strong>cleaning house</strong> or simply offering him <strong>companionship</strong>. <br> '
|
||||
+ 'Through this tool, people can get in touch and decide in which way <strong>co-living</strong>. The <strong>reviews</strong> released and the <strong>detail</strong> of user profiles, '
|
||||
+ 'will help in <strong>choosing</strong> the person more in <strong>tune</strong>.',
|
||||
|
||||
},
|
||||
freecollabora: {
|
||||
title: 'Who can collaborate?',
|
||||
descr: 'All those who are in line with <strong>Ethical Principles</strong> and research of <strong>Global Wellness of the Planet</strong> <br> '
|
||||
+ 'Therefore they are welcome:'
|
||||
+ '<ul class = "mylist" style = "padding-left: 20px;">'
|
||||
+ '<li> <strong>Non-profit associations, Ecovillages, Communities</strong> </li>'
|
||||
+ '<li> Groups that want to promote <strong>Innovative Social Projects</strong> for <strong>Happy Degrowth</strong> </li>'
|
||||
+ '<li> Who manages a <strong>Solidarity Purchase Group</strong> </li>'
|
||||
+ '<li><strong>Local Ethical Producers</strong></li>'
|
||||
+ '<li> Who manages a <strong>Time Bank</strong> </li>'
|
||||
+ '<li> <strong>Anyone who wants to participate</strong>, in the form it considers most appropriate. </li>'
|
||||
+ '</ul>',
|
||||
},
|
||||
freesostieni: {
|
||||
title: 'How to support the project?',
|
||||
descr: '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li> <strong>Sharing it</strong> to all those who want to join together in the growth and development of a New Era </li> '
|
||||
+ '<li> Answering to <strong>Popular Polls</strong> and leaving <strong>Feedback</strong> </li>'
|
||||
+ '<li> Through a <strong>donation</strong> (<strong>even $ 1</strong>) for expenses. <br>'
|
||||
+ '</ul><br>'
|
||||
+ 'I see a <strong>future</strong> where you will no longer use money. Where people <strong>will help each other</strong> and won\'t need to "own" things, but <strong>will share</strong> with others. <br> ',
|
||||
},
|
||||
multiplatform: {
|
||||
title: 'Multi-platform',
|
||||
descr: 'It is compatible with Google Chrome, Firefox, Safari, iOS, Android and PC. The Application is easily installed, without going through the store. '
|
||||
+ 'just share the nametranslate of this site <strong>www.freeplanet.app</strong>.<br>'
|
||||
+ 'After registration it will ask to be added to the application list and in the screen',
|
||||
},
|
||||
free: {
|
||||
title: 'Free, Open Source and No Advertising',
|
||||
descr: 'This App <strong>is not for sale</strong>, has no commercial purpose, <strong>is priceless</strong> and belongs to the <strong>New World People</strong>.'
|
||||
+ '<br>Anyone can use it and benefit from it.<br>To me the task of managing it and protecting it. '
|
||||
+ 'Only donations from private individuals and non-profit associations will be accepted, in line with the Principles, which will be used to cover the expenses. <br>'
|
||||
+ '<strong>Thanks all for the support</strong>. ',
|
||||
},
|
||||
contacts: 'Contacts',
|
||||
},
|
||||
},
|
||||
fr: {
|
||||
pages: {
|
||||
|
||||
},
|
||||
msg: {
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
de: {
|
||||
pages: {
|
||||
|
||||
},
|
||||
msg: {
|
||||
|
||||
},
|
||||
|
||||
},
|
||||
}
|
||||
|
||||
export default msg_website;
|
||||
88
_ALL_SITES/gruppomacro.app/db/lang/ws_de.js
Executable file
@@ -0,0 +1,88 @@
|
||||
const msg_website_de = {
|
||||
ws: {
|
||||
sitename: 'AYNI',
|
||||
siteshortname: 'Ayni',
|
||||
botname: 'AYNI BOT',
|
||||
},
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Profilo',
|
||||
payment: 'Pagamenti',
|
||||
regok: 'Registrazione Confermata',
|
||||
presentazione: 'Presentazione',
|
||||
presentazione2: 'Presentazione',
|
||||
invita: 'Invita Persone',
|
||||
SignUp: 'Nuova Registrazione',
|
||||
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
|
||||
SignUp2: 'Registrazione',
|
||||
SignUp4: 'Reg',
|
||||
SignIn: 'Login',
|
||||
status: 'Statistiche',
|
||||
nextzoom: 'Conferenze',
|
||||
requestresetpwd: 'Richiesta Reset Password',
|
||||
vreg: 'Verifica Reg',
|
||||
dashboard: 'Lavagna',
|
||||
statoattuale: 'Stato Attuale',
|
||||
posizione_in_programmazione: 'Lista d\'Imbarco',
|
||||
posizione_in_nave: 'Lista Navi',
|
||||
nave: 'Nave',
|
||||
testimonial: 'Testimonianze',
|
||||
Test: 'Test',
|
||||
Category: 'Categorie',
|
||||
Admin: 'Admin',
|
||||
extralist: 'Lista Extra',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
chisiamo: 'Chi Siamo',
|
||||
linkamici: 'Link Amici',
|
||||
dovesiamo: 'Dove Siamo',
|
||||
evento: 'Evento',
|
||||
eventodef: 'Evento:',
|
||||
prova: 'prova',
|
||||
dbop: 'Operazioni',
|
||||
statusreg: {
|
||||
reg: 'Partecipanti',
|
||||
verifieds: 'Verificati',
|
||||
autorizzati: 'Autorizzati',
|
||||
passeggeri: 'Passeggeri Navi',
|
||||
giainlista: 'Gia in Lista',
|
||||
newreg: 'Ultime Registrazioni:',
|
||||
nationality: 'Nazionalità',
|
||||
verified: 'Verificata',
|
||||
nonverified: 'Non Verificata',
|
||||
req7: 'Con 5 passi entri nella lista d\'Imbarco',
|
||||
req9: 'Con 7 passi aiuti {sitename} a Crescere!',
|
||||
req: 'Passi',
|
||||
people: 'Inv.',
|
||||
peoplelegend: 'Numero d\'Invitati',
|
||||
},
|
||||
},
|
||||
msg: {
|
||||
myAppDescription: '',
|
||||
keywords_base: '',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: '',
|
||||
sottoTitoloApp2: '',
|
||||
sottoTitoloApp3: '',
|
||||
sottoTitoloApp4: '',
|
||||
},
|
||||
homepage: {
|
||||
nostra_missione: 'Nostra Missione',
|
||||
associazione: '',
|
||||
tit_come_associarsi: 'Come Associarsi',
|
||||
testo_come_associarsi: '',
|
||||
titlecontatti: 'CONTATTI',
|
||||
},
|
||||
text: {
|
||||
videotitle: 'VIDEO',
|
||||
how: 'COME FUNZIONA',
|
||||
what: 'COSA TI SERVE',
|
||||
step: 'PASSI DA COMPIERE',
|
||||
testimonial: 'TESTIMONIANZE',
|
||||
faq: 'DOMANDE FREQUENTI (FAQ)',
|
||||
advise: 'SUGGERIMENTI',
|
||||
download: 'MATERIALE DISPONIBILE',
|
||||
},
|
||||
};
|
||||
|
||||
export default msg_website_de;
|
||||
163
_ALL_SITES/gruppomacro.app/db/lang/ws_enUs.js
Executable file
@@ -0,0 +1,163 @@
|
||||
const msg_website_enUs = {
|
||||
ws: {
|
||||
sitename: 'Fiore Della Vita',
|
||||
siteshortname: 'Fiore Della Vita',
|
||||
description: '',
|
||||
keywords: '',
|
||||
},
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
stockBloccatiQty: 'Bloccati In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
theme: 'Tema',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
date: 'Data',
|
||||
time_start: 'Ora Inizio',
|
||||
time_end: 'Ora Fine',
|
||||
hours: 'Ore',
|
||||
note: 'Note Extra',
|
||||
},
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Profile',
|
||||
profile2: 'ProfiloU',
|
||||
mypage2: 'mypage2',
|
||||
myservice2: 'myservice2',
|
||||
test: 'Test',
|
||||
projects: 'Progetti',
|
||||
report: 'Report Ore',
|
||||
producer: 'Produttore',
|
||||
orderinfo: 'Ordini Effettuati',
|
||||
products: 'Prodotti',
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
sharewithus: 'Condividi con Noi',
|
||||
checkout: 'Carrello',
|
||||
payment: 'Payments',
|
||||
regok: 'Registration Confirmed',
|
||||
presentazione: 'Presentation',
|
||||
presentazione2: 'Presentation',
|
||||
invita: 'Invite People',
|
||||
SignUp: 'Registration',
|
||||
SignUpIscrizione: 'Diventa Socio CNM',
|
||||
SignUp_alreadylista: 'Registration for those who are already in the List!',
|
||||
SignUp2: 'Registration',
|
||||
SignIn: 'Login',
|
||||
status: 'Current state',
|
||||
nextzoom: 'Conferences',
|
||||
requestresetpwd: 'Password Reset Request',
|
||||
vreg: 'Check Registration',
|
||||
dashboard: 'Dashboard',
|
||||
statoattuale: 'Current Status',
|
||||
posizione_in_programmazione: 'Boarding List',
|
||||
posizione_in_nave: 'Ships List',
|
||||
nave: 'Ship',
|
||||
testimonial: 'Reviews',
|
||||
Test: 'Test',
|
||||
Category: 'Categorie',
|
||||
Admin: 'Admin',
|
||||
Sites: 'Siti Web',
|
||||
extralist: 'Lista Extra',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
chisiamo: 'Chi Siamo',
|
||||
linkamici: 'Link Amici',
|
||||
dovesiamo: 'Dove Siamo',
|
||||
calendarioeventi: 'Calendario Eventi',
|
||||
evento: 'Evento',
|
||||
eventodef: 'Evento:',
|
||||
prova: 'prova',
|
||||
dbop: 'Operazioni',
|
||||
projall: 'Comunitari',
|
||||
groups: 'Lista Gruppi',
|
||||
projectsShared: 'Condivisi da me',
|
||||
myprojects: 'Privati',
|
||||
favproj: 'Favoriti',
|
||||
statusreg: {
|
||||
reg: 'Participants',
|
||||
verifieds: 'Verificati',
|
||||
autorizzati: 'Autorizzati',
|
||||
autorizzare: 'In attesa di Abilitazione',
|
||||
passeggeri: 'Passengers Ships',
|
||||
giainlista: 'Already in the List',
|
||||
newreg: 'New registrations:',
|
||||
nationality: 'Nationality',
|
||||
nationality_born: 'Nazione di Nascita',
|
||||
verified: 'Verified',
|
||||
nonverified: 'Not Verified',
|
||||
req7: 'With 5 steps you enter the boarding list.',
|
||||
req9: 'With 7 steps help {sitename} to grow!',
|
||||
req: 'Steps',
|
||||
people: 'Gue.',
|
||||
peoplelegend: 'Number of guests',
|
||||
},
|
||||
admin_ecommerce: 'ECommerce',
|
||||
ecommerce: 'Prodotti',
|
||||
ecommerce_menu: 'ECommerce1',
|
||||
hours: 'Ore',
|
||||
department: 'Uffici',
|
||||
title: 'Titolo',
|
||||
path: 'Percorso',
|
||||
img1: 'Immagine 1',
|
||||
contentfield: 'Testo 1',
|
||||
video1: 'Video 1',
|
||||
ratio1: 'Ratio 1',
|
||||
img2: 'Immagine 2',
|
||||
content2: 'Testo 2',
|
||||
video2: 'Video 2',
|
||||
ratio2: 'Ratio 2',
|
||||
img3: 'Immagine 3',
|
||||
content3: 'Testo 3',
|
||||
video3: 'Video 3',
|
||||
ratio3: 'Ratio 3',
|
||||
content4: 'Testo 4',
|
||||
active: 'Attiva',
|
||||
inmenu: 'Sul Menu',
|
||||
submenu: 'SottoMenu',
|
||||
infooter: 'Sul Footer',
|
||||
internalpage: 'Pagina Interna',
|
||||
order: 'Posizione',
|
||||
icon: 'Icona',
|
||||
imgback: 'Immagine di Sfondo',
|
||||
onlyif_logged: 'Solo se Loggati',
|
||||
only_residenti: 'Solo Residenti',
|
||||
only_consiglio: 'Solo Consiglieri',
|
||||
color: 'Colore',
|
||||
},
|
||||
msg: {
|
||||
myAppDescription: '',
|
||||
underconstruction: 'App in costruzione...',
|
||||
keywords_base: '',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: '..',
|
||||
sottoTitoloApp2: '..',
|
||||
sottoTitoloApp3: '..',
|
||||
sottoTitoloApp4: '',
|
||||
},
|
||||
homepage: {
|
||||
titlecontatti: 'CONTACTS',
|
||||
},
|
||||
text: {
|
||||
how: 'HOW TO WORK',
|
||||
what: 'WHAT YOU NEED',
|
||||
step: 'STEPS TO DO',
|
||||
videotitle: 'VIDEO',
|
||||
testimonial: 'REVIEWS',
|
||||
faq: 'FREQUENTLY ASKED QUESTIONS (FAQ)',
|
||||
advise: 'ADVISE',
|
||||
download: 'AVAILABLE DOCUMENTS',
|
||||
},
|
||||
};
|
||||
|
||||
export default msg_website_enUs;
|
||||
160
_ALL_SITES/gruppomacro.app/db/lang/ws_es.js
Executable file
@@ -0,0 +1,160 @@
|
||||
const msg_website_es = {
|
||||
ws: {
|
||||
sitename: 'Fiore Della Vita',
|
||||
siteshortname: 'Fiore Della Vita',
|
||||
description: '',
|
||||
keywords: '',
|
||||
},
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
theme: 'Tema',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
date: 'Data',
|
||||
time_start: 'Ora Inizio',
|
||||
time_end: 'Ora Fine',
|
||||
hours: 'Ore',
|
||||
note: 'Note Extra',
|
||||
},
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Perfil',
|
||||
profile2: 'ProfiloU',
|
||||
mypage2: 'mypage2',
|
||||
myservice2: 'myservice2',
|
||||
mygood2: 'mygood2',
|
||||
test: 'Test',
|
||||
projects: 'Progetti',
|
||||
report: 'Report Ore',
|
||||
producer: 'Produttore',
|
||||
orderinfo: 'Ordini Effettuati',
|
||||
products: 'Prodotti',
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
storehouses: 'Magazzino',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
sharewithus: 'Condividi con Noi',
|
||||
checkout: 'Carrello',
|
||||
payment: 'Paiements',
|
||||
regok: 'Registro confirmado',
|
||||
presentazione: 'Presentación',
|
||||
presentazione2: 'Presentación',
|
||||
invita: 'Invitar a la gente',
|
||||
SignUp: 'Registro',
|
||||
SignUpIscrizione: 'Diventa Socio CNM',
|
||||
SignUp_alreadylista: 'Inscripción para los que ya están en la Lista!',
|
||||
SignUp2: 'Registro',
|
||||
SignIn: 'Login',
|
||||
status: 'Estadísticas',
|
||||
nextzoom: 'Conferencias',
|
||||
requestresetpwd: 'Solicitud de restablecimiento de contraseña',
|
||||
calendarioeventi: 'Calendario Eventos',
|
||||
vreg: 'Verifica Reg',
|
||||
dashboard: 'Tablero',
|
||||
statoattuale: 'Estado Actual',
|
||||
posizione_in_programmazione: 'Lista de embarque',
|
||||
posizione_in_nave: 'Lista de Naves',
|
||||
nave: 'Nave',
|
||||
testimonial: 'Opiniones',
|
||||
Test: 'Test',
|
||||
Category: 'Categorie',
|
||||
Admin: 'Admin',
|
||||
Sites: 'Siti Web',
|
||||
extralist: 'Lista Extra',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
chisiamo: 'Chi Siamo',
|
||||
linkamici: 'Link Amici',
|
||||
dovesiamo: 'Dove Siamo',
|
||||
evento: 'Evento',
|
||||
eventodef: 'Evento:',
|
||||
prova: 'prova',
|
||||
dbop: 'Operazioni',
|
||||
projall: 'Comunitari',
|
||||
groups: 'Lista Gruppi',
|
||||
projectsShared: 'Condivisi da me',
|
||||
myprojects: 'Privati',
|
||||
favproj: 'Favoriti',
|
||||
statusreg: {
|
||||
reg: 'Participantes',
|
||||
verifieds: 'Verificati',
|
||||
autorizzati: 'Autorizzati',
|
||||
autorizzare: 'In attesa di Abilitazione',
|
||||
passeggeri: 'Barcos de pasajeros',
|
||||
giainlista: 'Gia in Lista',
|
||||
newreg: 'Nuevas inscripciones :',
|
||||
nationality: 'Nacionalidad',
|
||||
verified: 'Verificada',
|
||||
nonverified: 'No Verificada',
|
||||
req7: 'Con 5 pasos usted entra en la lista de embarque',
|
||||
req9: 'Con 7 pasos ayuda a {sitename} a crecer!',
|
||||
req: 'Pasos',
|
||||
people: 'Inv.',
|
||||
peoplelegend: 'Número de invitados',
|
||||
},
|
||||
admin_ecommerce: 'ECommerce',
|
||||
ecommerce: 'Prodotti',
|
||||
ecommerce_menu: 'ECommerce1',
|
||||
hours: 'Ore',
|
||||
department: 'Uffici',
|
||||
title: 'Titolo',
|
||||
path: 'Percorso',
|
||||
img1: 'Immagine 1',
|
||||
contentfield: 'Testo 1',
|
||||
video1: 'Video 1',
|
||||
ratio1: 'Ratio 1',
|
||||
img2: 'Immagine 2',
|
||||
content2: 'Testo 2',
|
||||
video2: 'Video 2',
|
||||
ratio2: 'Ratio 2',
|
||||
img3: 'Immagine 3',
|
||||
content3: 'Testo 3',
|
||||
video3: 'Video 3',
|
||||
ratio3: 'Ratio 3',
|
||||
content4: 'Testo 4',
|
||||
active: 'Attiva',
|
||||
inmenu: 'Sul Menu',
|
||||
submenu: 'SottoMenu',
|
||||
infooter: 'Sul Footer',
|
||||
internalpage: 'Pagina Interna',
|
||||
order: 'Posizione',
|
||||
icon: 'Icona',
|
||||
imgback: 'Immagine di Sfondo',
|
||||
onlyif_logged: 'Solo se Loggati',
|
||||
only_residenti: 'Solo Residenti',
|
||||
only_consiglio: 'Solo Consiglieri',
|
||||
color: 'Colore',
|
||||
},
|
||||
msg: {
|
||||
myAppDescription: '',
|
||||
keywords_base: '',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: '..',
|
||||
sottoTitoloApp2: '..',
|
||||
sottoTitoloApp3: '..',
|
||||
sottoTitoloApp4: '',
|
||||
},
|
||||
homepage: {
|
||||
titlecontatti: 'CONTACTOS',
|
||||
},
|
||||
text: {
|
||||
how: 'COMO FUNCIONA',
|
||||
what: 'QUE NECESITAS',
|
||||
step: 'PASOS A REALIZAR',
|
||||
videotitle: 'VIDEO',
|
||||
testimonial: 'TESTIMONIOS',
|
||||
faq: 'PREGUNTAS FRECUENTES (FAQ)',
|
||||
advise: 'CONSEJOS',
|
||||
download: 'MATERIAL DISPONIBLES',
|
||||
},
|
||||
};
|
||||
|
||||
export default msg_website_es;
|
||||
64
_ALL_SITES/gruppomacro.app/db/lang/ws_fr.js
Executable file
@@ -0,0 +1,64 @@
|
||||
const msg_website_fr = {
|
||||
ws: {
|
||||
sitename: 'Fiore Della Vita',
|
||||
siteshortname: 'Fiore Della Vita',
|
||||
description: '',
|
||||
keywords: '',
|
||||
},
|
||||
homepage: {
|
||||
titlecontatti: 'CONTACTS',
|
||||
},
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'profil',
|
||||
payment: 'paiements',
|
||||
regok: 'Inscription confirmée',
|
||||
presentazione: 'Présentation',
|
||||
presentazione2: 'Présentation',
|
||||
invita: 'Inviter des personnes',
|
||||
SignUp: 'Inscription',
|
||||
SignUp_alreadylista: 'Inscription pour ceux qui sont déjà inscrits sur la liste!',
|
||||
SignUp2: 'Inscription',
|
||||
SignIn: 'Login',
|
||||
status: 'État actuel',
|
||||
nextzoom: 'Conférences',
|
||||
requestresetpwd: 'Demande de réinitialisation du mot de passe',
|
||||
vreg: 'Vérifier l\'inscription',
|
||||
dashboard: 'Tableau de bord',
|
||||
statoattuale: 'Situation Actuelle',
|
||||
posizione_in_programmazione: 'Liste d\'embarquement',
|
||||
posizione_in_nave: 'Liste des Navires',
|
||||
nave: 'Navires',
|
||||
testimonial: 'Commentaires',
|
||||
Test: 'Test',
|
||||
Category: 'Categorie',
|
||||
Admin: 'Admin',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
statusreg: {
|
||||
reg: 'Participants',
|
||||
passeggeri: 'Navires à passagers',
|
||||
giainlista: 'Gia in Lista',
|
||||
newreg: 'Nouvelles inscriptions:',
|
||||
nationality: 'Nationalité',
|
||||
verified: 'Vérifié',
|
||||
nonverified: 'Non Vérifié',
|
||||
req7: 'Avec 5 étapes, vous entrez dans la liste d\'embarquement.',
|
||||
req9: 'Avec 7 étapes, aidez {sitename} à se développer !',
|
||||
req: 'Étapes',
|
||||
people: 'Inv.',
|
||||
peoplelegend: 'Nombre d\'invités',
|
||||
},
|
||||
},
|
||||
msg: {
|
||||
myAppDescription: '',
|
||||
keywords_base: '',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: '..',
|
||||
sottoTitoloApp2: '..',
|
||||
sottoTitoloApp3: '..',
|
||||
sottoTitoloApp4: '',
|
||||
},
|
||||
};
|
||||
|
||||
export default msg_website_fr;
|
||||
234
_ALL_SITES/gruppomacro.app/db/lang/ws_it.js
Executable file
@@ -0,0 +1,234 @@
|
||||
const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'Gruppo Macro',
|
||||
siteshortname: 'Gruppo Macro',
|
||||
description: '',
|
||||
keywords: '',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
date: 'Data',
|
||||
time_start: 'Ora Inizio',
|
||||
time_end: 'Ora Fine',
|
||||
hours: 'Ore',
|
||||
note: 'Note Extra',
|
||||
},
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Profilo',
|
||||
install_site: 'Installa Sito',
|
||||
profile2: 'ProfiloU',
|
||||
mypage2: 'mypage2',
|
||||
myservice2: 'myservice2',
|
||||
myhosps2: 'myhosps2',
|
||||
mygood2: 'mygood2',
|
||||
fundraising: 'Sostieni il Progetto',
|
||||
notifs: 'Configura le Notifiche',
|
||||
unsubscribe: 'Disiscriviti',
|
||||
test: 'Test',
|
||||
projects: 'Progetti',
|
||||
report: 'Report Ore',
|
||||
producer: 'Produttore',
|
||||
orderinfo: 'Ordini Effettuati',
|
||||
products: 'Prodotti',
|
||||
cash: 'Cassa',
|
||||
aitools: 'Contenuti',
|
||||
productInfos: 'Info Prodotti',
|
||||
listinoprodotti: 'Listino Prodotti',
|
||||
productslist: 'Lista Prodotti',
|
||||
catalogo: 'Catalogo',
|
||||
collabora: 'Collabora',
|
||||
categories: 'Categorie',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
catprods: 'Categorie',
|
||||
catAI: 'Categorie AI',
|
||||
queryAI: 'Query AI',
|
||||
subcatprods: 'Sotto-Categorie',
|
||||
gasordine: 'Gas Ordine',
|
||||
scontisticas: 'Scontistica',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
sharewithus: 'Condividi con Noi',
|
||||
checkout: 'Carrello',
|
||||
payment: 'Pagamenti',
|
||||
regok: 'Registrazione Confermata',
|
||||
presentazione: 'Presentazione',
|
||||
presentazione2: 'Presentazione',
|
||||
invita: 'Invita Persone',
|
||||
SignUp: 'Modulo di Registrazione:',
|
||||
SignUpCollettivo: 'Reg. Collettiva:',
|
||||
SignUpCollettivo2: 'Registrazione Collettiva:',
|
||||
need_Telegram: 'Per poter utilizzare la Piattaforma occorre avere <a href="https://play.google.com/store/apps/details?id=org.telegram.messenger" target="_blank">Telegram</a> installato<br>',
|
||||
Registrazione_Con_Bot: '1) Copia questo username cliccandoci sopra:',
|
||||
SignUpIscrizione: 'Diventa Socio CNM',
|
||||
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
|
||||
SignUp2: 'Registrazione',
|
||||
SignUp3: 'Reg',
|
||||
SignUp4: 'Reg',
|
||||
SignUp5: 'Reg',
|
||||
SignUp6: 'Registrati',
|
||||
SignUp7: 'Registra',
|
||||
SignUp11: 'Registra',
|
||||
SignUpBot: 'Registrati con Telegram',
|
||||
SignIn: 'Login',
|
||||
status: 'Statistiche',
|
||||
nextzoom: 'Conferenze',
|
||||
requestresetpwd: 'Richiesta Reset Password',
|
||||
vreg: 'Verifica Reg',
|
||||
dashboard: 'Lavagna',
|
||||
statoattuale: 'Stato Attuale',
|
||||
posizione_in_programmazione: 'Lista d\'Imbarco',
|
||||
posizione_in_nave: 'Lista Navi',
|
||||
nave: 'Nave',
|
||||
testimonial: 'Testimonianze',
|
||||
Test: 'Test',
|
||||
Category: 'Categorie',
|
||||
Admin: 'Admin',
|
||||
Sites: 'Siti Web',
|
||||
extralist: 'Lista Extra',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
chisiamo: 'Chi Siamo',
|
||||
linkamici: 'Link Amici',
|
||||
dovesiamo: 'Dove Siamo',
|
||||
calendarioeventi: 'Calendario Eventi',
|
||||
evento: 'Evento',
|
||||
eventodef: 'Evento:',
|
||||
prova: 'prova',
|
||||
dbop: 'Operazioni',
|
||||
projall: 'Comunitari',
|
||||
groups: 'Lista Gruppi',
|
||||
projectsShared: 'Condivisi da me',
|
||||
myprojects: 'Privati',
|
||||
favproj: 'Favoriti',
|
||||
admin_ecommerce: 'ECommerce',
|
||||
admin_ai: 'Config AI',
|
||||
toolsAI: 'Strumenti-AI',
|
||||
ecommerce: 'Prodotti',
|
||||
ecommerce_menu: 'ECommerce1',
|
||||
hours: 'Ore',
|
||||
department: 'Uffici',
|
||||
title: 'Titolo',
|
||||
path: 'Percorso',
|
||||
img1: 'Immagine 1',
|
||||
contentfield: 'Testo 1',
|
||||
video1: 'Video 1',
|
||||
ratio1: 'Ratio 1',
|
||||
img2: 'Immagine 2',
|
||||
content2: 'Testo 2',
|
||||
video2: 'Video 2',
|
||||
ratio2: 'Ratio 2',
|
||||
img3: 'Immagine 3',
|
||||
content3: 'Testo 3',
|
||||
video3: 'Video 3',
|
||||
ratio3: 'Ratio 3',
|
||||
content4: 'Testo 4',
|
||||
active: 'Attiva',
|
||||
inmenu: 'Sul Menu',
|
||||
submenu: 'SottoMenu',
|
||||
infooter: 'Sul Footer',
|
||||
internalpage: 'Pagina Interna',
|
||||
order: 'Posizione',
|
||||
icon: 'Icona',
|
||||
imgback: 'Immagine di Sfondo',
|
||||
onlyif_logged: 'Solo se Loggati',
|
||||
only_residenti: 'Solo Residenti',
|
||||
only_consiglio: 'Solo Consiglieri',
|
||||
color: 'Colore',
|
||||
gasordini: 'Gas Ordini',
|
||||
},
|
||||
msg: {
|
||||
myAppName: 'Gruppo Macro',
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: 'Rete Italiana di Scambio Orizzontale',
|
||||
sottoTitoloApp2: '',
|
||||
},
|
||||
homepage: {
|
||||
descrapp_title1: 'Uniti per Evolvere e Sperimentare',
|
||||
descrapp_pag1: 'Siamo la <strong>Rete Italiana di Scambio Orizzontale</strong>, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della <strong>condivisione</strong> e della <strong>cooperazione</strong>. ' +
|
||||
'Valori semplici e profondi che ci aiutano a ritrovare il <strong>Senso della Vita</strong>, perduto in questa società consumista, e riporti quei <strong>Sani Pricìpi Naturali</strong> ed Umani di <strong>Fratellanza</strong>'
|
||||
+ ' che intere popolazioni antiche conoscevano bene.',
|
||||
descrapp_pag2: 'E\' giunta l\'ora di utilizzare i nuovi strumenti <strong>Tecnologici</strong> a nostro <strong>favore</strong>, per <strong>Liberarci</strong> '
|
||||
+ 'così piano piano dalla <strong>schiavitù</strong> del <strong>"Lavoro per generare Denaro"</strong> e trasformando le nostre <strong>Capacitá</strong> in '
|
||||
+ '<strong>Risorse Umane</strong> per poterci sostenere e vivere in <strong>Armonia</strong> con gli altri.<br>' +
|
||||
'<br><strong>R.I.S.O.</strong><br>' +
|
||||
'<em>Siamo una rete di comunità consapevoli, basata sul sostegno reciproco, la fiducia, la condivisione e l\'ascolto. \n' +
|
||||
'Coltiviamo terreno fertile per creare, in armonia con la natura, un mondo di collettività libere e autosufficienti, attraverso un circuito di scambio di esperienze umane, beni e servizi.<br>' +
|
||||
'Partecipa al cambiamento. RISO sei anche tu!</em>',
|
||||
freesocial: {
|
||||
title: 'Social',
|
||||
descr: 'Una Community organizzata per <strong>Categorie</strong>, dove potrai unirti a <strong>Gruppi Tematici</strong>, '
|
||||
+ 'Condividere <strong>Esperienze</strong> e unire Competenze per organizzare e sostenere <strong>Progetti Innovativi</strong> per il Popolo.<br><br>'
|
||||
+ 'Verranno evidenziati sviluppi <strong>Etici</strong> come l\'<strong>Auto-Produzione</strong>, la <strong>Sostenibilitá</strong>, '
|
||||
+ 'la Buona <strong>Salute Naturale</strong> e il <strong>Rispetto per l\'Ambiente</strong> e per tutti gli <strong>Esseri Viventi</strong> di questo '
|
||||
+ '<strong>Pianeta</strong>.',
|
||||
},
|
||||
freetalent: {
|
||||
title: 'Beni e Servizi',
|
||||
descr: 'Condividi i tuoi <strong>Talenti</strong> e <strong>Abilità</strong>, '
|
||||
+ 'Nel Dare e Ricevere, si creeranno così legami di <strong>Amicizia, Solidarietà, Cooperazione e Divertimento</strong><br><br>' +
|
||||
'Favoriamo lo scambio locale di <strong>Beni e Servizi</strong> dove potrai scegliere cosa chiedere in cambio (Dono, Offerta Libera, Baratto, Monete Alternative, ecc...).'
|
||||
},
|
||||
coin: {
|
||||
title: 'RIS - Credito Alternativo',
|
||||
},
|
||||
freeliving: {
|
||||
title: 'Gruppi Territoriali',
|
||||
descr: 'Questo progetto vuole diffondere la creazione di Gruppi Territoriali Provinciali, '
|
||||
+ 'per poter favorire progetti condivisi in ambito territoriale e creare così una <strong>Rete di Fiducia</strong> fino al <strong>vicinato</strong>, come giá viene praticato in piccolo, in numerosi <strong>Ecovillaggi</strong> e Comunità del mondo.',
|
||||
|
||||
},
|
||||
freecollabora: {
|
||||
title: 'Chi può Collaborare?',
|
||||
descr: 'Tutti coloro che sono in linea con <strong>Princìpi Etici</strong> e ricerca del <strong>Benessere Globale del Pianeta</strong><br>'
|
||||
+ 'Pertanto sono i benvenuti:'
|
||||
+ '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li><strong>Associazioni no-profit, Ecovillaggi, Comunità</strong></li>'
|
||||
+ '<li>Gruppi che intendono promuovere <strong>Progetti Sociali Innovativi</strong> per una <strong>Decrescita Felice</strong></li>'
|
||||
+ '<li>Chi gestisce un <strong>Gruppo di Acquisto Solidale (G.A.S.)</strong></li>'
|
||||
+ '<li><strong>Produttori Locali Etici</strong></li>'
|
||||
+ '<li><strong>Chiunque voglia partecipare</strong>, nella forma che ritiene più opportuna.</li>'
|
||||
+ '</ul>',
|
||||
},
|
||||
freesostieni: {
|
||||
title: 'Come Sostenere il progetto <strong>Riso.app</strong>?',
|
||||
descr: '<ul class="mylist" style="padding-left: 20px;">'
|
||||
+ '<li>📱<strong>Condividendo la APP</strong> a tutti coloro che vogliono far parte insieme della crescita e sviluppo di una Nuova Era</li>'
|
||||
+ '<li>👥 Aiutando a creare Gruppi Territoriali nella vostra città, impegnandosi a realizzare progetti per il Bene Comune, in onore ai principi Amorevoli e di condivisione.</li>'
|
||||
+ '<li>🌱 Sostenendo le persone attorno a voi, e rispettando la nostra vera Casa: Madre Natura e Tutti gli Esseri Viventi. ❤️</li>'
|
||||
+ '<li>👨🏻💻 Con una <strong>piccola donazione</strong> per le spese dei Server, manutenzione e per i continui sviluppi e miglioramenti</li></ul>' +
|
||||
'1) Tramite <strong><a href="https://paypal.me/paoloarena" target="_blank">Paypal</a></strong>:<br>' +
|
||||
'<br>2) Tramite <strong>Satispay</strong>: <a href="https://www.satispay.com/app/match/link/money-box/S6Y-SVN--62712D42-35B0-4BB9-8511-410C2AB8CD45" target="_blank">Clicca qui</a><br>' +
|
||||
'<div style="font-size: 1rem; background-color: white; color: blue; border: solid 2px #f00; margin: 5px; padding: 5px; border-radius: 10px; " ' +
|
||||
'class="row justify-around">' +
|
||||
'Se ancora non hai Satispay <a href="https://www.satispay.com/promo/PAOLOARENA4">Richiedila cliccando qui</a></br>' +
|
||||
'</div>' +
|
||||
'<br>3) Tramite <strong>Bonifico Bancario</strong>:<br>' +
|
||||
'(Scrivi a Surya (<a href="https://t.me/surya1977">@surya1977</a>) per le coordinate</br>' +
|
||||
'' +
|
||||
'4) In alternativa scegli tu una forma di Dono <br />' +
|
||||
'Grazie Mille per l\'Aiuto ed il Supporto' +
|
||||
'<br>',
|
||||
},
|
||||
multiplatform: {
|
||||
title: 'Multi-piattaforma',
|
||||
descr: 'E\' compatibile con Google Chrome, Firefox, Opera, Safari, iPhone, Android e PC. L\'Applicazione s\'installa facilmente, senza dover passare dallo store. '
|
||||
+ 'basta entrare sul sito <strong>www.riso.app</strong>.<br>'
|
||||
+ 'Dopo la registrazione chiederà di aggiungerlo alla <strong>Schermata Home</strong> (oppure cliccare sul menu "..." del browser e scegliere "<strong>Installa APP</strong>")',
|
||||
},
|
||||
free: {
|
||||
title: 'Gratuita, Open Source e Niente Pubblicità',
|
||||
descr: 'Questa App <strong>non è in vendita</strong>, non ha scopi commerciali, quindi <strong>non ha prezzo</strong> e nessun dato contenuto in esso verrà mai venduto, in quanto appartiene a <strong>Tutti Noi</strong> ed a nessuno in particolare.<br>Chiunque potrá utilizzarla e beneficiarne da essa.<br>' +
|
||||
'<em>Progetto Open Source su <a href="https://gitlab.com/surya89" target="_blank">GitLab</a>.</em><br><br>'
|
||||
+ '<strong>Grazie a Tutti per il sostegno</strong>. ',
|
||||
},
|
||||
titlecontatti: 'Contatti',
|
||||
contacts: '',
|
||||
},
|
||||
};
|
||||
|
||||
export default msg_website_it;
|
||||
74
_ALL_SITES/gruppomacro.app/db/lang/ws_pt.js
Executable file
@@ -0,0 +1,74 @@
|
||||
const msg_website_pt = {
|
||||
ws: {
|
||||
sitename: 'Fiore Della Vita',
|
||||
siteshortname: 'Fiore Della Vita',
|
||||
description: '',
|
||||
keywords: '',
|
||||
},
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Perfil',
|
||||
payment: 'Pagamentos',
|
||||
regok: 'Inscrição confirmada',
|
||||
presentazione: 'Apresentação',
|
||||
presentazione2: 'Apresentação',
|
||||
invita: 'Convidar Pessoas',
|
||||
SignUp: 'Inscrição',
|
||||
SignUp_alreadylista: 'Inscrição para os que já estão na Lista!',
|
||||
SignUp2: 'Inscrição',
|
||||
SignIn: 'Login',
|
||||
status: 'Estatísticas',
|
||||
nextzoom: 'Conférences',
|
||||
requestresetpwd: 'Pedido de redefinição de senha',
|
||||
vreg: '',
|
||||
dashboard: 'Tablero',
|
||||
statoattuale: 'Status Atual',
|
||||
posizione_in_programmazione: 'Lista de Embarque',
|
||||
posizione_in_nave: 'Lista de Navios',
|
||||
nave: 'Navios',
|
||||
testimonial: 'Opiniones',
|
||||
Test: 'Test',
|
||||
Category: 'Categorie',
|
||||
Admin: 'Admin',
|
||||
Test1: 'Test1',
|
||||
Test2: 'Test2',
|
||||
statusreg: {
|
||||
reg: 'Participantes',
|
||||
passeggeri: 'Navios de Passageiros',
|
||||
giainlista: 'Já na lista',
|
||||
newreg: 'Últimas Inscrições:',
|
||||
nationality: 'Nacionalidade',
|
||||
verified: 'Verificado',
|
||||
nonverified: 'Não verificado',
|
||||
req7: 'Com 5 passos, o usuário entra na lista de embarque.',
|
||||
req9: 'Com 7 passos ajudam a {sitename} a crescer!',
|
||||
req: 'Passos',
|
||||
people: 'Con.',
|
||||
peoplelegend: 'Número de convidados',
|
||||
},
|
||||
},
|
||||
msg: {
|
||||
myAppDescription: '',
|
||||
keywords_base: '',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: '..',
|
||||
sottoTitoloApp2: '..',
|
||||
sottoTitoloApp3: '..',
|
||||
sottoTitoloApp4: '',
|
||||
},
|
||||
homepage: {
|
||||
titlecontatti: 'CONTACTOS',
|
||||
},
|
||||
text: {
|
||||
how: 'COMO FUNCIONA',
|
||||
what: 'QUE NECESITAS',
|
||||
step: 'PASOS A REALIZAR',
|
||||
videotitle: 'VIDEO',
|
||||
testimonial: 'TESTIMONIOS',
|
||||
faq: 'PREGUNTAS FRECUENTES (FAQ)',
|
||||
advise: 'CONSEJOS',
|
||||
download: 'MATERIAL DISPONIBLES',
|
||||
},
|
||||
};
|
||||
|
||||
export default msg_website_pt;
|
||||
59
_ALL_SITES/gruppomacro.app/db/lang/ws_si.js
Executable file
@@ -0,0 +1,59 @@
|
||||
const msg_website_si = {
|
||||
ws: {
|
||||
sitename: 'Riso',
|
||||
siteshortname: 'RISO',
|
||||
botname: 'Riso BOT',
|
||||
},
|
||||
pages: {
|
||||
home: 'Domača stran',
|
||||
profile: 'Profil',
|
||||
payment: 'Plačila',
|
||||
regok: 'Registracija potrjena',
|
||||
presentazione: 'Predstavitev',
|
||||
presentazione2: 'Predstavitev',
|
||||
invita: 'Povabi osebe',
|
||||
SignUp: 'Nova Registracija',
|
||||
SignUp2: 'Registracija',
|
||||
SignIn: 'Vpis',
|
||||
status: 'Statistika',
|
||||
nextzoom: 'Conferenze',
|
||||
requestresetpwd: 'Prošnja za ponastavitev Gesla',
|
||||
vreg: 'Preveri Registracijo',
|
||||
dashboard: 'Tabla',
|
||||
statoattuale: 'TrenutniStatus',
|
||||
posizione_in_programmazione: 'Seznam Plovbe',
|
||||
posizione_in_nave: 'Seznam Ladiji',
|
||||
nave: 'Ladje',
|
||||
Admin: 'Administrator',
|
||||
evento: 'Dogodek',
|
||||
eventodef: 'Dogodek:',
|
||||
statusreg: {
|
||||
reg: 'Udeleženci',
|
||||
passeggeri: 'Potniki Ladjic',
|
||||
giainlista: 'Že na seznamu',
|
||||
newreg: 'Zadnje Registracije:',
|
||||
nationality: 'Nacionalnost',
|
||||
verified: 'Preveri',
|
||||
nonverified: 'Ni preverjeno',
|
||||
req7: 'S 7 koraki vstopis na seznam za plovbo',
|
||||
req9: 'Z 9-imi koraki pomagaš, da {sitename} Raste!',
|
||||
req: 'Koraki',
|
||||
people: 'Pov.',
|
||||
peoplelegend: 'Število \'Povabljenih',
|
||||
},
|
||||
},
|
||||
msg: {
|
||||
myAppDescription: '',
|
||||
keywords_base: '',
|
||||
myDescriz: '',
|
||||
sottoTitoloApp: '',
|
||||
sottoTitoloApp2: '',
|
||||
sottoTitoloApp3: '',
|
||||
sottoTitoloApp4: '',
|
||||
},
|
||||
homepage: {
|
||||
titlecontatti: 'Kontakt',
|
||||
},
|
||||
};
|
||||
|
||||
export default msg_website_si;
|
||||
239
_ALL_SITES/gruppomacro.app/db/static_data.ts
Executable file
@@ -0,0 +1,239 @@
|
||||
import {
|
||||
IListRoutes,
|
||||
ILang,
|
||||
IPreloadImages,
|
||||
ISites,
|
||||
} from '@model'
|
||||
import { func } from '@store/Modules/fieldsTable'
|
||||
|
||||
|
||||
const firstPage = {
|
||||
active: true,
|
||||
order: 5,
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
}
|
||||
|
||||
function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
|
||||
const baseroutes: IListRoutes[] = [
|
||||
{
|
||||
active: true,
|
||||
order: 5,
|
||||
path: '/',
|
||||
materialIcon: 'home',
|
||||
name: 'pages.home',
|
||||
component: () => import('@src/root/mainview/mainview.vue'),
|
||||
reqauth: false,
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
/*{
|
||||
active: true,
|
||||
order: 20,
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},*/
|
||||
{
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.showiscrittiMenu,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableCircuits,
|
||||
order: 16,
|
||||
path: '/circuits',
|
||||
materialIcon: 'fas fa-coins',
|
||||
name: 'mypages.circuits',
|
||||
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableGroups,
|
||||
order: 132,
|
||||
path: '/groups',
|
||||
materialIcon: 'fas fa-users',
|
||||
name: 'mypages.groups',
|
||||
component: () => import('@/views/user/mygroups/mygroups.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 136,
|
||||
path: '/grp/:groupname',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.group2',
|
||||
component: () => import('@/views/user/mygroup/mygroup.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 137,
|
||||
path: '/circuit/:path',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'proj.circuit2',
|
||||
component: () => import('@/views/user/mycircuit/mycircuit.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
path: '/separator',
|
||||
name: 'separator',
|
||||
order: 140,
|
||||
isseparator: true,
|
||||
inmenu: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 130,
|
||||
path: '/mypage/:idBacheca',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.mypage2',
|
||||
component: () => import('@/views/user/mypagebacheca/mypagebacheca.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 130,
|
||||
path: '/myservice/:idSkill',
|
||||
materialIcon: '',
|
||||
name: 'pages.myservice2',
|
||||
component: () => import('@/views/user/myservice/myservice.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 135,
|
||||
path: '/myhosps/:idHosp',
|
||||
materialIcon: '',
|
||||
name: 'pages.myhosps2',
|
||||
component: () => import('@/views/user/mypagehosp/mypagehosp.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 132,
|
||||
path: '/mygood/:idGood',
|
||||
materialIcon: '',
|
||||
name: 'pages.mygood2',
|
||||
component: () => import('@/views/user/mypagegood/mypagegood.vue'),
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 150,
|
||||
path: '/fundraising',
|
||||
materialIcon: 'fas fa-hand-holding-heart',
|
||||
name: 'pages.fundraising',
|
||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 80,
|
||||
path: '/calendario-eventi',
|
||||
materialIcon: 'event',
|
||||
name: 'ris.calendario_eventi_riso',
|
||||
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
|
||||
extraclass: 'isCalendar',
|
||||
inmenu: false,
|
||||
infooter: false
|
||||
},
|
||||
]
|
||||
|
||||
return baseroutes
|
||||
}
|
||||
|
||||
export function firstimagehome() {
|
||||
|
||||
let img = 'statics/images/background.jpg'
|
||||
return img
|
||||
}
|
||||
|
||||
const preLoadImages: IPreloadImages[] = []
|
||||
|
||||
export const lang_available: ILang[] = []
|
||||
export const arrLangUsed: string[] = []
|
||||
|
||||
export const preloadedimages = []
|
||||
|
||||
export const routes: IListRoutes[] = [firstPage]
|
||||
|
||||
export const static_data = {
|
||||
routes,
|
||||
arrLangUsed,
|
||||
getDynamicPages,
|
||||
lang_available,
|
||||
preLoadImages,
|
||||
preloadedimages,
|
||||
}
|
||||
BIN
_ALL_SITES/gruppomacro.app/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
_ALL_SITES/gruppomacro.app/images/favicon.ico
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
_ALL_SITES/gruppomacro.app/images/gm-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
_ALL_SITES/gruppomacro.app/images/gm-android-icon-512x512.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
_ALL_SITES/gruppomacro.app/images/gm-apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
143
_ALL_SITES/gruppomacro.app/package.json
Executable file
@@ -0,0 +1,143 @@
|
||||
{
|
||||
"name": "gruppomacro",
|
||||
"version": "2.0.1",
|
||||
"description": "GruppoMacro",
|
||||
"productName": "",
|
||||
"author": "Paolo Arena",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"dev": "quasar dev",
|
||||
"build": "quasar build",
|
||||
"buildpwa": "quasar build -m pwa",
|
||||
"buildspa": "quasar build -m spa",
|
||||
"lint": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./",
|
||||
"lintfile": "eslint --ext .js,.ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"lintfileNoJS": "eslint --ext .ts,.vue --ignore-path .gitignore ./ > file.out.txt",
|
||||
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > file.out.txt",
|
||||
"pwa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m pwa",
|
||||
"spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
|
||||
"test": "echo \"No test specified\" && exit 0",
|
||||
"generate-sw": "workbox generateSW workbox-config.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quasar/extras": "^1.16.7",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
|
||||
"@vue-leaflet/vue-leaflet": "^0.9.0",
|
||||
"@vue/compat": "^3.2.47",
|
||||
"@vue/compiler-sfc": "^3.2.47",
|
||||
"@vue/eslint-config-standard": "7.0.0",
|
||||
"@vuelidate/core": "^2.0.2",
|
||||
"@vuelidate/validators": "^2.0.2",
|
||||
"acorn": "^8.8.2",
|
||||
"animate.css": "^4.1.1",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"axios": "^1.3.5",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"chart.js": "3.9.1",
|
||||
"core-js": "^3.30.0",
|
||||
"crypto": "^1.0.1",
|
||||
"date-fns": "^2.29.3",
|
||||
"dotenv": "^16.0.3",
|
||||
"echarts": "5.4.2",
|
||||
"eslint-plugin-quasar": "^1.1.0",
|
||||
"graphql": "^16.6.0",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"gsap": "^3.11.5",
|
||||
"jquery": "^3.6.4",
|
||||
"js-cookie": "^3.0.1",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"normalize.css": "^8.0.1",
|
||||
"npm": "^9.6.4",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.0.33",
|
||||
"prerender-spa-plugin": "^3.4.0",
|
||||
"quasar": "^2.12.07",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"typescript-eslint": "^0.0.1-alpha.0",
|
||||
"vee-validate": "^4.8.4",
|
||||
"vue": "^3.2.47",
|
||||
"vue-chart-3": "^3.1.8",
|
||||
"vue-class-component": "^8.0.0-rc.1",
|
||||
"vue-country-code": "^1.1.3",
|
||||
"vue-echarts": "^6.5.4",
|
||||
"vue-i18n": "^9.2.2",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-loader": "^17.0.1",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.1.6",
|
||||
"vue-scroll-reveal": "^1.0.11",
|
||||
"vue-social-sharing": "^4.0.0-alpha4",
|
||||
"vue-svgicon": "^4.0.0-alpha.3",
|
||||
"vue-timeago3": "^2.3.0",
|
||||
"vue2-dragula": "^2.5.5",
|
||||
"vuex": "^4.1.0",
|
||||
"vuex-router-sync": "^6.0.0-rc.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@quasar/app": "^3.3.3",
|
||||
"@types/bcryptjs": "^2.4.2",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@types/googlemaps": "^3.43.3",
|
||||
"@types/jest": "^29.5.0",
|
||||
"@types/js-cookie": "^3.0.3",
|
||||
"@types/node": "18.15.11",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@types/vue-tel-input": "^2.1.2",
|
||||
"@types/vuelidate": "^0.7.16",
|
||||
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
||||
"@typescript-eslint/parser": "^6.7.2",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-vue": "^9.10.0",
|
||||
"file-loader": "^6.2.0",
|
||||
"html-webpack-plugin": "^5.5.0",
|
||||
"http-proxy-middleware": "^2.0.6",
|
||||
"jest": "^29.5.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"node-sass": "^9.0.0",
|
||||
"npm-check-updates": "^16.10.7",
|
||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||
"postcss": "^8.4.21",
|
||||
"postcss-loader": "^7.2.4",
|
||||
"sass-loader": "^13.2.2",
|
||||
"strip-ansi": "=7.0.1",
|
||||
"ts-jest": "^29.1.0",
|
||||
"ts-loader": "^9.4.2",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-standard": "^9.0.0",
|
||||
"tslint-loader": "^3.5.4",
|
||||
"typescript": "^5.2.2",
|
||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||
"vueify": "^9.4.1",
|
||||
"webpack": "^5.78.0",
|
||||
"workbox-webpack-plugin": "^6.5.4"
|
||||
},
|
||||
"browser": {
|
||||
"crypto": false
|
||||
},
|
||||
"browserslist": [
|
||||
"last 100 Chrome versions",
|
||||
"last 40 Firefox versions",
|
||||
"last 20 Edge versions",
|
||||
"last 55 Safari versions",
|
||||
"last 90 Android versions",
|
||||
"last 250 ChromeAndroid versions",
|
||||
"last 60 FirefoxAndroid versions",
|
||||
"last 35 iOS versions",
|
||||
"last 10 Opera versions",
|
||||
"> 0.03%",
|
||||
"not dead"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">= 16.14.0",
|
||||
"npm": ">= 6.14.8",
|
||||
"yarn": ">= 1.21.1"
|
||||
}
|
||||
}
|
||||
418
_ALL_SITES/gruppomacro.app/quasar.conf.js
Executable file
@@ -0,0 +1,418 @@
|
||||
/*
|
||||
* This file runs in a Node context (it's NOT transpiled by Babel), so use only
|
||||
* the ES6 features that are supported by your Node version. https://node.green/
|
||||
*/
|
||||
|
||||
// Configuration for your app
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js
|
||||
|
||||
/* eslint-env node */
|
||||
/* eslint-disable @typescript-eslint/no-var-requires */
|
||||
/* eslint func-names: 0 */
|
||||
/* eslint global-require: 0 */
|
||||
const { configure } = require('quasar/wrappers');
|
||||
|
||||
const path = require('path')
|
||||
const webpack = require('webpack')
|
||||
const helpers = require('./helpers')
|
||||
const envparser = require('./config/envparser')
|
||||
|
||||
// const ESLintPlugin = require('eslint-webpack-plugin')
|
||||
|
||||
module.exports = configure((ctx) => ({
|
||||
// https://v2.quasar.dev/quasar-cli/supporting-ts
|
||||
supportTS: {
|
||||
tsCheckerConfig: {
|
||||
eslint: {
|
||||
enabled: true,
|
||||
files: './src/**/*.{ts,tsx,jsx,vue}',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/prefetch-feature
|
||||
// preFetch: true,
|
||||
|
||||
// app boot file (/src/boot)
|
||||
// --> boot files are part of "main.js"
|
||||
// https://v2.quasar.dev/quasar-cli/boot-files
|
||||
// boot: ['vue-i18n', 'vue-meta', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'vue-idb', 'dragula', 'guard'],
|
||||
boot: ['i18n', 'axios', 'vee-validate', 'myconfig', 'local-storage', 'error-handler', 'globalroutines', 'calendar', 'social-sharing', 'timeago'],
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
|
||||
css: [
|
||||
'app.scss',
|
||||
// '~quasar-ui-qcalendar/src/css/calendar-day.sass'
|
||||
],
|
||||
|
||||
// https://github.com/quasarframework/quasar/tree/dev/extras
|
||||
extras: [
|
||||
// 'ionicons-v4',
|
||||
// 'mdi-v5',
|
||||
// 'eva-icons',
|
||||
// 'themify',
|
||||
// 'line-awesome',
|
||||
'ionicons-v4',
|
||||
// 'mdi-v3',
|
||||
'fontawesome-v5',
|
||||
'roboto-font', // optional, you are not bound to it
|
||||
'material-icons', // optional, you are not bound to it
|
||||
'material-icons-outlined',
|
||||
],
|
||||
|
||||
aliases: {
|
||||
quasar: path.resolve(__dirname, 'node_modules/@quasar/'),
|
||||
src: path.resolve(__dirname, 'src'),
|
||||
statics: path.resolve(__dirname, 'src/statics'),
|
||||
components: path.resolve(__dirname, 'src/components'),
|
||||
views: path.resolve(__dirname, 'src/views/index.ts'),
|
||||
icons: path.resolve(__dirname, 'src/assets/icons'),
|
||||
images: path.resolve(__dirname, 'src/assets/images'),
|
||||
classes: path.resolve(__dirname, 'src/classes/index.ts'),
|
||||
fonts: path.resolve(__dirname, 'src/assets/fonts'),
|
||||
utils: path.resolve(__dirname, 'src/utils/index.ts'),
|
||||
css: path.resolve(__dirname, 'src/styles/variables.scss'),
|
||||
router: path.resolve(__dirname, 'src/router/index.ts'),
|
||||
validators: path.resolve(__dirname, 'src/utils/validators.ts'),
|
||||
methods: path.resolve(__dirname, 'src/utils/methods.ts'),
|
||||
filters: path.resolve(__dirname, 'src/utils/filters.ts'),
|
||||
api: path.resolve(__dirname, 'src/store/Api/index.ts'),
|
||||
paths: path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'),
|
||||
store: path.resolve(__dirname, 'src/store/index.ts'),
|
||||
modules: path.resolve(__dirname, 'src/store/Modules/index.ts'),
|
||||
model: path.resolve(__dirname, 'src/model/index.ts'),
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
|
||||
build: {
|
||||
env: envparser(),
|
||||
vueRouterMode: 'history',
|
||||
vueCompiler: true,
|
||||
gzip: false, // gzip true
|
||||
analyze: false, // true
|
||||
transpile: true,
|
||||
transpileDependencies: [
|
||||
/quasar-ui-qcalendar[\\/]src/
|
||||
],
|
||||
|
||||
chainWebpack(chain, { isServer, isClient }) {
|
||||
chain.resolve.alias
|
||||
// .set('myalias', path.resolve(__dirname, './src/somefolder'))
|
||||
.set('@', helpers.root('src'))
|
||||
.set('@components', helpers.root('src/components/index.ts'))
|
||||
.set('@boot', helpers.root('src/boot/*'))
|
||||
.set('@costanti', helpers.root('src/store/Modules/costanti.ts'))
|
||||
.set('@views', path.resolve(__dirname, 'src/views/index.ts'))
|
||||
.set('@src', path.resolve(__dirname, 'src'))
|
||||
.set('@css', path.resolve(__dirname, 'src/public/css/variables.scss'))
|
||||
.set('@icons', path.resolve(__dirname, 'src/public/icons/*'))
|
||||
.set('@images', path.resolve(__dirname, 'src/public/images/*'))
|
||||
.set('@classes', path.resolve(__dirname, 'src/classes/index.ts'))
|
||||
.set('@utils', path.resolve(__dirname, 'src/utils/index.ts'))
|
||||
.set('@utils', path.resolve(__dirname, 'src/utils/*'))
|
||||
.set('@router', path.resolve(__dirname, 'src/router/index.ts'))
|
||||
.set('@validators', path.resolve(__dirname, 'src/utils/validators.ts'))
|
||||
.set('@methods', path.resolve(__dirname, 'src/utils/methods.ts'))
|
||||
.set('@api', path.resolve(__dirname, 'src/store/Api/index.ts'))
|
||||
.set('@paths', path.resolve(__dirname, 'src/store/Api/ApiRoutes.ts'))
|
||||
.set('@storemod', path.resolve(__dirname, 'src/store/Modules/*'))
|
||||
.set('@store', path.resolve(__dirname, 'src/store'))
|
||||
.set('@modules', path.resolve(__dirname, 'src/store/Modules/index.ts'))
|
||||
.set('@model', path.resolve(__dirname, 'src/model/index.ts'))
|
||||
},
|
||||
// extractCSS: false,
|
||||
// transpile: false,
|
||||
|
||||
// Add dependencies for transpiling with Babel (Array of string/regex)
|
||||
// (from node_modules, which are by default not transpiled).
|
||||
// Applies only if "transpile" is set to true.
|
||||
// transpileDependencies: [],
|
||||
|
||||
// rtl: true, // https://v2.quasar.dev/options/rtl-support
|
||||
// preloadChunks: true,
|
||||
// showProgress: false,
|
||||
// gzip: true,
|
||||
// analyze: true,
|
||||
|
||||
// Options below are automatically set depending on the env, set them if you want to override
|
||||
// extractCSS: false,
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/handling-webpack
|
||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
|
||||
dev: {
|
||||
env: require('./.env.development'),
|
||||
},
|
||||
devServer: {
|
||||
https: false,
|
||||
port: 8089,
|
||||
open: false, // opens browser window automatically
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Access-Control-Allow-Headers': '*',
|
||||
},
|
||||
},
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
|
||||
framework: {
|
||||
config: {},
|
||||
|
||||
// iconSet: 'material-icons', // Quasar icon set
|
||||
// lang: 'en-US', // Quasar language pack
|
||||
|
||||
// For special cases outside of where the auto-import strategy can have an impact
|
||||
// (like functional components as one of the examples),
|
||||
// you can manually specify Quasar components/directives to be available everywhere:
|
||||
//
|
||||
components: [
|
||||
'QLayout',
|
||||
'QDrawer',
|
||||
'QItemSection',
|
||||
'QHeader',
|
||||
'QFooter',
|
||||
'QPageContainer',
|
||||
'QPage',
|
||||
'QPopupProxy',
|
||||
'QToolbar',
|
||||
'QToolbarTitle',
|
||||
'QBtn',
|
||||
'QBtnDropdown',
|
||||
'QColor',
|
||||
'QIcon',
|
||||
'QList',
|
||||
'QKnob',
|
||||
'QItemLabel',
|
||||
'QItem',
|
||||
'QCard',
|
||||
'QMarkupTable',
|
||||
'QSpace',
|
||||
'QDialog',
|
||||
'QBadge',
|
||||
'QForm',
|
||||
'QCardSection',
|
||||
'QCardActions',
|
||||
'QField',
|
||||
'QInput',
|
||||
'QSelect',
|
||||
'QMenu',
|
||||
'QToggle',
|
||||
'QFab',
|
||||
'QInfiniteScroll',
|
||||
'QAjaxBar',
|
||||
'QChip',
|
||||
'QExpansionItem',
|
||||
'QCheckbox',
|
||||
'QBanner',
|
||||
'QInnerLoading',
|
||||
'QSpinnerGears',
|
||||
'QSpinnerDots',
|
||||
'QDate',
|
||||
'QTime',
|
||||
'QSlideTransition',
|
||||
'QTable',
|
||||
'QTh',
|
||||
'QTr',
|
||||
'QTd',
|
||||
'QLinearProgress',
|
||||
'QSlider',
|
||||
'QPopupEdit',
|
||||
'QCarousel',
|
||||
'QCarouselControl',
|
||||
'QCarouselSlide',
|
||||
'QPageScroller',
|
||||
'QAvatar',
|
||||
'QImg',
|
||||
'QSplitter',
|
||||
'QRating',
|
||||
'QParallax',
|
||||
'QTab',
|
||||
'QTabs',
|
||||
'QTabPanels',
|
||||
'QTabPanel',
|
||||
'QTree',
|
||||
'QSeparator',
|
||||
],
|
||||
directives: [
|
||||
'Ripple',
|
||||
'ClosePopup',
|
||||
],
|
||||
_plugins: [
|
||||
'Meta',
|
||||
'Dialog',
|
||||
'Notify',
|
||||
'Cookies',
|
||||
'Loading',
|
||||
'AppVisibility',
|
||||
],
|
||||
get plugins_1() {
|
||||
return this._plugins;
|
||||
},
|
||||
set plugins_1(value) {
|
||||
this._plugins = value;
|
||||
},
|
||||
get plugins() {
|
||||
return this._plugins;
|
||||
},
|
||||
set plugins(value) {
|
||||
this._plugins = value;
|
||||
},
|
||||
iconSet: 'fontawesome-v5',
|
||||
lang: 'it', // Quasar language
|
||||
},
|
||||
|
||||
animations: 'all', // --- includes all animations
|
||||
// https://v2.quasar.dev/options/animations
|
||||
// animations: [],
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
|
||||
ssr: {
|
||||
pwa: false,
|
||||
|
||||
// manualStoreHydration: true,
|
||||
// manualPostHydrationTrigger: true,
|
||||
|
||||
prodPort: 3000, // The default port that the production server should use
|
||||
// (gets superseded if process.env.PORT is specified at runtime)
|
||||
|
||||
maxAge: 1000 * 60 * 60 * 24 * 30,
|
||||
// Tell browser when a file from the server should expire from cache (in ms)
|
||||
|
||||
chainWebpackWebserver(/* chain */) {
|
||||
//
|
||||
},
|
||||
|
||||
middlewares: [
|
||||
ctx.prod ? 'compression' : '',
|
||||
'render', // keep this as last one
|
||||
],
|
||||
},
|
||||
|
||||
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
|
||||
pwa: {
|
||||
workboxPluginMode: 'InjectManifest', // 'GenerateSW' or 'InjectManifest'
|
||||
workboxOptions: {}, // only for GenerateSW
|
||||
extendGenerateSWOptions(cfg) {
|
||||
cfg.skipWaiting = false
|
||||
cfg.clientsClaim = false
|
||||
},
|
||||
// for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts])
|
||||
// if using workbox in InjectManifest mode
|
||||
chainWebpackCustomSW(chain) {
|
||||
// chain.plugin('eslint-webpack-plugin')
|
||||
// .use(ESLintPlugin, [{ extensions: ['js'] }])
|
||||
},
|
||||
|
||||
manifest: {
|
||||
name: 'Gruppo Macro',
|
||||
short_name: 'GruppoMacro',
|
||||
description: 'GruppoMacro',
|
||||
display: 'standalone',
|
||||
orientation: 'portrait',
|
||||
background_color: '#fff',
|
||||
theme_color: '#027be3',
|
||||
scope: "/",
|
||||
id: "/?homescreen=1",
|
||||
start_url: "/?homescreen=1",
|
||||
icons: [
|
||||
{
|
||||
src: 'images/gm-android-icon-512x512.png',
|
||||
sizes: '512x512',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-android-icon-384x384.png',
|
||||
sizes: '384x384',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-android-icon-192x192.png',
|
||||
sizes: '192x192',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-android-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-android-icon-96x96.png',
|
||||
sizes: '96x96',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-apple-icon-120x120.png',
|
||||
sizes: '120x120',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-apple-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-apple-icon-152x152.png',
|
||||
sizes: '152x152',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/gm-apple-icon-180x180.png',
|
||||
sizes: '180x180',
|
||||
type: 'image/png',
|
||||
},
|
||||
],
|
||||
related_applications: [{
|
||||
"platform": "webapp",
|
||||
"url": "https://www.gruppomacro.app/manifest.json"
|
||||
}]
|
||||
},
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
|
||||
cordova: {
|
||||
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
|
||||
capacitor: {
|
||||
hideSplashscreen: true,
|
||||
},
|
||||
|
||||
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
|
||||
electron: {
|
||||
bundler: 'packager', // 'packager' or 'builder'
|
||||
|
||||
packager: {
|
||||
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
|
||||
|
||||
// OS X / Mac App Store
|
||||
// appBundleId: '',
|
||||
// appCategoryType: '',
|
||||
// osxSign: '',
|
||||
// protocol: 'myapp://path',
|
||||
|
||||
// Windows only
|
||||
// win32metadata: { ... }
|
||||
},
|
||||
|
||||
builder: {
|
||||
// https://www.electron.build/configuration/configuration
|
||||
|
||||
appId: 'GruppoMacro',
|
||||
},
|
||||
|
||||
|
||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||
chainWebpack(/* chain */) {
|
||||
// do something with the Electron main process Webpack cfg
|
||||
// extendWebpackMain also available besides this chainWebpackMain
|
||||
},
|
||||
|
||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||
chainWebpackPreload(/* chain */) {
|
||||
// do something with the Electron main process Webpack cfg
|
||||
// extendWebpackPreload also available besides this chainWebpackPreload
|
||||
},
|
||||
},
|
||||
}))
|
||||
@@ -40,6 +40,7 @@ const msg_website_it = {
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
catprods: 'Categorie',
|
||||
subcatprods: 'Sotto-Categorie',
|
||||
gasordine: 'Gas Ordine',
|
||||
scontisticas: 'Scontistica',
|
||||
departments: 'Uffici',
|
||||
|
||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 63 KiB |
30
inizia_gruppomacro.app.sh
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
site=gruppomacro.app
|
||||
|
||||
if [ -d "__piuchebuono.app" ]; then
|
||||
rmdir __piuchebuono.app
|
||||
fi
|
||||
|
||||
if [ -d "__freeplanet.app" ]; then
|
||||
rmdir __freeplanet.app
|
||||
fi
|
||||
|
||||
if [ -d "__riso.app" ]; then
|
||||
rmdir __riso.app
|
||||
fi
|
||||
|
||||
if [ -d "__fioredellavita.riso.app" ]; then
|
||||
rmdir __fioredellavita.riso.app
|
||||
fi
|
||||
|
||||
if [ -d "__popolodelnuovomondo.app" ]; then
|
||||
rmdir __popolodelnuovomondo.app
|
||||
fi
|
||||
|
||||
if [ -d "__terradellavisione.app" ]; then
|
||||
rmdir __terradellavisione.app
|
||||
fi
|
||||
|
||||
|
||||
source __inizia.sh
|
||||
2
now.txt
@@ -1 +1 @@
|
||||
TERMINA DI LAVORARE SU riso.app: (Sovrascrivo !)
|
||||
TERMINA DI LAVORARE SU gruppomacro.app: (Sovrascrivo !)
|
||||
|
||||
110
package.json
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"name": "piuchebuono",
|
||||
"version": "2.0.1",
|
||||
"description": "PiuCheBuono",
|
||||
"productName": "PiuCheBuono",
|
||||
"name": "riso",
|
||||
"version": "0.6.1",
|
||||
"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",
|
||||
"private": true,
|
||||
"keywords": [],
|
||||
@@ -22,102 +22,102 @@
|
||||
"generate-sw": "workbox generateSW workbox-config.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@quasar/extras": "^1.16.7",
|
||||
"@quasar/extras": "^1.16.9",
|
||||
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.16",
|
||||
"@vue-leaflet/vue-leaflet": "^0.9.0",
|
||||
"@vue/compat": "^3.2.47",
|
||||
"@vue/compiler-sfc": "^3.2.47",
|
||||
"@vue-leaflet/vue-leaflet": "^0.10.1",
|
||||
"@vue/compat": "^3.3.9",
|
||||
"@vue/compiler-sfc": "^3.3.9",
|
||||
"@vue/eslint-config-standard": "7.0.0",
|
||||
"@vuelidate/core": "^2.0.2",
|
||||
"@vuelidate/validators": "^2.0.2",
|
||||
"acorn": "^8.8.2",
|
||||
"@vuelidate/core": "^2.0.3",
|
||||
"@vuelidate/validators": "^2.0.4",
|
||||
"acorn": "^8.11.2",
|
||||
"animate.css": "^4.1.1",
|
||||
"autoprefixer": "^10.4.14",
|
||||
"axios": "^1.3.5",
|
||||
"autoprefixer": "^10.4.16",
|
||||
"axios": "^1.6.2",
|
||||
"bcryptjs": "^2.4.3",
|
||||
"chart.js": "3.9.1",
|
||||
"core-js": "^3.30.0",
|
||||
"core-js": "^3.33.3",
|
||||
"crypto": "^1.0.1",
|
||||
"date-fns": "^2.29.3",
|
||||
"dotenv": "^16.0.3",
|
||||
"date-fns": "^2.30.0",
|
||||
"dotenv": "^16.3.1",
|
||||
"echarts": "5.4.2",
|
||||
"eslint-plugin-quasar": "^1.1.0",
|
||||
"graphql": "^16.6.0",
|
||||
"graphql": "^16.8.1",
|
||||
"graphql-tag": "^2.12.6",
|
||||
"gsap": "^3.11.5",
|
||||
"jquery": "^3.6.4",
|
||||
"js-cookie": "^3.0.1",
|
||||
"gsap": "^3.12.3",
|
||||
"jquery": "^3.7.1",
|
||||
"js-cookie": "^3.0.5",
|
||||
"localforage": "^1.10.0",
|
||||
"lodash": "^4.17.21",
|
||||
"normalize.css": "^8.0.1",
|
||||
"npm": "^9.6.4",
|
||||
"npm": "^10.2.4",
|
||||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.0.33",
|
||||
"pinia": "^2.1.7",
|
||||
"prerender-spa-plugin": "^3.4.0",
|
||||
"quasar": "^2.12.07",
|
||||
"quasar-extras": "^2.0.9",
|
||||
"register-service-worker": "^1.7.2",
|
||||
"typescript-eslint": "^0.0.1-alpha.0",
|
||||
"vee-validate": "^4.8.4",
|
||||
"vue": "^3.2.47",
|
||||
"vee-validate": "^4.12.2",
|
||||
"vue": "^3.3.9",
|
||||
"vue-chart-3": "^3.1.8",
|
||||
"vue-class-component": "^8.0.0-rc.1",
|
||||
"vue-country-code": "^1.1.3",
|
||||
"vue-echarts": "^6.5.4",
|
||||
"vue-i18n": "^9.2.2",
|
||||
"vue-echarts": "^6.6.1",
|
||||
"vue-i18n": "^9.8.0",
|
||||
"vue-idb": "^0.2.0",
|
||||
"vue-loader": "^17.0.1",
|
||||
"vue-loader": "^17.3.1",
|
||||
"vue-property-decorator": "^10.0.0-rc.3",
|
||||
"vue-router": "^4.1.6",
|
||||
"vue-scroll-reveal": "^1.0.11",
|
||||
"vue-router": "^4.2.5",
|
||||
"vue-scroll-reveal": "^2.1.0",
|
||||
"vue-social-sharing": "^4.0.0-alpha4",
|
||||
"vue-svgicon": "^4.0.0-alpha.3",
|
||||
"vue-timeago3": "^2.3.0",
|
||||
"vue-timeago3": "^2.3.2",
|
||||
"vue2-dragula": "^2.5.5",
|
||||
"vuex": "^4.1.0",
|
||||
"vuex-router-sync": "^6.0.0-rc.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@quasar/app": "^3.3.3",
|
||||
"@types/bcryptjs": "^2.4.2",
|
||||
"@types/bcryptjs": "^2.4.6",
|
||||
"@types/dotenv": "^8.2.0",
|
||||
"@types/googlemaps": "^3.43.3",
|
||||
"@types/jest": "^29.5.0",
|
||||
"@types/js-cookie": "^3.0.3",
|
||||
"@types/node": "18.15.11",
|
||||
"@types/nprogress": "^0.2.0",
|
||||
"@types/vue-tel-input": "^2.1.2",
|
||||
"@types/vuelidate": "^0.7.16",
|
||||
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
||||
"@typescript-eslint/parser": "^6.7.2",
|
||||
"eslint": "^8.37.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"@types/jest": "^29.5.10",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/node": "18.17.0",
|
||||
"@types/nprogress": "^0.2.3",
|
||||
"@types/vue-tel-input": "^2.1.6",
|
||||
"@types/vuelidate": "^0.7.21",
|
||||
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
||||
"@typescript-eslint/parser": "^6.13.1",
|
||||
"eslint": "^8.54.0",
|
||||
"eslint-config-prettier": "^9.0.0",
|
||||
"eslint-plugin-import": "^2.29.0",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
"eslint-plugin-promise": "^6.1.1",
|
||||
"eslint-plugin-vue": "^9.10.0",
|
||||
"eslint-plugin-vue": "^9.19.2",
|
||||
"file-loader": "^6.2.0",
|
||||
"html-webpack-plugin": "^5.5.0",
|
||||
"html-webpack-plugin": "^5.5.3",
|
||||
"http-proxy-middleware": "^2.0.6",
|
||||
"jest": "^29.5.0",
|
||||
"jest": "^29.7.0",
|
||||
"json-loader": "^0.5.7",
|
||||
"node-sass": "^9.0.0",
|
||||
"npm-check-updates": "^16.10.7",
|
||||
"npm-check-updates": "^16.14.11",
|
||||
"optimize-css-assets-webpack-plugin": "^6.0.1",
|
||||
"postcss": "^8.4.21",
|
||||
"postcss-loader": "^7.2.4",
|
||||
"sass-loader": "^13.2.2",
|
||||
"strip-ansi": "=7.0.1",
|
||||
"ts-jest": "^29.1.0",
|
||||
"ts-loader": "^9.4.2",
|
||||
"postcss": "^8.4.31",
|
||||
"postcss-loader": "^7.3.3",
|
||||
"sass-loader": "^13.3.2",
|
||||
"strip-ansi": "=7.1.0",
|
||||
"ts-jest": "^29.1.1",
|
||||
"ts-loader": "^9.5.1",
|
||||
"tslint": "^6.1.3",
|
||||
"tslint-config-standard": "^9.0.0",
|
||||
"tslint-loader": "^3.5.4",
|
||||
"typescript": "^5.2.2",
|
||||
"typescript": "^5.3.2",
|
||||
"vue-cli-plugin-element-ui": "^1.1.4",
|
||||
"vueify": "^9.4.1",
|
||||
"webpack": "^5.78.0",
|
||||
"workbox-webpack-plugin": "^6.5.4"
|
||||
"webpack": "^5.89.0",
|
||||
"workbox-webpack-plugin": "^7.0.0"
|
||||
},
|
||||
"browser": {
|
||||
"crypto": false
|
||||
|
||||
BIN
public/images/gm-android-icon-192x192.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
public/images/gm-android-icon-512x512.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
public/images/gm-apple-touch-icon.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
public/images/gruppomacro-logo-full.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
@@ -147,7 +147,7 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
devServer: {
|
||||
https: false,
|
||||
port: 8088,
|
||||
port: 8084,
|
||||
open: false, // opens browser window automatically
|
||||
headers: {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
@@ -305,9 +305,9 @@ module.exports = configure((ctx) => ({
|
||||
},
|
||||
|
||||
manifest: {
|
||||
name: 'Più che Buono',
|
||||
short_name: 'PiuCheBuono',
|
||||
description: 'PiuCheBuono è un GAS e Bottega',
|
||||
name: 'Riso',
|
||||
short_name: 'Riso',
|
||||
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.',
|
||||
display: 'standalone',
|
||||
orientation: 'portrait',
|
||||
background_color: '#fff',
|
||||
@@ -317,54 +317,54 @@ module.exports = configure((ctx) => ({
|
||||
start_url: "/?homescreen=1",
|
||||
icons: [
|
||||
{
|
||||
src: 'images/pcb-android-icon-512x512.png',
|
||||
src: 'images/riso-android-icon-512x512.png',
|
||||
sizes: '512x512',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-384x384.png',
|
||||
src: 'images/riso-android-icon-384x384.png',
|
||||
sizes: '384x384',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-192x192.png',
|
||||
src: 'images/riso-android-icon-192x192.png',
|
||||
sizes: '192x192',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-144x144.png',
|
||||
src: 'images/riso-android-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-android-icon-96x96.png',
|
||||
src: 'images/riso-android-icon-96x96.png',
|
||||
sizes: '96x96',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-120x120.png',
|
||||
src: 'images/riso-apple-icon-120x120.png',
|
||||
sizes: '120x120',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-144x144.png',
|
||||
src: 'images/riso-apple-icon-144x144.png',
|
||||
sizes: '144x144',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-152x152.png',
|
||||
src: 'images/riso-apple-icon-152x152.png',
|
||||
sizes: '152x152',
|
||||
type: 'image/png',
|
||||
},
|
||||
{
|
||||
src: 'images/pcb-apple-icon-180x180.png',
|
||||
src: 'images/riso-apple-icon-180x180.png',
|
||||
sizes: '180x180',
|
||||
type: 'image/png',
|
||||
},
|
||||
],
|
||||
related_applications: [{
|
||||
"platform": "webapp",
|
||||
"url": "https://www.piuchebuono.app/manifest.json"
|
||||
"url": "https://www.riso.app/manifest.json"
|
||||
}]
|
||||
},
|
||||
},
|
||||
@@ -399,7 +399,7 @@ module.exports = configure((ctx) => ({
|
||||
builder: {
|
||||
// https://www.electron.build/configuration/configuration
|
||||
|
||||
appId: 'PiuCheBuono',
|
||||
appId: 'Riso',
|
||||
},
|
||||
|
||||
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
|
||||
|
||||
@@ -146,6 +146,8 @@ export const shared_consts = {
|
||||
PROFILETUTORIAL: 280,
|
||||
VISUVIDEOPROMOANDPDF: 290,
|
||||
ECOMMERCE: 300,
|
||||
CATALOGO: 310,
|
||||
TOOLSAI: 320,
|
||||
},
|
||||
|
||||
QUERYTYPE_MYGROUP: 1,
|
||||
@@ -342,6 +344,7 @@ export const shared_consts = {
|
||||
CAT_NO_SPAZI: 5,
|
||||
CAT_GOODS_TXT: 10,
|
||||
PRODUCTS: 20,
|
||||
INVENTARIO: 30,
|
||||
},
|
||||
|
||||
BotType: [
|
||||
@@ -1677,6 +1680,10 @@ export const shared_consts = {
|
||||
value: 300,
|
||||
label: 'E-COMMERCE',
|
||||
},
|
||||
{
|
||||
value: 310,
|
||||
label: 'CATALOGO',
|
||||
},
|
||||
|
||||
],
|
||||
|
||||
|
||||
78
src/components/CAITools/CAITools.scss
Executable file
@@ -0,0 +1,78 @@
|
||||
.colmodif {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.coldate {
|
||||
max-width: 250px;
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.tdclass, .trclass{
|
||||
min-height: 20px !important;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.q-table td {
|
||||
padding-left: 1px;
|
||||
padding-right: 2px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
&__title {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.q-table {
|
||||
&__col {
|
||||
font-size: 1rem;
|
||||
color: gray;
|
||||
}
|
||||
}
|
||||
|
||||
.newrec_fields{
|
||||
display: flex;
|
||||
padding: 2px;
|
||||
margin: 2px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.riduci_pad {
|
||||
min-height: 30px;
|
||||
padding: 4px 8px !important;
|
||||
}
|
||||
|
||||
|
||||
.q-table__top{
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
.barselection {
|
||||
padding: 0;
|
||||
flex-wrap: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.myitem {
|
||||
padding: 0px 0px 0px 0px !important;
|
||||
}
|
||||
|
||||
.myitem-0 {
|
||||
flex-grow: 0;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
.myitem-1 {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.myitem-2 {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.myitem-3 {
|
||||
flex-grow: 1;
|
||||
}
|
||||
46
src/components/CAITools/CAITools.ts
Executable file
@@ -0,0 +1,46 @@
|
||||
import { defineComponent, ref, onMounted, computed } from 'vue'
|
||||
import { useI18n } from '@src/boot/i18n'
|
||||
|
||||
import { tools } from '../../store/Modules/tools'
|
||||
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CAITools',
|
||||
props: {
|
||||
},
|
||||
components: {
|
||||
},
|
||||
setup(props, { emit }) {
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
const isfinishLoading = computed(() => globalStore.finishLoading)
|
||||
|
||||
const $router = useRouter()
|
||||
|
||||
const querySel = ref('')
|
||||
|
||||
function mount() {
|
||||
// Mount
|
||||
|
||||
|
||||
}
|
||||
|
||||
onMounted(mount)
|
||||
|
||||
return {
|
||||
t,
|
||||
querySel,
|
||||
$q,
|
||||
globalStore,
|
||||
}
|
||||
}
|
||||
})
|
||||
20
src/components/CAITools/CAITools.vue
Executable file
@@ -0,0 +1,20 @@
|
||||
<template>
|
||||
<div>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="querySel"
|
||||
:options="globalStore.getQueryAI()"
|
||||
:label="t('ai.selectquery') + `:`"
|
||||
emit-value
|
||||
map-options
|
||||
>
|
||||
</q-select>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./CAITools.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import './CAITools.scss';
|
||||
</style>
|
||||
1
src/components/CAITools/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CAITools} from './CAITools.vue'
|
||||
0
src/components/CCatalogo/CCatalogo.scss
Executable file
8
src/components/CCatalogo/CCatalogo.ts
Executable file
@@ -0,0 +1,8 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { Catalogo } from '@src/views/ecommerce'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CCatalogo',
|
||||
components: { Catalogo },
|
||||
})
|
||||
14
src/components/CCatalogo/CCatalogo.vue
Executable file
@@ -0,0 +1,14 @@
|
||||
<template>
|
||||
<div>
|
||||
<Catalogo>
|
||||
|
||||
</Catalogo>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./CCatalogo.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './CCatalogo.scss';
|
||||
</style>
|
||||
1
src/components/CCatalogo/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as CCatalogo} from './CCatalogo.vue'
|
||||
@@ -14,6 +14,8 @@ import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { LandingFooter } from '@/components/LandingFooter'
|
||||
import { CMyActivities } from '@/components/CMyActivities'
|
||||
import { CECommerce } from '@/components/CECommerce'
|
||||
import { CAITools } from '@/components/CAITools'
|
||||
import { CCatalogo } from '@/components/CCatalogo'
|
||||
import { COpenStreetMap } from '@src/components/COpenStreetMap'
|
||||
import { CCardCarousel } from '@src/components/CCardCarousel'
|
||||
import { CMyPage } from '@src/components/CMyPage'
|
||||
@@ -54,7 +56,7 @@ export default defineComponent({
|
||||
CPresentazione, CMyActivities,
|
||||
CMyProfileTutorial, CSendRISTo,
|
||||
CTitleBanner, CShareSocial, CCheckAppRunning, CRegistration,
|
||||
CVisuVideoPromoAndPDF, CECommerce,
|
||||
CVisuVideoPromoAndPDF, CECommerce, CCatalogo, CAITools,
|
||||
},
|
||||
emits: ['selElemClick'],
|
||||
props: {
|
||||
|
||||
@@ -531,7 +531,15 @@
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.ECOMMERCE">
|
||||
<div v-if="editOn" class="elemEdit">PRODOTTI ECOMMERCE:</div>
|
||||
<CECommerce> </CECommerce>
|
||||
<CECommerce></CECommerce>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CATALOGO">
|
||||
<div v-if="editOn" class="elemEdit">PRODOTTI CATALOGO:</div>
|
||||
<CCatalogo> </CCatalogo>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.TOOLSAI">
|
||||
<div v-if="editOn" class="elemEdit">STRUMENTI AI:</div>
|
||||
<CAITools></CAITools>
|
||||
</div>
|
||||
<div v-else-if="myel.type === shared_consts.ELEMTYPE.NOTIFATTOP">
|
||||
<div v-if="editOn" class="elemEdit">Notifiche in Cima</div>
|
||||
|
||||
@@ -8,8 +8,6 @@ const msg_website_enUs = {
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
stockBloccatiQty: 'Bloccati In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
@@ -38,7 +36,6 @@ const msg_website_enUs = {
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
|
||||
@@ -8,7 +8,6 @@ const msg_website_es = {
|
||||
products: {
|
||||
quantity: 'Quantità',
|
||||
quantityAvailable: 'Disponibili',
|
||||
stockQty: 'In Magazzino',
|
||||
weight: 'Peso',
|
||||
stars: 'Voto',
|
||||
color: 'Colore',
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'Più che Buono',
|
||||
siteshortname: 'Più che Buono',
|
||||
description: '',
|
||||
keywords: '',
|
||||
sitename: 'Riso',
|
||||
siteshortname: 'RISO',
|
||||
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.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
@@ -16,7 +16,6 @@ const msg_website_it = {
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Profilo',
|
||||
install_site: 'Installa Sito',
|
||||
profile2: 'ProfiloU',
|
||||
mypage2: 'mypage2',
|
||||
myservice2: 'myservice2',
|
||||
@@ -31,18 +30,9 @@ const msg_website_it = {
|
||||
producer: 'Produttore',
|
||||
orderinfo: 'Ordini Effettuati',
|
||||
products: 'Prodotti',
|
||||
cash: 'Cassa',
|
||||
productInfos: 'Info Prodotti',
|
||||
listinoprodotti: 'Listino Prodotti',
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
categories: 'Categorie',
|
||||
storehouses: 'Magazzino',
|
||||
providers: 'Fornitori',
|
||||
catprods: 'Categorie',
|
||||
subcatprods: 'Sotto-Categorie',
|
||||
gasordine: 'Gas Ordine',
|
||||
scontisticas: 'Scontistica',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
@@ -131,10 +121,9 @@ const msg_website_it = {
|
||||
only_residenti: 'Solo Residenti',
|
||||
only_consiglio: 'Solo Consiglieri',
|
||||
color: 'Colore',
|
||||
gasordini: 'Gas Ordini',
|
||||
},
|
||||
msg: {
|
||||
myAppName: 'Più che Buono',
|
||||
myAppName: 'Riso',
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
|
||||
@@ -7,6 +7,30 @@ import {
|
||||
import { func } from '@store/Modules/fieldsTable'
|
||||
|
||||
|
||||
// const SHOW_PROJINTHEMENU = false
|
||||
//
|
||||
// let arrlistafavourite = []
|
||||
// let arrlistaprojtutti = []
|
||||
// let arrlistaprojmiei = []
|
||||
// if (SHOW_PROJINTHEMENU) {
|
||||
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
|
||||
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
|
||||
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
|
||||
// }
|
||||
// PROGETTI -> FAVORITI :
|
||||
|
||||
// if (arrlistafavourite.length > 0) {
|
||||
// arrMenu.push({
|
||||
// icon: 'favorite_border',
|
||||
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
|
||||
// urlroute: RouteNames.favouriteprojects,
|
||||
// level_parent: 0.0,
|
||||
// level_child: 0.5,
|
||||
// routes2: arrlistafavourite,
|
||||
// idelem: ''
|
||||
// })
|
||||
// }
|
||||
|
||||
const firstPage = {
|
||||
active: true,
|
||||
order: 5,
|
||||
@@ -33,57 +57,56 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
/*{
|
||||
active: true,
|
||||
order: 20,
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},*/
|
||||
{
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
active: true,
|
||||
order: 400,
|
||||
path: '/test',
|
||||
materialIcon: 'fas fa-test',
|
||||
name: 'mypages.test',
|
||||
component: () => import('@/views/testServer/testServer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 12,
|
||||
path: '/goods',
|
||||
materialIcon: 'fas fa-tshirt',
|
||||
name: 'mypages.goods',
|
||||
component: () => import('@/root/goods/goods.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
path: '/install_site',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.install_site',
|
||||
component: () => import('@/views/admin/install_site/install_site.vue'),
|
||||
order: 15,
|
||||
path: '/services',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.services',
|
||||
component: () => import('@/root/services/services.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/provapao',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.provapao',
|
||||
component: () => import('@/root/provapao/provapao.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.showiscrittiMenu,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/hosps',
|
||||
materialIcon: 'fas fa-bed',
|
||||
name: 'mypages.hosp',
|
||||
component: () => import('@/root/hosp/hosp.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
@@ -98,8 +121,50 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 20,
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
name: 'mypages.events',
|
||||
component: () => import('@/root/eventi/eventi.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile',
|
||||
component: () => import('@/views/user/myprofile/myprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 120,
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
name: 'pages.profile3',
|
||||
component: () => import('@/views/user/editprofile/editprofile.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
name: 'mypages.iscritti',
|
||||
component: () => import('@/views/user/myfriends/myfriends.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableGroups,
|
||||
@@ -111,8 +176,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: false,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { IAction } from '@src/model/Projects'
|
||||
import { IFriends, IGroupShort, IMyGroup, IPaymentType } from '@src/model/UserStore'
|
||||
import {
|
||||
IDepartment, IProducer, IShareWithUs, IStorehouse, IProductInfo, IProvider, IScontistica, ICategory, IGasordine, ICatProd, ISubCatProd
|
||||
IDepartment, IQueryAI, IProducer, IShareWithUs, IStorehouse, IProductInfo, IProvider, IScontistica, ICategory, IGasordine, ICatProd, ISubCatProd, ICatAI
|
||||
} from '@src/model/Products'
|
||||
|
||||
import { IUserFields, IUserProfile } from '@src/model/UserStore'
|
||||
@@ -240,6 +240,7 @@ export interface IConfPages {
|
||||
showConnected: boolean
|
||||
bookingEvents: boolean
|
||||
enableEcommerce: boolean
|
||||
enableAI: boolean
|
||||
enableGroups: boolean
|
||||
enableCircuits: boolean
|
||||
enableProj: boolean
|
||||
@@ -475,6 +476,8 @@ export interface IGlobalState {
|
||||
sectors: ISector[],
|
||||
sectorgoods: ISectorGood[],
|
||||
catgrps: ICatGrp[],
|
||||
catAI: ICatAI[],
|
||||
queryAIList: IQueryAI[],
|
||||
provinces: IProvince[],
|
||||
datastat?: INotData
|
||||
site: ISites,
|
||||
|
||||
@@ -139,6 +139,22 @@ export interface ICatProd {
|
||||
color?: string,
|
||||
}
|
||||
|
||||
export interface ICatAI {
|
||||
_id?: any
|
||||
name: string,
|
||||
img?: string,
|
||||
icon?: string,
|
||||
color?: string,
|
||||
}
|
||||
|
||||
export interface IQueryAI {
|
||||
_id?: any
|
||||
name: string,
|
||||
img?: string,
|
||||
icon?: string,
|
||||
color?: string,
|
||||
}
|
||||
|
||||
export interface ISubCatProd {
|
||||
_id?: any
|
||||
idCatProd: string
|
||||
|
||||
0
src/rootgen/admin/catAI/catAI.scss
Executable file
24
src/rootgen/admin/catAI/catAI.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableCatAI } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CatAIPage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableCatAI,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
31
src/rootgen/admin/catAI/catAI.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Categorie AI" imgbackground="images/produttori.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Categorie AI',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Categorie AI"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="catais"
|
||||
prop_mytitle="Categorie AI"
|
||||
:prop_mycolumns="colTableCatAI"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessuna Categoria AI"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./catAI.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'catAI.scss';
|
||||
</style>
|
||||
@@ -563,6 +563,16 @@
|
||||
:type="costanti.FieldType.boolean"
|
||||
>
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb
|
||||
table="sites"
|
||||
:title="$t('confpages.enableAI')"
|
||||
:id="mysite._id"
|
||||
:rec="mysite"
|
||||
mykey="confpages"
|
||||
mysubkey="enableAI"
|
||||
:type="costanti.FieldType.boolean"
|
||||
>
|
||||
</CMyFieldDb>
|
||||
<CMyFieldDb
|
||||
table="sites"
|
||||
:title="$t('confpages.enableGroups')"
|
||||
|
||||
@@ -46,6 +46,10 @@ export default defineComponent({
|
||||
label: 'Importa Prodotti',
|
||||
value: shared_consts.Cmd.PRODUCTS
|
||||
},
|
||||
{
|
||||
label: 'Importa Inventario',
|
||||
value: shared_consts.Cmd.INVENTARIO
|
||||
},
|
||||
{
|
||||
label: 'Importa Province',
|
||||
value: shared_consts.Cmd.PROVINCE
|
||||
@@ -368,6 +372,13 @@ export default defineComponent({
|
||||
let ind = 1
|
||||
let primo = true
|
||||
|
||||
let arrCols: any = []
|
||||
|
||||
if (skipfirstrow.value) {
|
||||
arrCols = myarr[0].split(',');
|
||||
}
|
||||
console.log('arrCols', arrCols)
|
||||
|
||||
for (const rec of myarr) {
|
||||
|
||||
if (skipfirstrow.value) {
|
||||
@@ -418,8 +429,8 @@ export default defineComponent({
|
||||
strris += addfield(col, 'price_acquistato', rec, { isnumero: true }); col++;
|
||||
strris += addfield(col, 'minBuyQty', rec, { isnumero: true }); col++;
|
||||
strris += addfield(col, 'minStepQty', rec, { isnumero: true }); col++;
|
||||
strris += addfield(col, 'cat_name', rec,{}); col++;
|
||||
strris += addfield(col, 'subcat_name', rec,{}); col++;
|
||||
strris += addfield(col, 'cat_name', rec, {}); col++;
|
||||
strris += addfield(col, 'subcat_name', rec, {}); col++;
|
||||
strris += addfield(col, 'producer_name', rec, {}); col++;
|
||||
strris += addfield(col, 'provider_name', rec, {}); col++;
|
||||
strris += addfield(col, 'magazzino_name', rec, {}); col++;
|
||||
@@ -431,6 +442,18 @@ export default defineComponent({
|
||||
strris += addfield(col, 'note', rec, {}); col++;
|
||||
strris += '} '
|
||||
|
||||
} else if (cmd === shared_consts.Cmd.INVENTARIO) {
|
||||
if (!primo) {
|
||||
strris += ', '
|
||||
}
|
||||
|
||||
strris += '{ '
|
||||
let col = 0;
|
||||
strris += addfield(col, 'idapp', rec, { strinput: tools.appid(), primo: true });
|
||||
for (const mycol of arrCols) {
|
||||
strris += addfield(col, mycol, rec, {}); col++;
|
||||
}
|
||||
|
||||
} else if (cmd === shared_consts.Cmd.CITIES_SERVER) {
|
||||
strris += '{ \n'
|
||||
strris += ' _id :' + ind + ',\n'
|
||||
@@ -487,6 +510,11 @@ export default defineComponent({
|
||||
userStore.importToServerCmd($q, t, cosafare.value, { arrdata: risultato.value, options })
|
||||
}
|
||||
|
||||
function eseguiCmdInventario() {
|
||||
let options = { aggiornaStockQty: checkAggiornaQta.value }
|
||||
userStore.importToServerCmd($q, t, cosafare.value, { arrdata: risultato.value, options })
|
||||
}
|
||||
|
||||
function createProvLink() {
|
||||
let str = ''
|
||||
|
||||
@@ -531,6 +559,7 @@ export default defineComponent({
|
||||
skipfirstrow,
|
||||
eseguiCmdProduct,
|
||||
checkAggiornaQta,
|
||||
eseguiCmdInventario,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
<br>
|
||||
<q-btn v-if="cosafare !== shared_consts.Cmd.PRODUCTS" label="Esegui" @click="eseguiCmd"></q-btn>
|
||||
|
||||
<q-btn v-else label="Importa Prodotti" @click="eseguiCmdProduct"></q-btn>
|
||||
<q-btn v-else-if="cosafare === shared_consts.Cmd.PRODUCTS" label="Importa Prodotti" @click="eseguiCmdProduct"></q-btn>
|
||||
<q-btn v-else-if="cosafare === shared_consts.Cmd.INVENTARIO" label="Importa Inventario" @click="eseguiCmdInventario"></q-btn>
|
||||
|
||||
<br>
|
||||
<q-btn label="Genera HTML Province Territoriali" @click="createProvLink"></q-btn>
|
||||
|
||||
0
src/rootgen/admin/queryAI/queryAI.scss
Executable file
24
src/rootgen/admin/queryAI/queryAI.ts
Executable file
@@ -0,0 +1,24 @@
|
||||
import { defineComponent } from 'vue'
|
||||
|
||||
import { CImgText } from '../../../components/CImgText/index'
|
||||
import { CCard } from '@/components/CCard'
|
||||
import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableCatAI } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CatAIPage',
|
||||
components: { CImgText, CCard, CMyPage, CTitleBanner, CGridTableRec },
|
||||
setup() {
|
||||
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableCatAI,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
})
|
||||
31
src/rootgen/admin/queryAI/queryAI.vue
Executable file
@@ -0,0 +1,31 @@
|
||||
<template>
|
||||
<CMyPage title="Query AI" imgbackground="images/queryai.jpg" sizes="max-height: 120px">
|
||||
<span>{{
|
||||
setmeta({
|
||||
title: 'Query AI',
|
||||
description: '',
|
||||
keywords: '',
|
||||
})
|
||||
}}
|
||||
</span>
|
||||
|
||||
<div class="q-ma-sm q-gutter-sm q-pa-xs">
|
||||
<CTitleBanner title="Query AI"></CTitleBanner>
|
||||
<CGridTableRec
|
||||
prop_mytable="queryais"
|
||||
prop_mytitle="Query AI"
|
||||
:prop_mycolumns="colTableCatAI"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessuna Query AI"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
</CGridTableRec>
|
||||
</div>
|
||||
</CMyPage>
|
||||
</template>
|
||||
<script lang="ts" src="./queryAI.ts">
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
@import 'queryAI.scss';
|
||||
</style>
|
||||
@@ -9,4 +9,5 @@ export const RouteNames = {
|
||||
listprojects: 'listproj',
|
||||
livelli: 'livelli',
|
||||
ecommerce: 'ecommerce',
|
||||
toolsAI: 'strumentiAI',
|
||||
}
|
||||
|
||||
90
src/router/routesAI.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
import { IListRoutes, ISites } from '@src/model'
|
||||
|
||||
function getRoutesAI(site: ISites) {
|
||||
|
||||
const routes_ai: IListRoutes[] = [
|
||||
{
|
||||
active: true,
|
||||
order: 30,
|
||||
path: '/ai',
|
||||
materialIcon: 'fas fa-book',
|
||||
name: 'pages.aitools',
|
||||
component: () => import('@/views/toolsAI/main/main.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
level_child: 0.5,
|
||||
},
|
||||
]
|
||||
|
||||
const routes_admin_ai: IListRoutes[] = [
|
||||
{
|
||||
active: true,
|
||||
order: 32,
|
||||
path: '/admin/ai/catAI',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'pages.catAI',
|
||||
component: () => import('@/rootgen/admin/catAI/catAI.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
level_child: 0.5,
|
||||
onlyManager: true,
|
||||
onlyEditor: true
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 32,
|
||||
path: '/admin/ai/queryAI',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'pages.queryAI',
|
||||
component: () => import('@/rootgen/admin/queryAI/queryAI.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
level_child: 0.5,
|
||||
onlyManager: true,
|
||||
onlyEditor: true
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
const menuAI = [
|
||||
{
|
||||
active: site.confpages && site.confpages.enableAI,
|
||||
path: '/ai',
|
||||
order: 1402,
|
||||
faIcon: 'fas fa-lemon',
|
||||
materialIcon: 'fas fa-lemon',
|
||||
name: 'pages.toolsAI',
|
||||
routes2: routes_ai,
|
||||
inmenu: true,
|
||||
onlyif_logged: true,
|
||||
// onlySocioResidente: true,
|
||||
solotitle: true,
|
||||
infooter: true
|
||||
},
|
||||
...routes_ai,
|
||||
{
|
||||
active: site.confpages && site.confpages.enableAI,
|
||||
path: '/admin/ai',
|
||||
order: 1420,
|
||||
materialIcon: 'next_week',
|
||||
name: 'pages.admin_ai',
|
||||
routes2: routes_admin_ai,
|
||||
inmenu: true,
|
||||
solotitle: true,
|
||||
onlyAdmin: true,
|
||||
onlyManager: true,
|
||||
onlyDepartment: true
|
||||
},
|
||||
...routes_admin_ai,
|
||||
]
|
||||
|
||||
return menuAI
|
||||
}
|
||||
|
||||
|
||||
export const routesAI = {
|
||||
routesAI: getRoutesAI,
|
||||
}
|
||||
@@ -15,6 +15,18 @@ function getRoutesEcomm(site: ISites) {
|
||||
level_parent: 0,
|
||||
level_child: 0.5,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 30,
|
||||
path: '/catalogo',
|
||||
materialIcon: 'fas fa-lemon',
|
||||
name: 'pages.catalogo',
|
||||
component: () => import('@/views/ecommerce/catalogo/catalogo.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
level_parent: 0,
|
||||
level_child: 0.5,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 30,
|
||||
@@ -226,85 +238,6 @@ function getRoutesEcomm(site: ISites) {
|
||||
|
||||
]
|
||||
|
||||
const routes_admin_ecommerce_menu: IListRoutes[] = [
|
||||
{
|
||||
active: true,
|
||||
order: 30,
|
||||
path: '/admin/ecommerce/products',
|
||||
name: 'pages.products',
|
||||
component: () => import('@/rootgen/admin/products/products.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 30,
|
||||
path: '/admin/ecommerce/productInfos',
|
||||
name: 'pages.productInfos',
|
||||
component: () => import('@src/rootgen/admin/productInfos/productInfos.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 31,
|
||||
path: '/admin/ecommerce/producers',
|
||||
name: 'pages.producer',
|
||||
component: () => import('@/rootgen/admin/producer/producer.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 32,
|
||||
path: '/admin/ecommerce/storehouses',
|
||||
name: 'pages.storehouses',
|
||||
component: () => import('@/rootgen/admin/storehouses/storehouses.vue'),
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 32,
|
||||
path: '/admin/ecommerce/providers',
|
||||
name: 'pages.providers',
|
||||
component: () => import('@/rootgen/admin/providers/providers.vue'),
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 32,
|
||||
path: '/admin/ecommerce/scontistica',
|
||||
name: 'pages.scontisticas',
|
||||
component: () => import('@/rootgen/admin/scontistica/scontistica.vue'),
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 32,
|
||||
path: '/admin/ecommerce/departments',
|
||||
name: 'pages.departments',
|
||||
component: () => import('@/rootgen/admin/departments/departments.vue'),
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 35,
|
||||
path: '/admin/ecommerce/orders',
|
||||
name: 'pages.orders2',
|
||||
component: () => import('@/rootgen/admin/orders/orders.vue'),
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 36,
|
||||
path: '/admin/ecommerce/categories',
|
||||
name: 'pages.categories',
|
||||
component: () => import('@/rootgen/admin/categories/categories.vue'),
|
||||
infooter: false,
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
const menuEcomm = [
|
||||
{
|
||||
active: site.confpages && site.confpages.enableEcommerce,
|
||||
|
||||
@@ -1571,6 +1571,7 @@ const msg_it = {
|
||||
enableEcommerce: 'ECommerce',
|
||||
enableGroups: 'Gruppi',
|
||||
enableCircuits: 'Circuiti',
|
||||
enableAI: 'AI Tools',
|
||||
enableProj: 'Mostra Project',
|
||||
enableTodos: 'Mostra Todos',
|
||||
enableRegByBot: 'Registratione By Bot',
|
||||
@@ -1764,6 +1765,9 @@ const msg_it = {
|
||||
confirmed: 'Confermato',
|
||||
causale: 'Causale',
|
||||
},
|
||||
ai: {
|
||||
selectquery: 'Scegli',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -428,6 +428,31 @@ export const colTableCatProd = [
|
||||
AddCol(DeleteRec),
|
||||
AddCol(DuplicateRec),
|
||||
]
|
||||
|
||||
export const colTableCatAI = [
|
||||
AddCol({ name: 'name', label_trans: 'categories.name' }),
|
||||
AddCol({ name: 'img', label_trans: 'categories.img' }),
|
||||
AddCol({ name: 'icon', label_trans: 'categories.icon' }),
|
||||
AddCol({ name: 'color', label_trans: 'categories.color' }),
|
||||
AddCol(DeleteRec),
|
||||
AddCol(DuplicateRec),
|
||||
]
|
||||
|
||||
export const colTableQueryAI = [
|
||||
AddCol({ name: 'descr', label_trans: 'categories.name' }),
|
||||
AddCol({
|
||||
name: 'catAI',
|
||||
label_trans: 'products.category',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'catais',
|
||||
}),
|
||||
AddCol({ name: 'query', label_trans: 'ai.query' }),
|
||||
AddCol({ name: 'ask', label_trans: 'ai.ask' }),
|
||||
AddCol({ name: 'output_type', label_trans: 'ai.output_type' }),
|
||||
AddCol(DeleteRec),
|
||||
AddCol(DuplicateRec),
|
||||
]
|
||||
|
||||
export const colTableSubCatProd = [
|
||||
AddCol({ name: 'name', label_trans: 'categories.name' }),
|
||||
AddCol({
|
||||
@@ -3751,6 +3776,20 @@ export const fieldsTable = {
|
||||
colkey: '_id',
|
||||
collabel: 'name',
|
||||
},
|
||||
{
|
||||
value: 'catais',
|
||||
label: 'Categorie AI',
|
||||
columns: colTableCatAI,
|
||||
colkey: '_id',
|
||||
collabel: 'name',
|
||||
},
|
||||
{
|
||||
value: 'queryais',
|
||||
label: 'Query AI',
|
||||
columns: colTableQueryAI,
|
||||
colkey: '_id',
|
||||
collabel: 'descr',
|
||||
},
|
||||
{
|
||||
value: 'gasordines',
|
||||
label: 'Gas Ordini',
|
||||
|
||||
@@ -36,6 +36,7 @@ import { useNotifStore } from '@store/NotifStore'
|
||||
import { useCircuitStore } from '@store/CircuitStore'
|
||||
import { routesAdmin } from '@src/router/routesAdmin'
|
||||
import { routesECommerce } from '@src/router/routesECommerce'
|
||||
import { routesAI } from '@src/router/routesAI'
|
||||
import LandingFooter from '@src/components/LandingFooter/LandingFooter'
|
||||
import { useProducts } from '@store/Products'
|
||||
|
||||
@@ -144,6 +145,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
sectors: [],
|
||||
sectorgoods: [],
|
||||
catgrps: [],
|
||||
catAI: [],
|
||||
queryAIList: [],
|
||||
site: {
|
||||
confsite: {
|
||||
options: 0
|
||||
@@ -170,6 +173,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
showConnected: false,
|
||||
bookingEvents: false,
|
||||
enableEcommerce: false,
|
||||
enableAI: false,
|
||||
enableGroups: false,
|
||||
enableCircuits: false,
|
||||
enableProj: false,
|
||||
@@ -328,6 +332,8 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
else if (table === 'categorys') ris = state.categories
|
||||
else if (table === 'catprods') ris = Products.catprods
|
||||
else if (table === 'catprods_gas') ris = Products.catprods_gas
|
||||
else if (table === 'catais') ris = state.catAI
|
||||
else if (table === 'queryais') ris = state.queryAIList
|
||||
else if (table === 'sharewithus') ris = state.sharewithus
|
||||
else if (table === 'paymenttypes') ris = state.paymenttypes
|
||||
else if (table === 'circuits') ris = circuitStore.listcircuits
|
||||
@@ -527,6 +533,7 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
const adminRoutes = routesAdmin.routesAd(this.site);
|
||||
const ecommRoutes = routesECommerce.routesEcomm(this.site);
|
||||
const AIRoutes = routesAI.routesAI(this.site);
|
||||
|
||||
const last = {
|
||||
active: true,
|
||||
@@ -555,7 +562,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, last]
|
||||
static_data.routes = [...baseroutes, ...ecommRoutes, ...adminRoutes, ...arrpagesroute, ...AIRoutes, last]
|
||||
}
|
||||
|
||||
/*for (const menu of static_data.routes) {
|
||||
@@ -1572,6 +1579,9 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
this.sectorgoods = (res.data.sectorgoods) ? [...res.data.sectorgoods] : []
|
||||
this.provinces = (res.data.provinces) ? [...res.data.provinces] : []
|
||||
this.catgrps = (res.data.catgrps) ? [...res.data.catgrps] : []
|
||||
this.catAI = (res.data.catAI) ? [...res.data.catAI] : []
|
||||
if (res.data.queryAIList)
|
||||
this.queryAIList = res.data.queryAIList
|
||||
this.site = (res.data.site) ? res.data.site : {}
|
||||
this.mygroups = (res.data.mygroups) ? [...res.data.mygroups] : []
|
||||
this.adtypes = (res.data.adtypes) ? [...res.data.adtypes] : []
|
||||
@@ -1785,6 +1795,26 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
},
|
||||
|
||||
async getQueryAI() {
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
||||
const paramquery = {
|
||||
locale: tools.getLocale(),
|
||||
username: userStore.my.username
|
||||
}
|
||||
|
||||
return Api.SendReq('/aitools/getlist', 'POST', paramquery)
|
||||
.then((res) => {
|
||||
// console.log('queryAIList', res)
|
||||
this.queryAIList = res.data.queryAIList
|
||||
return this.queryAIList
|
||||
}).catch((error) => {
|
||||
return {}
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
getItemDate(num: number, day: number, numdays: number, mystr: string) {
|
||||
let mydate = tools.addDays(tools.getDateNow(), day)
|
||||
let mydateend = tools.addDays(mydate, numdays)
|
||||
|
||||
25
src/views/ecommerce/catalogo/catalogo.scss
Executable file
@@ -0,0 +1,25 @@
|
||||
$heightBtn: 100%;
|
||||
|
||||
.card .product-image {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.container{
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.prod_trov{
|
||||
font-style: italic;
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.fixed-group {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #ffffff; /* Customize the background color as needed */
|
||||
z-index: 1000; /* Adjust the z-index to ensure it's above other elements */
|
||||
transition: all 1s ease;
|
||||
}
|
||||
163
src/views/ecommerce/catalogo/catalogo.ts
Executable file
@@ -0,0 +1,163 @@
|
||||
import { defineComponent, onMounted, ref, watch, computed, onBeforeUnmount } from 'vue'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useProducts } from '@store/Products'
|
||||
import { useI18n } from '@/boot/i18n'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { CProductCard } from '@src/components/CProductCard'
|
||||
import { CSelectUserActive } from '@src/components/CSelectUserActive'
|
||||
import { IProduct } from '@src/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'Catalogo',
|
||||
components: { CProductCard, CSelectUserActive },
|
||||
props: {},
|
||||
setup() {
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
const productStore = useProducts()
|
||||
const router = useRouter()
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
|
||||
const search = ref('')
|
||||
|
||||
const cosa = ref(0)
|
||||
const cat = ref('')
|
||||
const loadpage = ref(false)
|
||||
const refreshpage = ref(false)
|
||||
|
||||
const arrProducts = ref<any>([])
|
||||
|
||||
// Create a ref for the component to fix
|
||||
const componentToFixRef = ref(<any>null);
|
||||
|
||||
const isFixed = ref(false);
|
||||
|
||||
// Register the scroll event on component mount
|
||||
const handleScroll = () => {
|
||||
const scrollTop = window.scrollY || document.documentElement.scrollTop;
|
||||
|
||||
// Set a threshold value based on how much scroll is needed to fix the components
|
||||
const threshold = 300;
|
||||
|
||||
// Update the isFixed ref based on the scroll position
|
||||
isFixed.value = scrollTop > threshold;
|
||||
};
|
||||
|
||||
watch(() => cat.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
})
|
||||
watch(() => search.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
if (tools.scrollTop() > 300) {
|
||||
tools.scrollToTopValue(300)
|
||||
}
|
||||
})
|
||||
|
||||
watch(() => cosa.value, (newval, oldval) => {
|
||||
tools.setCookie(tools.COOK_COSA_PRODOTTI, cosa.value.toString())
|
||||
if (cosa.value !== shared_consts.PROD.TUTTI)
|
||||
cat.value = ''
|
||||
calcArrProducts()
|
||||
})
|
||||
|
||||
function calcArrProducts() {
|
||||
refreshpage.value = true
|
||||
let arrprod = productStore.getProducts(cosa.value)
|
||||
let catstr = cat.value;
|
||||
let lowerSearchText = search.value.toLowerCase().trim();
|
||||
if ((!lowerSearchText || (lowerSearchText && lowerSearchText.length < 2)) && !catstr) {
|
||||
|
||||
} else {
|
||||
|
||||
arrprod = arrprod.filter((product: IProduct) => {
|
||||
let lowerName = product.productInfo.name!.toLowerCase();
|
||||
let hasCategoria = !catstr || (catstr && product.productInfo.idCatProds?.includes(catstr));
|
||||
|
||||
// Use a regular expression to match whole words
|
||||
let codeMatch = new RegExp(`\\b${lowerSearchText}\\b`, 'i');
|
||||
let nameMatch = new RegExp(`\\b${lowerSearchText}`, 'i');
|
||||
|
||||
// Check if any word in lowerName starts with lowerSearchText
|
||||
let anyWordStartsWithSearch = lowerName.split(/\s+/).some(word => nameMatch.test(word));
|
||||
|
||||
return (codeMatch.test(product.productInfo.code!) || anyWordStartsWithSearch) && hasCategoria;
|
||||
});
|
||||
}
|
||||
|
||||
arrProducts.value = arrprod
|
||||
refreshpage.value = false
|
||||
}
|
||||
|
||||
/*function getProducts() {
|
||||
let arrprod = productStore.getProducts(cosa.value)
|
||||
if (!search.value) {
|
||||
return arrprod
|
||||
}
|
||||
|
||||
let lowerSearchText = search.value.toLowerCase();
|
||||
let catstr = cat.value;
|
||||
|
||||
return arrprod.filter((product: IProduct) => {
|
||||
let lowerName = product.productInfo.name!.toLowerCase();
|
||||
const hasCategoria = !catstr || (catstr && product.productInfo.idCatProds?.includes(catstr));
|
||||
return (product.productInfo.code!.includes(search.value) || lowerName.includes(lowerSearchText)) && hasCategoria
|
||||
});
|
||||
}*/
|
||||
|
||||
async function mounted() {
|
||||
loadpage.value = false
|
||||
await productStore.loadProducts()
|
||||
cosa.value = tools.getCookie(tools.COOK_COSA_PRODOTTI, shared_consts.PROD.TUTTI, true)
|
||||
// Inizializza
|
||||
loadpage.value = true
|
||||
window.addEventListener('scroll', handleScroll);
|
||||
|
||||
calcArrProducts()
|
||||
}
|
||||
|
||||
// Remove the event listener on component destroy
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('scroll', handleScroll);
|
||||
});
|
||||
|
||||
function getCatProds() {
|
||||
let arrcat = productStore.getCatProds(cosa.value)
|
||||
let riscat: any = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }]
|
||||
for (const rec of arrcat) {
|
||||
riscat.push({ label: rec.name, value: rec._id, icon: rec.icon, color: rec.color })
|
||||
}
|
||||
|
||||
return riscat
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
userStore,
|
||||
costanti,
|
||||
tools,
|
||||
toolsext,
|
||||
search,
|
||||
cosa,
|
||||
shared_consts,
|
||||
getCatProds,
|
||||
cat,
|
||||
productStore,
|
||||
t,
|
||||
loadpage,
|
||||
refreshpage,
|
||||
componentToFixRef,
|
||||
isFixed,
|
||||
arrProducts,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
126
src/views/ecommerce/catalogo/catalogo.vue
Executable file
@@ -0,0 +1,126 @@
|
||||
<template>
|
||||
<q-page>
|
||||
<div class="text-center">
|
||||
<q-spinner v-if="!loadpage" color="primary" size="3em" :thickness="2" />
|
||||
</div>
|
||||
<div v-if="loadpage" class="panel">
|
||||
<!--<div>
|
||||
<CSelectUserActive></CSelectUserActive>
|
||||
<div class="text-center text-h7 text-blue">Filtra per:</div>
|
||||
<div class="text-center">
|
||||
<q-btn-toggle
|
||||
v-model="cosa"
|
||||
push
|
||||
:size="tools.isMobile() ? '0.75rem' : '1rem'"
|
||||
rounded
|
||||
glossy
|
||||
toggle-color="primary"
|
||||
:options="[
|
||||
{ value: shared_consts.PROD.TUTTI, slot: 'tutti' },
|
||||
{ value: shared_consts.PROD.BOTTEGA, slot: 'bottega' },
|
||||
{ value: shared_consts.PROD.GAS, slot: 'gas' },
|
||||
]"
|
||||
>
|
||||
<template v-slot:tutti>
|
||||
<div class="row items-center no-wrap">
|
||||
<div class="text-center">
|
||||
{{ t('ecomm.tutti') }}
|
||||
</div>
|
||||
<q-icon right name="fas fa-check-square" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-slot:gas>
|
||||
<div class="row items-center no-wrap">
|
||||
<div class="text-center">
|
||||
{{ t('gas.ordina_sul_gas') }}
|
||||
</div>
|
||||
<q-icon right name="fas fa-user-friends" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-slot:bottega>
|
||||
<div class="row items-center no-wrap">
|
||||
<div class="text-center">
|
||||
{{ t('gas.bottega') }}
|
||||
</div>
|
||||
<q-icon right name="fas fa-store" />
|
||||
</div>
|
||||
</template>
|
||||
</q-btn-toggle>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="container">
|
||||
<q-slide-transition>
|
||||
<div
|
||||
v-show="isFixed || tools.scrollTop() < 300"
|
||||
:class="
|
||||
'column text-center q-mx-auto q-py-sm q-mb-sm ' +
|
||||
(isFixed ? 'fixed-group ' : '')
|
||||
"
|
||||
style="width: 350px; max-width: 100%"
|
||||
>
|
||||
<div>
|
||||
<q-input
|
||||
ref="componentToFixRef"
|
||||
filled
|
||||
stack-label
|
||||
rounded
|
||||
:dense="tools.isMobile() ? true : false"
|
||||
:label="t('ecomm.code_o_text_search')"
|
||||
v-model="search"
|
||||
debounce="300"
|
||||
class="q-ml-md"
|
||||
>
|
||||
<template v-slot:append>
|
||||
<q-icon name="search" />
|
||||
</template>
|
||||
</q-input>
|
||||
</div>
|
||||
</div>
|
||||
</q-slide-transition>
|
||||
<div class="row q-gutter-xs justify-center q-mx-auto">
|
||||
<div v-for="(reccat, index) in getCatProds()" :key="index">
|
||||
<q-btn
|
||||
:push="cat === reccat.value"
|
||||
dense
|
||||
:size="tools.isMobile() ? '0.70rem' : '1rem'"
|
||||
:icon="reccat.icon ? reccat.icon : undefined"
|
||||
:color="cat === reccat.value ? 'primary' : undefined"
|
||||
:text-color="cat === reccat.value ? 'white' : 'black'"
|
||||
rounded
|
||||
:label="reccat.label"
|
||||
@click="cat = reccat.value"
|
||||
>
|
||||
</q-btn>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center q-py-sm prod_trov">
|
||||
<span v-show="productStore.getNumProdTot() !== arrProducts.length">{{
|
||||
t('ecomm.prodotti_trovati', {
|
||||
qta: arrProducts.length,
|
||||
qtatot: productStore.getNumProdTot(),
|
||||
})
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="row justify-around">
|
||||
<div
|
||||
class="q-pa-xs row items-start"
|
||||
v-for="(product, index) in arrProducts"
|
||||
:key="index"
|
||||
>
|
||||
<CProductCard :id="product._id" :complete="false" :cosa="cosa" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./catalogo.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './catalogo';
|
||||
</style>
|
||||
1
src/views/ecommerce/catalogo/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as Catalogo} from './catalogo.vue'
|
||||
@@ -1 +1,2 @@
|
||||
export * from './productsList'
|
||||
export * from './catalogo'
|
||||
|
||||
1
src/views/toolsAI/main/index.ts
Executable file
@@ -0,0 +1 @@
|
||||
export {default as toolsAI} from './toolsAI.vue'
|
||||
25
src/views/toolsAI/main/main.scss
Executable file
@@ -0,0 +1,25 @@
|
||||
$heightBtn: 100%;
|
||||
|
||||
.card .product-image {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
.container{
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.prod_trov{
|
||||
font-style: italic;
|
||||
color: blue;
|
||||
}
|
||||
|
||||
.fixed-group {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
background-color: #ffffff; /* Customize the background color as needed */
|
||||
z-index: 1000; /* Adjust the z-index to ensure it's above other elements */
|
||||
transition: all 1s ease;
|
||||
}
|
||||
162
src/views/toolsAI/main/main.ts
Executable file
@@ -0,0 +1,162 @@
|
||||
import { defineComponent, onMounted, ref, watch, computed, onBeforeUnmount } from 'vue'
|
||||
import { tools } from '@store/Modules/tools'
|
||||
import { useUserStore } from '@store/UserStore'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useGlobalStore } from '@store/globalStore'
|
||||
import { useProducts } from '@store/Products'
|
||||
import { useI18n } from '@/boot/i18n'
|
||||
import { toolsext } from '@store/Modules/toolsext'
|
||||
import { useQuasar } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
|
||||
import { shared_consts } from '@/common/shared_vuejs'
|
||||
import { CAITools } from '@src/components/CAITools'
|
||||
import { IProduct } from '@src/model'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'ToolsAIMain',
|
||||
components: { CAITools },
|
||||
props: {},
|
||||
setup() {
|
||||
const userStore = useUserStore()
|
||||
const globalStore = useGlobalStore()
|
||||
const productStore = useProducts()
|
||||
const router = useRouter()
|
||||
const $q = useQuasar()
|
||||
const { t } = useI18n()
|
||||
|
||||
const search = ref('')
|
||||
|
||||
const cosa = ref(0)
|
||||
const cat = ref('')
|
||||
const loadpage = ref(false)
|
||||
const refreshpage = ref(false)
|
||||
|
||||
const arrProducts = ref<any>([])
|
||||
|
||||
// Create a ref for the component to fix
|
||||
const componentToFixRef = ref(<any>null);
|
||||
|
||||
const isFixed = ref(false);
|
||||
|
||||
// Register the scroll event on component mount
|
||||
const handleScroll = () => {
|
||||
const scrollTop = window.scrollY || document.documentElement.scrollTop;
|
||||
|
||||
// Set a threshold value based on how much scroll is needed to fix the components
|
||||
const threshold = 300;
|
||||
|
||||
// Update the isFixed ref based on the scroll position
|
||||
isFixed.value = scrollTop > threshold;
|
||||
};
|
||||
|
||||
watch(() => cat.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
})
|
||||
watch(() => search.value, (newval, oldval) => {
|
||||
calcArrProducts()
|
||||
if (tools.scrollTop() > 300) {
|
||||
tools.scrollToTopValue(300)
|
||||
}
|
||||
})
|
||||
|
||||
watch(() => cosa.value, (newval, oldval) => {
|
||||
tools.setCookie(tools.COOK_COSA_PRODOTTI, cosa.value.toString())
|
||||
if (cosa.value !== shared_consts.PROD.TUTTI)
|
||||
cat.value = ''
|
||||
calcArrProducts()
|
||||
})
|
||||
|
||||
function calcArrProducts() {
|
||||
refreshpage.value = true
|
||||
let arrprod = productStore.getProducts(cosa.value)
|
||||
let catstr = cat.value;
|
||||
let lowerSearchText = search.value.toLowerCase().trim();
|
||||
if ((!lowerSearchText || (lowerSearchText && lowerSearchText.length < 2)) && !catstr) {
|
||||
|
||||
} else {
|
||||
|
||||
arrprod = arrprod.filter((product: IProduct) => {
|
||||
let lowerName = product.productInfo.name!.toLowerCase();
|
||||
let hasCategoria = !catstr || (catstr && product.productInfo.idCatProds?.includes(catstr));
|
||||
|
||||
// Use a regular expression to match whole words
|
||||
let codeMatch = new RegExp(`\\b${lowerSearchText}\\b`, 'i');
|
||||
let nameMatch = new RegExp(`\\b${lowerSearchText}`, 'i');
|
||||
|
||||
// Check if any word in lowerName starts with lowerSearchText
|
||||
let anyWordStartsWithSearch = lowerName.split(/\s+/).some(word => nameMatch.test(word));
|
||||
|
||||
return (codeMatch.test(product.productInfo.code!) || anyWordStartsWithSearch) && hasCategoria;
|
||||
});
|
||||
}
|
||||
|
||||
arrProducts.value = arrprod
|
||||
refreshpage.value = false
|
||||
}
|
||||
|
||||
/*function getProducts() {
|
||||
let arrprod = productStore.getProducts(cosa.value)
|
||||
if (!search.value) {
|
||||
return arrprod
|
||||
}
|
||||
|
||||
let lowerSearchText = search.value.toLowerCase();
|
||||
let catstr = cat.value;
|
||||
|
||||
return arrprod.filter((product: IProduct) => {
|
||||
let lowerName = product.productInfo.name!.toLowerCase();
|
||||
const hasCategoria = !catstr || (catstr && product.productInfo.idCatProds?.includes(catstr));
|
||||
return (product.productInfo.code!.includes(search.value) || lowerName.includes(lowerSearchText)) && hasCategoria
|
||||
});
|
||||
}*/
|
||||
|
||||
async function mounted() {
|
||||
loadpage.value = false
|
||||
await productStore.loadProducts()
|
||||
cosa.value = tools.getCookie(tools.COOK_COSA_PRODOTTI, shared_consts.PROD.TUTTI, true)
|
||||
// Inizializza
|
||||
loadpage.value = true
|
||||
window.addEventListener('scroll', handleScroll);
|
||||
|
||||
calcArrProducts()
|
||||
}
|
||||
|
||||
// Remove the event listener on component destroy
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('scroll', handleScroll);
|
||||
});
|
||||
|
||||
function getCatProds() {
|
||||
let arrcat = productStore.getCatProds(cosa.value)
|
||||
let riscat: any = [{ label: 'Tutti', value: '', icon: undefined, color: undefined }]
|
||||
for (const rec of arrcat) {
|
||||
riscat.push({ label: rec.name, value: rec._id, icon: rec.icon, color: rec.color })
|
||||
}
|
||||
|
||||
return riscat
|
||||
}
|
||||
|
||||
onMounted(mounted)
|
||||
|
||||
return {
|
||||
userStore,
|
||||
costanti,
|
||||
tools,
|
||||
toolsext,
|
||||
search,
|
||||
cosa,
|
||||
shared_consts,
|
||||
getCatProds,
|
||||
cat,
|
||||
productStore,
|
||||
t,
|
||||
loadpage,
|
||||
refreshpage,
|
||||
componentToFixRef,
|
||||
isFixed,
|
||||
arrProducts,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
17
src/views/toolsAI/main/main.vue
Executable file
@@ -0,0 +1,17 @@
|
||||
<template>
|
||||
<q-page>
|
||||
<div class="text-center">
|
||||
<q-spinner v-if="!loadpage" color="primary" size="3em" :thickness="2" />
|
||||
</div>
|
||||
<div v-if="loadpage" class="panel">
|
||||
<CAITools></CAITools>
|
||||
</div>
|
||||
</q-page>
|
||||
</template>
|
||||
|
||||
<script lang="ts" src="./main.ts">
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import './main.scss';
|
||||
</style>
|
||||
5
termina_gruppomacro.app.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
site=gruppomacro.app
|
||||
|
||||
source __termine.sh
|
||||