From 575090552fcda8046346d627e271fa0f3113d64a Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Fri, 19 Mar 2021 21:01:50 +0100 Subject: [PATCH] [schedule] Improved calendar view * Load events on next and prev * Resize if display is not wide enough * Fixed permissions --- .../components/overview/AgendaView.vue | 64 +++++++++++-------- src/plugins/schedule/pages/Management.vue | 6 +- src/plugins/schedule/pages/Overview.vue | 19 ++---- src/plugins/schedule/permissions.ts | 24 ++++--- src/plugins/schedule/routes/index.ts | 4 +- src/utils/datetime.ts | 8 +++ 6 files changed, 71 insertions(+), 54 deletions(-) diff --git a/src/plugins/schedule/components/overview/AgendaView.vue b/src/plugins/schedule/components/overview/AgendaView.vue index 022ab2e..4a229e2 100644 --- a/src/plugins/schedule/components/overview/AgendaView.vue +++ b/src/plugins/schedule/components/overview/AgendaView.vue @@ -47,14 +47,15 @@ diff --git a/src/plugins/schedule/permissions.ts b/src/plugins/schedule/permissions.ts index 2ba1b10..40a5b92 100644 --- a/src/plugins/schedule/permissions.ts +++ b/src/plugins/schedule/permissions.ts @@ -1,12 +1,16 @@ export const PERMISSIONS = { - // Kann andere Nutzer bearbeiten - EDIT_OTHER: 'users_edit_other', - // Kann Rollen von Nutzern setzen - SET_ROLES: 'users_set_roles', - // Kann Nutzer löschen - DELETE: 'users_delete_other', - // Kann neue Nutzer hinzufügen - REGISTER: 'users_register', - // Kann Rollen löschen oder bearbeiten, z.b. Rechte hinzufügen etc - ROLES_EDIT: 'roles_edit', + // Can create events + CREATE: 'schedule_create', + // Can edit events + EDIT: 'schedule_edit', + // Can delete events + DELETE: 'schedule_delete', + // Can create and edit EventTypes + EVENT_TYPE: 'schedule_event_type', + // Can create and edit JobTypes + JOB_TYPE: 'schedule_job_type', + // Can self assign to jobs + ASSIGN: 'schedule_assign', + // Can assign other users to jobs + ASSIGN_OTHER: 'schedule_assign_other', }; diff --git a/src/plugins/schedule/routes/index.ts b/src/plugins/schedule/routes/index.ts index b7cc912..7c816a6 100644 --- a/src/plugins/schedule/routes/index.ts +++ b/src/plugins/schedule/routes/index.ts @@ -1,4 +1,5 @@ import { FG_Plugin } from 'src/plugins'; +import { PERMISSIONS } from '../permissions'; const mainRoutes: FG_Plugin.PluginRouteConfig[] = [ { @@ -14,9 +15,7 @@ const mainRoutes: FG_Plugin.PluginRouteConfig[] = [ { title: 'Dienstübersicht', icon: 'mdi-account-group', - shortcut: true, - permissions: [], route: { path: 'schedule-overview', name: 'schedule-overview', @@ -27,6 +26,7 @@ const mainRoutes: FG_Plugin.PluginRouteConfig[] = [ title: 'Dienstverwaltung', icon: 'mdi-account-details', shortcut: false, + permissions: [PERMISSIONS.CREATE], route: { path: 'schedule-management', name: 'schedule-management', diff --git a/src/utils/datetime.ts b/src/utils/datetime.ts index 48e2599..3fc0139 100644 --- a/src/utils/datetime.ts +++ b/src/utils/datetime.ts @@ -20,3 +20,11 @@ export function formatDateTime( export function asHour(date?: Date) { if (date) return formatDateTime(date, false, true); } + +export function startOfWeek(date: Date, startMonday = true) { + const start = new Date(date); + const day = date.getDay() || 7; + if (startMonday && day !== 1) start.setHours(-24 * (day - 1)); + else if (!startMonday && day !== 7) start.setHours(-24 * day); + return start; +}