83 Commits

Author SHA1 Message Date
Surya Paolo
dd26d0f839 Ver 1.0.24 2024-01-31 11:08:04 +01:00
Surya Paolo
74d1bf356f AITools prime cose 2024-01-30 14:00:48 +01:00
Surya Paolo
8a5a2bd79a agiornamento, sistemazioni varie PCB 2024-01-23 00:10:52 +01:00
Surya Paolo
fbebd925b1 regNameSurnameMandatory
askUSernameTelegramToTheReg
@ davanti all'username
2024-01-19 23:38:15 +01:00
Surya Paolo
1ea2ef1ea3 fix order non si vedeva.. e msg login errato 2024-01-17 21:50:05 +01:00
Surya Paolo
2c1fb42399 fix problema sul caricamento della home da offline... 2024-01-17 20:30:17 +01:00
Surya Paolo
c4e2b76d65 risolto qtaminima "|" era sbagliato, corretto: product.minBuyQty || 1 2024-01-17 11:13:19 +01:00
Surya Paolo
32e5e37b91 note sistemate 2024-01-16 23:46:02 +01:00
Surya Paolo
40076e3e1d Poter inserire un Ordine anche per un altra persona... (Modalità Cassa) 2024-01-16 23:00:15 +01:00
Surya Paolo
62267ef618 aggio gasordine 2024-01-16 16:56:57 +01:00
Surya Paolo
2005b8cb56 aggio 2024-01-16 09:05:10 +01:00
Surya Paolo
c8a4be65c1 possibilità di modificare un ordine, e anche i totali 2024-01-15 22:19:33 +01:00
Surya Paolo
8979cd807a product 2024-01-13 16:21:19 +01:00
Surya Paolo
3ffa2893e5 - edit campi prodotti
- edit ordini
2024-01-13 00:29:02 +01:00
Surya Paolo
89e8575aae subcatprod 2024-01-12 13:03:07 +01:00
Surya Paolo
ee064854a7 aggio modif 2024-01-10 20:44:54 +01:00
Surya Paolo
c80b1da42d aggio 2024-01-10 00:08:13 +01:00
Surya Paolo
c283645d0b Merge branch 'develop' of ssh://risosrv:5522/~/repository/newfreeplanet into develop 2024-01-10 00:03:22 +01:00
Surya Paolo
6dc74b5826 email da inviare ai clienti ... 2024-01-09 23:57:40 +01:00
Surya Paolo
6ab83e7ed5 aggiorna 2024-01-09 15:32:21 +01:00
Surya Paolo
1021331f7c pcb 2024-01-09 08:38:07 +01:00
Surya Paolo
96b3aec2f1 aggio numtransaction 2024-01-09 08:34:43 +01:00
Surya Paolo
8fa6757cc9 Corretto il pagato
- fix Group Add link
2024-01-07 17:27:27 +01:00
Surya Paolo
ecd3154dd8 menu RIS 2024-01-07 16:03:45 +01:00
Surya Paolo
be6ce49698 inserimento in Movimenti del Circuito 2024-01-04 15:43:18 +01:00
Surya Paolo
eed62bde78 - abilitato circuits e groups 2024-01-03 23:46:36 +01:00
Surya Paolo
3818767e29 addOrderToMovement 2024-01-03 23:19:24 +01:00
Surya Paolo
605f6afa0d addtocash using sendcoins Circuit 2024-01-03 15:46:48 +01:00
Surya Paolo
eee069c039 update 2024-01-02 15:39:46 +01:00
Surya Paolo
89d095d1c9 ++ Cassa - parte 1 2024-01-02 15:24:57 +01:00
Surya Paolo
a2cab9ca60 img 2024-01-02 08:29:18 +01:00
Surya Paolo
0cece2b1fc aggio search 2023-12-31 15:26:57 +01:00
Surya Paolo
29e18ca293 - migliorata grafica prodotti 2023-12-31 14:34:11 +01:00
Surya Paolo
f88ee3f485 - migliorie grafiche 2023-12-30 23:58:41 +01:00
Surya Paolo
9ef5595fe1 agg 2023-12-30 22:05:08 +01:00
Surya Paolo
a32ba4ec7a - Uscita PRIMA VERSIONE PiuCheBuono.app 2023-12-30 21:34:09 +01:00
Surya Paolo
632d05bbfb - preordinabili corretti + altro 2023-12-29 21:17:25 +01:00
Surya Paolo
c0998753c2 ok 2023-12-29 15:35:52 +01:00
Surya Paolo
6758c6e00f aggiornato prodotti e scontistica 2023-12-29 15:19:21 +01:00
Surya Paolo
2083655e99 - poster 2023-12-29 01:27:59 +01:00
Surya Paolo
42d37d8209 - aggiunta campi Gas data + fix 2023-12-28 23:48:09 +01:00
Surya Paolo
ed76b9c1dd - filtro se GAS o Prodotti 2023-12-28 21:00:10 +01:00
Surya Paolo
196b19ac66 - Email Ordine da template HTML
- Corretto altro
2023-12-28 15:53:16 +01:00
Surya Paolo
d90b46c206 - Aggiornamento template mail (tramite i campi in HTML)
- Aggiornato Carrello
2023-12-28 00:50:42 +01:00
Surya Paolo
6be8ccc906 - Categorie
- ProductInfo
2023-12-27 02:58:23 +01:00
Surya Paolo
c27c293fbf - Seleziona l'ordine GAS e compare sulla email
- img logo
2023-12-24 00:56:05 +01:00
Surya Paolo
3f4eb0877c - Creazione pagina Home logout
- Nuovo Gasordine
- Visualizzazione GAS / BOTTEGA
2023-12-21 15:21:30 +01:00
Surya Paolo
00e8bd8fa6 Merge branch 'develop' of ssh://risosrv:5522/~/repository/newfreeplanet into develop 2023-12-21 10:58:02 +01:00
Surya Paolo
30db516a31 modif 2023-12-21 10:57:53 +01:00
Surya Paolo
53208ab1ad ++GasOrdini 2023-12-21 02:23:58 +01:00
Surya Paolo
31014b21c0 Corretto incongruenze OrdersCart 2023-12-21 01:34:39 +01:00
Surya Paolo
9104a1eceb Aggiornamento modifiche preOrdini 2023-12-20 22:11:52 +01:00
Surya Paolo
56b433dae3 Aggiornamento modifiche preOrdini 2023-12-20 21:56:30 +01:00
Surya Paolo
6d4f3f9f0b Aggiungi il codice alla cassa in automatico 2023-12-18 15:21:12 +01:00
Surya Paolo
aaa1f619a5 corretto totali in attesa 2023-12-18 13:04:44 +01:00
Surya Paolo
c1d60a7260 Carrello con scontistica aggiornata 2023-12-18 12:11:22 +01:00
Surya Paolo
265c8f4d9e Risolto problema blocco 2023-12-18 08:02:35 +01:00
Surya Paolo
c2af144c05 aggiornamento... 2023-12-17 19:19:10 +01:00
Surya Paolo
a941592c21 Abilitazione del BOT 2023-12-17 16:20:50 +01:00
Surya Paolo
fa544bc30c aggiornamento scontistica, corretto errori 2023-12-16 18:40:24 +01:00
Surya Paolo
38f4c73ab3 Scontistica- Parte 1 2023-12-16 00:51:10 +01:00
Surya Paolo
176ca7fe20 lista ordini aggiornata 2023-12-15 23:36:48 +01:00
Surya Paolo
8399df8663 Corretto Ordini e visualizzazione dei Totali 2023-12-15 21:50:28 +01:00
Surya Paolo
6a1a1fb249 import dati prodotti + fornitore + produttore 2023-12-15 00:57:24 +01:00
Surya Paolo
b4af36d01c aggiornato 2023-12-14 15:36:04 +01:00
Surya Paolo
4ec5b12d64 aggiornamento ordini 2023-12-14 15:20:27 +01:00
Surya Paolo
ba7fffdc23 aggiornato stockQta quando l'ordine viene evaso 2023-12-14 00:55:14 +01:00
Surya Paolo
9ea7bae025 Gestione Ordini: evaso... 2023-12-13 19:18:00 +01:00
Surya Paolo
98b4c76394 aggio query 2023-12-12 15:42:49 +01:00
Surya Paolo
87ac147eec pcb 2023-12-12 00:58:30 +01:00
Surya Paolo
a8cb271ce0 Merge branch 'develop' of ssh://risosrv:5522/~/repository/newfreeplanet into develop 2023-12-12 00:57:10 +01:00
Surya Paolo
49578b6773 corretto abiltiazione fiducia concessa 2023-12-12 00:56:48 +01:00
Surya Paolo
4ac6cacf19 aa1 2023-12-11 16:51:51 +01:00
Surya Paolo
1ce6d765ee aggiornamento product 2023-12-10 15:15:27 +01:00
Surya Paolo
59c03f28f2 aggiornamento visualizzazione Ordini e Carrello 2023-12-09 19:38:30 +01:00
Surya Paolo
2b6411eb77 - Installazione primo Sito Web del server
- Creazione prima pagina Home
2023-12-09 00:19:48 +01:00
Surya Paolo
7e17869d3e Creazione Sito Web da pagina 2023-12-08 14:07:39 +01:00
Surya Paolo
bb9ca970f8 modif 2023-12-07 11:27:37 +01:00
Surya Paolo
83cc8132d4 Aggiornata Chiave Segreta per accesso SIGNCODE.
- Inserito autenticazione MongoDB ai database.
-PCB: Aggiunto altri campi a products
2023-12-07 08:34:39 +01:00
Surya Paolo
a0fbddde39 - Entri in Circuito Italia solo se hai il fido nel circuito provinciale
- Aggiunta Zona, oltre alla provincia, per visualizzare i vari circuiti della prov
2023-12-06 00:42:02 +01:00
Surya Paolo
7f716b82b6 Versione 1.0.21 - RIS ITALIA 2023-12-02 15:23:58 +01:00
Surya Paolo
642f33ac55 Versione 1.0.21 - RIS ITALIA 2023-12-02 15:23:43 +01:00
Surya Paolo
15b0095dca piccole modif 2023-12-01 16:14:28 +01:00
340 changed files with 12453 additions and 1996 deletions

