aboutsummaryrefslogtreecommitdiff
path: root/resources/vue/components/tree/StudipTreeViewWidget.vue
diff options
context:
space:
mode:
Diffstat (limited to 'resources/vue/components/tree/StudipTreeViewWidget.vue')
-rw-r--r--resources/vue/components/tree/StudipTreeViewWidget.vue56
1 files changed, 56 insertions, 0 deletions
diff --git a/resources/vue/components/tree/StudipTreeViewWidget.vue b/resources/vue/components/tree/StudipTreeViewWidget.vue
new file mode 100644
index 0000000..30e2d5c
--- /dev/null
+++ b/resources/vue/components/tree/StudipTreeViewWidget.vue
@@ -0,0 +1,56 @@
+<template>
+ <sidebar-widget id="views-widget" class="sidebar-views" :title="$gettext('Ansicht')">
+ <template #content>
+ <ul class="widget-list widget-links sidebar-views">
+ <li :class="{ active: config.view === 'list' }">
+ <a :href="getUrl('list')"
+ :title="$gettext('Verzeichnis als Liste anzeigen')"
+ tabindex="0">
+ {{ $gettext('Als Liste anzeigen') }}
+ </a>
+ </li>
+ <li :class="{ active: config.view === 'table' }">
+ <a :href="getUrl('table')"
+ :title="$gettext('Verzeichnis als Tabelle anzeigen')"
+ tabindex="0">
+ {{ $gettext('Als Tabelle anzeigen') }}
+ </a>
+ </li>
+ </ul>
+ </template>
+ </sidebar-widget>
+</template>
+
+<script>
+import SidebarWidget from '../SidebarWidget.vue';
+
+export default {
+ name: 'StudipTreeViewWidget',
+ components: {
+ SidebarWidget
+ },
+ props: {
+ config: {
+ type: Object,
+ required: true
+ }
+ },
+ methods: {
+ getUrl(showAs) {
+ const url = new URL(window.location);
+ url.searchParams.set('show_as', showAs);
+ url.searchParams.set('node_id', this.config.node.id);
+
+ if (this.config.semester !== '') {
+ url.searchParams.set('semester', this.config.semester);
+ }
+
+ if (this.config.semClass !== 0) {
+ url.searchParams.set('semclass', this.config.semClass);
+ }
+
+ return url.toString();
+ }
+ }
+}
+</script>