Updated riso.app with Site Configuration Parameter

This commit is contained in:
Surya Paolo
2022-11-29 00:16:25 +01:00
parent 58dc1dfdcc
commit 9d32f92589
107 changed files with 738 additions and 1851 deletions

View File

@@ -1,6 +1,6 @@
APP_VERSION="0.5.28" APP_VERSION="0.5.28"
SERVICE_WORKER_FILE="service-worker.js" SERVICE_WORKER_FILE="service-worker.js"
APP_ID="16" APP_ID="13"
DIRECTORY_LOCAL="newfreeplanet" DIRECTORY_LOCAL="newfreeplanet"
DIRECTORY_SERVER="freeplanet_serverside" DIRECTORY_SERVER="freeplanet_serverside"
SERVERDIR_WEBSITE="" SERVERDIR_WEBSITE=""
@@ -12,9 +12,9 @@ LANG_DEFAULT="it"
PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF" PAO_APP_ID="KKPPAA5KJK435J3KSS9F9D8S9F8SD98F9SDF"
MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T" MASTER_KEY="KKPPSS5KJK435J3KSS9F9D8S9F8SD3CR3T"
MONGODB_HOST="https://localhost:3000" MONGODB_HOST="https://localhost:3000"
LOGO_REG='kolibrilab-logo-full.png' LOGO_REG='riso-logo-full.png'
TEST_NAME="Surya" TEST_NAME="Paolo"
TEST_SURNAME="Paolo" TEST_SURNAME="Arena"
TEST_EMAIL="" TEST_EMAIL=""
TEST_USERNAME="" TEST_USERNAME=""
TEST_PASSWORD="" TEST_PASSWORD=""

View File