View File

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

View File

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

27
.env.prod.pcb Normal file
View File

@@ -0,0 +1,27 @@
APP_VERSION="1.0.24"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17"
DIRECTORY_LOCAL=newfreeplanet
DIRECTORY_SERVER=freeplanet_serverside
SERVERDIR_WEBSITE="/var/customers/webs/paolouser/piuchebuono.app/"
SERVERPW_WEBSITE=pwdadmin@1AOK
APP_URL="https://piuchebuono.app"
URL_FACEBOOK=""
PROVA_PAOLO=""
LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://piuchebuono.app:3000"
LOGO_REG='piuchebuono-logo-full.png'
TEST_NAME=""
TEST_SURNAME=""
TEST_EMAIL=""
TEST_USERNAME=""
TEST_PASSWORD=""
TEST_APORTADOR="------"
PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
DEBUG="1"
TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
ISTEST=0

27
.env.test.pcb Executable file
View File

@@ -0,0 +1,27 @@
APP_VERSION="1.0.24"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="17"
DIRECTORY_LOCAL=newfreeplanet
DIRECTORY_SERVER=test.freeplanet_serverside
SERVERDIR_WEBSITE="/var/customers/webs/paolouser/test.piuchebuono.app/"
APP_URL="https://test.piuchebuono.app"
URL_FACEBOOK=""
PROVA_PAOLO=""
LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://piuchebuono.app:3001"
LOGO_REG='piuchebuono-logo-full.png'
TEST_NAME=""
TEST_SURNAME=""
TEST_EMAIL=""
TEST_USERNAME=""
TEST_PASSWORD=""
TEST_APORTADOR=""
PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
IN_CONSTRUCTION="0"
DEBUG="1"
TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
ISTEST=1

