From abf2bce46875fc413d290a4d81559477063f28ee Mon Sep 17 00:00:00 2001 From: Julian Leucker <leuckerj@gmail.com> Date: Mon, 14 Oct 2024 15:13:45 +0200 Subject: [PATCH] Link to coursebook and absences book on group overview page --- .../group_actions/OpenCoursebook.vue | 30 +++++++++++++++++++ .../group_actions/ShowAbsences.vue | 30 +++++++++++++++++++ aleksis/apps/alsijil/frontend/index.js | 17 +++++++++++ .../apps/alsijil/frontend/messages/en.json | 4 ++- 4 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 aleksis/apps/alsijil/frontend/components/injectables/group_actions/OpenCoursebook.vue create mode 100644 aleksis/apps/alsijil/frontend/components/injectables/group_actions/ShowAbsences.vue diff --git a/aleksis/apps/alsijil/frontend/components/injectables/group_actions/OpenCoursebook.vue b/aleksis/apps/alsijil/frontend/components/injectables/group_actions/OpenCoursebook.vue new file mode 100644 index 000000000..c52dedfc1 --- /dev/null +++ b/aleksis/apps/alsijil/frontend/components/injectables/group_actions/OpenCoursebook.vue @@ -0,0 +1,30 @@ +<script> +import groupActionsMixin from "aleksis.core/components/group/actions/groupActionsMixin.js"; +export default { + name: "OpenCoursebook", + mixins: [groupActionsMixin], +}; +</script> + +<template> + <v-list-item + :to="{ + name: 'alsijil.coursebook', + params: { + filterType: 'all', + pageType: 'documentations', + objType: 'group', + objId: group.id, + }, + }" + > + <v-list-item-icon> + <v-icon>mdi-book-education-outline</v-icon> + </v-list-item-icon> + <v-list-item-content> + <v-list-item-title> + {{ $t("actions.open_in_coursebook") }} + </v-list-item-title> + </v-list-item-content> + </v-list-item> +</template> diff --git a/aleksis/apps/alsijil/frontend/components/injectables/group_actions/ShowAbsences.vue b/aleksis/apps/alsijil/frontend/components/injectables/group_actions/ShowAbsences.vue new file mode 100644 index 000000000..e582968e3 --- /dev/null +++ b/aleksis/apps/alsijil/frontend/components/injectables/group_actions/ShowAbsences.vue @@ -0,0 +1,30 @@ +<script> +import groupActionsMixin from "aleksis.core/components/group/actions/groupActionsMixin.js"; +export default { + name: "ShowAbsences", + mixins: [groupActionsMixin], +}; +</script> + +<template> + <v-list-item + :to="{ + name: 'alsijil.coursebook', + params: { + filterType: 'all', + pageType: 'absences', + objType: 'group', + objId: group.id, + }, + }" + > + <v-list-item-icon> + <v-icon>mdi-account-details-outline</v-icon> + </v-list-item-icon> + <v-list-item-content> + <v-list-item-title> + {{ $t("actions.show_absences") }} + </v-list-item-title> + </v-list-item-content> + </v-list-item> +</template> diff --git a/aleksis/apps/alsijil/frontend/index.js b/aleksis/apps/alsijil/frontend/index.js index 37bde1e72..4945f0b98 100644 --- a/aleksis/apps/alsijil/frontend/index.js +++ b/aleksis/apps/alsijil/frontend/index.js @@ -1,6 +1,23 @@ import { hasPersonValidator } from "aleksis.core/routeValidators"; import { DateTime } from "luxon"; +export const collectionItems = { + coreGroupActions: [ + { + key: "alsijil-open-coursebook", + component: () => + import("./components/injectables/group_actions/OpenCoursebook.vue"), + isActive: () => true, + }, + { + key: "alsijil-show-absences", + component: () => + import("./components/injectables/group_actions/ShowAbsences.vue"), + isActive: () => true, + }, + ], +}; + export default { meta: { inMenu: true, diff --git a/aleksis/apps/alsijil/frontend/messages/en.json b/aleksis/apps/alsijil/frontend/messages/en.json index 13baa9af4..34dff10f5 100644 --- a/aleksis/apps/alsijil/frontend/messages/en.json +++ b/aleksis/apps/alsijil/frontend/messages/en.json @@ -140,7 +140,9 @@ }, "actions": { "back_to_overview": "Back to overview", - "open_person_page": "Open detail view for {fullName}" + "open_person_page": "Open detail view for {fullName}", + "open_in_coursebook": "View Coursebook", + "show_absences": "Open absence list" }, "time": { "minutes": "minutes", -- GitLab