import { Todos, Projects, UserStore } from '@store' import globalroutines from '../globalroutines/index' import { date, Screen } from 'quasar' import { IListRoutes, ILang, IOperators, IPreloadImages } from '../model/index' import { IFunctionality } from '@src/model/GlobalStore' import firebase from '@src/error-handler/firebase' import { RouteNames } from '../router/route-names' const functionality: IFunctionality = { PWA: true, SHOW_USER_MENU: true, // Cambiare con true SHOW_PROFILE: true, SHOW_REG_BUTTON: true, ENABLE_REGISTRATION: true, // Cambiare con true ENABLE_REG_AYNI: false, SHOW_NEWSLETTER: false, SHOW_ONLY_POLICY: true, ENABLE_TODOS_LOADING: false, ENABLE_PROJECTS_LOADING: false, SHOW_IF_IS_SERVER_CONNECTION: true, SHOW_MESSAGES: false, BOOKING_EVENTS: true, ENABLE_ECOMMERCE: true, } const routes_admin: IListRoutes[] = [ { 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 } ] const routes_projects: IListRoutes[] = [ { active: functionality.ENABLE_PROJECTS_LOADING, order: 10, path: '/' + RouteNames.projectsall + '/:idProj', materialIcon: 'accessibility_new', name: RouteNames.projectsall, level_parent: 0.0, level_child: 0.5, component: () => import('@/views/projects/proj-list/proj-list.vue'), inmenu: functionality.SHOW_MESSAGES, infooter: functionality.ENABLE_PROJECTS_LOADING, meta: { requiresAuth: false, async asyncData() { // await Todos.actions.dbLoad({ checkPending: false }) await Projects.actions.dbLoad({ checkPending: false, onlyiffirsttime: true }) } }, idelem: process.env.PROJECT_ID_MAIN }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 20, path: '/' + RouteNames.myprojects + '/:idProj', materialIcon: 'accessibility_new', name: RouteNames.myprojects, level_parent: 0.0, level_child: 0.5, component: () => import('@/views/projects/proj-list/proj-list.vue'), inmenu: functionality.SHOW_MESSAGES, infooter: functionality.ENABLE_PROJECTS_LOADING, meta: { requiresAuth: false, async asyncData() { // await Todos.actions.dbLoad({ checkPending: false }) await Projects.actions.dbLoad({ checkPending: false, onlyiffirsttime: true }) } }, idelem: process.env.PROJECT_ID_MAIN }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 30, path: '/' + RouteNames.projectsshared + '/:idProj', materialIcon: 'accessibility_new', name: RouteNames.projectsshared, level_parent: 0.0, level_child: 0.5, component: () => import('@/views/projects/proj-list/proj-list.vue'), inmenu: functionality.SHOW_MESSAGES, infooter: functionality.ENABLE_PROJECTS_LOADING, meta: { requiresAuth: false, async asyncData() { // await Todos.actions.dbLoad({ checkPending: false }) await Projects.actions.dbLoad({ checkPending: false, onlyiffirsttime: true }) } }, idelem: process.env.PROJECT_ID_MAIN } ] const routes_ecommerce: IListRoutes[] = [ { active: true, order: 30, path: '/checkout', materialIcon: 'fas fa-shopping-cart', name: 'pages.checkout', component: () => import('@/views/ecommerce/checkOut/checkOut.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, }, ] const routes_admin_ecommerce: IListRoutes[] = [ { active: true, order: 30, path: '/admin/products', materialIcon: 'fas fa-file-alt', name: 'pages.products', component: () => import('@/rootgen/admin/products/products.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, onlyManager: true, onlyTraduttrici: true }, { active: true, order: 30, path: '/admin/producers', materialIcon: 'fas fa-file-alt', name: 'pages.producer', component: () => import('@/rootgen/admin/producer/producer.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, onlyManager: true, onlyTraduttrici: true }, { active: true, order: 30, path: '/admin/storehouses', materialIcon: 'fas fa-file-alt', name: 'pages.storehouses', component: () => import('@/rootgen/admin/storehouses/storehouses.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, onlyManager: true, onlyTraduttrici: 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 }, { 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 }, { 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 }, { 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 }, { 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 }, { 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 }, { 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 }, { 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 } ] const routes_manager: IListRoutes[] = [ { 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, onlyTutor: true }, { active: true, 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, onlyTutor: 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, onlyTraduttrici: true }, { active: true, order: 30, 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 // onlyTutor: 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 }, { active: true, order: 60, path: '/admin/newsletter', materialIcon: 'fas fa-users', name: 'otherpages.admin.newsletter', inmenu: false, submenu: true, routes2: routes_newsletter, solotitle: true, level_parent: 0.5, level_child: 0.5, onlyAdmin: true, onlyManager: true }, { active: functionality.ENABLE_ECOMMERCE, path: '', order: 65, faIcon: 'fa fa-list-alt', materialIcon: 'next_week', name: 'pages.ecommerce', routes2: routes_admin_ecommerce, inmenu: true, submenu: true, level_parent: 0.5, level_child: 0.5, solotitle: true, onlyAdmin: true, onlyManager: true }, { active: functionality.BOOKING_EVENTS, order: 70, path: '/admin/usereventlist', materialIcon: 'edit', name: 'otherpages.admin.usereventlist', component: () => import('@/rootgen/admin/eventlist/eventlist.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, infooter: true, onlyManager: true, onlyAdmin: true } ] const baseroutes: IListRoutes[] = [ { active: true, order: 10, path: '/', materialIcon: 'home', name: 'pages.home', component: () => import('@/root/home/home.vue'), inmenu: true, infooter: true }, { active: true, path: '/separator', name: 'separator', order: 50, isseparator: true, inmenu: true, }, { active: true, order: 120, path: '/profile', materialIcon: 'fas fa-user', name: 'pages.profile', component: () => import('@/views/user/profile/profile.vue'), meta: { requiresAuth: true }, 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: 1000, path: '/404error', materialIcon: 'fas fa-calendar-plus', name: 'otherpages.error404', component: () => import('@/root/My404page/My404page.vue'), inmenu: false, infooter: false }, { active: functionality.ENABLE_PROJECTS_LOADING, path: '', order: 10001, faIcon: 'fa fa-list-alt', materialIcon: 'next_week', name: 'pages.projects', routes2: routes_projects, inmenu: true, solotitle: true, infooter: true }, ...routes_projects, { active: functionality.ENABLE_ECOMMERCE, path: '', order: 1402, faIcon: 'fa fa-list-alt', materialIcon: 'next_week', name: 'pages.ecommerce', routes2: routes_ecommerce, inmenu: true, solotitle: true, infooter: true }, ...routes_ecommerce, { active: true, order: 2000, path: '/admin', materialIcon: 'fas fa-user-shield', name: 'otherpages.admin.menu', inmenu: true, routes2: routes_admin, solotitle: true, infooter: true, 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: true, onlyAdmin: true, onlyManager: true, onlyTutor: true, onlyTraduttrici: true }, ...routes_manager, { active: functionality.SHOW_MESSAGES, order: 2150, path: '/messages/:un', materialIcon: 'fas fa-comment', name: 'otherpages.messages.menu', component: () => import('@/views/messages/messages.vue'), inmenu: functionality.SHOW_MESSAGES, infooter: functionality.SHOW_MESSAGES, meta: { requiresAuth: true } }, // --- NOT IN MENU: --- { active: true, order: 1000, path: '/policy', name: 'pages.policy', component: () => import('@/root/policy/policy.vue') }, { active: functionality.ENABLE_REGISTRATION, order: 1000, path: '/signup', materialIcon: 'how_to_reg', name: 'pages.SignUp', component: () => import('@/views/login/signup_complete/signup_complete.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: functionality.ENABLE_REGISTRATION, order: 1000, path: '/signup/:invited', materialIcon: 'how_to_reg', name: 'pages.SignUp2', component: () => import('@/views/login/signup_complete/signup_complete.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 }, { 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') } ] export const routes = baseroutes const preLoadImages: IPreloadImages[] = [ { imgname: '../../statics/images/logo.png', alt: 'logo', mobile: false }, { imgname: '../../statics/icons/flag_it.svg', alt: 'flag it', mobile: false } // { imgname: '../../statics/images/background.jpg', alt: 'corsi di formazione per operatori del massaggio del benessere', mobile: true }, // { imgname: '../../statics/images/background2.jpg', alt: 'stanza con cuscini per seminario reiki', mobile: true }, // { imgname: '../../statics/images/background3.jpg', alt: 'foto di gruppo seminaristi reiki', mobile: true }, ] export function preloadedimages() { return [...preLoadImages] } const arrLangUsed = [ 'it', 'enUs' ] const lang_available: ILang[] = [ { label: 'Italiano', icon: 'fa-flag-it', value: 'it', image: '../statics/icons/flag_it.svg', short: 'IT' }, { label: 'English', icon: 'fa-flag-us', value: 'enUs', image: '../statics/icons/flag_gb.svg', short: 'EN' } // { label: 'German', icon: 'fa-flag-de', value: 'de', image: '../statics/images/de.png', short: 'DE' }, ] export const static_data = { functionality, baseroutes, routes, lang_available, preLoadImages, arrLangUsed }