View File

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

27
.env.test_riso.pcb Executable file
View File

@@ -0,0 +1,27 @@
APP_VERSION="1.0.24"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="13"
DIRECTORY_LOCAL=newfreeplanet
DIRECTORY_SERVER=test.freeplanet_serverside
SERVERDIR_WEBSITE="/var/customers/webs/paolouser/test.piuchebuono.app/"
APP_URL="https://testriso.piuchebuono.app"
URL_FACEBOOK=""
PROVA_PAOLO=""
LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://testriso.piuchebuono.app:3001"
LOGO_REG='riso-logo-full.png'
TEST_NAME=""
TEST_SURNAME=""
TEST_EMAIL=""
TEST_USERNAME=""
TEST_PASSWORD=""
TEST_APORTADOR=""
PUBLICKEY_PUSH="BJgo8XR_upbnbMLWgCAUELo6DK7dRXffYAnFOxbaMMz5favBgcQBKT-eISqouO-jRad4Sw8l5nd2wCF6KorGiTc"
IN_CONSTRUCTION="0"
DEBUG="1"
TELEGRAM_SUPPORT=""
PROJECT_ID_MAIN="5cc0a13fe5c9d156728f400a"
TEST_CELL=""
ISTEST=1

18
.vscode/launch.json vendored
View File

@@ -19,23 +19,5 @@
"request": "launch",
"type": "node-terminal"
},
{
"command": "npm run spanorefresh",
"name": "SPA no Refresh",
"request": "launch",
"type": "node-terminal"
},
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": [
"<node_internals>/**"
],
"program": "${workspaceFolder}/src/App.ts",
"outFiles": [
"${workspaceFolder}/**/*.js"
]
}
]
}

17
.vscode/settings.json vendored
View File

@@ -1,7 +1,18 @@
{
"vetur.validation.template": false,
"vetur.format.enable": false,
"eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"],
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"vue"
],
"typescript.tsdk": "node_modules/typescript/lib",
"vetur.experimental.templateInterpolationService": true
}
"vetur.experimental.templateInterpolationService": true,
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/public": true,
"**/images": true,
"**/node_modules/**": true
},
}

View 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"

View 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

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,11 @@
import { IEvents } from '../model';
export const db_data = {
URL_FACEBOOK: '',
userdata: {
calendar_editable: false,
},
}

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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;

View 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,
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View 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"
}
}

View 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
},
},
}))

View File

