diff --git a/src/pages/help-page.vue b/src/pages/help-page.vue
index e69de29..4e3de2a 100644
--- a/src/pages/help-page.vue
+++ b/src/pages/help-page.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/router/router-constants.ts b/src/router/router-constants.ts
index 3297a47..f946e0e 100644
--- a/src/router/router-constants.ts
+++ b/src/router/router-constants.ts
@@ -8,6 +8,6 @@ export enum RouteNames {
PROFILE = 'personal_profile',
TIMESHEET = 'timesheets',
HELP = 'help',
-
+
ERROR = 'error',
}
\ No newline at end of file
diff --git a/src/router/routes.ts b/src/router/routes.ts
index b217d9e..26c2bd7 100644
--- a/src/router/routes.ts
+++ b/src/router/routes.ts
@@ -4,12 +4,12 @@ import { ModuleNames } from 'src/modules/shared/models/user.models';
const routes: RouteRecordRaw[] = [
{
- path: '/',
+ path: '/',
component: () => import('src/layouts/main-layout.vue'),
meta: { requires_auth: true },
children: [
- {
- path: '',
+ {
+ path: '',
name: RouteNames.DASHBOARD,
component: () => import('src/pages/dashboard-page.vue'),
meta: { required_module: ModuleNames.DASHBOARD }
@@ -38,18 +38,23 @@ const routes: RouteRecordRaw[] = [
component: () => import('src/pages/profile-page.vue'),
meta: { required_module: ModuleNames.PERSONAL_PROFILE },
},
+ {
+ path: 'help',
+ name: RouteNames.HELP,
+ component: () => import('src/pages/help-page.vue'),
+ },
],
},
{
- path: '/v1/login',
+ path: '/v1/login',
name: RouteNames.LOGIN,
component: () => import('src/pages/login-page.vue'),
meta: { requires_auth: false },
},
{
- path: '/login-success',
+ path: '/login-success',
name: RouteNames.LOGIN_SUCCESS,
component: () => import('src/modules/auth/pages/auth-login-popup-success.vue'),
meta: { requires_auth: false },
diff --git a/src/stores/help-store.ts b/src/stores/help-store.ts
new file mode 100644
index 0000000..df89732
--- /dev/null
+++ b/src/stores/help-store.ts
@@ -0,0 +1,37 @@
+import { defineStore } from "pinia";
+import { ref } from "vue";
+import { help_module_details } from "src/modules/help/models/help-module.model";
+import { useAuthStore } from "src/stores/auth-store";
+import type { HelpModuleOptions } from "src/modules/help/models/help-module.model";
+import type { UserModuleAccess } from "src/modules/shared/models/user.models";
+
+
+
+export const useHelpStore = defineStore('help', () => {
+ const is_loading = ref(false);
+ const user_modules = ref
>();
+ const auth_store = useAuthStore();
+
+ const getFilteredModule = () => {
+ if(!auth_store.user) return;
+
+ const entries = auth_store.user.user_module_access
+ .map((key) => {
+ const options = help_module_details[key];
+ return options ? ([key, options] as const) : null;
+ })
+ .filter(
+ (entry): entry is readonly [UserModuleAccess, HelpModuleOptions[]] =>
+ entry !== null
+ );
+
+ user_modules.value = Object.fromEntries(entries) as Record;
+ }
+
+ return {
+ is_loading,
+ user_modules,
+ help_module_details,
+ getFilteredModule,
+ };
+});
\ No newline at end of file