feat(approvals): Create timesheet approval page, begin scaffolding and building store, services, api, set up backend connecting logic
This commit is contained in:
parent
5a4cba5588
commit
c1ce7e36cb
|
|
@ -13,8 +13,8 @@
|
||||||
// Tip: Use the "Theme Builder" on Quasar's documentation website.
|
// Tip: Use the "Theme Builder" on Quasar's documentation website.
|
||||||
|
|
||||||
$primary: #019547;
|
$primary: #019547;
|
||||||
$secondary: #EFFFEF;
|
$secondary: #DAE0E7;
|
||||||
$accent: #4ada86;
|
$accent: #81AFE3;
|
||||||
|
|
||||||
$dark-font: #305530;
|
$dark-font: #305530;
|
||||||
$dark: #323232;
|
$dark: #323232;
|
||||||
|
|
|
||||||
|
|
@ -32,8 +32,8 @@ export default {
|
||||||
userMenuCalendar: 'Calendar',
|
userMenuCalendar: 'Calendar',
|
||||||
},
|
},
|
||||||
notFoundPage: {
|
notFoundPage: {
|
||||||
pageTitle: 'Oops. Nothing here...',
|
pageText: 'We cannot seem to find the page you are looking for, sorry!',
|
||||||
backButton: 'Go to the home page',
|
backButton: 'Take me back!',
|
||||||
},
|
},
|
||||||
loginPage: {
|
loginPage: {
|
||||||
title: 'Log in to Targo',
|
title: 'Log in to Targo',
|
||||||
|
|
|
||||||
|
|
@ -171,8 +171,8 @@ export default {
|
||||||
userMenuCalendar: 'Calendrier annuel',
|
userMenuCalendar: 'Calendrier annuel',
|
||||||
},
|
},
|
||||||
notFoundPage: {
|
notFoundPage: {
|
||||||
pageTitle: 'Oops. Rien ici...',
|
pageText: 'On ne semble pas trouver la page que vous cherchez, désolé!',
|
||||||
backButton: 'Aller à la page d’accueil',
|
backButton: 'Je veux retourner en arrière!',
|
||||||
},
|
},
|
||||||
notificationDialog: {
|
notificationDialog: {
|
||||||
notice: 'Notification',
|
notice: 'Notification',
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { useAuthStore } from "../../../stores/auth-store";
|
import { useAuthStore } from "../../../stores/auth-store";
|
||||||
import type { User } from "src/modules/users/types/user-interface";
|
import type { User } from "src/modules/shared/types/user-interface";
|
||||||
|
|
||||||
export const useAuthApi = () => {
|
export const useAuthApi = () => {
|
||||||
const authStore = useAuthStore();
|
const authStore = useAuthStore();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, watch } from 'vue';
|
import { ref, watch } from 'vue';
|
||||||
import { useAuthApi } from '../composables/use-auth-api';
|
import { useAuthApi } from '../composables/use-auth-api';
|
||||||
import type { User } from 'src/modules/users/types/user-interface';
|
import type { User } from 'src/modules/shared/types/user-interface';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import type { User } from "src/modules/users/types/user-interface";
|
import type { User } from "src/modules/shared/types/user-interface";
|
||||||
|
|
||||||
export interface AuthState {
|
export interface AuthState {
|
||||||
token: string;
|
token: string;
|
||||||
|
|
|
||||||
|
|
@ -3,25 +3,21 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="fullscreen bg-blue text-white text-center q-pa-md flex flex-center">
|
<q-layout view="hHh lpR fFf">
|
||||||
<div>
|
<q-page-container>
|
||||||
<div style="font-size: 30vh">
|
<q-page padding class="column justify-center items-center bg-secondary">
|
||||||
404
|
<q-card class="col-shrink rounded-20">
|
||||||
</div>
|
<q-img src="src/assets/line-truck-1.jpg" height="20vh">
|
||||||
|
<div class="absolute-bottom text-h4 text-center text-weight-bolder justify-center items-center row">
|
||||||
<div class="text-h2" style="opacity:.4">
|
<div class="q-pr-md text-primary text-h3 text-weight-bolder">404</div>
|
||||||
Oops. Nothing here...
|
PAGE NOT FOUND
|
||||||
</div>
|
|
||||||
|
|
||||||
<q-btn
|
|
||||||
class="q-mt-xl"
|
|
||||||
color="white"
|
|
||||||
text-color="blue"
|
|
||||||
unelevated
|
|
||||||
to="/"
|
|
||||||
label="Go Home"
|
|
||||||
no-caps
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
</q-img>
|
||||||
|
<q-card-section class="text-center text-h5 text-primary">
|
||||||
|
{{$t('notFoundPage.pageText')}}
|
||||||
|
</q-card-section>
|
||||||
|
</q-card>
|
||||||
|
</q-page>
|
||||||
|
</q-page-container>
|
||||||
|
</q-layout>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
import type { RouteRecordRaw } from 'vue-router';
|
import type { RouteRecordRaw } from 'vue-router';
|
||||||
|
import { RouteNames } from './router-constants';
|
||||||
|
|
||||||
const routes: RouteRecordRaw[] = [
|
const routes: RouteRecordRaw[] = [
|
||||||
{
|
{
|
||||||
|
|
@ -8,22 +9,27 @@ const routes: RouteRecordRaw[] = [
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
name: 'dashboard',
|
name: RouteNames.DASHBOARD,
|
||||||
component: () => import('src/pages/test-page.vue'),
|
component: () => import('src/pages/test-page.vue'),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'timesheet-approvals',
|
||||||
|
name: RouteNames.TIMESHEET_APPROVALS,
|
||||||
|
component: () => import('src/modules/timesheet-approval/pages/timesheet-approval.vue'),
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: '/v1/login',
|
path: '/v1/login',
|
||||||
name: 'login',
|
name: RouteNames.LOGIN,
|
||||||
component: () => import('src/modules/auth/pages/auth-login.vue'),
|
component: () => import('src/modules/auth/pages/auth-login.vue'),
|
||||||
meta: { requiresAuth: false },
|
meta: { requiresAuth: false },
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: '/login-success',
|
path: '/login-success',
|
||||||
name: 'login-success',
|
name: RouteNames.LOGIN_SUCCESS,
|
||||||
component: () => import('src/modules/auth/pages/auth-login-popup-success.vue'),
|
component: () => import('src/modules/auth/pages/auth-login-popup-success.vue'),
|
||||||
meta: { requiresAuth: false },
|
meta: { requiresAuth: false },
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user