@@ -8,6 +8,8 @@ const msg_website_enUs = {
products: {
quantity: 'Quantità',
quantityAvailable: 'Disponibili',
stockQty: 'In Magazzino',
stockBloccatiQty: 'Bloccati In Magazzino',
weight: 'Peso',
stars: 'Voto',
color: 'Colore',
@@ -36,6 +38,7 @@ const msg_website_enUs = {
productslist: 'Lista Prodotti',
collabora: 'Collabora',
storehouses: 'Magazzino',
providers: 'Fornitori',
departments: 'Uffici',
orders: 'Ordini Ricevuti',
orders2: 'Ordini Ricevuti',

View File

@@ -8,6 +8,7 @@ const msg_website_es = {
products: {
quantity: 'Quantità',
quantityAvailable: 'Disponibili',
stockQty: 'In Magazzino',
weight: 'Peso',
stars: 'Voto',
color: 'Colore',

View File

@@ -16,6 +16,7 @@ const msg_website_it = {
pages: {
home: 'Home',
profile: 'Profilo',
install_site: 'Installa Sito',
profile2: 'ProfiloU',
mypage2: 'mypage2',
myservice2: 'myservice2',
@@ -30,10 +31,18 @@ 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',
@@ -122,6 +131,7 @@ const msg_website_it = {
only_residenti: 'Solo Residenti',
only_consiglio: 'Solo Consiglieri',
color: 'Colore',
gasordini: 'Gas Ordini',
},
msg: {
myAppName: 'Più che Buono',

View File

@@ -45,7 +45,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: true,
},*/
{
active: true,
active: site.confpages && site.confpages.showProfile,
order: 120,
path: '/myprofile',
materialIcon: 'fas fa-user',
@@ -58,6 +58,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
{
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',
@@ -67,7 +78,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: false,
},
{
active: true,
active: site.confpages && site.confpages.showiscrittiMenu,
order: 130,
path: '/friends',
materialIcon: 'fas fa-user-friends',
@@ -77,6 +88,19 @@ function getDynamicPages(site: ISites): IListRoutes[] {
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,
@@ -87,6 +111,8 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true },
inmenu: true,
infooter: false,
onlyAdmin: true,
onlyManager: true,
},
{
active: true,
@@ -98,6 +124,17 @@ function getDynamicPages(site: ISites): IListRoutes[] {
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,

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@@ -317,54 +317,54 @@ module.exports = configure((ctx) => ({
start_url: "/?homescreen=1",
icons: [
{
src: 'images/fv-android-icon-512x512.png',
src: 'images/pcb-android-icon-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'images/fv-android-icon-384x384.png',
src: 'images/pcb-android-icon-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: 'images/fv-android-icon-192x192.png',
src: 'images/pcb-android-icon-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: 'images/fv-android-icon-144x144.png',
src: 'images/pcb-android-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/fv-android-icon-96x96.png',
src: 'images/pcb-android-icon-96x96.png',
sizes: '96x96',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-120x120.png',
src: 'images/pcb-apple-icon-120x120.png',
sizes: '120x120',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-144x144.png',
src: 'images/pcb-apple-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-152x152.png',
src: 'images/pcb-apple-icon-152x152.png',
sizes: '152x152',
type: 'image/png',
},
{
src: 'images/fv-apple-icon-180x180.png',
src: 'images/pcb-apple-icon-180x180.png',
sizes: '180x180',
type: 'image/png',
},
],
related_applications: [{
"platform": "webapp",
"url": "https://www.riso.app/manifest.json"
"url": "https://www.piuchebuono.app/manifest.json"
}]
},
},

View File

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

View File

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

View File

@@ -57,6 +57,16 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true,
infooter: true,
},
{
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,
@@ -177,7 +187,8 @@ function getDynamicPages(site: ISites): IListRoutes[] {
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
}, {
},
{
active: true,
order: 137,
path: '/circuit/:path',

View File

@@ -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

View File

@@ -25,4 +25,10 @@ else
cp -R _ALL_SITES/$site/images/* ./public/images/
cp -R _ALL_SITES/$site/favicon.ico ./public/
if [ "$site" = "piuchebuono.app" ]; then
cp ../freeplanet_serverside/.env.dev.pcb ../freeplanet_serverside/.env.development
else
cp ../freeplanet_serverside/.env.dev.riso ../freeplanet_serverside/.env.development
fi
fi

26
deploy_on_prod_pcb.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/bash
source ./.env.prod.pcb
cp .env.prod.pcb .env.production
msg="*** IN PRODUZIONE !!!!! SEI SICURO DI INVIARE GLI AGGIORNAMENTI SUL SERVER DI PRODUZIONE ?? $SERVERDIR_WEBSITE (Y/N) ? "
if [ "$1" = "" ]; then
read -p "$msg" risposta
else
echo $msg
risposta=$1
fi
if [[ $risposta == "Y" || $risposta == "y" ]]; then
npm run buildpwa
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
echo "Finito $SERVERDIR_WEBSITE "
fi

27
deploy_on_test_pcb.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
source ./.env.test.pcb
msg="*** Sincronizzazione ??? $DIRECTORY_LOCAL e $SERVERDIR_WEBSITE (Y/N) ? "
if [ "$1" = "" ]; then
read -p "$msg" risposta
else
risposta=$1
fi
cp .env.production .env.prod.bak
cp .env.test.pcb .env.production
sleep 1
npm run buildpwa
echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..."
rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
cp .env.prod.bak .env.production
sleep 1
echo "Finito $SERVERDIR_WEBSITE"

27
deploy_riso_on_pcb_server.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
source ./.env.test.pcb
msg="*** Sincronizzazione ??? $DIRECTORY_LOCAL e $SERVERDIR_WEBSITE (Y/N) ? "
if [ "$1" = "" ]; then
read -p "$msg" risposta
else
risposta=$1
fi
cp .env.production .env.prod.bak
cp .env.test.pcb .env.production
sleep 1
npm run buildpwa
echo "Sincronizzazione $SERVERDIR_WEBSITE in remoto..."
rsync -e 'ssh -p 8822' -a dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
cp .env.prod.bak .env.production
sleep 1
echo "Finito $SERVERDIR_WEBSITE"

30
inizia_gruppomacro.app.sh Executable file
View 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

View File

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

143
p_old_package copy.json Executable file
View File

@@ -0,0 +1,143 @@
{
"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": [],
"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"
}
}

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

11
send_pwa_to_pcb.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
source .env.test.pcb
cp .env.test.pcb .env.production
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
rsync -e 'ssh -p 8822' -a --exclude 'upload' dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
echo "Finito $SERVERDIR_WEBSITE"
cp .env.prod.bak .env.production

11
send_pwa_to_test_pcb.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
source .env.test.pcb
cp .env.test.pcb .env.production
echo "Sincronizzazione in remoto $SERVERDIR_WEBSITE ..."
rsync -e 'ssh -p 8822' -a --exclude 'upload' dist/pwa/ pcbuser@pcb:$SERVERDIR_WEBSITE
echo "Finito $SERVERDIR_WEBSITE"
cp .env.prod.bak .env.production

View File

@@ -17,39 +17,72 @@ export const shared_consts = {
},
LIMIT_NOTIF_FOR_USER: 200,
PROD: {
TUTTI: 0,
GAS: 1,
BOTTEGA: 2,
},
UNITS_OF_MEASURE: {
NESSUNO: 0,
GRAMMI: 1,
CHILI: 2,
LITRI: 3,
PEZZI: 4,
MILLILITRI: 4,
PEZZI: 10,
},
TYPECASH: {
NESSUNO: 0,
IN: 1,
OUT: 2,
},
TypeCashStr: [
{
label: '[Nessuno]',
value: 0,
},
{
label: 'Ingresso',
value: 1,
},
{
label: 'Uscita',
value: 2,
},
],
Units_Of_Measure_ListBox: [
{
label: '[Nessuno]',
value: 0,
short: '',
value: 0,
},
{
label: 'Grammi (g)',
value: 1,
short: 'g',
value: 1,
},
{
label: 'Chili (kg)',
short: 'Kg',
value: 2,
short: 'kg',
},
{
label: 'Litri (l)',
label: 'Litri (Lt)',
short: 'Lt',
value: 3,
short: 'lt',
},
{
label: 'MilliLitri (ml)',
short: 'ml',
value: 4,
},
{
label: 'Pezzi (p)',
value: 4,
short: 'pz',
short: 'p',
value: 10,
},
],
@@ -113,6 +146,8 @@ export const shared_consts = {
PROFILETUTORIAL: 280,
VISUVIDEOPROMOANDPDF: 290,
ECOMMERCE: 300,
CATALOGO: 310,
TOOLSAI: 320,
},
QUERYTYPE_MYGROUP: 1,
@@ -212,6 +247,7 @@ export const shared_consts = {
TAB_COUNTRY: 'countries',
TAB_CITIES: 'cities',
TAB_PROVINCES: 'provinces',
TAB_CARDS: 'cards',
TAB_PHONES: 'phones',
TAB_SITES: 'sites',
TAB_SETTINGS: 'settings',
@@ -307,6 +343,8 @@ export const shared_consts = {
CAT_SKILL_TXT: 4,
CAT_NO_SPAZI: 5,
CAT_GOODS_TXT: 10,
PRODUCTS: 20,
INVENTARIO: 30,
},
BotType: [
@@ -1026,18 +1064,27 @@ export const shared_consts = {
CHECKOUT_SENT: 2,
ORDER_CONFIRMED: 3,
PAYED: 4,
DELIVEDED: 5,
RECEIVED: 6,
DELIVERED: 5, // Consegnato
SHIPPED: 6, //Spedito
RECEIVED: 7,
COMPLETED: 6,
CANCELED: 10,
PREPARED: 15,
DELETE_REALLY: 20,
},
OrderStatusView: [
2,
3,
4,
6,
10,
],
OrderStat: {
// IN_CART: { label: 'In Carrello', value: 1 }, //IN_CART
IN_CORSO: { label: 'In Corso', value: 2, icon: 'fas fa-tasks', color: 'text-black' }, //CHECKOUT_SENT
PREPARED: { label: 'Preparati', value: 15, icon: 'fas fa-archive', color: 'text-orange' },
CONFERMATI: { label: 'Confermati', value: 3, icon: 'fas fa-calendar', color: 'text-blue' }, //ORDER_CONFIRMED
PAGATI: { label: 'Pagati', value: 4, icon: 'money', color: 'text-green' }, //PAYED
DELIVERED: { label: 'Consegnato', value: 5, icon: 'fas fa-calendar', color: 'text-blue' }, //DELIVERED
SHIPPED: { label: 'Spediti', value: 6, icon: 'fas fa-shipping-fast', color: 'text-green' }, //SHIPPED
RECEIVED: { label: 'Ricevuti', value: 7, icon: '', color: 'text-blue' }, //RECEIVED
COMPLETATI: { label: 'Completati', value: 8, icon: 'fas fa-check', color: 'text-blue' }, //COMPLETED
CANCELLATI: { label: 'Cancellati', value: 10, icon: 'delete', color: 'text-red' }, //CANCELED
},
REACTIONS_FIELD:
{
@@ -1060,6 +1107,10 @@ export const shared_consts = {
label: 'Ordine in Lavorazione',
value: 2,
},
{
label: 'Preparato',
value: 15,
},
{
label: 'Ordine Confermato',
value: 3,
@@ -1069,17 +1120,77 @@ export const shared_consts = {
value: 4,
},
{
label: 'Spedito',
label: 'Consegnato',
value: 5,
},
{
label: 'Ricevuto',
label: 'Spedito',
value: 6,
},
{
label: 'Ricevuto',
value: 7,
},
{
label: 'Cancellato',
value: 10,
},
{
label: 'Elimina Definitivamente !!',
value: 20,
},
],
OrderCmdStr: [
{
label: 'Imposta Ordine in Lavorazione', //CHECKOUT_SENT
value: 2,
icon: 'fas fa-list-ol',
color: 'secondary',
},
{
label: '📩 Conferma Ordine Evaso (e aggiorna Qta in Stock)', //ORDER_CONFIRMED
value: 3,
icon: 'fas fa-calendar-check',
color: 'primary',
},
{
label: '📩 Imposta come Consegnato', //DELIVERED
value: 5,
icon: 'fas fa-shipping-fast',
color: 'blue',
},
{
label: 'Imposta come Preparato', //PREPARED
value: 15,
icon: 'fas fa-archive',
color: 'blue',
},
{
label: 'Imposta come Pagato', //PAYED
value: 4,
icon: 'money',
color: 'positive',
},
{
label: 'Imposta come Spedito', //DELIVERED
value: 5,
icon: 'fas fa-shipping-fast',
color: 'blue',
},
{
label: '📩 Imposta come Cancellato', //CANCELED
value: 10,
icon: 'delete',
color: 'red',
},
{
label: 'Cancella Definitivamente', //DELETE_REALLY
value: 20,
icon: 'delete',
color: 'red',
},
],
ConfSite: {
@@ -1089,6 +1200,8 @@ export const shared_consts = {
AskInvitantesulBot: 8,
AskUsernameSulBot: 16,
registerUserWithBot: 32,
regNameSurnameMandatory: 64,
askUSernameTelegramToTheReg: 128,
},
MsgTeleg: {
@@ -1567,6 +1680,10 @@ export const shared_consts = {
value: 300,
label: 'E-COMMERCE',
},
{
value: 310,
label: 'CATALOGO',
},
],
@@ -1889,7 +2006,7 @@ export const shared_consts = {
if (proj_add)
proj = Object.assign({}, proj, proj_add);
proj = {...proj, ...this.REACTIONS_FIELD};
proj = { ...proj, ...this.REACTIONS_FIELD };
if (table) {
let proj_add3 = this.getProjectByTable(table);

View 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;
}

View 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,
}
}
})

View 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>

View File

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

View File

@@ -0,0 +1,8 @@
$heightBtn: 100%;
.card .product-image {
height: 300px;
}
.insert{
cursor:pointer;
}

268
src/components/CCart/CCart.ts Executable file
View File

@@ -0,0 +1,268 @@
import { defineComponent, onMounted, ref, computed } 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 { ICart, IOrder, IOrderCart, IProduct, IShareWithUs } from '@src/model/Products'
import { shared_consts } from '@src/common/shared_vuejs'
import { CSingleCart } from '../CSingleCart'
import { CTitleBanner } from '@components'
import { CSelectUserActive } from '@src/components/CSelectUserActive'
export default defineComponent({
name: 'CCart',
props: {
iscash: {
type: Boolean,
required: false,
default: false,
},
idOrdersCart: {
type: String,
required: false,
default: null,
},
},
components: { CSingleCart, CTitleBanner, CSelectUserActive },
setup(props) {
const userStore = useUserStore()
const globalStore = useGlobalStore()
const productStore = useProducts()
const $router = useRouter()
const $q = useQuasar()
const { t } = useI18n();
const mycart = ref(<ICart>{})
const myrec = ref(<any[string]>[])
const oldrec = ref(<any[string]>[])
const note = ref('')
const endload = ref(false)
const recOrderCart = ref(<IOrderCart>{})
const search = ref('')
const statusnow = computed(() => (): number => {
if (recOrderCart.value) {
return recOrderCart.value.status
}
return 0
})
function mounted() {
// Inizializza
load()
}
function getOrdersCart() {
if (props.iscash) {
return productStore.getOrdersCartById(props.idOrdersCart)
} else {
return productStore.getCart()
}
}
function getItemsCart() {
const cart = getOrdersCart()
return cart.items || null
}
function getNumItems(): number {
const cart = getOrdersCart()
if (!!cart.items)
return cart.items.length || 0
else
return 0
}
function getCart(): ICart {
return getOrdersCart()
}
function getNote() {
const cart = getOrdersCart()
return cart.note
}
function change_field(fieldname: string) {
if (myrec.value[fieldname] !== oldrec.value[fieldname]) {
myrec.value[fieldname] = oldrec.value[fieldname]
const mydata = {
[fieldname]: myrec.value[fieldname]
}
const aggiorna = fieldname !== 'status'
tools.saveFieldToServer($q, 'carts', mycart.value._id, mydata, aggiorna)
oldrec.value[fieldname] = myrec.value[fieldname]
}
}
function myTotalPrice(): string {
if (productStore.cart && productStore.cart.totalPrice) {
return productStore.cart.totalPrice.toFixed(2)
} else {
return '0'
}
}
function myTotalQty(): number {
if (productStore.cart) {
return productStore.cart.totalQty!
} else {
return 0
}
}
async function load() {
mycart.value = getCart()
myrec.value = Object.keys(mycart)
oldrec.value = myrec.value
note.value = mycart.value.note!
let options = {};
if (mycart.value) {
recOrderCart.value = await productStore.CreateOrdersCart({ cart_id: mycart.value._id, status: 0, note: note.value })
}
console.log('myrec', myrec.value)
endload.value = true
}
function CanBeShipped() {
return productStore.cart.items ? productStore.cart.items.filter((rec: any) => rec.order.product.canBeShipped).length : false
}
function CanBeBuyOnline() {
return productStore.cart.items ? productStore.cart.items.filter((rec: any) => rec.order.product.canBeBuyOnline).length : false
}
function getnumsteps() {
let numsteps = 1
if (CanBeShipped())
numsteps++
if (CanBeBuyOnline())
numsteps++
return numsteps
}
function docheckout() {
// Può essere spedito?
if (CanBeShipped()) {
// mostra form di spedizione
}
if (CanBeBuyOnline()) {
// mostra form di acquisto Online
}
}
function completeOrder() {
$q.dialog({
message: t('ecomm.conferma_acq', { qty: myTotalQty() }),
ok: {
label: t('dialog.yes'),
push: true
},
cancel: {
label: t('dialog.cancel')
},
title: t('ecomm.order')
}).onOk(async () => {
const status = shared_consts.OrderStatus.CHECKOUT_SENT
recOrderCart.value = await productStore.CreateOrdersCart({ cart_id: mycart.value._id, status, note: note.value })
// statusnow.value = myordercart ? myordercart.status : 0
if (recOrderCart.value.status === status) {
tools.showPositiveNotif($q, t('ecomm.ord_confirmed'))
setTimeout(() => {
$router.push('/orderinfo')
}, 2000)
} else {
tools.showNegativeNotif($q, t('ecomm.ord_not_confirmed'))
}
// change_field('status')
// change_field('status')
})
}
function getActualIdStorehouse(myprod: IProduct) {
// Ottieni il negozio attualmente selezionato:
// Se ce n'è solo 1 allora prendi quello !
if (myprod.storehouses.length === 1) {
return myprod.storehouses[0]._id
} else {
// Ottieni il negozio attualmente scelto !
return ''
}
}
function getActualGasordine(myprod: IProduct) {
// Ottieni il negozio attualmente selezionato:
// Se ce n'è solo 1 allora prendi quello !
if (myprod.gasordine) {
return myprod.gasordine._id
} else {
// Ottieni il gasordine attualmente scelto !
return ''
}
}
async function insertArticolo() {
let lowerSearchText = search.value.trim();
const myprod = productStore.getProductByCode(lowerSearchText);
if (myprod && myprod.active) {
let myorder: IOrder = {
quantity: 1, quantitypreordered: 0,
TotalPriceProduct: 0, TotalPriceProductCalc: 0, price: 0,
idStorehouse: getActualIdStorehouse(myprod),
idGasordine: getActualGasordine(myprod),
}
await productStore.addtoCartBase({ $q, t, id: myprod._id, order: myorder, addqty: true })
search.value = ''
load()
}
}
onMounted(mounted)
return {
userStore,
costanti,
tools,
toolsext,
completeOrder,
getNumItems,
myTotalPrice,
getItemsCart,
getNote,
change_field,
note,
statusnow,
shared_consts,
myTotalQty,
recOrderCart,
mycart,
endload,
search,
insertArticolo,
}
}
})

53
src/components/CCart/CCart.vue Executable file
View File

@@ -0,0 +1,53 @@
<template>
<q-spinner v-if="!endload" color="primary" size="3em" :thickness="2" />
<div v-if="endload">
<CSelectUserActive></CSelectUserActive>
<div v-if="recOrderCart" class="panel">
<div>
<div class="container">
<div class="q-pa-sm col items-start q-gutter-xs" v-for="(itemorder, index) in getItemsCart()" :key="index">
<CSingleCart :order="itemorder.order" :idOrdersCart="recOrderCart._id" :showall="true" />
</div>
</div>
<q-separator></q-separator>
<div class="col-6 q-mr-sm" style="text-align: right">
<span class="text-grey q-mr-xs">{{ $t('ecomm.totale') }}:</span>
<span class="text-subtitle1 q-mr-sm"> {{ myTotalPrice() }}</span>
</div>
<q-input v-if="getNumItems() > 0" v-model="note" style="max-width: 400px" :label="$t('ecomm.note')" filled dense
debounce="1000" autogrow @input="change_field('note')">
</q-input>
<br />
</div>
<div class="text-center">
<q-btn v-if="recOrderCart &&
recOrderCart.status < shared_consts.OrderStatus.CHECKOUT_SENT
" rounded icon="fas fa-shopping-cart" color="green" :label="$t('ecomm.completa_ord')" class="q-mb-sm"
:disabled="myTotalQty() < 1" @click="completeOrder()"></q-btn>
</div>
</div>
<div v-else style="text-align: center" class="text-grey">
{{ $t('ecomm.carrello_vuoto') }}
</div>
<br>
<div class="q-gutter-y-md column text-center q-mx-auto" style="width: 350px; max-width: 100%">
<q-input filled stack-label dense :label="$t('ecomm.code_add_to_cart')" v-model="search" class="q-ml-md"
@keyup.enter="insertArticolo()">
<template v-slot:append>
<q-icon class="insert" name="fas fa-shopping-cart" color="green" @click="insertArticolo()" />
</template>
</q-input>
</div>
</div>
</template>
<script lang="ts" src="./CCart.ts">
</script>
<style lang="scss" scoped>
@import './CCart';
</style>

1
src/components/CCart/index.ts Executable file
View File

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

View File

View File

@@ -0,0 +1,8 @@
import { defineComponent } from 'vue'
import { Catalogo } from '@src/views/ecommerce'
export default defineComponent({
name: 'CCatalogo',
components: { Catalogo },
})

View 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>

View File

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

View File

@@ -3,7 +3,7 @@ import { useQuasar } from 'quasar'
import { useI18n } from '@src/boot/i18n'
import { useUserStore } from '@store/UserStore'
import { useGlobalStore } from '@store/globalStore'
import { defineComponent, PropType, ref } from 'vue'
import { defineComponent, computed, PropType, ref } from 'vue'
import { IUserFields } from 'model'
import { shared_consts } from '@/common/shared_vuejs'
import { CLabel } from '@/components/CLabel'
@@ -35,6 +35,8 @@ export default defineComponent({
const showsendCoinTo = ref(false)
const showingtooltip = ref(false)
const site = computed(() => globalStore.site)
function myusername() {
return userStore.my.username
}
@@ -84,6 +86,7 @@ export default defineComponent({
myusername,
showingtooltip,
clickOpenSendCoin,
site,
}
},
})

View File

@@ -22,6 +22,7 @@
>
<q-btn
v-if="site.confpages && site.confpages.showCompetenze"
icon="fas fa-house-user"
size="md"
color="orange"

View File

@@ -30,6 +30,11 @@ export default defineComponent({
required: false,
default: '',
},
before_str: {
type: String,
required: false,
default: '',
},
strfido: {
type: String,
required: false,

View File

@@ -81,6 +81,9 @@
<q-icon v-else name="fas fa-coins" :size="small ? `xs` : `sm`" />
</template>
<template v-slot:control>
<div class="text-h8 text-blue">
{{ before_str }}
</div>
<div :class="`align_elem_right ` + (small ? `text-h7` : ``)">
{{ valueextra }}{{ tools.roundDec2(modelValue) }}
<q-tooltip :offset="[10, 10]" v-model="showingtooltip">{{

View File

@@ -172,6 +172,12 @@ export default defineComponent({
}
}
function azzera() {
saveit.value = true
showDateTimeScroller.value = false
emit('savetoclose', null, valueprec.value)
}
created()
return {
@@ -190,6 +196,7 @@ export default defineComponent({
mydate,
mytime,
tools,
azzera,
}
},
})

View File

@@ -5,7 +5,7 @@
v-show="false"
color="blue-6"
hide-bottom-space
outlined
standout
borderless
:label="label"
:bg-color="bgcolor"
@@ -22,13 +22,14 @@
:label="label"
stack-label
:value="myvalue"
outlined
standout
:dense="dense"
color="blue-6"
label-color="blue-6"
:bg-color="bgcolor"
debounce="500"
:input-class="getclass()"
>
<template v-slot:control>
<div style="">
<div
@@ -79,6 +80,10 @@
}
"
/>
</div>
<q-card-actions align="center">
<q-btn icon="fas fa-trash"
@click="azzera"></q-btn>
<div class="row justify-center">
<q-btn
:label="$t('dialog.cancel')"
@@ -90,7 +95,7 @@
v-close-popup
></q-btn>
</div>
</div>
</q-card-actions>
</q-card>
</q-popup-proxy>
<q-popup-proxy

View File

@@ -1984,7 +1984,11 @@ export default defineComponent({
if (col.field_toduplicate_nospace) {
//
let trovato = tools.removespecial_chars(myobj[col.name])
myobj[col.field_toduplicate_nospace] = trovato
if (myobj[col.field_toduplicate_nospace] === '') {
myobj[col.field_toduplicate_nospace] = trovato
}
let attuale = tools.removespecial_chars(myobj[col.field_toduplicate_nospace])
myobj[col.field_toduplicate_nospace] = attuale
// console.log('trovato', trovato, 'name', myobj[col.name], 'duplicate:', myobj[col.field_toduplicate_nospace], 'orig', myobj[col.name])
}
})

View File

@@ -1952,7 +1952,11 @@ export default defineComponent({
if (col.field_toduplicate_nospace) {
//
let trovato = tools.removespecial_chars(myobj[col.name])
myobj[col.field_toduplicate_nospace] = trovato
if (myobj[col.field_toduplicate_nospace] === '') {
myobj[col.field_toduplicate_nospace] = trovato
}
let attuale = tools.removespecial_chars(myobj[col.field_toduplicate_nospace])
myobj[col.field_toduplicate_nospace] = attuale
// console.log('trovato', trovato, 'name', myobj[col.name], 'duplicate:', myobj[col.field_toduplicate_nospace], 'orig', myobj[col.name])
}
})

View File

@@ -18,9 +18,9 @@ export default defineComponent({
default: '',
},
myheight: {
type: String,
type: Number,
required: false,
default: '',
default: 0,
},
myheightmobile: {
type: Number,

View File

@@ -3,6 +3,7 @@
<q-parallax
:speed="speed ? speed : 1"
:height="myheight"
>
<template v-slot:media>
<img
@@ -24,9 +25,9 @@
:class="tools.getClassAnim(anim)"
:style="
logowidth
? `width: ` + logowidth + `px; + `
: undefined + logoheight
? ` height: ` + logoheight + `px`
? `width: ` + logowidth + `px !important; + `
: undefined
? ` height: ` + logoheight + `px !important`
: undefined
"
/>

View File

@@ -8,8 +8,11 @@ import { CCopyBtn } from '@/components/CCopyBtn'
import { CSingleCart } from '@/components/CSingleCart'
import { CTitleBanner } from '@/components/CTitleBanner'
import { useI18n } from '@src/boot/i18n'
import MixinUsers from '../../mixins/mixin-users'
export default defineComponent({
name: 'CMyCart',
props: {},
@@ -18,6 +21,7 @@ export default defineComponent({
setup() {
const globalStore = useGlobalStore()
const products = useProducts()
const { t } = useI18n()
const { getnumItemsCart } = MixinUsers()
@@ -39,8 +43,8 @@ export default defineComponent({
})
const numOrders = computed(() => {
if (!!products.cart) {
return products.cart.items!.length
if (!!products.cart && products.cart.items) {
return products.cart.items.length
} else {
return 0
}
@@ -55,6 +59,10 @@ export default defineComponent({
products.loadOrders()
}
function existsOrders() {
return products.getNumOrders() > 0
}
onMounted(mounted)
return {
@@ -64,6 +72,9 @@ export default defineComponent({
numOrders,
closecart,
getnumItemsCart,
existsOrders,
globalStore,
t,
}
},
})

View File

@@ -4,34 +4,58 @@
<div class="myheader row justify-between">
<div class="col-6">
<q-btn class="q-mx-xs" round dense flat icon="fas fa-shopping-cart">
<q-badge v-if="getnumItemsCart() > 0" color="red" floating transparent>
<q-badge
v-if="getnumItemsCart() > 0"
color="red"
floating
transparent
>
{{ getnumItemsCart() }}
</q-badge>
</q-btn>
</div>
<div class="col-6" style="text-align: right">
<span v-if="myTotalPrice" class="text-grey q-mr-xs">Totale:</span> <span
class="text-subtitle1 q-mr-sm "> {{ myTotalPrice ? myTotalPrice.toFixed(2) : 0 }}</span>
<span v-if="myTotalPrice" class="text-grey q-mr-xs">Totale:</span>
<span class="text-subtitle1 q-mr-sm"
> {{ myTotalPrice ? myTotalPrice.toFixed(2) : 0 }}</span
>
</div>
</div>
<q-separator></q-separator>
<div id="mybody">
<div v-for="(rec, index) in ordersCart" :key="index" class="col">
<CSingleCart
:order="rec.order"
:showall="false">
</CSingleCart>
<CSingleCart :order="rec.order" :showall="false" :idOrdersCart="ordersCart ? ordersCart._id: ''"> </CSingleCart>
</div>
</div>
<div v-if="numOrders === 0" style="text-align: center" class="text-grey">
Il Carrello è Vuoto
{{ $t('ecomm.carrello_vuoto') }}
</div>
<div v-else style="text-align: center">
<div class="text-center">
<q-btn
rounded
icon="fas fa-shopping-cart"
color="primary"
:label="t('ecomm.btn_cassa')"
@click="globalStore.rightCartOpen = false"
class="q-mb-sm"
to="/checkout"
>
</q-btn>
</div>
</div>
<div class="text-center">
<q-btn
rounded icon="fas fa-shopping-cart" color="green" label="Vai alla Cassa" class="q-mb-sm" to="/checkout"
@click="closecart"></q-btn>
v-if="existsOrders()"
rounded
icon="fas fa-clipboard-list"
color="positive"
:label="t('ecomm.btn_ordini')"
class="q-mb-sm"
@click="globalStore.rightCartOpen = false"
to="/orderinfo"
>
</q-btn>
</div>
</div>
</div>

View File

@@ -1,6 +1,5 @@
<template>
<div v-if="tools.isUserOk() || noaut">
<div v-if="circuit">
<q-item
:class="
@@ -108,7 +107,6 @@
@click="naviga(tools.getPathByTableAndRec(table, circuit))"
lines="1"
>
<CSaldo
v-if="tools.isUserOk() && username === myusername() && account"
:account="account"
@@ -120,36 +118,42 @@
</CSaldo>
</q-item-label>
<q-item-label
lines="4"
v-if="
tools.isUserOk() &&
username === myusername() &&
!account &&
visu !== costanti.ENTER_TO_THE_CIRCUIT
"
>
<div class="centermydiv text-center">
<q-banner inline-actions class="bg-blue text-white">
<span v-html="$t('circuit.non_entrato')"></span>
<template v-slot:action>
<q-btn
v-if="
!userStore.IsMyCircuitByName(circuit.name) &&
!userStore.IsAskedCircuitByName(circuit.name) &&
!userStore.IsRefusedCircuitByName(circuit.name)
"
color="positive"
:label="$t('circuit.apri')"
@click="
requestToEnterCircuit = true;
groupnameSel = null;
"
/>
</template>
</q-banner>
</div>
</q-item-label>
lines="4"
v-if="
tools.isUserOk() &&
username === myusername() &&
!account &&
visu !== costanti.ENTER_TO_THE_CIRCUIT
"
>
<div class="centermydiv text-center">
<q-banner
v-if="!circuitStore.SonoDentroAdAlmeno1CircuitoConFido()"
inline-actions
class="bg-blue text-white"
>
<span v-html="$t('circuit.entra_italia_solo_dopo_aver_fido')"></span>
</q-banner>
<q-banner v-else inline-actions class="bg-blue text-white">
<span v-html="$t('circuit.non_entrato')"></span>
<template v-slot:action>
<q-btn
v-if="
!userStore.IsMyCircuitByName(circuit.name) &&
!userStore.IsAskedCircuitByName(circuit.name) &&
!userStore.IsRefusedCircuitByName(circuit.name)
"
color="positive"
:label="$t('circuit.apri')"
@click="
requestToEnterCircuit = true;
groupnameSel = null;
"
/>
</template>
</q-banner>
</div>
</q-item-label>
</q-item-section>
<q-item-section

Some files were not shown because too many files have changed in this diff Show More