Version 0.5.25

Registration with no need to insert "invitante"
This commit is contained in:
paoloar77
2022-11-02 14:59:32 +01:00
parent e76db7467f
commit 83e6f92978
29 changed files with 569 additions and 147 deletions

View File

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

View File

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

View File

@@ -1,11 +1,11 @@
APP_VERSION="0.5.24"
APP_VERSION="0.5.25"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="15"
DIRECTORY_LOCAL=newfreeplanet
DIRECTORY_SERVER=test.freeplanet_serverside
SERVERDIR_WEBSITE="arcadei.riso.app"
SERVERDIR_WEBSITE="testarcadei.riso.app"
SERVERPW_WEBSITE="pwdadmin@1AOK"
APP_URL="https://arcadei.riso.app"
APP_URL="https://testarcadei.riso.app"
URL_FACEBOOK=""
PROVA_PAOLO=""
LANG_DEFAULT="it"

View File

@@ -54,6 +54,7 @@ const msg_website_it = {
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',
SignUpArcadei: 'Aderisci ad Arcadei',
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
SignUp2: 'Registrazione',
SignUpBot: 'Registrati',
@@ -113,8 +114,10 @@ const msg_website_it = {
hours: 'Ore',
department: 'Uffici',
title: 'Titolo',
subtitle: 'SottoTitolo',
path: 'Percorso',
img1: 'Immagine 1',
imgsize: 'ImgSize',
contentfield: 'Testo 1',
video1: 'Video 1',
ratio1: 'Ratio 1',

View File

@@ -270,6 +270,21 @@ const routes_manager: IListRoutes[] = [
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 10,
path: '/admin/iscrittiarcadei',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.iscrittiarcadei',
component: () => import('@/rootgen/admin/iscrittiarcadei/iscrittiarcadei.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
/*
{
active: true,
@@ -345,6 +360,20 @@ const routes_manager: IListRoutes[] = [
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 32,
path: '/admin/home',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.Home',
component: () => import('@/rootgen/admin/home/home.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 30,
@@ -481,7 +510,7 @@ const baseroutes: IListRoutes[] = [
inmenu: true,
infooter: true,
},
{
/*{
active: true,
order: 120,
path: '/myprofile',
@@ -491,7 +520,7 @@ const baseroutes: IListRoutes[] = [
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
},*/
{
active: true,
order: 120,
@@ -546,7 +575,7 @@ const baseroutes: IListRoutes[] = [
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
},{
}, {
active: true,
order: 137,
path: '/circuit/:path',
@@ -603,7 +632,7 @@ const baseroutes: IListRoutes[] = [
},
{
active: true,
order: 150,
order: 60,
path: '/fundraising',
materialIcon: 'fas fa-hand-holding-heart',
name: 'pages.fundraising',
@@ -743,7 +772,7 @@ const baseroutes: IListRoutes[] = [
materialIcon: 'account_circle',
name: 'pages.SignIn',
component: () => import('@/views/login/signin_noreg/signin_noreg.vue'),
inmenu: true,
inmenu: false,
infooter: true
},
// --- NOT IN MENU: ---
@@ -794,6 +823,18 @@ const baseroutes: IListRoutes[] = [
inmenu: true,
infooter: true
},
{
active: true,
order: 55,
path: '/iscrizione',
materialIcon: 'how_to_reg',
name: 'pages.SignUpArcadei',
component: () => import('@/views/login/iscrizionearcadei/iscrizionearcadei.vue'),
inmenu: true,
infooter: true,
separator: false,
onlyNotSoci: false,
},
{
active: true,
order: 1000,

View File

@@ -28,11 +28,6 @@ export default defineComponent({
const slide2 = ref(1)
const getImmagini = ref([
{
title: '', subtitle: '',
alt: 'Elisa e Cristina insieme',
img: '../../statics/images/eventi_esterni/IMG_6035.jpg'
},
])
const userStore = useUserStore()

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.24"
APP_VERSION="0.5.25"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="12"
DIRECTORY_LOCAL="newfreeplanet"

View File

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

View File

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

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.24"
APP_VERSION="0.5.25"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="14"
DIRECTORY_LOCAL="newfreeplanet"

View File

@@ -1,4 +1,4 @@
APP_VERSION="0.5.24"
APP_VERSION="0.5.25"
SERVICE_WORKER_FILE="service-worker.js"
APP_ID="14"
DIRECTORY_LOCAL=newfreeplanet

View File

@@ -1,9 +1,9 @@
{
"name": "arcadei",
"name": "riso",
"version": "0.5.3",
"description": "Arcadei è un modello di aggregazione sociale a base umanitaria finalizzato alla tutela dellEssere Umano e dei suoi inalienabili diritti naturali. Una Piattaforma di Umani liberi e cooperanti che persegue e sviluppa modelli finalizzati allautodeterminazione e all esercizio della naturale Sovranità individuale e collettiva per dare vita alle necessarie Autonomie Alimentari, Spirituali, Energetiche, Economiche e Sanitarie indispensabili allo sviluppo del libero e pieno potenziale umano.",
"productName": "Arcadei",
"author": "Surya Paolo",
"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",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -147,7 +147,7 @@ module.exports = configure((ctx) => ({
},
devServer: {
https: false,
port: 8089,
port: 8084,
open: false, // opens browser window automatically
},
@@ -278,7 +278,10 @@ module.exports = configure((ctx) => ({
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) {
@@ -287,39 +290,59 @@ module.exports = configure((ctx) => ({
},
manifest: {
name: 'Arcadei',
short_name: 'Arcadei',
description: 'Arcadei è un modello di aggregazione sociale a base umanitaria finalizzato alla tutela dellEssere Umano e dei suoi inalienabili diritti naturali. Una Piattaforma di Umani liberi e cooperanti che persegue e sviluppa modelli finalizzati allautodeterminazione e all esercizio della naturale Sovranità individuale e collettiva per dare vita alle necessarie Autonomie Alimentari, Spirituali, Energetiche, Economiche e Sanitarie indispensabili allo sviluppo del libero e pieno potenziale umano.',
name: 'Riso',
short_name: 'Riso',
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
display: 'standalone',
orientation: 'portrait',
background_color: '#ffffff',
theme_color: '#027be3',
icons: [
{
src: 'images/arcadei-android-icon-512x512.png',
src: 'images/riso-android-icon-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'images/arcadei-android-icon-384x384.png',
src: 'images/riso-android-icon-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: 'images/arcadei-android-icon-192x192.png',
src: 'images/riso-android-icon-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: 'images/arcadei-android-icon-144x144.png',
src: 'images/riso-android-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/arcadei-android-icon-96x96.png',
src: 'images/riso-android-icon-96x96.png',
sizes: '96x96',
type: 'image/png',
},
{
src: 'images/riso-apple-icon-120x120.png',
sizes: '120x120',
type: 'image/png',
},
{
src: 'images/riso-apple-icon-144x144.png',
sizes: '144x144',
type: 'image/png',
},
{
src: 'images/riso-apple-icon-152x152.png',
sizes: '152x152',
type: 'image/png',
},
{
src: 'images/riso-apple-icon-180x180.png',
sizes: '180x180',
type: 'image/png',
},
],
},
},
@@ -354,7 +377,7 @@ module.exports = configure((ctx) => ({
builder: {
// https://www.electron.build/configuration/configuration
appId: 'Arcadei',
appId: 'Riso',
},
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain

View File

@@ -378,6 +378,8 @@ self.addEventListener('fetch', function (event) {
return cachedResponse;
}
console.log('*** REQUEST', event.request);
try {
const response = await fetch(event.request);
if (!response || response.status !== 200 || response.type !== 'basic') {
@@ -391,12 +393,18 @@ self.addEventListener('fetch', function (event) {
}
return response;
} catch (e) {
return '';
}
})());
});
const syncStore = {}
self.addEventListener('message', event => {
if (event.data && event.data.type === 'SKIP_WAITING') {
self.skipWaiting()
}
if (event.data.type === 'sync') {
console.log('addEventListener - message')
// get a unique id to save the data

View File

@@ -13,6 +13,10 @@ register(process.env.SERVICE_WORKER_FILE ? process.env.SERVICE_WORKER_FILE : '',
registered(registration) { // registration -> a ServiceWorkerRegistration instance
console.log('REGISTERED::: !!!', process.env.SERVICE_WORKER_FILE)
setInterval(() => {
registration.update()
}, 5000) // every 5 seconds
},
cached(registration) {
console.log('CACHED::: Content has been cached for offline use.')

View File

@@ -306,8 +306,15 @@
</div>
</div>
<div v-else-if="isalreadyReg">
<q-banner class="bg-negative text-white text-h5" transition-show="jump-down">
Utente già registrato con l'username {{signup.username}}
</q-banner>
</div>
</div>
</div>
</template>

View File

@@ -61,8 +61,34 @@ export default defineComponent({
const globalStore = useGlobalStore()
const testStore = useTestStore()
const data = ref({
registration: null,
updateExists: false,
} as any)
const refreshing = ref(false)
const stateconn = ref(globalStore.stateConnection)
function updateAvailable(event: any) {
console.log(event)
data.value.registration = event.detail
data.value.updateExists = true
RefreshApp() // update automatically
}
function created() {
document.addEventListener('swUpdated', updateAvailable, { once: true })
navigator.serviceWorker.addEventListener('controllerchange', () => {
// We'll also need to add 'refreshing' to our data originally set to false.
if (refreshing.value)
return
refreshing.value = true
// Here the actual reload of the page occurs
window.location.reload()
})
}
const {
getUsernameChatByMsg,
getMyUsername,
@@ -81,7 +107,7 @@ export default defineComponent({
getNumMsg,
getNumMsgUnread,
getMsgText,
paotest } = MixinUsers();
paotest } = MixinUsers()
function isonline() {
return globalStore.stateConnection === 'online'
@@ -135,8 +161,8 @@ export default defineComponent({
// console.log('PRIMA $q.lang.isoName', $q.lang.isoName)
// dynamic import, so loading on demand only
import(`quasar/lang/${mylang}`).then((lang) => {
$q.lang.set(lang.default)
import(`quasar/lang/${mylang}`).then((lang2: any) => {
$q.lang.set(lang2.default)
import('../../statics/i18n').then(() => {
// console.log('MY LANG DOPO=', $q.lang.isoName)
@@ -146,9 +172,9 @@ export default defineComponent({
globalStore.addDynamicPages($router)
}
function setshortlang(lang: string) {
function setshortlang(mylang: string) {
static_data.lang_available.forEach((langavail) => {
if (langavail.value === lang) {
if (langavail.value === mylang) {
// console.log('static_data.lang_available[indrec].short', static_data.lang_available[indrec].short, static_data.lang_available[indrec].value)
langshort.value = langavail.short
return langshort.value
@@ -209,7 +235,6 @@ export default defineComponent({
const lang = computed({
get: () => $q.lang.isoName,
set: mylang => {
const $router = useRouter()
console.log('set lang', $q.lang.getLocale())
$q.lang.set(snakeToCamel(mylang))
// tools.showNotif($q, 'IMPOSTA LANG= ' + $i18n.locale)
@@ -282,12 +307,19 @@ export default defineComponent({
function RefreshApp() {
// Unregister Service Worker
/*
navigator.serviceWorker.getRegistrations().then((registrations) => {
for (const registration of registrations) {
registration.unregister()
}
})
window.location.reload()
window.location.reload() */
data.value.updateExists = false
// Make sure we only send a 'skip waiting' message if the SW is waiting
if (!data.value.registration || !data.value.registration.waiting) return
// Send message to SW to skip the waiting and activate the new SW
data.value.registration.waiting.postMessage({ type: 'SKIP_WAITING' })
}
function changeIconConn() {
@@ -397,7 +429,6 @@ export default defineComponent({
function clickregister() {
rightDrawerOpen.value = false
const $router = useRouter()
$router.replace('/signup')
}
@@ -444,6 +475,8 @@ export default defineComponent({
onBeforeMount(BeforeMount)
onMounted(mounted)
created()
return {
static_data,
globalStore,
@@ -493,6 +526,7 @@ export default defineComponent({
logoutHandler,
isUserNotAuth,
tools,
data,
}
},

View File

@@ -30,7 +30,7 @@
<q-btn
size="md"
id="newvers" v-if="isNewVersionAvailable()" color="secondary" rounded icon="refresh"
id="newvers" v-if="isNewVersionAvailable() || data.updateExists" color="secondary" rounded icon="refresh"
class="btnNewVersShow" @click="RefreshApp()" :label="t('notification.newVersionAvailable')">
</q-btn>

View File

@@ -1,9 +1,9 @@
const msg_website_it = {
ws: {
sitename: 'Arcadei',
siteshortname: 'ARCADEI',
description: 'Arcadei è un modello di aggregazione sociale a base umanitaria finalizzato alla tutela dellEssere Umano e dei suoi inalienabili diritti naturali. Una Piattaforma di Umani liberi e cooperanti che persegue e sviluppa modelli finalizzati allautodeterminazione e all esercizio della naturale Sovranità individuale e collettiva per dare vita alle necessarie Autonomie Alimentari, Spirituali, Energetiche, Economiche e Sanitarie indispensabili allo sviluppo del libero e pieno potenziale umano.',
keywords: '',
sitename: 'Riso',
siteshortname: 'RISO',
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
},
products: {
quantity: 'Quantità',
@@ -54,7 +54,6 @@ const msg_website_it = {
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',
SignUpArcadei: 'Aderisci ad Arcadei',
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
SignUp2: 'Registrazione',
SignUpBot: 'Registrati',
@@ -114,10 +113,8 @@ const msg_website_it = {
hours: 'Ore',
department: 'Uffici',
title: 'Titolo',
subtitle: 'SottoTitolo',
path: 'Percorso',
img1: 'Immagine 1',
imgsize: 'ImgSize',
contentfield: 'Testo 1',
video1: 'Video 1',
ratio1: 'Ratio 1',
@@ -144,8 +141,8 @@ const msg_website_it = {
color: 'Colore',
},
msg: {
myAppName: 'Arcadei',
myAppDescription: 'Modello Comunitario',
myAppName: 'Riso',
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...',
myDescriz: '',
sottoTitoloApp: 'Il primo Vero Social',
@@ -160,37 +157,32 @@ const msg_website_it = {
+ ' 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.',
+ '<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>. 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à.',
+ '<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> grazie ad un sistema di baratto organizzato, in cui la comunità stessa si pone come garante.'
'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',
descr: '<strong>Stiamo lavorando</strong> anche per creare una sorta di "moneta alternativa" per conteggiare gli scambi che avvengono tra di noi, quando il semplice baratto risulta non applicabile.<br>' +
'Partendo dalle basi del <strong>Si.Cre.Na.C.C - Sistema di Credito Naturale a Copertura Certa</strong>.<br>' +
'<em>Ciascun operatore potrà creare moneta all\'occorrenza, se il saldo del suo conto non sarà sufficiente a coprire la spesa. Potrà quindi mandare il suo conto in "scoperto", accollandosi il conseguente' +
' Debito, accreditando l\'equivalente somma all\'operatore ricevente, il quale la annovera nel suo conto in qualità di Credito. ' +
'L\'equilibrio tra il credito dell\'uno ed il debito dell\'altro ha come conseguenza che il debitore dovrà lavorare per rifondere il debito, mentre il ricevente potrà usare il credito come moneta.</em><br>' +
'Per maggiori informazioni consultare il libro gratuito <a href="https://sicrenacc.info/" target="_blank">cliccando qui</a>.'
},
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 vicinato, come giá viene praticato in piccolo, in numerosi <strong>Ecovillaggi</strong> e Comunità del mondo.',
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: {
@@ -238,9 +230,9 @@ const msg_website_it = {
},
multiplatform: {
title: 'Multi-piattaforma',
descr: 'E\' compatibile con Google Chrome, Firefox, Opera, Safari, iPhone, Android e PC. L\'Applicazione s\'installa facilmente, senza passare dallo store. '
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 allo schermo (o cliccare sul menu del browser "Installa APP")',
+ '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à',

View File

@@ -7,29 +7,29 @@ import {
import { func } from '@store/Modules/fieldsTable'
const functionality: IFunctionality = {
PWA: false,
PWA: true,
SHOW_USER_MENU: true, // Cambiare con true
SHOW_PROFILE: true,
SHOW_REG_BUTTON: true,
ENABLE_REGISTRATION: true,
ENABLE_REG_BY_BOT: false,
ENABLE_REG_NEED_TELEGRAM: false,
ENABLE_REG_BY_BOT: true,
ENABLE_REG_NEED_TELEGRAM: true,
SHOW_NEWSLETTER: false,
SHOW_ONLY_POLICY: true,
ENABLE_TODOS_LOADING: false,
ENABLE_PROJECTS_LOADING: false,
SHOW_IF_IS_SERVER_CONNECTION: false,
SHOW_MESSAGES: false,
SHOW_NOTIF: false,
SHOW_COINS: false,
BOOKING_EVENTS: false,
SHOW_NOTIF: true,
SHOW_COINS: true,
BOOKING_EVENTS: true,
ENABLE_ECOMMERCE: false,
ENABLE_REG_ISP: true,
ENABLE_GROUPS: false,
ENABLE_CIRCUITS: false,
SHOW_COMPETENZE: false,
ENABLE_VIEW_GROUPS: false,
ENABLE_VIEW_USERS: false,
ENABLE_GROUPS: true,
ENABLE_CIRCUITS: true,
SHOW_COMPETENZE: true,
ENABLE_VIEW_GROUPS: true,
ENABLE_VIEW_USERS: true,
ENABLE_VIEW_PROFILE: true,
}
@@ -270,21 +270,6 @@ const routes_manager: IListRoutes[] = [
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 10,
path: '/admin/iscrittiarcadei',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.iscrittiarcadei',
component: () => import('@/rootgen/admin/iscrittiarcadei/iscrittiarcadei.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
/*
{
active: true,
@@ -360,20 +345,6 @@ const routes_manager: IListRoutes[] = [
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 32,
path: '/admin/home',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.Home',
component: () => import('@/rootgen/admin/home/home.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 30,
@@ -505,12 +476,78 @@ const baseroutes: IListRoutes[] = [
path: '/',
materialIcon: 'home',
name: 'pages.home',
component: () => import('@src/root_spec/home_arcadei/home_arcadei.vue'),
component: () => import('@src/root/mainview/mainview.vue'),
reqauth: false,
inmenu: true,
infooter: true,
},
/*{
{
active: true,
order: 12,
path: '/goods',
materialIcon: 'fas fa-tshirt',
name: 'mypages.goods',
component: () => import('@/root/goods/goods.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/services',
materialIcon: 'fas fa-house-user',
name: 'mypages.services',
component: () => import('@/root/services/services.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 15,
path: '/provapao',
materialIcon: 'fas fa-house-user',
name: 'mypages.provapao',
component: () => import('@/root/provapao/provapao.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 15,
path: '/hosps',
materialIcon: 'fas fa-bed',
name: 'mypages.hosp',
component: () => import('@/root/hosp/hosp.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 20,
path: '/events',
materialIcon: 'fas fa-bullhorn',
name: 'mypages.events',
component: () => import('@/root/eventi/eventi.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: true,
order: 100,
path: '/presentazione',
materialIcon: 'fas fa-info',
name: 'pages.presentazione',
component: () => import('@src/root/presentazione/presentazione.vue'),
reqauth: false,
inmenu: true,
infooter: true,
},
{
active: true,
order: 120,
path: '/myprofile',
@@ -520,7 +557,7 @@ const baseroutes: IListRoutes[] = [
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},*/
},
{
active: true,
order: 120,
@@ -532,6 +569,17 @@ const baseroutes: IListRoutes[] = [
inmenu: false,
infooter: false,
},
{
active: true,
order: 130,
path: '/friends',
materialIcon: 'fas fa-user-friends',
name: 'mypages.friends',
component: () => import('@/views/user/myfriends/myfriends.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: functionality.ENABLE_GROUPS,
order: 132,
@@ -575,7 +623,7 @@ const baseroutes: IListRoutes[] = [
meta: { requiresAuth: true, newpage: true },
inmenu: false,
infooter: false,
}, {
},{
active: true,
order: 137,
path: '/circuit/:path',
@@ -632,7 +680,7 @@ const baseroutes: IListRoutes[] = [
},
{
active: true,
order: 60,
order: 150,
path: '/fundraising',
materialIcon: 'fas fa-hand-holding-heart',
name: 'pages.fundraising',
@@ -722,6 +770,17 @@ const baseroutes: IListRoutes[] = [
inmenu: false,
infooter: true
},
{
active: functionality.ENABLE_REGISTRATION && functionality.ENABLE_REG_NEED_TELEGRAM,
order: 1000,
path: '/signup/:invited/:usernameteleg/:idteleg',
materialIcon: 'how_to_reg',
name: 'pages.SignUp',
component: () => import('@/views/login/signup/signup.vue'),
inmenu: false,
infooter: false,
separator: false
},
{
active: functionality.ENABLE_REG_BY_BOT,
order: 1000,
@@ -732,17 +791,17 @@ const baseroutes: IListRoutes[] = [
infooter: functionality.ENABLE_REG_BY_BOT,
separator: false
},
{
/*{
active: functionality.ENABLE_REGISTRATION && !functionality.ENABLE_REG_NEED_TELEGRAM,
order: 1000,
path: '/signup',
materialIcon: 'how_to_reg',
name: 'pages.SignUp',
component: () => import('@/views/login/signup_noteleg/signup_noteleg.vue'),
component: () => import('@/views/login/signup/signup_noteleg.vue'),
inmenu: false,
infooter: false,
separator: false
},
},*/
{
active: true,
order: 1001,
@@ -772,7 +831,7 @@ const baseroutes: IListRoutes[] = [
materialIcon: 'account_circle',
name: 'pages.SignIn',
component: () => import('@/views/login/signin_noreg/signin_noreg.vue'),
inmenu: false,
inmenu: true,
infooter: true
},
// --- NOT IN MENU: ---
@@ -823,18 +882,6 @@ const baseroutes: IListRoutes[] = [
inmenu: true,
infooter: true
},
{
active: true,
order: 55,
path: '/iscrizione',
materialIcon: 'how_to_reg',
name: 'pages.SignUpArcadei',
component: () => import('@/views/login/iscrizionearcadei/iscrizionearcadei.vue'),
inmenu: true,
infooter: true,
separator: false,
onlyNotSoci: false,
},
{
active: true,
order: 1000,

View File

@@ -13,20 +13,33 @@ import { tools } from '@src/store/Modules/tools'
import { static_data } from '@src/db/static_data'
import { toolsext } from '@src/store/Modules/toolsext'
import { Screen } from 'quasar'
import { CCardCarousel, CEventsCalendar, CMyElem, COpenStreetMap } from '@components'
import { CCardCarousel, CEventsCalendar, COpenStreetMap } from '@components'
import MixinBase from '@src/mixins/mixin-base'
import { firstimagehome } from '@src/db/static_data'
import MixinMetaTags from '@/mixins/mixin-metatags'
export default defineComponent({
name: 'home_arcadei',
components: { Logo, LandingFooter, CMyPage, CMyElem },
components: { Logo, LandingFooter, CMyPage, CCardCarousel, CEventsCalendar, COpenStreetMap },
setup() {
const animare = ref(0)
const slide = ref('first')
const slide2 = ref(1)
const getImmagini = ref([
{
title: '', subtitle: '',
alt: 'Arcadei',
img: 'images/arcadei/img1.png'
},
])
const userStore = useUserStore()
const globalStore = useGlobalStore()
const { setValDb, getValDb } = MixinBase()
const { setmeta, getsrcbyimg } = MixinMetaTags()
function getheightgallery() {
if (tools.isMobile())
@@ -39,15 +52,26 @@ export default defineComponent({
//
}
function getArrDisciplines() {
return globalStore.disciplines.filter((rec: any) => rec.showinhome)
}
created()
return {
tools,
toolsext,
static_data,
animare,
slide,
slide2,
getheightgallery,
getArrDisciplines,
getImmagini,
getValDb,
globalStore,
firstimagehome,
getsrcbyimg,
setmeta,
}
},
})

View File

@@ -1,11 +1,214 @@
<template>
<q-page>
<CMyPage title="Home">
<span v-for="(myelem, ind) in globalStore.myelems" :key="ind">
<CMyElem v-if="myelem.active" :myelem="myelem">
<div class="landing">
<section>
<div class="landing__hero maxwidth1200 text-white">
<q-carousel
animated
:autoplay="animare"
swipeable
infinite
navigation
transition-next="slide-left"
transition-prev="slide-right"
v-model="slide"
:height="getheightgallery()"
width="100%"
>
<q-carousel-slide name="first"
:img-src="getsrcbyimg(firstimagehome())">
<div class="landing__header"></div>
<div class="landing__hero-content row justify-center q-gutter-xs clgutter">
<div class="row">
&nbsp;
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<h1 class="text-h1 shadow-max">{{tools.getappname()}}</h1>
<div class="text-subtitle1 shadow text-italic q-pl-sm">
&nbsp;
</div>
<div class="text-subtitle1 shadow-max big text-italic q-pl-sm">
</CMyElem>
</span>
</div>
<div class="text-subtitle2 shadow text-italic q-pl-sm">
</div>
<div>
<br>
<br>
<div v-if="!tools.isLogged()" style="margin: 5px; padding: 5px;" class="home">
<br>
<br>
</div>
</div>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<i aria-hidden="true"
class="q-icon text-h2 text-white material-icons">expand_more</i>
</div>
</q-carousel-slide>
<q-carousel-slide name="second"
:img-src="getsrcbyimg('images/background2.jpg')" alt="">
<div class="landing__header"></div>
<div class="landing__hero2-content row justify-center q-gutter-xs clgutter">
<div class="row">
<logo></logo>
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<h1 class="text-h1 shadow-max">{{tools.getappname()}}</h1>
<h2 class="text-subtitle1 shadow text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp')}}
</h2>
<h2 class="text-subtitle1 shadow-max big text-italic q-pl-sm">
<strong>{{$t('msg.sottoTitoloApp2')}}</strong>
</h2>
<h2 class="text-subtitle2 shadow text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp3')}}
</h2>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<i aria-hidden="true"
class="q-icon text-h2 text-white material-icons">expand_more</i>
</div>
</q-carousel-slide>
<q-carousel-slide name="third"
:img-src="getsrcbyimg('images/background3.jpg')">
<div class="landing__header"></div>
<div class="landing__hero2-content row justify-center q-gutter-xs clgutter">
<div class="row">
<logo></logo>
</div>
<div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter">
<div class="text-h1 shadow-max">{{tools.getappname()}}</div>
<div class="text-subtitle1 shadow text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp')}}
</div>
<div class="text-subtitle1 shadow-max big text-italic q-pl-sm"><strong>{{$t('msg.sottoTitoloApp2')}}</strong>
</div>
<div class="text-subtitle2 shadow text-italic q-pl-sm">
{{$t('msg.sottoTitoloApp3')}}
</div>
<div class="text-subtitle3 shadow text-italic q-pl-sm ">
{{$t('msg.sottoTitoloApp4')}}
</div>
</div>
</div>
</div>
<div class="landing__arrow absolute-bottom text-center">
<!--<i aria-hidden="true"-->
<!--class="q-icon text-h2 text-white material-icons">expand_more</i>-->
</div>
</q-carousel-slide>
</q-carousel>
</div>
</section>
<div class="q-pa-md q-gutter-md">
<div v-if="isLogged && !isVerified" class="text-verified">{{
$t('components.authentication.email_verification.link_sent') }}
</div>
</div>
<CCardCarousel :myarr="getArrDisciplines()">
</CCardCarousel>
<CEventsCalendar :mysingleevent="null" :showfirstN="getValDb('SHOW_LAST_EVENTS', false, 3)">
</CEventsCalendar>
<div v-if="getValDb('VIDEO_HOME', false)" class="row justify-evenly items-center q-gutter-md ">
<div class="text-center">
<h4 class="subtitle text-blue" v-html="getValDb('VIDEO_TITLE', false)"></h4>
<div class="">
<video :width="tools.getwidthscale(mythis, 320, 800)"
:height="tools.getheightbywidth(mythis, 320, 180, 800)" controls>
<source :src="getValDb('VIDEO_HOME', false)" type="video/mp4">
</video>
</div>
<!--<q-video src="../../statics/video/Intervista_Cristina_Barattoni.mp4">-->
<!--</q-video>-->
</div>
</div>
<div v-if="getValDb('YT_VIDEO', false)" class="row justify-evenly items-center q-gutter-md ">
<div class="text-center">
<h4 class="subtitle text-blue" v-html="getValDb('YT_TITLE', false)"></h4>
<div class="">
<div class="">
<iframe
:width="tools.getwidthscale(mythis, getValDb('YT_W', false), 800)"
:height="tools.getheightbywidth(mythis, getValDb('YT_W', false), getValDb('YT_H', false), 800)"
:src="getValDb('YT_VIDEO', false)"
frameborder="0"
allowfullscreen
></iframe>
</div>
</div>
<!--<q-video src="../../statics/video/Intervista_Cristina_Barattoni.mp4">-->
<!--</q-video>-->
</div>
</div>
<section class="maxwidth padding_gallery bg-white text-grey-10 text-center" >
<q-carousel
swipeable
animated
:autoplay="8000"
v-model="slide2"
arrows
thumbnails
infinite
height="600">
<q-carousel-slide v-for="(rec, index) in getImmagini" :key="index" :name="index"
:img-src="rec.img"
:alt="rec.alt"
class="carousel_slide">
<div class="absolute-bottom custom-caption" style="margin-bottom: 70px">
<div class="text-h5"><span
class="text-h6 text-grey-1 shadow-max">{{index + 1}}. </span><span
class="text-h6 text-grey-2 shadow">{{rec.title}}</span></div>
<div class="text-subtitle1"><span class="text-grey-4 shadow">{{rec.subtitle}}</span>
</div>
</div>
</q-carousel-slide>
</q-carousel>
</section>
<div v-if="!tools.isMobile()" style="margin: 60px 60px;"></div>
<COpenStreetMap :imgmap="getValDb('IMGMAP', false)" :urlmap="getValDb('URLMAP', false)" :title="getValDb('MAP_TITLE', false)"
:coordinates="getValDb('COORD_MAP_1', false)" :coord_big="getValDb('COORD_MAP_BIG', false)">
</COpenStreetMap>
<div class="q-ma-md"></div>
</div>
</CMyPage>
</q-page>
</template>

View File

@@ -28,6 +28,11 @@ export default defineComponent({
const slide2 = ref(1)
const getImmagini = ref([
{
title: '', subtitle: '',
alt: 'Elisa e Cristina insieme',
img: '../../statics/images/eventi_esterni/IMG_6035.jpg'
},
])
const userStore = useUserStore()

18
termina_arcadei.it.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
site=arcadei.it
if [ -d "__freeplanet.app" ]; then
rmdir __freeplanet.app
fi
if [ -d "__insiemesipuo.app" ]; then
rmdir __insiemesipuo.app
fi
if [ -d "__popolodelnuovomondo.app" ]; then
rmdir __popolodelnuovomondo.app
fi
source __termine.sh

18
termina_riso.app.sh Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
site=riso.app
if [ -d "__freeplanet.app" ]; then
rmdir __freeplanet.app
fi
if [ -d "__insiemesipuo.app" ]; then
rmdir __insiemesipuo.app
fi
if [ -d "__popolodelnuovomondo.app" ]; then
rmdir __popolodelnuovomondo.app
fi
source __termine.sh