Files
cnm/src/db/static_data.ts
2021-02-21 02:05:17 +01:00

841 lines
22 KiB
TypeScript
Executable File

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.ENABLE_PROJECTS_LOADING,
infooter: functionality.ENABLE_PROJECTS_LOADING,
onlySocioResidente: true,
onlyAdmin: true,
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,
onlySocioResidente: true,
onlyAdmin: true,
component: () => import('@/views/projects/proj-list/proj-list.vue'),
inmenu: functionality.ENABLE_PROJECTS_LOADING,
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.ENABLE_PROJECTS_LOADING,
onlySocioResidente: true,
onlyAdmin: true,
infooter: functionality.ENABLE_PROJECTS_LOADING,
idelem: process.env.PROJECT_ID_MAIN
},
{
active: functionality.ENABLE_PROJECTS_LOADING,
order: 40,
path: '/report',
materialIcon: 'accessibility_new',
name: 'pages.report',
level_parent: 0.0,
level_child: 0.5,
component: () => import('@/views/projects/report/report.vue'),
inmenu: functionality.ENABLE_PROJECTS_LOADING,
onlySocioResidente: true,
onlyAdmin: true,
infooter: functionality.ENABLE_PROJECTS_LOADING,
}
]
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: 80,
path: '/calendario-eventi',
materialIcon: 'event',
name: 'pages.calendarioeventi',
component: () => import('@/root/calendarioeventi/calendarioeventi.vue'),
extraclass: 'isCalendar',
inmenu: true,
infooter: true
},
{
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: 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: 110,
path: '/event/:typol',
materialIcon: 'event',
name: 'pages.eventodef',
component: () => import('@/root/evento/evento.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,
onlySocioResidente: 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'),
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
},
{
active: functionality.ENABLE_PROJECTS_LOADING,
order: 40,
path: '/report',
urlroute: 'report',
materialIcon: 'accessibility_new',
name: 'pages.report',
component: () => import('@/views/projects/report/report.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
}