@@ -1,511 +1,26 @@
import { import {
IListRoutes, IListRoutes,
ILang, ILang,
IFunctionality,
IPreloadImages, IPreloadImages,
ISites,
} from '@model' } from '@model'
import { func } from '@store/Modules/fieldsTable'
const functionality: IFunctionality = { const firstPage = {
PWA: false,
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,
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,
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_VIEW_PROFILE: true,
}
// const SHOW_PROJINTHEMENU = false
//
// let arrlistafavourite = []
// let arrlistaprojtutti = []
// let arrlistaprojmiei = []
// if (SHOW_PROJINTHEMENU) {
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
// }
// PROGETTI -> FAVORITI :
// if (arrlistafavourite.length > 0) {
// arrMenu.push({
// icon: 'favorite_border',
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
// urlroute: RouteNames.favouriteprojects,
// level_parent: 0.0,
// level_child: 0.5,
// routes2: arrlistafavourite,
// idelem: ''
// })
// }
const routes_todo: IListRoutes[] = []
const arrlista = [
{ nametranslate: 'personal', description: 'personal' },
{ nametranslate: 'work', description: 'work' },
{ nametranslate: 'shopping', description: 'shopping' },
]
const routes_admin: IListRoutes[] = [
{
active: true,
order: 10,
path: '/admin/sites',
materialIcon: 'event_seat',
name: 'pages.Sites',
component: () => import('@/rootgen/admin/sites/sites.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
},
{
active: true,
order: 1000,
path: '/admin/cfgserv',
materialIcon: 'event_seat',
name: 'pages.Admin',
component: () => import('@/views/admin/cfgServer/cfgServer.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
},
{
active: true,
order: 1020,
path: '/admin/dbop',
materialIcon: 'event_seat',
name: 'pages.dbop',
component: () => import('@/views/admin/dbop/dbop.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
},
{
active: true,
order: 1040,
path: '/admin/importfile',
materialIcon: 'event_seat',
name: 'otherpages.manage.importfile',
component: () => import('@/rootgen/admin/importdata/importdata.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
}
]
const routes_newsletter: IListRoutes[] = [
{
active: true,
order: 10,
name: 'newsletter.template', path: '/admin/newsletter/templemail', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 20,
name: 'newsletter.sendemail', path: '/admin/newsletter/newnewsletter', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 30,
name: 'newsletter.check', path: '/admin/newsletter/check', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 40,
name: 'newsletter.sent', path: '/admin/newsletter/newslist', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 50,
name: 'newsletter.mailinglist', path: '/admin/newsletter/mailinglist', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 60,
name: 'newsletter.settings', path: '/admin/newsletter/settings', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 70,
name: 'newsletter.serversettings', path: '/admin/newsletter/main_settings', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 80,
name: 'newsletter.others', path: '/admin/newsletter/events', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
}
]
const routes_ris: IListRoutes[] = [
{
active: true,
order: 10,
path: '/admin/ris/circuitslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.circuitslist',
component: () => import('@/rootgen/admin/circuitsList/circuitsList.vue'),
inmenu: true,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 20,
path: '/admin/ris/accountslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.accountslist',
component: () => import('@/rootgen/admin/accountsList/accountsList.vue'),
inmenu: true,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 30,
path: '/admin/ris/movslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.movslist',
component: () => import('@/rootgen/admin/movsList/movsList.vue'),
inmenu: true,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
]
const routes_manager: IListRoutes[] = [
{
active: functionality.BOOKING_EVENTS,
order: 70,
path: '/admin/usereventlist',
materialIcon: 'edit',
name: 'otherpages.admin.usereventlist',
component: () => import('@/rootgen/admin/eventlist/eventlist.vue'),
inmenu: functionality.BOOKING_EVENTS,
submenu: functionality.BOOKING_EVENTS,
level_parent: 0,
level_child: 0.5,
infooter: false,
onlyManager: true,
onlyConsiglio: true,
onlyAdmin: true
},
{
active: true,
order: 10,
path: '/admin/userlist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.userlist',
component: () => import('@/rootgen/admin/usersList/usersList.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 10,
path: '/admin/userpanel',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.userpanel',
component: () => import('@/rootgen/admin/userPanel/userPanel.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
/*
{
active: true,
order: 10,
path: '/admin/iscritticonacreis',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.iscritticonacreis',
component: () => import('@/rootgen/admin/iscritticonacreis/iscritticonacreis.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
*/
{
active: true,
path: '/admin/ris',
order: 60,
faIcon: 'fa fa-list-alt',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.monete',
routes2: routes_ris,
inmenu: false,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
solotitle: true,
onlyAdmin: true,
onlyManager: true
},
{
active: false,
order: 10,
path: '/admin/zoomlist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.zoomlist',
component: () => import('@/rootgen/admin/zoomList/zoomList.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: false
},
{
active: true,
order: 27,
path: '/admin/tableslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.tableslist',
component: () => import('@/rootgen/admin/tablesList/tablesList.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
},
{
active: true,
order: 30,
path: '/admin/pages',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.pages',
component: () => import('@/rootgen/admin/pages/pages.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 32,
path: '/admin/home',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.elems',
component: () => import('@/rootgen/admin/editElems/editElems.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 30,
path: '/admin/bot',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.bot',
component: () => import('@/rootgen/admin/bot/bot.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 30,
path: '/admin/confsite',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.confsite',
component: () => import('@/rootgen/admin/confsite/confsite.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
path: '/admin/newsletter',
order: 60,
faIcon: 'fa fa-list-alt',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.newsletter',
routes2: routes_newsletter,
inmenu: false,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
solotitle: true,
onlyAdmin: true,
onlyManager: true
},
/*
{
active: functionality.ENABLE_ECOMMERCE,
path: '/admin/ecommerce',
order: 31,
faIcon: 'fa fa-list-alt',
materialIcon: 'next_week',
name: 'pages.admin_ecommerce',
routes2: routes_admin_ecommerce,
inmenu: false,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
solotitle: true,
onlyAdmin: true,
onlyManager: true,
onlyDepartment: true
},
*/
{
active: true,
order: 35,
path: '/admin/msg_template',
materialIcon: 'fas fa-file-alt',
name: 'msgs.messages',
component: () => import('@/rootgen/admin/msg_template/msg_template.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
// onlyFacilitatore: true
},
{
active: true,
order: 1030,
path: '/admin/sendpushnotif',
materialIcon: 'event_seat',
name: 'otherpages.manage.sendpushnotif',
component: () => import('@/rootgen/admin/sendpushnotif/sendpushnotif.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true,
onlyManager: true,
},
{
active: true,
order: 40,
path: '/admin/gallery',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.gallery',
component: () => import('@/rootgen/admin/gallery/gallery.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
},
{
active: true,
order: 50,
path: '/admin/media',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.media',
component: () => import('@/rootgen/admin/uploader/uploader.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
},
]
const baseroutes: IListRoutes[] = [
{
active: true, active: true,
order: 5, order: 5,
path: '/', path: '/',
materialIcon: 'home', materialIcon: 'home',
name: 'pages.home', name: 'pages.home',
component: () => import('@src/root_spec/home_kolibrilab/home_kolibrilab.vue'), component: () => import('@src/root/home/home.vue'),
reqauth: false, reqauth: false,
inmenu: true, inmenu: true,
infooter: true, infooter: true,
}, }
/*{
active: true, function getDynamicPages(site: ISites): IListRoutes[] {
order: 120,
path: '/myprofile', const baseroutes: IListRoutes[] = [
materialIcon: 'fas fa-user', firstPage,
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},*/
{ {
active: true, active: true,
order: 120, order: 120,
@@ -517,28 +32,6 @@ const baseroutes: IListRoutes[] = [
inmenu: false, inmenu: false,
infooter: false, infooter: false,
}, },
{
active: functionality.ENABLE_GROUPS,
order: 132,
path: '/groups',
materialIcon: 'fas fa-users',
name: 'mypages.groups',
component: () => import('@/views/user/mygroups/mygroups.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{
active: functionality.ENABLE_CIRCUITS,
order: 133,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{ {
active: true, active: true,
order: 135, order: 135,
@@ -550,305 +43,10 @@ const baseroutes: IListRoutes[] = [
inmenu: false, inmenu: false,
infooter: false, infooter: false,
}, },
{
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,
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: 200,
path: '/notifs',
materialIcon: 'fas fa-user',
name: 'pages.notifs',
component: () => import('@/views/user/usernotifs/usernotifs.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
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: 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: 400,
path: '/testlocal',
materialIcon: 'fas fa-test',
name: 'mypages.TestLocal',
component: () => import('@/views/test/test.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 2000,
path: '/admin',
materialIcon: 'fas fa-user-shield',
name: 'otherpages.admin.menu',
inmenu: true,
routes2: routes_admin,
solotitle: true,
infooter: false,
onlyAdmin: true
},
...routes_admin,
{
active: true,
order: 2110,
path: '/manage',
materialIcon: 'fas fa-users-cog',
name: 'otherpages.manage.menu',
inmenu: true,
routes2: routes_manager,
solotitle: true,
infooter: false,
onlyAdmin: true,
onlyManager: true,
onlyFacilitatore: true,
onlyEditor: true
},
...routes_manager,
{
active: true,
order: 1000,
path: '/404error',
materialIcon: 'fas fa-calendar-plus',
name: 'otherpages.error404',
component: () => import('@/root/My404page/My404page.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 2000,
path: '/policy',
materialIcon: 'fas fa-user',
name: 'pages.policy',
component: () => import('@src/root/policy/policy.vue'),
inmenu: false,
infooter: true
},
{
active: functionality.ENABLE_REG_BY_BOT,
order: 1000,
path: '/bot',
materialIcon: 'how_to_reg',
name: 'pages.SignUpBot',
inmenu: functionality.ENABLE_REG_BY_BOT,
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'),
inmenu: false,
infooter: false,
separator: false
},
{
active: true,
order: 1001,
path: '/signup/:invited',
materialIcon: 'how_to_reg',
name: 'pages.SignUp2',
component: () => import('@/views/login/signup/signup.vue'),
inmenu: false,
infooter: false,
separator: false
},
{
active: functionality.ENABLE_REGISTRATION,
order: 2000,
path: '/regok',
materialIcon: 'how_to_reg',
name: 'pages.regok',
component: () => import('@/views/login/regok/regok.vue'),
inmenu: false,
infooter: false,
separator: false,
},
{
active: true,
order: 1000,
path: '/signin',
materialIcon: 'account_circle',
name: 'pages.SignIn',
component: () => import('@/views/login/signin_noreg/signin_noreg.vue'),
inmenu: false,
infooter: true
},
// --- NOT IN MENU: ---
{
active: true,
order: 1000,
path: '/vreg',
name: 'pages.vreg',
component: () => import('@/views/login/vreg/vreg.vue')
},
{
active: true,
order: 1000,
path: '/requestresetpwd',
name: 'pages.requestresetpwd',
component: () => import('@/views/requestresetpwd/requestresetpwd.vue')
},
{
active: true,
order: 1000,
path: '/updatepassword',
name: 'pages.updatepassword',
component: () => import('@/views/updatepassword/updatepassword.vue')
},
{
active: true,
order: 1000,
path: '/offline',
name: 'Offline',
component: () => import('@/views/offline/offline.vue')
},
{
active: true,
path: '/separator',
name: 'separator',
order: 35,
isseparator: true,
inmenu: true,
},
/*{
active: true,
order: 80,
path: '/calendario-eventi',
materialIcon: 'event',
name: 'ris.calendario_eventi_riso',
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
extraclass: 'isCalendar',
inmenu: true,
infooter: true
},
*/
{
active: true,
order: 1000,
path: '/admin/newsletter/:idparam',
materialIcon: 'event',
name: 'pages.newsletter.menu',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 90,
path: '/event/:typol/:eventid',
materialIcon: 'event',
name: 'pages.evento',
component: () => import('@/root/evento/evento.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 110,
path: '/event/:typol',
materialIcon: 'event',
name: 'pages.eventodef',
component: () => import('@/root/evento/evento.vue'),
inmenu: false,
infooter: false
},
] ]
const arrLangUsed = [ return baseroutes
'it', }
// 'enUs',
// 'es',
]
export function firstimagehome() { export function firstimagehome() {
@@ -856,34 +54,20 @@ export function firstimagehome() {
return img return img
} }
const lang_available: ILang[] = [
{
label: 'Italiano', icon: 'fa-flag-it', value: 'it', image: '../images/it.png', short: 'IT',
},
/*{
label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../images/gb.png', short: 'EN',
},
{
label: 'Español', icon: 'fa-flag-es', value: 'es', image: '../images/es.png', short: 'ES',
},
*/
// { label: 'Français', icon: 'fa-facebook', value: 'fr', image: '../public/images/fr.png', short: 'FR' }
// { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../public/images/de.png', short: 'DE' },
]
const preLoadImages: IPreloadImages[] = [] const preLoadImages: IPreloadImages[] = []
export const lang_available: ILang[] = []
export const arrLangUsed: string[] = []
export const preloadedimages = [] export const preloadedimages = []
export const routes = baseroutes export const routes: IListRoutes[] = [firstPage]
export const static_data = { export const static_data = {
baseroutes,
routes, routes,
functionality, arrLangUsed,
getDynamicPages,
lang_available, lang_available,
preLoadImages, preLoadImages,
arrLangUsed,
preloadedimages, preloadedimages,
} }

View File

@@ -18,59 +18,61 @@
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > 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", "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", "spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
"spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js" "generate-sw": "workbox generateSW workbox-config.js"
}, },
"dependencies": { "dependencies": {
"@quasar/extras": "^1.15.2", "@quasar/extras": "^1.15.5",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13", "@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13",
"@vue-leaflet/vue-leaflet": "^0.6.1", "@vue-leaflet/vue-leaflet": "^0.6.1",
"@vue/compat": "^3.2.38", "@vue/compat": "^3.2.45",
"@vue/compiler-sfc": "^3.2.38", "@vue/compiler-sfc": "^3.2.45",
"@vue/eslint-config-standard": "7.0.0", "@vue/eslint-config-standard": "7.0.0",
"@vuelidate/core": "^2.0.0-alpha.44", "@vuelidate/core": "^2.0.0",
"@vuelidate/validators": "^2.0.0-alpha.31", "@vuelidate/validators": "^2.0.0",
"acorn": "^8.8.0", "acorn": "^8.8.1",
"autoprefixer": "^10.4.8", "animate.css": "^4.1.1",
"axios": "^0.27.2", "autoprefixer": "^10.4.13",
"axios": "^1.1.3",
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"chart.js": "^3.9.1", "chart.js": "^3.9.1",
"core-js": "^3.25.0", "core-js": "^3.26.0",
"date-fns": "^2.29.2", "date-fns": "^2.29.3",
"dotenv": "^16.0.2", "dotenv": "^16.0.3",
"echarts": "^5.3.3", "echarts": "^5.4.0",
"eslint-plugin-quasar": "^1.1.0", "eslint-plugin-quasar": "^1.1.0",
"eslint-plugin-standard": "^5.0.0", "eslint-plugin-standard": "^5.0.0",
"graphql": "^16.6.0", "graphql": "^16.6.0",
"graphql-tag": "^2.12.6", "graphql-tag": "^2.12.6",
"gsap": "^3.11.1", "gsap": "^3.11.3",
"jquery": "^3.6.1", "jquery": "^3.6.1",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
"localforage": "^1.10.0", "localforage": "^1.10.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"npm": "^8.19.1", "npm": "^9.1.1",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"pinia": "^2.0.22", "pinia": "^2.0.23",
"prerender-spa-plugin": "^3.4.0", "prerender-spa-plugin": "^3.4.0",
"quasar": "^2.7.7", "quasar": "^2.10.1",
"quasar-extras": "^2.0.9", "quasar-extras": "^2.0.9",
"register-service-worker": "^1.7.2", "register-service-worker": "^1.7.2",
"vee-validate": "^4.6.7", "vee-validate": "^4.7.2",
"vue": "^3.2.38", "vue": "^3.2.45",
"vue-chart-3": "^3.1.8", "vue-chart-3": "^3.1.8",
"vue-class-component": "^8.0.0-rc.1", "vue-class-component": "^8.0.0-rc.1",
"vue-country-code": "^1.1.3", "vue-country-code": "^1.1.3",
"vue-echarts": "^6.2.3", "vue-echarts": "^6.2.3",
"vue-i18n": "^9.2.2", "vue-i18n": "^9.2.2",
"vue-idb": "^0.2.0", "vue-idb": "^0.2.0",
"vue-loader": "^17.0.0", "vue-loader": "^17.0.1",
"vue-property-decorator": "^10.0.0-rc.3", "vue-property-decorator": "^10.0.0-rc.3",
"vue-router": "^4.1.5", "vue-router": "^4.1.6",
"vue-scroll-reveal": "^1.0.11", "vue-scroll-reveal": "^1.0.11",
"vue-svgicon": "^4.0.0-alpha.3", "vue-svgicon": "^4.0.0-alpha.3",
"vue2-dragula": "^2.5.5", "vue2-dragula": "^2.5.5",
"vuex": "^4.0.2", "vuex": "^4.1.0",
"vuex-router-sync": "^6.0.0-rc.1" "vuex-router-sync": "^6.0.0-rc.1"
}, },
"devDependencies": { "devDependencies": {
@@ -78,41 +80,41 @@
"@types/bcryptjs": "^2.4.2", "@types/bcryptjs": "^2.4.2",
"@types/dotenv": "^8.2.0", "@types/dotenv": "^8.2.0",
"@types/googlemaps": "^3.43.3", "@types/googlemaps": "^3.43.3",
"@types/jest": "^29.0.0", "@types/jest": "^29.2.2",
"@types/js-cookie": "^3.0.2", "@types/js-cookie": "^3.0.2",
"@types/node": "18.7.15", "@types/node": "18.11.9",
"@types/nprogress": "^0.2.0", "@types/nprogress": "^0.2.0",
"@types/vue-tel-input": "^2.1.2", "@types/vue-tel-input": "^2.1.2",
"@types/vuelidate": "^0.7.15", "@types/vuelidate": "^0.7.15",
"@typescript-eslint/eslint-plugin": "^5.36.2", "@typescript-eslint/eslint-plugin": "^5.42.1",
"@typescript-eslint/parser": "^5.36.2", "@typescript-eslint/parser": "^5.42.1",
"eslint": "^8.23.0", "eslint": "^8.27.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.0.1", "eslint-plugin-promise": "^6.1.1",
"eslint-plugin-vue": "^9.4.0", "eslint-plugin-vue": "^9.7.0",
"file-loader": "^6.2.0", "file-loader": "^6.2.0",
"html-webpack-plugin": "^5.5.0", "html-webpack-plugin": "^5.5.0",
"http-proxy-middleware": "^2.0.6", "http-proxy-middleware": "^2.0.6",
"jest": "^29.0.2", "jest": "^29.3.1",
"json-loader": "^0.5.7", "json-loader": "^0.5.7",
"node-sass": "7.0.1", "node-sass": "7.0.1",
"npm-check-updates": "^16.1.0", "npm-check-updates": "^16.3.25",
"optimize-css-assets-webpack-plugin": "^6.0.1", "optimize-css-assets-webpack-plugin": "^6.0.1",
"postcss": "^8.4.16", "postcss": "^8.4.19",
"postcss-loader": "^7.0.1", "postcss-loader": "^7.0.1",
"sass-loader": "^13.0.2", "sass-loader": "^13.2.0",
"strip-ansi": "=7.0.1", "strip-ansi": "=7.0.1",
"ts-jest": "^28.0.8", "ts-jest": "^29.0.3",
"ts-loader": "^9.3.1", "ts-loader": "^9.4.1",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-standard": "^9.0.0", "tslint-config-standard": "^9.0.0",
"tslint-loader": "^3.5.4", "tslint-loader": "^3.5.4",
"typescript": "^4.8.2", "typescript": "^4.8.4",
"vue-cli-plugin-element-ui": "^1.1.4", "vue-cli-plugin-element-ui": "^1.1.4",
"vueify": "^9.4.1", "vueify": "^9.4.1",
"webpack": "^5.74.0", "webpack": "^5.75.0",
"workbox-webpack-plugin": "^6.5.4" "workbox-webpack-plugin": "^6.5.4"
}, },
"browser": { "browser": {

View File

@@ -3,7 +3,7 @@
* the ES6 features that are supported by your Node version. https://node.green/ * the ES6 features that are supported by your Node version. https://node.green/
*/ */
// Configuration for your app // Configuration for your appanimated
// https://v2.quasar.dev/quasar-cli/quasar-conf-js // https://v2.quasar.dev/quasar-cli/quasar-conf-js
/* eslint-env node */ /* eslint-env node */
@@ -149,6 +149,7 @@ module.exports = configure((ctx) => ({
https: false, https: false,
port: 8090, port: 8090,
open: false, // opens browser window automatically open: false, // opens browser window automatically
// vueDevtools: true,
}, },
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
@@ -247,9 +248,9 @@ module.exports = configure((ctx) => ({
lang: 'it', // Quasar language lang: 'it', // Quasar language
}, },
// animations: 'all', // --- includes all animations animations: 'all', // --- includes all animations
// https://v2.quasar.dev/options/animations // https://v2.quasar.dev/options/animations
animations: [], // animations: [],
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
ssr: { ssr: {

View File

@@ -1,37 +1,11 @@
import { import {
IListRoutes, IListRoutes,
ILang, ILang,
IFunctionality,
IPreloadImages, IPreloadImages,
ISites,
} from '@model' } from '@model'
import { func } from '@store/Modules/fieldsTable' import { func } from '@store/Modules/fieldsTable'
const functionality: IFunctionality = {
PWA: true,
SHOW_USER_MENU: true, // Cambiare con true
SHOW_PROFILE: true,
SHOW_REG_BUTTON: true,
ENABLE_REGISTRATION: true,
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: true,
SHOW_COINS: true,
BOOKING_EVENTS: true,
ENABLE_ECOMMERCE: false,
ENABLE_REG_ISP: true,
ENABLE_GROUPS: true,
ENABLE_CIRCUITS: true,
SHOW_COMPETENZE: true,
ENABLE_VIEW_GROUPS: true,
ENABLE_VIEW_USERS: true,
ENABLE_VIEW_PROFILE: true,
}
// const SHOW_PROJINTHEMENU = false // const SHOW_PROJINTHEMENU = false
// //
@@ -57,435 +31,20 @@ const functionality: IFunctionality = {
// }) // })
// } // }
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[] { function getDynamicPages(site: ISites): IListRoutes[] {
const routes_todo: IListRoutes[] = []
const arrlista = [
{ nametranslate: 'personal', description: 'personal' },
{ nametranslate: 'work', description: 'work' },
{ nametranslate: 'shopping', description: 'shopping' },
]
const routes_admin: IListRoutes[] = [
{
active: true,
order: 10,
path: '/admin/sites',
materialIcon: 'event_seat',
name: 'pages.Sites',
component: () => import('@/rootgen/admin/sites/sites.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
},
{
active: true,
order: 1000,
path: '/admin/cfgserv',
materialIcon: 'event_seat',
name: 'pages.Admin',
component: () => import('@/views/admin/cfgServer/cfgServer.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
},
{
active: true,
order: 1020,
path: '/admin/dbop',
materialIcon: 'event_seat',
name: 'pages.dbop',
component: () => import('@/views/admin/dbop/dbop.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
},
{
active: true,
order: 1040,
path: '/admin/importfile',
materialIcon: 'event_seat',
name: 'otherpages.manage.importfile',
component: () => import('@/rootgen/admin/importdata/importdata.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true
}
]
const routes_newsletter: IListRoutes[] = [
{
active: true,
order: 10,
name: 'newsletter.template', path: '/admin/newsletter/templemail', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 20,
name: 'newsletter.sendemail', path: '/admin/newsletter/newnewsletter', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 30,
name: 'newsletter.check', path: '/admin/newsletter/check', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 40,
name: 'newsletter.sent', path: '/admin/newsletter/newslist', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 50,
name: 'newsletter.mailinglist', path: '/admin/newsletter/mailinglist', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 60,
name: 'newsletter.settings', path: '/admin/newsletter/settings', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 70,
name: 'newsletter.serversettings', path: '/admin/newsletter/main_settings', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
},
{
active: true,
order: 80,
name: 'newsletter.others', path: '/admin/newsletter/events', materialIcon: 'fas fa-users',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, onlyManager: true, noroute: true
}
]
const routes_ris: IListRoutes[] = [
{
active: true,
order: 10,
path: '/admin/ris/circuitslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.circuitslist',
component: () => import('@/rootgen/admin/circuitsList/circuitsList.vue'),
inmenu: true,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 20,
path: '/admin/ris/accountslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.accountslist',
component: () => import('@/rootgen/admin/accountsList/accountsList.vue'),
inmenu: true,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 30,
path: '/admin/ris/movslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.movslist',
component: () => import('@/rootgen/admin/movsList/movsList.vue'),
inmenu: true,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
]
const routes_manager: IListRoutes[] = [
{
active: site.confpages.bookingEventsfunctionality.BOOKING_EVENTS,
order: 70,
path: '/admin/usereventlist',
materialIcon: 'edit',
name: 'otherpages.admin.usereventlist',
component: () => import('@/rootgen/admin/eventlist/eventlist.vue'),
inmenu: site.confpages.bookingEvents,
submenu: site.confpages.bookingEvents,
level_parent: 0,
level_child: 0.5,
infooter: false,
onlyManager: true,
onlyConsiglio: true,
onlyAdmin: true
},
{
active: true,
order: 10,
path: '/admin/userlist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.userlist',
component: () => import('@/rootgen/admin/usersList/usersList.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
{
active: true,
order: 10,
path: '/admin/userpanel',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.userpanel',
component: () => import('@/rootgen/admin/userPanel/userPanel.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
/*
{
active: true,
order: 10,
path: '/admin/iscritticonacreis',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.iscritticonacreis',
component: () => import('@/rootgen/admin/iscritticonacreis/iscritticonacreis.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: true
},
*/
{
active: true,
path: '/admin/ris',
order: 60,
faIcon: 'fa fa-list-alt',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.monete',
routes2: routes_ris,
inmenu: false,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
solotitle: true,
onlyAdmin: true,
onlyManager: true
},
{
active: false,
order: 10,
path: '/admin/zoomlist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.zoomlist',
component: () => import('@/rootgen/admin/zoomList/zoomList.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyFacilitatore: false
},
{
active: true,
order: 27,
path: '/admin/tableslist',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.tableslist',
component: () => import('@/rootgen/admin/tablesList/tablesList.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
},
{
active: true,
order: 30,
path: '/admin/pages',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.pages',
component: () => import('@/rootgen/admin/pages/pages.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 32,
path: '/admin/home',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.elems',
component: () => import('@/rootgen/admin/editElems/editElems.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 30,
path: '/admin/bot',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.bot',
component: () => import('@/rootgen/admin/bot/bot.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
order: 30,
path: '/admin/confsite',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.confsite',
component: () => import('@/rootgen/admin/confsite/confsite.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyManager: true,
onlyEditor: true
},
{
active: true,
path: '/admin/newsletter',
order: 60,
faIcon: 'fa fa-list-alt',
materialIcon: 'fas fa-users',
name: 'otherpages.admin.newsletter',
routes2: routes_newsletter,
inmenu: false,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
solotitle: true,
onlyAdmin: true,
onlyManager: true
},
/*
{
active: functionality.ENABLE_ECOMMERCE,
path: '/admin/ecommerce',
order: 31,
faIcon: 'fa fa-list-alt',
materialIcon: 'next_week',
name: 'pages.admin_ecommerce',
routes2: routes_admin_ecommerce,
inmenu: false,
submenu: true,
level_parent: 0.5,
level_child: 0.5,
solotitle: true,
onlyAdmin: true,
onlyManager: true,
onlyDepartment: true
},
*/
{
active: true,
order: 35,
path: '/admin/msg_template',
materialIcon: 'fas fa-file-alt',
name: 'msgs.messages',
component: () => import('@/rootgen/admin/msg_template/msg_template.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
// onlyFacilitatore: true
},
{
active: true,
order: 1030,
path: '/admin/sendpushnotif',
materialIcon: 'event_seat',
name: 'otherpages.manage.sendpushnotif',
component: () => import('@/rootgen/admin/sendpushnotif/sendpushnotif.vue'),
level_parent: 0.0,
level_child: 0.5,
inmenu: true,
submenu: true,
onlyAdmin: true,
onlyManager: true,
},
{
active: true,
order: 40,
path: '/admin/gallery',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.gallery',
component: () => import('@/rootgen/admin/gallery/gallery.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
},
{
active: true,
order: 50,
path: '/admin/media',
materialIcon: 'fas fa-file-alt',
name: 'otherpages.admin.media',
component: () => import('@/rootgen/admin/uploader/uploader.vue'),
inmenu: true,
submenu: true,
level_parent: 0,
level_child: 0.5,
onlyAdmin: true,
onlyManager: true
},
]
const baseroutes: IListRoutes[] = [ const baseroutes: IListRoutes[] = [
{ {
active: true, active: true,
@@ -598,7 +157,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: true, infooter: true,
}, },
{ {
active: site.confpages.enableGroups, active: site.confpages && site.confpages.enableGroups,
order: 132, order: 132,
path: '/groups', path: '/groups',
materialIcon: 'fas fa-users', materialIcon: 'fas fa-users',
@@ -609,7 +168,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
infooter: true, infooter: true,
}, },
{ {
active: site.confpages.enableCircuits, active: site.confpages && site.confpages.enableCircuits,
order: 133, order: 133,
path: '/circuits', path: '/circuits',
materialIcon: 'fas fa-coins', materialIcon: 'fas fa-coins',
@@ -705,211 +264,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true, inmenu: true,
infooter: true, infooter: true,
}, },
{
active: true,
order: 200,
path: '/notifs',
materialIcon: 'fas fa-user',
name: 'pages.notifs',
component: () => import('@/views/user/usernotifs/usernotifs.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
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: 400,
path: '/testlocal',
materialIcon: 'fas fa-test',
name: 'mypages.TestLocal',
component: () => import('@/views/test/test.vue'),
meta: { requiresAuth: true },
inmenu: false,
infooter: false,
},
{
active: true,
order: 2000,
path: '/admin',
materialIcon: 'fas fa-user-shield',
name: 'otherpages.admin.menu',
inmenu: true,
routes2: routes_admin,
solotitle: true,
infooter: false,
onlyAdmin: true
},
...routes_admin,
{
active: true,
order: 2110,
path: '/manage',
materialIcon: 'fas fa-users-cog',
name: 'otherpages.manage.menu',
inmenu: true,
routes2: routes_manager,
solotitle: true,
infooter: false,
onlyAdmin: true,
onlyManager: true,
onlyFacilitatore: true,
onlyEditor: true
},
...routes_manager,
{
active: true,
order: 1000,
path: '/404error',
materialIcon: 'fas fa-calendar-plus',
name: 'otherpages.error404',
component: () => import('@/root/My404page/My404page.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 2000,
path: '/policy',
materialIcon: 'fas fa-user',
name: 'pages.policy',
component: () => import('@src/root/policy/policy.vue'),
inmenu: false,
infooter: true
},
{
active: site.confpages.enableRegByBot && site.confpages.enabledRegNeedTelegram,
order: 1000,
path: '/signup/:invited/:usernameteleg/:idteleg/:regexpire',
materialIcon: 'how_to_reg',
name: 'pages.SignUp',
component: () => import('@/views/login/signup/signup.vue'),
inmenu: false,
infooter: false,
separator: false
},
{
active: site.confpages.enableRegByBot && site.confpages.enabledRegNeedTelegram,
order: 1000,
path: '/signup/:invited/:usernameteleg/:idteleg',
materialIcon: 'how_to_reg',
name: 'pages.SignUp4',
component: () => import('@/views/login/signup/signup.vue'),
inmenu: false,
infooter: false,
separator: false
},
{
active: site.confpages.enableRegByBot,
order: 1000,
path: '/bot',
materialIcon: 'how_to_reg',
name: 'pages.SignUpBot',
inmenu: site.confpages.enableRegByBot,
infooter: site.confpages.enableRegByBot,
separator: false
},
/*{
active: site.confpages.enableRegByBot && !functionality.ENABLE_REG_NEED_TELEGRAM,
order: 1000,
path: '/signup',
materialIcon: 'how_to_reg',
name: 'pages.SignUp',
component: () => import('@/views/login/signup/signup_noteleg.vue'),
inmenu: false,
infooter: false,
separator: false
},*/
{
active: true,
order: 1001,
path: '/signup/:invited',
materialIcon: 'how_to_reg',
name: 'pages.SignUp2',
component: () => import('@/views/login/signup/signup.vue'),
inmenu: false,
infooter: false,
separator: false
},
{
active: true,
order: 1002,
path: '/signup/:invited/:regexpire',
materialIcon: 'how_to_reg',
name: 'pages.SignUp3',
component: () => import('@/views/login/signup/signup.vue'),
inmenu: false,
infooter: false,
separator: false
},
{
active: site.confpages.enableRegByBot,
order: 2000,
path: '/regok',
materialIcon: 'how_to_reg',
name: 'pages.regok',
component: () => import('@/views/login/regok/regok.vue'),
inmenu: false,
infooter: false,
separator: false,
},
{
active: true,
order: 1000,
path: '/signin',
materialIcon: 'account_circle',
name: 'pages.SignIn',
component: () => import('@/views/login/signin_noreg/signin_noreg.vue'),
inmenu: true,
infooter: true
},
// --- NOT IN MENU: ---
{
active: true,
order: 1000,
path: '/vreg',
name: 'pages.vreg',
component: () => import('@/views/login/vreg/vreg.vue')
},
{
active: true,
order: 1000,
path: '/requestresetpwd',
name: 'pages.requestresetpwd',
component: () => import('@/views/requestresetpwd/requestresetpwd.vue')
},
{
active: true,
order: 1000,
path: '/updatepassword',
name: 'pages.updatepassword',
component: () => import('@/views/updatepassword/updatepassword.vue')
},
{
active: true,
order: 1000,
path: '/offline',
name: 'Offline',
component: () => import('@/views/offline/offline.vue')
},
{
active: true,
path: '/separator',
name: 'separator',
order: 35,
isseparator: true,
inmenu: true,
},
{ {
active: true, active: true,
order: 80, order: 80,
@@ -921,82 +275,31 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: true, inmenu: true,
infooter: true infooter: true
}, },
{
active: true,
order: 1000,
path: '/admin/newsletter/:idparam',
materialIcon: 'event',
name: 'pages.newsletter.menu',
component: () => import('@/rootgen/admin/newsletter/newsletter.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 90,
path: '/event/:typol/:eventid',
materialIcon: 'event',
name: 'pages.evento',
component: () => import('@/root/evento/evento.vue'),
inmenu: false,
infooter: false
},
{
active: true,
order: 110,
path: '/event/:typol',
materialIcon: 'event',
name: 'pages.eventodef',
component: () => import('@/root/evento/evento.vue'),
inmenu: false,
infooter: false
},
] ]
return baseroutes return baseroutes
} }
const arrLangUsed = [
'it',
// 'enUs',
// 'es',
]
export function firstimagehome() { export function firstimagehome() {
let img = 'statics/images/background.jpg' let img = 'statics/images/background.jpg'
return img return img
} }
const lang_available: ILang[] = [
{
label: 'Italiano', icon: 'fa-flag-it', value: 'it', image: '../images/it.png', short: 'IT',
},
/*{
label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../images/gb.png', short: 'EN',
},
{
label: 'Español', icon: 'fa-flag-es', value: 'es', image: '../images/es.png', short: 'ES',
},
*/
// { label: 'Français', icon: 'fa-facebook', value: 'fr', image: '../public/images/fr.png', short: 'FR' }
// { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../public/images/de.png', short: 'DE' },
]
const preLoadImages: IPreloadImages[] = [] const preLoadImages: IPreloadImages[] = []
export const lang_available: ILang[] = []
export const arrLangUsed: string[] = []
export const preloadedimages = [] export const preloadedimages = []
export const routes: IListRoutes[] = [] export const routes: IListRoutes[] = [firstPage]
export const static_data = { export const static_data = {
routes, routes,
arrLangUsed,
getDynamicPages, getDynamicPages,
functionality,
lang_available, lang_available,
preLoadImages, preLoadImages,
arrLangUsed,
preloadedimages, preloadedimages,
} }

View File

@@ -174,7 +174,7 @@
</div> </div>
<section class="maxwidth padding_gallery bg-white text-grey-10 text-center" > <section :class="`maxwidth padding_gallery `+ ($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-grey-10 text-center`" >
<q-carousel <q-carousel
swipeable swipeable

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 190 KiB

View File

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View File

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View File

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

View File

@@ -125,7 +125,7 @@
</div> </div>
<section class="padding_gallery bg-white text-grey-10 text-center"> <section :class="$q.dark.isActive ? `bg-black` : `bg-white` + ` padding_gallery text-grey-10 text-center`">
<q-carousel <q-carousel
swipeable swipeable

View File

@@ -1,9 +1,9 @@
{ {
"name": "kolibrilab", "name": "riso",
"version": "0.5.3", "version": "0.5.3",
"description": "kolibrilab", "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": "kolibrilab", "productName": "Riso",
"author": "Surya Paolo", "author": "Paolo Arena",
"private": true, "private": true,
"keywords": [], "keywords": [],
"license": "MIT", "license": "MIT",
@@ -18,61 +18,60 @@
"fix": "eslint --ext .ts,.vue --ignore-path .gitignore ./ --fix > 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", "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", "spa": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
"spanorefresh": "NODE_ENV=development NODE_OPTIONS=--max_old_space_size=4096 DEBUG=v8:* quasar dev -m spa",
"test": "echo \"No test specified\" && exit 0", "test": "echo \"No test specified\" && exit 0",
"generate-sw": "workbox generateSW workbox-config.js" "generate-sw": "workbox generateSW workbox-config.js"
}, },
"dependencies": { "dependencies": {
"@quasar/extras": "^1.15.5", "@quasar/extras": "^1.15.2",
"@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13", "@quasar/quasar-ui-qcalendar": "^4.0.0-beta.13",
"@vue-leaflet/vue-leaflet": "^0.6.1", "@vue-leaflet/vue-leaflet": "^0.6.1",
"@vue/compat": "^3.2.45", "@vue/compat": "^3.2.38",
"@vue/compiler-sfc": "^3.2.45", "@vue/compiler-sfc": "^3.2.38",
"@vue/eslint-config-standard": "7.0.0", "@vue/eslint-config-standard": "7.0.0",
"@vuelidate/core": "^2.0.0", "@vuelidate/core": "^2.0.0-alpha.44",
"@vuelidate/validators": "^2.0.0", "@vuelidate/validators": "^2.0.0-alpha.31",
"acorn": "^8.8.1", "acorn": "^8.8.0",
"animate.css": "^4.1.1", "autoprefixer": "^10.4.8",
"autoprefixer": "^10.4.13", "axios": "^0.27.2",
"axios": "^1.1.3",
"bcryptjs": "^2.4.3", "bcryptjs": "^2.4.3",
"chart.js": "^3.9.1", "chart.js": "^3.9.1",
"core-js": "^3.26.0", "core-js": "^3.25.0",
"date-fns": "^2.29.3", "crypto": "^1.0.1",
"dotenv": "^16.0.3", "date-fns": "^2.29.2",
"echarts": "^5.4.0", "dotenv": "^16.0.2",
"echarts": "^5.3.3",
"eslint-plugin-quasar": "^1.1.0", "eslint-plugin-quasar": "^1.1.0",
"eslint-plugin-standard": "^5.0.0", "eslint-plugin-standard": "^5.0.0",
"graphql": "^16.6.0", "graphql": "^16.6.0",
"graphql-tag": "^2.12.6", "graphql-tag": "^2.12.6",
"gsap": "^3.11.3", "gsap": "^3.11.1",
"jquery": "^3.6.1", "jquery": "^3.6.1",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
"localforage": "^1.10.0", "localforage": "^1.10.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"npm": "^9.1.1", "npm": "^8.19.1",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
"pinia": "^2.0.23", "pinia": "^2.0.22",
"prerender-spa-plugin": "^3.4.0", "prerender-spa-plugin": "^3.4.0",
"quasar": "^2.10.1", "quasar": "^2.7.7",
"quasar-extras": "^2.0.9", "quasar-extras": "^2.0.9",
"register-service-worker": "^1.7.2", "register-service-worker": "^1.7.2",
"vee-validate": "^4.7.2", "vee-validate": "^4.6.7",
"vue": "^3.2.45", "vue": "^3.2.38",
"vue-chart-3": "^3.1.8", "vue-chart-3": "^3.1.8",
"vue-class-component": "^8.0.0-rc.1", "vue-class-component": "^8.0.0-rc.1",
"vue-country-code": "^1.1.3", "vue-country-code": "^1.1.3",
"vue-echarts": "^6.2.3", "vue-echarts": "^6.2.3",
"vue-i18n": "^9.2.2", "vue-i18n": "^9.2.2",
"vue-idb": "^0.2.0", "vue-idb": "^0.2.0",
"vue-loader": "^17.0.1", "vue-loader": "^17.0.0",
"vue-property-decorator": "^10.0.0-rc.3", "vue-property-decorator": "^10.0.0-rc.3",
"vue-router": "^4.1.6", "vue-router": "^4.1.5",
"vue-scroll-reveal": "^1.0.11", "vue-scroll-reveal": "^1.0.11",
"vue-svgicon": "^4.0.0-alpha.3", "vue-svgicon": "^4.0.0-alpha.3",
"vue2-dragula": "^2.5.5", "vue2-dragula": "^2.5.5",
"vuex": "^4.1.0", "vuex": "^4.0.2",
"vuex-router-sync": "^6.0.0-rc.1" "vuex-router-sync": "^6.0.0-rc.1"
}, },
"devDependencies": { "devDependencies": {
@@ -80,41 +79,41 @@
"@types/bcryptjs": "^2.4.2", "@types/bcryptjs": "^2.4.2",
"@types/dotenv": "^8.2.0", "@types/dotenv": "^8.2.0",
"@types/googlemaps": "^3.43.3", "@types/googlemaps": "^3.43.3",
"@types/jest": "^29.2.2", "@types/jest": "^29.0.0",
"@types/js-cookie": "^3.0.2", "@types/js-cookie": "^3.0.2",
"@types/node": "18.11.9", "@types/node": "18.7.15",
"@types/nprogress": "^0.2.0", "@types/nprogress": "^0.2.0",
"@types/vue-tel-input": "^2.1.2", "@types/vue-tel-input": "^2.1.2",
"@types/vuelidate": "^0.7.15", "@types/vuelidate": "^0.7.15",
"@typescript-eslint/eslint-plugin": "^5.42.1", "@typescript-eslint/eslint-plugin": "^5.36.2",
"@typescript-eslint/parser": "^5.42.1", "@typescript-eslint/parser": "^5.36.2",
"eslint": "^8.27.0", "eslint": "^8.23.0",
"eslint-config-prettier": "^8.5.0", "eslint-config-prettier": "^8.5.0",
"eslint-plugin-import": "^2.26.0", "eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0", "eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.0.1",
"eslint-plugin-vue": "^9.7.0", "eslint-plugin-vue": "^9.4.0",
"file-loader": "^6.2.0", "file-loader": "^6.2.0",
"html-webpack-plugin": "^5.5.0", "html-webpack-plugin": "^5.5.0",
"http-proxy-middleware": "^2.0.6", "http-proxy-middleware": "^2.0.6",
"jest": "^29.3.1", "jest": "^29.0.2",
"json-loader": "^0.5.7", "json-loader": "^0.5.7",
"node-sass": "7.0.1", "node-sass": "7.0.1",
"npm-check-updates": "^16.3.25", "npm-check-updates": "^16.1.0",
"optimize-css-assets-webpack-plugin": "^6.0.1", "optimize-css-assets-webpack-plugin": "^6.0.1",
"postcss": "^8.4.19", "postcss": "^8.4.16",
"postcss-loader": "^7.0.1", "postcss-loader": "^7.0.1",
"sass-loader": "^13.2.0", "sass-loader": "^13.0.2",
"strip-ansi": "=7.0.1", "strip-ansi": "=7.0.1",
"ts-jest": "^29.0.3", "ts-jest": "^28.0.8",
"ts-loader": "^9.4.1", "ts-loader": "^9.3.1",
"tslint": "^6.1.3", "tslint": "^6.1.3",
"tslint-config-standard": "^9.0.0", "tslint-config-standard": "^9.0.0",
"tslint-loader": "^3.5.4", "tslint-loader": "^3.5.4",
"typescript": "^4.8.4", "typescript": "^4.8.2",
"vue-cli-plugin-element-ui": "^1.1.4", "vue-cli-plugin-element-ui": "^1.1.4",
"vueify": "^9.4.1", "vueify": "^9.4.1",
"webpack": "^5.75.0", "webpack": "^5.74.0",
"workbox-webpack-plugin": "^6.5.4" "workbox-webpack-plugin": "^6.5.4"
}, },
"browser": { "browser": {

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: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 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

@@ -3,7 +3,7 @@
* the ES6 features that are supported by your Node version. https://node.green/ * the ES6 features that are supported by your Node version. https://node.green/
*/ */
// Configuration for your appanimated // Configuration for your app
// https://v2.quasar.dev/quasar-cli/quasar-conf-js // https://v2.quasar.dev/quasar-cli/quasar-conf-js
/* eslint-env node */ /* eslint-env node */
@@ -147,9 +147,8 @@ module.exports = configure((ctx) => ({
}, },
devServer: { devServer: {
https: false, https: false,
port: 8090, port: 8084,
open: false, // opens browser window automatically open: false, // opens browser window automatically
// vueDevtools: true,
}, },
// https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework // https://v2.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
@@ -248,9 +247,9 @@ module.exports = configure((ctx) => ({
lang: 'it', // Quasar language lang: 'it', // Quasar language
}, },
animations: 'all', // --- includes all animations // animations: 'all', // --- includes all animations
// https://v2.quasar.dev/options/animations // https://v2.quasar.dev/options/animations
// animations: [], animations: [],
// https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr // https://v2.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
ssr: { ssr: {
@@ -276,6 +275,77 @@ module.exports = configure((ctx) => ({
}, },
// https://v2.quasar.dev/quasar-cli/developing-pwa/configuring-pwa // 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: '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/riso-android-icon-512x512.png',
sizes: '512x512',
type: 'image/png',
},
{
src: 'images/riso-android-icon-384x384.png',
sizes: '384x384',
type: 'image/png',
},
{
src: 'images/riso-android-icon-192x192.png',
sizes: '192x192',
type: 'image/png',
},
{
src: 'images/riso-android-icon-144x144.png',
sizes: '144x144',
type: 'image/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',
},
],
},
},
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova // Full list of options: https://v2.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
cordova: { cordova: {
@@ -289,5 +359,37 @@ module.exports = configure((ctx) => ({
// Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron // Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
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: 'Riso',
},
// "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

@@ -36,7 +36,7 @@ export default {
const site = computed(() => globalStore.site) const site = computed(() => globalStore.site)
watch(() => finishLoading.value, (newval: boolean, oldval: boolean) => { watch(() => finishLoading.value, (newval: boolean, oldval: boolean) => {
console.log('watch finished', newval) // console.log('watch finished', newval)
if (newval) { if (newval) {
tools.updateFonts() tools.updateFonts()

View File

@@ -1,6 +1,6 @@
<template> <template>
<div class="q-ma-sm"> <div class="q-ma-sm">
<div class="bg-white column cursor-pointer" @click="copytoclip"> <div :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` column cursor-pointer`" @click="copytoclip">
<q-field outlined :label="title" stack-label class="text-center cursor-pointer" label-color="blue"> <q-field outlined :label="title" stack-label class="text-center cursor-pointer" label-color="blue">
<template v-slot:prepend v-if="!tools.isMobile()"> <template v-slot:prepend v-if="!tools.isMobile()">
<q-btn round dense flat icon="far fa-copy"/> <q-btn round dense flat icon="far fa-copy"/>

View File

@@ -22,7 +22,6 @@ $graytext: #555;
} }
.flex-container { .flex-container {
background-color: #ccc;
padding: 10px; padding: 10px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@@ -33,12 +32,12 @@ $graytext: #555;
background-color: #9f9f9f; background-color: #9f9f9f;
padding: 10px; padding: 10px;
margin: 10px; margin: 10px;
color: #fff; // color: #fff;
font-size: 1rem; font-size: 1rem;
} }
.cal { .cal {
color: black; // color: black;
font-size: 0.75rem; font-size: 0.75rem;
font-weight: 400; font-weight: 400;
line-height: 1.25rem; line-height: 1.25rem;
@@ -118,14 +117,12 @@ $graytext: #555;
} }
.listaev { .listaev {
color: black;
font-size: 0.75rem; font-size: 0.75rem;
font-weight: 400; font-weight: 400;
line-height: 1.25rem; line-height: 1.25rem;
letter-spacing: 0.03333em; letter-spacing: 0.03333em;
&__date { &__date {
color: #061220;
font-size: 1rem; font-size: 1rem;
} }
@@ -139,6 +136,10 @@ $graytext: #555;
color: black; color: black;
} }
&__details_darktheme {
color: white;
}
&__tdimg { &__tdimg {
width: 150px; width: 150px;
height: 150px; height: 150px;
@@ -164,7 +165,7 @@ $graytext: #555;
} }
&__table tr:hover { &__table tr:hover {
background-color: #deecef; // background-color: #deecef;
} }
&__align_center_mobile { &__align_center_mobile {
@@ -287,7 +288,7 @@ $graytext: #555;
} }
.mysel { .mysel {
color: white; color: skyblue;
} }
.myflex { .myflex {

View File

@@ -1021,6 +1021,7 @@ export default defineComponent({
editEvent, editEvent,
EState, EState,
CancelBookingEvent, CancelBookingEvent,
site: globalStore.site,
} }
} }
}) })

View File

@@ -62,7 +62,7 @@
class="shadow-5 q-mb-md" dense> class="shadow-5 q-mb-md" dense>
{{ myevent.title }} {{ myevent.title }}
</q-chip> </q-chip>
<div class="cal__details" v-html="myevent.details"></div> <div :class="`cal__details`+ ($q.dark.isActive ? `_darktheme`: ``)" v-html="myevent.details"></div>
<div v-if="myevent.teacher" class="cal__teacher"> <div v-if="myevent.teacher" class="cal__teacher">
<span class="cal__teacher-title">{{ $t('cal.teacher') }}: <span <span class="cal__teacher-title">{{ $t('cal.teacher') }}: <span
class="margin_with"></span></span> class="margin_with"></span></span>
@@ -820,7 +820,7 @@
<div style="margin: 10px;"></div> <div style="margin: 10px;"></div>
<p class="listaev__details" v-html="event.details"></p> <p :class="`listaev__details` + $q.dark.isActive ? `_darktheme`: ``" v-html="event.details"></p>
<div v-if="event.teacher" class=""> <div v-if="event.teacher" class="">
<span class="cal__teacher-title">{{ $t('cal.teacher') }}: <span <span class="cal__teacher-title">{{ $t('cal.teacher') }}: <span
class="margin_with"></span></span> class="margin_with"></span></span>

View File

@@ -145,13 +145,13 @@
<q-space/> <q-space/>
<q-btn dense flat icon="minimize" @click="maximizedToggle = false" :disable="!maximizedToggle"> <q-btn dense flat icon="minimize" @click="maximizedToggle = false" :disable="!maximizedToggle">
<q-tooltip v-if="maximizedToggle" class="bg-white text-primary">Minimize</q-tooltip> <q-tooltip v-if="maximizedToggle" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Minimize</q-tooltip>
</q-btn> </q-btn>
<q-btn dense flat icon="crop_square" @click="maximizedToggle = true" :disable="maximizedToggle"> <q-btn dense flat icon="crop_square" @click="maximizedToggle = true" :disable="maximizedToggle">
<q-tooltip v-if="!maximizedToggle" class="bg-white text-primary">Maximize</q-tooltip> <q-tooltip v-if="!maximizedToggle" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Maximize</q-tooltip>
</q-btn> </q-btn>
<q-btn dense flat icon="close" v-close-popup> <q-btn dense flat icon="close" v-close-popup>
<q-tooltip class="bg-white text-primary">Close</q-tooltip> <q-tooltip :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Close</q-tooltip>
</q-btn> </q-btn>
</q-bar> </q-bar>

View File

@@ -520,7 +520,7 @@ export default defineComponent({
} }
} }
console.log('sortBy', sortBy) // console.log('sortBy', sortBy)
const filtersearch: any[] = [] const filtersearch: any[] = []
const filtersearch2: any[] = [] const filtersearch2: any[] = []
@@ -563,7 +563,7 @@ export default defineComponent({
if (searchList.value) { if (searchList.value) {
recSkill = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSKILLS) recSkill = searchList.value.find((item: ISearchList) => item.table === toolsext.TABSKILLS)
idSkill = recSkill ? recSkill.value : 0 idSkill = recSkill ? recSkill.value : 0
console.log('recSkill', idSkill) // console.log('recSkill', idSkill)
} }
@@ -993,7 +993,7 @@ export default defineComponent({
if (startsearch.value) if (startsearch.value)
return false return false
console.log('REFRESH!') // console.log('REFRESH!')
startsearch.value = true startsearch.value = true
@@ -1065,9 +1065,7 @@ export default defineComponent({
} }
function tableClass() { function tableClass() {
if (dark) { return ($q.dark.isActive ? 'bg-black' : 'bg-white')
return 'bg-black'
}
} }
function selItem(item: any, col: IColGridTable, inmodif?: boolean) { function selItem(item: any, col: IColGridTable, inmodif?: boolean) {
@@ -1476,7 +1474,7 @@ export default defineComponent({
} }
function changeTable(mysel: any) { function changeTable(mysel: any) {
console.log('changeTable', tablesel.value) // console.log('changeTable', tablesel.value)
changetable.value = true changetable.value = true
if (tablesel.value === undefined || tablesel.value === '') if (tablesel.value === undefined || tablesel.value === '')
return return
@@ -1576,12 +1574,12 @@ export default defineComponent({
} }
} }
console.log('REFRR - changetable') // console.log('REFRR - changetable')
refresh() refresh()
} }
function doSearch() { function doSearch() {
console.log('REFRR - doSearch') // console.log('REFRR - doSearch')
refresh() refresh()
} }
@@ -1916,7 +1914,7 @@ export default defineComponent({
function onLoadScroll (index: number, done: any) { function onLoadScroll (index: number, done: any) {
if (index > 1) { if (index > 1) {
console.log('onLoadScroll', index, 'RECLOAD', numRecLoaded.value, 'ROWS: ', pagination.value.rowsNumber) // console.log('onLoadScroll', index, 'RECLOAD', numRecLoaded.value, 'ROWS: ', pagination.value.rowsNumber)
if (numRecLoaded.value < pagination.value.rowsNumber || (pagination.value.rowsNumber <= 0 && clickbuttsearch.value)) { if (numRecLoaded.value < pagination.value.rowsNumber || (pagination.value.rowsNumber <= 0 && clickbuttsearch.value)) {
if (pagination.value.rowsNumber === 0) { if (pagination.value.rowsNumber === 0) {
pagination.value.page = 0 pagination.value.page = 0

View File

@@ -782,7 +782,7 @@
<div v-if="showColCheck(mycol, tools.TIPOVIS_SHOW_RECORD, false)"> <div v-if="showColCheck(mycol, tools.TIPOVIS_SHOW_RECORD, false)">
<div class="row items-center justify-center q-gutter-md q-ma-xs"> <div class="row items-center justify-center q-gutter-md q-ma-xs">
<div class="q-ma-xs"> <div class="q-ma-xs">
<q-field rounded outlined :bg-color="$q.dark.isActive ? '' : 'orange-3'" dense> <q-field rounded outlined :bg-color="($q.dark.isActive ? '' : 'orange-3')" dense>
<template v-slot:control> <template v-slot:control>
<div class="self-center full-width no-outline" tabindex="0">{{ mycol.label }}</div> <div class="self-center full-width no-outline" tabindex="0">{{ mycol.label }}</div>
</template> </template>

View File

@@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<section class="padding_testo bg-white text-grey-10 text-justify"> <!-- v-scroll-reveal.reset --> <section :class="`padding_testo ` + ($q.dark.isActive ? `bg-black`: `bg-white`) + ` text-grey-10 text-justify`"> <!-- v-scroll-reveal.reset -->
<div :class="myclass"> <div :class="myclass">
<div :class="clrowcol + ` q-px-xs`"> <div :class="clrowcol + ` q-px-xs`">
<q-img v-if="src" :src="src" class="" :style="style1" :alt="alt1"></q-img> <q-img v-if="src" :src="src" class="" :style="style1" :alt="alt1"></q-img>

View File

@@ -3,7 +3,7 @@
<div class="row items-center justify-center q-gutter-md q-ma-xs"> <div class="row items-center justify-center q-gutter-md q-ma-xs">
<div class="q-ma-xs"> <div class="q-ma-xs">
<q-field rounded outlined :bg-color="$q.dark.isActive ? '' : 'blue-4'" dense style="min-width:110px;"> <q-field rounded outlined :bg-color="($q.dark.isActive ? '' : 'blue-4')" dense style="min-width:110px;">
<template v-slot:control> <template v-slot:control>
<div class="centermydiv"> <div class="centermydiv">
<div class="self-center full-width no-outline text-center" tabindex="0">{{ mykey }}</div> <div class="self-center full-width no-outline text-center" tabindex="0">{{ mykey }}</div>

View File

@@ -5,7 +5,7 @@
<q-card class="dialog_card q-mb-lg" v-if="myrec"> <q-card class="dialog_card q-mb-lg" v-if="myrec">
<q-footer <q-footer
class="bg-white small-screen-only text-center" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` small-screen-only text-center`"
bordered bordered
> >
<q-btn push rounded color="primary" icon="close" label="Chiudi" v-close-popup></q-btn> <q-btn push rounded color="primary" icon="close" label="Chiudi" v-close-popup></q-btn>

View File

@@ -4,7 +4,7 @@
<q-footer <q-footer
v-if="!nopopup" v-if="!nopopup"
class="bg-white small-screen-only text-center" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` small-screen-only text-center`"
bordered bordered
> >
<q-btn push rounded color="primary" icon="close" label="Chiudi" v-close-popup></q-btn> <q-btn push rounded color="primary" icon="close" label="Chiudi" v-close-popup></q-btn>

View File

@@ -58,7 +58,7 @@ export default defineComponent({
const filtroutente = ref(<any[]>[]) const filtroutente = ref(<any[]>[])
const listcircuitsfiltered = computed(() => { const listcircuitsfiltered = computed(() => {
console.log('list modif') // console.log('list modif')
return updateListCircuit() return updateListCircuit()
}) })

View File

@@ -287,7 +287,7 @@
</div> </div>
</div> </div>
<div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS"> <div v-else-if="myel.type === shared_consts.ELEMTYPE.CAROUSEL_IMGS">
<section class="padding_gallery bg-white text-grey-10 text-center"> <section :class="($q.dark.isActive ? `bg-black text-white` : `bg-white text-grey-10`) + ` padding_gallery text-center`">
<div <div
:class="myel.class + (editOn ? ` clEdit` : ``) + getClass()" :class="myel.class + (editOn ? ` clEdit` : ``) + getClass()"
@click="clickOnElem" @click="clickOnElem"

View File

@@ -3,7 +3,7 @@
<div class="row items-center justify-center q-gutter-md q-ma-xs"> <div class="row items-center justify-center q-gutter-md q-ma-xs">
<div v-if="title" class="q-ma-xs"> <div v-if="title" class="q-ma-xs">
<q-field rounded outlined :bg-color="$q.dark.isActive ? '' : 'blue-4'" dense style="min-width:110px;"> <q-field rounded outlined :bg-color="($q.dark.isActive ? '' : 'blue-4')" dense style="min-width:110px;">
<template v-slot:control> <template v-slot:control>
<div class="centermydiv"> <div class="centermydiv">
<div v-if="myimg" class="text-center"> <div v-if="myimg" class="text-center">

View File

@@ -171,7 +171,7 @@ export default defineComponent({
if (arrk.length > 2) if (arrk.length > 2)
mysubsubkey.value = arrk[2] mysubsubkey.value = arrk[2]
} }
console.log('### table', props.table, 'col.value', col.value, 'field', props.field, 'mykey', mykey.value) // console.log('### table', props.table, 'col.value', col.value, 'field', props.field, 'mykey', mykey.value)
} }

View File

@@ -1,7 +1,7 @@
<template> <template>
<div v-if="visuElem()" :class="mytitle ? `row items-center justify-center q-ma-xs text-center` : ``"> <div v-if="visuElem()" :class="mytitle ? `row items-center justify-center q-ma-xs text-center` : ``">
<div v-if="mytitle" class="q-ma-xs"> <div v-if="mytitle" class="q-ma-xs">
<q-field rounded outlined :bg-color="$q.dark.isActive ? '' : 'blue-4'" dense style="min-width:110px;"> <q-field rounded outlined :bg-color="($q.dark.isActive ? '' : 'blue-4')" dense style="min-width:110px;">
<template v-slot:control> <template v-slot:control>
<div class="centermydiv"> <div class="centermydiv">
<div v-if="myimg" class="text-center"> <div v-if="myimg" class="text-center">

View File

@@ -203,8 +203,10 @@ export default defineComponent({
default: '', default: '',
}, },
}, },
components: { CMyChipList, CDateTime, CDate, CMyToggleList, CMySelect, CMyEditor, CGallery, components: {
CCurrencyValue, CLabel, CAccomodation, CSelectImage }, CMyChipList, CDateTime, CDate, CMyToggleList, CMySelect, CMyEditor, CGallery,
CCurrencyValue, CLabel, CAccomodation, CSelectImage
},
setup(props, { emit }) { setup(props, { emit }) {
const $q = useQuasar() const $q = useQuasar()
const { t } = useI18n() const { t } = useI18n()
@@ -496,6 +498,20 @@ export default defineComponent({
console.log('SaveValueInt', newVal, valinitial) console.log('SaveValueInt', newVal, valinitial)
if (props.tablesel) {
if (true) {
let mystrcol = '_id'
const mycol = fieldsTable.getColByTable(props.tablesel, mystrcol);
if (mycol) {
if (newVal)
newVal = newVal[mystrcol]
}
}
}
if (isFieldDb()) { if (isFieldDb()) {
savefield(newVal, valinitial, $q) savefield(newVal, valinitial, $q)
} else { } else {
@@ -515,11 +531,12 @@ export default defineComponent({
} }
} }
} }
emit('save', newVal, valinitial) emit('save', newVal, valinitial)
} }
function savefield(value: any, initialval: any, myq: any) { function savefield(value: any, initialval: any, myq: any) {
if (!props.insertMode) { if (!props.insertMode) {
myvalue.value = value myvalue.value = value

View File

@@ -2,7 +2,8 @@
<template> <template>
<div class="q-py-xs centermydiv cardrec" <div class="q-py-xs centermydiv cardrec"
:style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)"> :style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)">
<q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1"> <q-item v-if="myrec" clickable v-ripple :class="`shadow-2 q-btn--rounded ` + ($q.dark.isActive ? `bg-black`: `bg-teal-1`)">
<q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos && myrec.photos.length > 0)" avatar <q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos && myrec.photos.length > 0)" avatar

View File

@@ -2,7 +2,7 @@
<div class="q-py-xs centermydiv cardrec" <div class="q-py-xs centermydiv cardrec"
:style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)"> :style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)">
<q-item v-if="circuit" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1"> <q-item v-if="circuit" clickable v-ripple :class="`shadow-2 q-btn--rounded ` + ($q.dark.isActive ? `bg-black`: `bg-teal-1`)">
<q-item-section v-if="circuit.photos" avatar <q-item-section v-if="circuit.photos" avatar
@click="cmdExt(costanti.CMD_OPEN_PAGE, circuit)"> @click="cmdExt(costanti.CMD_OPEN_PAGE, circuit)">

View File

@@ -2,7 +2,7 @@
<div class="q-py-xs centermydiv cardrec" <div class="q-py-xs centermydiv cardrec"
:style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)"> :style="`max-width: `+ (tools.getwidth($q) - 20) +`px; ` + ($q.screen.lt.sm ? (`min-width: `+ (tools.getwidth($q) - 20) +`px;`) : ``)">
<q-item v-if="myrec" clickable v-ripple class="shadow-2 q-btn--rounded bg-teal-1"> <q-item v-if="myrec" clickable v-ripple :class="`shadow-2 q-btn--rounded `+ ($q.dark.isActive ? `bg-black`: `bg-teal-1`)">
<q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos && myrec.photos.length > 0)" avatar <q-item-section v-if="(shared_consts.TABLES_VISU_IMG.includes(table)) && (myrec.photos && myrec.photos.length > 0)" avatar
@click="cmdExt(costanti.CMD_OPEN_PAGE, myrec)"> @click="cmdExt(costanti.CMD_OPEN_PAGE, myrec)">

View File

@@ -22,6 +22,10 @@ $graytext: #555;
color: black; color: black;
} }
&__details_darktheme {
color: white;
}
&__tdimg { &__tdimg {
width: 150px; width: 150px;
height: 150px; height: 150px;
@@ -107,6 +111,10 @@ $graytext: #555;
color: black; color: black;
} }
&__details_darktheme {
color: white;
}
&__hours { &__hours {
color: blue; color: blue;
&-title { &-title {

View File

@@ -92,9 +92,8 @@
<div style="margin: 10px;"></div> <div style="margin: 10px;"></div>
<p v-if="myevent.bodytext" class="listaev__details text-left q-mb-md" v-html="myevent.bodytext"></p> <p v-if="myevent.bodytext" :class="`listaev__details`+ ($q.dark.isActive ? '_darktheme' : ``) + ` text-left q-mb-md`" v-html="myevent.bodytext"></p>
<p v-else class="listaev__details" v-html="myevent.details"></p> <p v-else :class="`listaev__details`+ ($q.dark.isActive ? '_darktheme' : ``)" v-html="myevent.details"></p>
<div v-for="(mypage, index) in myevent.pagefooter" :key="index"> <div v-for="(mypage, index) in myevent.pagefooter" :key="index">
<CMyPage v-if="!!mypage" :mypath="`/`+ mypage"> <CMyPage v-if="!!mypage" :mypath="`/`+ mypage">

View File

@@ -25,6 +25,8 @@ export default defineComponent({
const slide = ref('first') const slide = ref('first')
const animare = ref(0) const animare = ref(0)
const globalStore = useGlobalStore()
function initprompt() { function initprompt() {
window.addEventListener('beforeinstallprompt', (event) => { window.addEventListener('beforeinstallprompt', (event) => {
// console.log('******************************** beforeinstallprompt fired') // console.log('******************************** beforeinstallprompt fired')
@@ -127,6 +129,7 @@ export default defineComponent({
tools, tools,
static_data, static_data,
animare, animare,
site: globalStore.site,
} }
}, },
}) })

View File

@@ -1,5 +1,5 @@
<template> <template>
<q-page class="text-blue-6"> <q-page :class="`text-white`">
<div class="landing"> <div class="landing">
<section> <section>
@@ -24,16 +24,16 @@
</div> </div>
<div class="flex justify-end"> <div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter"> <div class="q-gutter-xs testo-banda clgutter">
<div class="text-h1"><span class="shadow-3 bg-white">{{ t('msg.myAppName') }}</span></div> <div class="text-h1"><span :class="`shadow-3 `+ $q.dark.isActive ? `bg-black` : `bg-white`">{{ t('msg.myAppName') }}</span></div>
<div class="text-subtitle1 text-italic q-pl-sm"> <div class="text-subtitle1 text-italic q-pl-sm">
<span class="shadow-3 bg-white">{{ t('msg.sottoTitoloApp') }}</span> <span :class="`shadow-3 `+ $q.dark.isActive ? `bg-black` : `bg-white`">{{ t('msg.sottoTitoloApp') }}</span>
</div> </div>
<div class="text-subtitle1 big text-italic q-pl-sm background-white"><strong> <div class="text-subtitle1 big text-italic q-pl-sm background-white"><strong>
<span class="shadow-3 bg-white">{{t('msg.sottoTitoloApp2')}}</span> <span :class="`shadow-3 `+ $q.dark.isActive ? `bg-black` : `bg-white`">{{t('msg.sottoTitoloApp2')}}</span>
</strong> </strong>
</div> </div>
<div class="text-subtitle2 text-italic q-pl-sm"> <div class="text-subtitle2 text-italic q-pl-sm">
<span class="shadow-3 bg-white">{{ t('msg.sottoTitoloApp3') }}</span> <span :class="`shadow-3 `+ $q.dark.isActive ? `bg-black` : `bg-white`">{{ t('msg.sottoTitoloApp3') }}</span>
</div> </div>
<div> <div>
@@ -99,16 +99,13 @@
</div> </div>
<div class="flex justify-end"> <div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter"> <div class="q-gutter-xs testo-banda clgutter">
<div class="text-h1 shadow-max">{{ t('msg.myAppName') }}</div> <div class="text-h1 shadow-max"></div>
<div class="text-subtitle1 shadow text-italic q-pl-sm"> <div class="text-subtitle1 shadow text-italic q-pl-sm">
<span class="shadow-3 bg-white">{{ t('msg.sottoTitoloApp') }}</span>
</div> </div>
<div class="text-subtitle1 shadow-max big text-italic q-pl-sm"><strong> <div class="text-subtitle1 shadow-max big text-italic q-pl-sm">
<span class="shadow-3 bg-white">{{t('msg.sottoTitoloApp2')}}</span>
</strong>
</div> </div>
<div class="text-subtitle2 shadow text-italic q-pl-sm"> <div class="text-subtitle2 shadow text-italic q-pl-sm">
<span class="shadow-3 bg-white">{{ t('msg.sottoTitoloApp3') }}</span>
</div> </div>
<div> <div>
@@ -174,16 +171,13 @@
</div> </div>
<div class="flex justify-end"> <div class="flex justify-end">
<div class="q-gutter-xs testo-banda clgutter"> <div class="q-gutter-xs testo-banda clgutter">
<div class="text-h1 shadow-max">{{ t('msg.myAppName') }}</div> <div class="text-h1 shadow-max"></div>
<div class="text-subtitle1 shadow text-italic q-pl-sm"> <div class="text-subtitle1 shadow text-italic q-pl-sm">
{{ t('msg.sottoTitoloApp') }}
</div> </div>
<div class="text-subtitle1 shadow-max big text-italic q-pl-sm"><strong>{{ <div class="text-subtitle1 shadow-max big text-italic q-pl-sm"><strong>{{
t('msg.sottoTitoloApp2')
}}</strong> }}</strong>
</div> </div>
<div class="text-subtitle2 shadow text-italic q-pl-sm"> <div class="text-subtitle2 shadow text-italic q-pl-sm">
{{ t('msg.sottoTitoloApp3') }}
</div> </div>
<div> <div>
@@ -244,7 +238,7 @@
</div> </div>
</section> </section>
<section class="padding bg-white text-grey-10 text-center"> <section :class="`padding `+ ($q.dark.isActive ? `text-white bg-black ` : `text-grey-10 bg-white`) + ` text-center`">
<div class="landing__features row items-start q-col-gutter-sm"> <div class="landing__features row items-start q-col-gutter-sm">
<div class="col-12 text-center"> <div class="col-12 text-center">
<div class="feature-item q-mx-md"> <div class="feature-item q-mx-md">

View File

@@ -144,13 +144,13 @@
<q-space/> <q-space/>
<q-btn dense flat icon="minimize" @click="maximizedToggle = false" :disable="!maximizedToggle"> <q-btn dense flat icon="minimize" @click="maximizedToggle = false" :disable="!maximizedToggle">
<q-tooltip v-if="maximizedToggle" class="bg-white text-primary">Minimize</q-tooltip> <q-tooltip v-if="maximizedToggle" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Minimize</q-tooltip>
</q-btn> </q-btn>
<q-btn dense flat icon="crop_square" @click="maximizedToggle = true" :disable="maximizedToggle"> <q-btn dense flat icon="crop_square" @click="maximizedToggle = true" :disable="maximizedToggle">
<q-tooltip v-if="!maximizedToggle" class="bg-white text-primary">Maximize</q-tooltip> <q-tooltip v-if="!maximizedToggle" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Maximize</q-tooltip>
</q-btn> </q-btn>
<q-btn dense flat icon="close" v-close-popup> <q-btn dense flat icon="close" v-close-popup>
<q-tooltip class="bg-white text-primary">Close</q-tooltip> <q-tooltip :class="($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-primary`">Close</q-tooltip>
</q-btn> </q-btn>
</q-bar> </q-bar>

View File

@@ -22,7 +22,7 @@
<div class="self-center no-outline" tabindex="0" >{{ order.quantity }}</div> <div class="self-center no-outline" tabindex="0" >{{ order.quantity }}</div>
</template> </template>
</q-field>--> </q-field>-->
<div class="q-mx-sm text-blue-14">{{ order.quantity }}</div> <div :class="`q-mx-sm text-blue-14`">{{ order.quantity }}</div>
<q-btn <q-btn
v-if="showall && !nomodif" round size="xs" text-color="grey" icon="fas fa-plus" v-if="showall && !nomodif" round size="xs" text-color="grey" icon="fas fa-plus"
@click="addsubqty(true, false)"></q-btn> @click="addsubqty(true, false)"></q-btn>

View File

@@ -1,15 +1,15 @@
<template> <template>
<q-footer <q-footer
v-if="tools.isUserOk() && site" v-if="tools.isUserOk() && site && site.confpages"
class="bg-white small-screen-only" :class="($q.dark.isActive ? `bg-black` : `bg-white`) + `small-screen-only`"
bordered bordered
> >
<q-tabs <q-tabs
dense dense
class="text-grey-10 mylabfooter mysmalltabs" :class="($q.dark.isActive ? `text-white bg-black` : `text-grey-10 bg-white`) + ` mylabfooter mysmalltabs`"
style="padding: 0px !important;" style="padding: 0px !important;"
content-class="mysmalltabs" content-class="mysmalltabs"
active-color="primary" :active-color="$q.dark.isActive ? `primary`: `primary`"
no-caps no-caps
indicator-color="transparent" indicator-color="transparent"
> >

View File

@@ -281,7 +281,7 @@ export default defineComponent({
const lang = computed({ const lang = computed({
get: () => $q.lang.isoName, get: () => $q.lang.isoName,
set: mylang => { set: mylang => {
console.log('set lang', $q.lang.getLocale(), 'passato', mylang) // console.log('set lang', $q.lang.getLocale(), 'passato', mylang)
$q.lang.set(snakeToCamel(mylang)) $q.lang.set(snakeToCamel(mylang))
// tools.showNotif($q, 'IMPOSTA LANG= ' + $i18n.locale) // tools.showNotif($q, 'IMPOSTA LANG= ' + $i18n.locale)
// console.log('IMPOSTA LANG= ' + $i18n.locale) // console.log('IMPOSTA LANG= ' + $i18n.locale)

View File

@@ -1,6 +1,7 @@
<template> <template>
<div> <div>
<q-header <q-header
v-if="site"
reveal reveal
elevated elevated
:class="getClassColorHeader" :class="getClassColorHeader"
@@ -67,13 +68,13 @@
</div> </div>
--> -->
<div v-if="site.confpages.show_darkopt" class="text-h7"> <div v-if="site.confpages && site.confpages.show_darkopt" class="text-h7">
<q-toggle :icon="'fas fa-moon'" v-model="dark"> </q-toggle> <q-toggle :icon="'fas fa-moon'" v-model="dark"> </q-toggle>
</div> </div>
<q-btn <q-btn
v-if=" v-if="
!isonline() && !isonline() &&
site.confpages.showConnected site.confpages && site.confpages.showConnected
" "
flat flat
dense dense
@@ -109,13 +110,13 @@
</q-list> </q-list>
</q-btn-dropdown> </q-btn-dropdown>
<div v-if="site.confpages.showMsgs"> <div v-if="site.confpages && site.confpages.showMsgs">
<message-popover></message-popover> <message-popover></message-popover>
</div> </div>
<div v-if="site.confpages.showCoins"> <div v-if="site.confpages && site.confpages.showCoins">
<coinsPopover v-model="rightCoinsOpen"></coinsPopover> <coinsPopover v-model="rightCoinsOpen"></coinsPopover>
</div> </div>
<div v-if="site.confpages.showNotif"> <div v-if="site.confpages && site.confpages.showNotif">
<notifPopover v-model="rightNotifOpen"></notifPopover> <notifPopover v-model="rightNotifOpen"></notifPopover>
</div> </div>
@@ -128,7 +129,7 @@
<q-btn <q-btn
class="q-mx-xs" class="q-mx-xs"
v-if="site.confpages.enableEcommerce && tools.isLogged()" v-if="site.confpages && site.confpages.enableEcommerce && tools.isLogged()"
round round
dense dense
flat flat
@@ -148,7 +149,7 @@
<q-btn <q-btn
class="q-mx-xs" class="q-mx-xs"
v-if=" v-if="
site.confpages.enableEcommerce && site.confpages && site.confpages.enableEcommerce &&
tools.isLogged() && tools.isLogged() &&
getnumOrdersCart() > 0 getnumOrdersCart() > 0
" "
@@ -170,7 +171,7 @@
<q-btn <q-btn
class="q-mx-xs" class="q-mx-xs"
v-if="site.confpages.showUserMenu && !tools.isLogged()" v-if="site.confpages && site.confpages.showUserMenu && !tools.isLogged()"
dense dense
flat flat
round round
@@ -180,7 +181,7 @@
</q-btn> </q-btn>
<q-avatar <q-avatar
v-else-if=" v-else-if="
site.confpages.showUserMenu && site.confpages && site.confpages.showUserMenu &&
tools.isLogged() && tools.isLogged() &&
getMyImg() getMyImg()
" "
@@ -226,7 +227,7 @@
<!-- USER BAR --> <!-- USER BAR -->
<q-drawer <q-drawer
v-if="site.confpages.enableEcommerce" v-if="site.confpages && site.confpages.enableEcommerce"
v-model="rightCartOpen" v-model="rightCartOpen"
side="right" side="right"
elevated elevated
@@ -248,7 +249,7 @@
</q-drawer> </q-drawer>
<!-- USER BAR --> <!-- USER BAR -->
<q-drawer <q-drawer
v-if="site.confpages.showUserMenu" v-if="site.confpages && site.confpages.showUserMenu"
v-model="rightDrawerOpen" v-model="rightDrawerOpen"
side="right" side="right"
elevated elevated
@@ -387,7 +388,7 @@
<div v-show="!tools.isLogged()"> <div v-show="!tools.isLogged()">
<div class="q-ma-md" style=""> <div class="q-ma-md" style="">
<CSigninNoreg <CSigninNoreg
:showregbutt="site.confpages.showRegButton" :showregbutt="site.confpages && site.confpages.showRegButton"
> >
</CSigninNoreg> </CSigninNoreg>
</div> </div>

View File

@@ -15,6 +15,7 @@ const msg_website_de = {
SignUp: 'Nuova Registrazione', SignUp: 'Nuova Registrazione',
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !', SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
SignUp2: 'Registrazione', SignUp2: 'Registrazione',
SignUp4: 'Reg',
SignIn: 'Login', SignIn: 'Login',
status: 'Statistiche', status: 'Statistiche',
nextzoom: 'Conferenze', nextzoom: 'Conferenze',

View File

@@ -1,9 +1,9 @@
const msg_website_it = { const msg_website_it = {
ws: { ws: {
sitename: 'KolibriLab', sitename: 'Riso',
siteshortname: 'KolibriLab', siteshortname: 'RISO',
description: '', 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: '', keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
}, },
products: { products: {
quantity: 'Quantità', quantity: 'Quantità',
@@ -54,10 +54,9 @@ 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>', 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:', Registrazione_Con_Bot: '1) Copia questo username cliccandoci sopra:',
SignUpIscrizione: 'Diventa Socio CNM', SignUpIscrizione: 'Diventa Socio CNM',
SignUpArcadei: 'Aderisci ad Arcadei',
SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !', SignUp_alreadylista: 'Registrazione per quelli che erano già nella lista di Notevole (del 2019) !',
SignUp2: 'Registrazione', SignUp2: 'Registrazione',
SignUp4: 'Reg', SignUp3: 'Reg',
SignUpBot: 'Registrati', SignUpBot: 'Registrati',
SignIn: 'Login', SignIn: 'Login',
status: 'Statistiche', status: 'Statistiche',
@@ -115,10 +114,8 @@ const msg_website_it = {
hours: 'Ore', hours: 'Ore',
department: 'Uffici', department: 'Uffici',
title: 'Titolo', title: 'Titolo',
subtitle: 'SottoTitolo',
path: 'Percorso', path: 'Percorso',
img1: 'Immagine 1', img1: 'Immagine 1',
imgsize: 'ImgSize',
contentfield: 'Testo 1', contentfield: 'Testo 1',
video1: 'Video 1', video1: 'Video 1',
ratio1: 'Ratio 1', ratio1: 'Ratio 1',
@@ -145,8 +142,8 @@ const msg_website_it = {
color: 'Colore', color: 'Colore',
}, },
msg: { msg: {
myAppName: 'Arcadei', myAppName: 'Riso',
myAppDescription: 'Modello Comunitario', myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
underconstruction: 'App in costruzione...', underconstruction: 'App in costruzione...',
myDescriz: '', myDescriz: '',
sottoTitoloApp: 'Il primo Vero Social', sottoTitoloApp: 'Il primo Vero Social',
@@ -161,37 +158,32 @@ const msg_website_it = {
+ ' che intere popolazioni antiche conoscevano bene.', + ' 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> ' 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 ' + '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: { freesocial: {
title: 'Social', title: 'Social',
descr: 'Una Community organizzata per <strong>Categorie</strong>, dove potrai unirti a <strong>Gruppi Tematici</strong>, ' 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>' + '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>, ' + '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 ' + '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>' + '<strong>Pianeta</strong>.',
+ ' e realizzare insieme i <strong>Cambiamenti</strong> necessari alla nostra Società.',
}, },
freetalent: { freetalent: {
title: 'Beni e Servizi', title: 'Beni e Servizi',
descr: 'Condividi i tuoi <strong>Talenti</strong> e <strong>Abilità</strong>, ' 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>' + + '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: { coin: {
title: 'RIS - Credito Alternativo', 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: { freeliving: {
title: 'Gruppi Territoriali', title: 'Gruppi Territoriali',
descr: 'Questo progetto vuole diffondere la creazione di Gruppi Territoriali Provinciali, ' 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.', + '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: { freecollabora: {
@@ -239,9 +231,9 @@ const msg_website_it = {
}, },
multiplatform: { multiplatform: {
title: 'Multi-piattaforma', 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>' + '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: { free: {
title: 'Gratuita, Open Source e Niente Pubblicità', title: 'Gratuita, Open Source e Niente Pubblicità',

View File

@@ -4,6 +4,32 @@ import {
IPreloadImages, IPreloadImages,
ISites, ISites,
} from '@model' } from '@model'
import { func } from '@store/Modules/fieldsTable'
// const SHOW_PROJINTHEMENU = false
//
// let arrlistafavourite = []
// let arrlistaprojtutti = []
// let arrlistaprojmiei = []
// if (SHOW_PROJINTHEMENU) {
// arrlistaprojtutti = Projects.getters.listaprojects(RouteNames.projectsall)
// arrlistaprojmiei = Projects.getters.listaprojects(RouteNames.myprojects)
// arrlistafavourite = Projects.getters.listaprojects(RouteNames.favouriteprojects)
// }
// PROGETTI -> FAVORITI :
// if (arrlistafavourite.length > 0) {
// arrMenu.push({
// icon: 'favorite_border',
// nametranslate: 'pages.' + RouteNames.favouriteprojects,
// urlroute: RouteNames.favouriteprojects,
// level_parent: 0.0,
// level_child: 0.5,
// routes2: arrlistafavourite,
// idelem: ''
// })
// }
const firstPage = { const firstPage = {
active: true, active: true,
@@ -11,7 +37,7 @@ const firstPage = {
path: '/', path: '/',
materialIcon: 'home', materialIcon: 'home',
name: 'pages.home', name: 'pages.home',
component: () => import('@src/root/home/home.vue'), component: () => import('@src/root/mainview/mainview.vue'),
reqauth: false, reqauth: false,
inmenu: true, inmenu: true,
infooter: true, infooter: true,
@@ -20,7 +46,94 @@ const firstPage = {
function getDynamicPages(site: ISites): IListRoutes[] { function getDynamicPages(site: ISites): IListRoutes[] {
const baseroutes: IListRoutes[] = [ const baseroutes: IListRoutes[] = [
firstPage, {
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: 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',
materialIcon: 'fas fa-user',
name: 'pages.profile',
component: () => import('@/views/user/myprofile/myprofile.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{ {
active: true, active: true,
order: 120, order: 120,
@@ -32,6 +145,39 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: false, inmenu: false,
infooter: 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: 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: true,
},
{
active: site.confpages && site.confpages.enableCircuits,
order: 133,
path: '/circuits',
materialIcon: 'fas fa-coins',
name: 'mypages.circuits',
component: () => import('@/views/user/mycircuits/mycircuits.vue'),
meta: { requiresAuth: true },
inmenu: true,
infooter: true,
},
{ {
active: true, active: true,
order: 135, order: 135,
@@ -43,6 +189,92 @@ function getDynamicPages(site: ISites): IListRoutes[] {
inmenu: false, inmenu: false,
infooter: false, infooter: false,
}, },
{
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,
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: true,
infooter: true,
},
{
active: true,
order: 80,
path: '/calendario-eventi',
materialIcon: 'event',
name: 'ris.calendario_eventi_riso',
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
extraclass: 'isCalendar',
inmenu: true,
infooter: true
},
] ]
return baseroutes return baseroutes

View File

@@ -99,7 +99,7 @@ export default async (cmd: string, table: string, datakey: any = null, id: any =
if (cmd === 'readall') { if (cmd === 'readall') {
if (globalStore) { if (globalStore) {
globalStore.connData.downloading_indexeddb = 1 globalStore.connData.downloading_indexeddb = 1
console.log('getalldata table', table) // console.log('getalldata table', table)
} }
return await storage.getalldata(table) return await storage.getalldata(table)
} }

View File

@@ -129,7 +129,7 @@ export default defineComponent({
if (!!username) { if (!!username) {
notifsel.value.dest = '' notifsel.value.dest = ''
console.log('refreshdata') // console.log('refreshdata')
loading.value = true loading.value = true
return notifStore.updateNotifDataFromServer({ return notifStore.updateNotifDataFromServer({

View File

@@ -86,10 +86,10 @@ export default defineComponent({
} }
function checkifpolling() { function checkifpolling() {
console.log('checkifpolling') // console.log('checkifpolling')
if (eseguipolling.value) { if (eseguipolling.value) {
if (!polling.value) { if (!polling.value) {
console.log('esegui POLLING 2....') // console.log('esegui POLLING 2....')
polling.value = setInterval(() => { polling.value = setInterval(() => {
checkIfArrivedSomeNotif() checkIfArrivedSomeNotif()
}, 2000) }, 2000)
@@ -167,7 +167,7 @@ export default defineComponent({
if (!!username) { if (!!username) {
notifsel.value.dest = '' notifsel.value.dest = ''
console.log('refreshdata') // console.log('refreshdata')
loading.value = true loading.value = true
return notifStore.updateNotifDataFromServer({ return notifStore.updateNotifDataFromServer({

View File

@@ -11,7 +11,7 @@ export default function () {
function setmeta(mym: IMetaTags) { function setmeta(mym: IMetaTags) {
// cancellarlo... // cancellarlo...
return true return
} }
function getMeta(mym: IMetaTags, t: any) { function getMeta(mym: IMetaTags, t: any) {

View File

@@ -212,34 +212,34 @@ export interface IOption {
export interface IConfPages { export interface IConfPages {
font?: string font?: string
col_toolbar?: string col_toolbar: string
col_bgfooter?: string col_bgfooter: string
show_darkopt?: boolean show_darkopt: boolean
showButtHome?: boolean showButtHome: boolean
showProfile?: boolean showProfile: boolean
showUserMenu?: boolean showUserMenu: boolean
showRegButton?: boolean showRegButton: boolean
enableReg?: boolean enableReg: boolean
showNL?: boolean showNL: boolean
showMsgs?: boolean showMsgs: boolean
showNotif?: boolean showNotif: boolean
showCoins?: boolean showCoins: boolean
showNameSurname?: boolean showNameSurname: boolean
showCompetenze?: boolean showCompetenze: boolean
showConnected?: boolean showConnected: boolean
bookingEvents?: boolean bookingEvents: boolean
enableEcommerce?: boolean enableEcommerce: boolean
enableGroups?: boolean enableGroups: boolean
enableCircuits?: boolean enableCircuits: boolean
enableProj?: boolean enableProj: boolean
enableTodos?: boolean enableTodos: boolean
enableRegByBot?: boolean enableRegByBot: boolean
enabledRegNeedTelegram?: boolean enabledRegNeedTelegram: boolean
showViewGroups?: boolean showViewGroups: boolean
showViewUsers?: boolean showViewUsers: boolean
showViewProfile?: boolean showViewProfile: boolean
enablePwa?: boolean enablePwa: boolean
lang?: number lang: number
} }
export interface IContacts { export interface IContacts {
facebook: string facebook: string

View File

@@ -120,6 +120,7 @@ export interface IUserAport {
export interface IUserFields { export interface IUserFields {
_id: string _id: string
idapp?: string
ind_order?: number ind_order?: number
email?: string email?: string
username: string username: string

View File

@@ -21,6 +21,10 @@
color: black; color: black;
} }
&__details_darktheme {
color: white;
}
&__tdimg { &__tdimg {
width: 150px; width: 150px;
height: 150px; height: 150px;

View File

@@ -1,6 +1,6 @@
<template> <template>
<q-page class="text-black"> <q-page :class="$q.dark.isActive ? `text-white` : `text-black`">
<section class="bg-white"> <section :class="$q.dark.isActive ? `bg-black` : `bg-white`">
<div class=" row justify-between items-start q-col-gutter-sm"> <div class=" row justify-between items-start q-col-gutter-sm">
<div class="col-12"> <div class="col-12">
<div class="feature-item" style="margin-top: 0px !important;"> <div class="feature-item" style="margin-top: 0px !important;">

View File

@@ -174,7 +174,7 @@
</div> </div>
<section class="maxwidth padding_gallery bg-white text-grey-10 text-center" > <section :class="`maxwidth padding_gallery `+ ($q.dark.isActive ? `bg-black` : `bg-white`) + ` text-grey-10 text-center`" >
<q-carousel <q-carousel
swipeable swipeable

View File

@@ -412,12 +412,6 @@ body.mobile .landing:before {
font-size: 0.6rem; font-size: 0.6rem;
} }
.carousel_img_3 {
//background-image: url(../../public/images/cibo_sano.jpg);
background-size: 620px 620px !important;
background-position: 50% top !important;
background-repeat: no-repeat !important;
}
} }

View File

@@ -21,6 +21,10 @@
color: black; color: black;
} }
&__details_darktheme {
color: white;
}
&__tdimg { &__tdimg {
width: 150px; width: 150px;
height: 150px; height: 150px;

View File

@@ -72,7 +72,7 @@ export default defineComponent({
if (eseguipolling.value) { if (eseguipolling.value) {
// Is Still sending email, so, every minutes, check the status // Is Still sending email, so, every minutes, check the status
if (!polling.value) { if (!polling.value) {
console.log('esegui POLLING....') // console.log('esegui POLLING....')
polling.value = setInterval(() => { polling.value = setInterval(() => {
load() load()
}, 15000) }, 15000)

View File

@@ -165,14 +165,14 @@ function getRoutesAd(site: ISites) {
const routes_manager: IListRoutes[] = [ const routes_manager: IListRoutes[] = [
{ {
active: site.confpages?.bookingEvents, active: site.confpages && site.confpages?.bookingEvents,
order: 70, order: 70,
path: '/admin/usereventlist', path: '/admin/usereventlist',
materialIcon: 'edit', materialIcon: 'edit',
name: 'otherpages.admin.usereventlist', name: 'otherpages.admin.usereventlist',
component: () => import('@/rootgen/admin/eventlist/eventlist.vue'), component: () => import('@/rootgen/admin/eventlist/eventlist.vue'),
inmenu: site.confpages.bookingEvents, inmenu: site.confpages && site.confpages.bookingEvents,
submenu: site.confpages.bookingEvents, submenu: site.confpages && site.confpages.bookingEvents,
level_parent: 0, level_parent: 0,
level_child: 0.5, level_child: 0.5,
infooter: false, infooter: false,
@@ -513,17 +513,17 @@ function getRoutesAd(site: ISites) {
infooter: true infooter: true
}, },
{ {
active: site.confpages.enableRegByBot, active: site.confpages && site.confpages.enableRegByBot,
order: 1000, order: 1000,
path: '/bot', path: '/bot',
materialIcon: 'how_to_reg', materialIcon: 'how_to_reg',
name: 'pages.SignUpBot', name: 'pages.SignUpBot',
inmenu: site.confpages.enableRegByBot, inmenu: site.confpages && site.confpages.enableRegByBot,
infooter: site.confpages.enableRegByBot, infooter: site.confpages && site.confpages.enableRegByBot,
separator: false separator: false
}, },
{ {
active: site.confpages.enableReg && !site.confpages.enabledRegNeedTelegram, active: site.confpages && site.confpages.enableReg && !site.confpages.enabledRegNeedTelegram,
order: 1000, order: 1000,
path: '/signup', path: '/signup',
materialIcon: 'how_to_reg', materialIcon: 'how_to_reg',
@@ -545,7 +545,7 @@ function getRoutesAd(site: ISites) {
separator: false separator: false
}, },
{ {
active: site.confpages.enableReg, active: site.confpages && site.confpages.enableReg,
order: 2000, order: 2000,
path: '/regok', path: '/regok',
materialIcon: 'how_to_reg', materialIcon: 'how_to_reg',

View File

@@ -451,6 +451,7 @@ const msg_it = {
page_title: 'Registrazione', page_title: 'Registrazione',
made_gift: 'Dono', made_gift: 'Dono',
note: 'Note', note: 'Note',
detailsPage: 'Pagina Dettagliata sul Gruppo',
incorso: 'Registrazione in corso...', incorso: 'Registrazione in corso...',
iscrizioneincorso: 'Iscrizione in corso...', iscrizioneincorso: 'Iscrizione in corso...',
richiesto: 'Campo Richiesto', richiesto: 'Campo Richiesto',

View File

@@ -760,8 +760,8 @@ export const colmyUserGroup = [
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist
}), }),
AddCol({ AddCol({
name: 'note', label_trans: 'proj.longdescr', fieldtype: costanti.FieldType.html, name: 'note', label_trans: 'reg.detailsPage', fieldtype: costanti.FieldType.html,
titlepopupedit: 'Dettagli', field_extra1: 'groupname', subfield_extra1: '' titlepopupedit: 'detailsPage', field_extra1: 'groupname', subfield_extra1: ''
}), }),
AddCol(ModifRec), AddCol(ModifRec),
AddCol(DeleteRec), AddCol(DeleteRec),
@@ -2960,9 +2960,9 @@ export const fieldsTable = {
const tablerec: any = this.tablesList.find((rec) => rec.value === mytable) const tablerec: any = this.tablesList.find((rec) => rec.value === mytable)
if (tablerec) { if (tablerec) {
console.log('tablerec', tablerec.columns) // console.log('tablerec', tablerec.columns)
const mycol = tablerec.columns.find((col: any) => col.name === namecol) const mycol = tablerec.columns.find((col: any) => col.name === namecol)
console.log('mycol = ', mycol) // console.log('mycol = ', mycol)
return mycol return mycol
} else } else
return null return null

View File

@@ -2748,7 +2748,7 @@ export const tools = {
} }
console.log('static_data.arrLangUsed', static_data.arrLangUsed, 'mylang', mylang) // console.log('static_data.arrLangUsed', static_data.arrLangUsed, 'mylang', mylang)
if (!(static_data.arrLangUsed.includes(mylang))) { if (!(static_data.arrLangUsed.includes(mylang))) {
// console.log('non incluso ', mylang) // console.log('non incluso ', mylang)
// mylang = static_data.arrLangUsed[0] // mylang = static_data.arrLangUsed[0]
@@ -5485,7 +5485,7 @@ export const tools = {
// console.log('OUT', res) // console.log('OUT', res)
if (res && res.userprofile) { if (res && res.userprofile) {
console.log('updateMyData') // console.log('updateMyData')
userStore.my.profile = res.userprofile userStore.my.profile = res.userprofile
if (res.listcircuits) { if (res.listcircuits) {
@@ -6711,14 +6711,14 @@ export const tools = {
}, },
getFullFileName(arrimage: IImgGallery[], table: string, username: string, groupname: string) { getFullFileName(arrimage: IImgGallery[], table: string, username: string, groupname: string) {
console.log('arrimage', arrimage) // console.log('arrimage', arrimage)
if (shared_consts.TABLES_DIRECTORY_A_PARTE.includes(table)) { if (shared_consts.TABLES_DIRECTORY_A_PARTE.includes(table)) {
return `upload/${table}/` + groupname + '/' + arrimage[0].imagefile return `upload/${table}/` + groupname + '/' + arrimage[0].imagefile
} else if (shared_consts.TABLES_DIRECTORY_SINGLE_IMG.includes(table)) { } else if (shared_consts.TABLES_DIRECTORY_SINGLE_IMG.includes(table)) {
return `upload/${table}/` + groupname + '/' + arrimage[0].imagefile return `upload/${table}/` + groupname + '/' + arrimage[0].imagefile
} else { } else {
console.log('username', username, 'table', table) // console.log('username', username, 'table', table)
if (arrimage && arrimage.length > 0) { if (arrimage && arrimage.length > 0) {
return `upload/profile/${username}/${table}` + arrimage[0].imagefile return `upload/profile/${username}/${table}` + arrimage[0].imagefile
} else { } else {

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