From a0e2fe1e074b0d91dbe893a9ba1b534c7ee7f50a Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Mon, 22 Apr 2024 19:54:37 +0200 Subject: [PATCH] Add print button to timetable view --- .../components/timetables/Timetable.vue | 22 +++++++++++++++++++ aleksis/apps/lesrooster/frontend/index.js | 9 +++++++- .../apps/lesrooster/frontend/messages/en.json | 3 ++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/aleksis/apps/lesrooster/frontend/components/timetables/Timetable.vue b/aleksis/apps/lesrooster/frontend/components/timetables/Timetable.vue index 5e1ad4fd..b0a1cbe8 100644 --- a/aleksis/apps/lesrooster/frontend/components/timetables/Timetable.vue +++ b/aleksis/apps/lesrooster/frontend/components/timetables/Timetable.vue @@ -87,6 +87,28 @@ export default { </v-card-text> </v-card> </template> + <template #additionalButton="{ selected, mobile }"> + <div :class="{ 'full-width': mobile, 'd-flex': true }" v-if="selected"> + <v-btn + outlined + color="secondary" + small + :class="{ 'mx-3 flex-grow-1': true, 'mb-3': mobile }" + :to="{ + name: 'lesrooster.timetablePrint', + params: { + timeGrid: timeGrid.id, + type: selected.type.toLowerCase(), + id: selected.objId, + }, + }" + target="_blank" + > + <v-icon left>mdi-printer-outline</v-icon> + {{ $t("lesrooster.timetable.print") }} + </v-btn> + </div> + </template> <template #default="{ selected }"> <group-time-table v-if="$route.params.type === 'group'" diff --git a/aleksis/apps/lesrooster/frontend/index.js b/aleksis/apps/lesrooster/frontend/index.js index 0484a740..df8ebf22 100644 --- a/aleksis/apps/lesrooster/frontend/index.js +++ b/aleksis/apps/lesrooster/frontend/index.js @@ -43,7 +43,14 @@ export default { }, ], }, - + { + path: "timetable/:timeGrid(\\d+)/:type(\\w+)/:id(\\d+)/print/", + component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"), + name: "lesrooster.timetablePrint", + props: { + byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true, + }, + }, { path: "validity_ranges/", component: () => import("./components/validity_range/ValidityRange.vue"), diff --git a/aleksis/apps/lesrooster/frontend/messages/en.json b/aleksis/apps/lesrooster/frontend/messages/en.json index 336f8d26..939fd310 100644 --- a/aleksis/apps/lesrooster/frontend/messages/en.json +++ b/aleksis/apps/lesrooster/frontend/messages/en.json @@ -128,7 +128,8 @@ } }, "timetable": { - "menu_title": "Timetables" + "menu_title": "Timetables", + "print": "Print" }, "supervision": { "menu_title": "Supervisions", -- GitLab