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: true, ENABLE_PROJECTS_LOADING: true, SHOW_IF_IS_SERVER_CONNECTION: true, SHOW_MESSAGES: false, BOOKING_EVENTS: true, ENABLE_ECOMMERCE: true, ENABLE_REG_CNM: 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 }, { 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 } ] const routes_projects: IListRoutes[] = [ { active: functionality.ENABLE_PROJECTS_LOADING, order: 5, path: '/admin/groups', materialIcon: 'accessibility_new', name: 'pages.groups', level_parent: 0.0, level_child: 0.5, component: () => import('@/rootgen/admin/groups/groups.vue'), inmenu: true, onlyManager: true, onlyAdmin: true, infooter: functionality.ENABLE_PROJECTS_LOADING, }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 10, path: '/projall/', materialIcon: 'accessibility_new', urlroute: 'projall', name: 'pages.projall', 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, idelem: process.env.PROJECT_ID_MAIN }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 20, path: '/myprojects/', materialIcon: 'accessibility_new', name: 'pages.myprojects', urlroute: '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, idelem: process.env.PROJECT_ID_MAIN }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 30, path: '/projectsShared/', urlroute: 'projectsShared', materialIcon: 'accessibility_new', name: 'pages.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, 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, }, { active: true, order: 30, path: '/orderinfo', materialIcon: 'fas fa-shopping-cart', name: 'pages.orderinfo', component: () => import('@/views/ecommerce/orderInfo/orderInfo.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, }, { active: true, order: 35, path: '/admin/ecommerce/orders', materialIcon: 'fas fa-file-alt', name: 'pages.orders', component: () => import('@/rootgen/admin/orders/orders.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, onlyDepartment: true }, ] const routes_admin_ecommerce: IListRoutes[] = [ { active: true, order: 30, path: '/admin/ecommerce/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/ecommerce/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/ecommerce/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 }, { active: true, order: 31, path: '/admin/ecommerce/departments', materialIcon: 'fas fa-file-alt', name: 'pages.departments', component: () => import('@/rootgen/admin/departments/departments.vue'), inmenu: true, submenu: true, level_parent: 0, level_child: 0.5, onlyManager: true, onlyTraduttrici: true }, ] const routes_admin_ecommerce_menu: IListRoutes[] = [ { active: true, order: 30, path: '/admin/ecommerce/products', name: 'pages.products', component: () => import('@/rootgen/admin/products/products.vue'), inmenu: false, infooter: false, }, { active: true, order: 31, path: '/admin/ecommerce/producers', name: 'pages.producer', component: () => import('@/rootgen/admin/producer/producer.vue'), inmenu: false, infooter: false, }, { active: true, order: 32, path: '/admin/ecommerce/storehouses', name: 'pages.storehouses', component: () => import('@/rootgen/admin/storehouses/storehouses.vue'), infooter: false, }, { active: true, order: 32, path: '/admin/ecommerce/departments', name: 'pages.departments', component: () => import('@/rootgen/admin/departments/departments.vue'), infooter: false, }, { active: true, order: 35, path: '/admin/ecommerce/orders', name: 'pages.orders2', component: () => import('@/rootgen/admin/orders/orders.vue'), infooter: false, }, ] 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, 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 // 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: 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: '/product/:codprod', materialIcon: 'event', name: 'otherpages.product', component: () => import('@/views/ecommerce/productInfo/productInfo.vue'), inmenu: false, infooter: false }, ...routes_admin_ecommerce_menu, { 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, onlySocioResidente: true, onlyAdmin: true, }, { 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/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: 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') }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 5, path: '/admin/groups', materialIcon: 'accessibility_new', name: 'pages.groups', component: () => import('@/rootgen/admin/groups/groups.vue'), inmenu: true, onlyManager: true, onlyAdmin: true, infooter: functionality.ENABLE_PROJECTS_LOADING, }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 10, path: '/projall/:idProj', materialIcon: 'accessibility_new', name: 'pages.projall', urlroute: 'projall', component: () => import('@/views/projects/proj-list/proj-list.vue'), inmenu: false, infooter: false, // idelem: process.env.PROJECT_ID_MAIN }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 20, path: '/myprojects/:idProj', materialIcon: 'accessibility_new', name: 'pages.myprojects', urlroute: 'myprojects', component: () => import('@/views/projects/proj-list/proj-list.vue'), inmenu: false, infooter: false, // idelem: process.env.PROJECT_ID_MAIN }, { active: functionality.ENABLE_PROJECTS_LOADING, order: 30, path: '/projectsShared/:idProj', urlroute: 'projectsShared', materialIcon: 'accessibility_new', name: 'pages.projectsShared', component: () => import('@/views/projects/proj-list/proj-list.vue'), inmenu: false, infooter: false, // idelem: process.env.PROJECT_ID_MAIN } ] 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/icons/flag_uk.svg', alt: 'flag en', 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 }