aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/vue/components/MyCourses.vue2
-rw-r--r--resources/vue/components/MyCoursesNewContentToggle.vue9
-rw-r--r--resources/vue/components/MyCoursesSidebarSwitch.vue25
-rw-r--r--resources/vue/mixins/MyCoursesMixin.js21
-rw-r--r--resources/vue/store/MyCoursesStore.js23
5 files changed, 37 insertions, 43 deletions
diff --git a/resources/vue/components/MyCourses.vue b/resources/vue/components/MyCourses.vue
index 769d315..4048025 100644
--- a/resources/vue/components/MyCourses.vue
+++ b/resources/vue/components/MyCourses.vue
@@ -55,7 +55,7 @@ export default {
: MyCoursesTables;
},
displayedType () {
- return this.getConfig(this.viewConfig);
+ return this.getViewConfig('tiled') ? 'tiles' : 'table';
},
iconSize () {
if (this.displayedType !== 'tiles' && !this.responsiveDisplay) {
diff --git a/resources/vue/components/MyCoursesNewContentToggle.vue b/resources/vue/components/MyCoursesNewContentToggle.vue
index 49bf7ed..3ced26d 100644
--- a/resources/vue/components/MyCoursesNewContentToggle.vue
+++ b/resources/vue/components/MyCoursesNewContentToggle.vue
@@ -2,7 +2,7 @@
<ul class="widget-list widget-options">
<li>
<a href="#" class="options-checkbox" :class="showNewContents ? 'options-checked' : 'options-unchecked'" @click.prevent="toggleNewContents">
- <translate>Nur neue Inhalte anzeigen</translate>
+ {{ $gettext('Nur neue Inhalte anzeigen') }}
</a>
</li>
</ul>
@@ -17,15 +17,12 @@ export default {
mixins: [MyCoursesMixin],
computed: {
showNewContents () {
- return this.getConfig('navigation_show_only_new');
+ return this.getViewConfig('only_new');
},
},
methods: {
toggleNewContents() {
- this.updateConfigValue({
- key: 'navigation_show_only_new',
- value: !this.getConfig('navigation_show_only_new'),
- }).then(() => {
+ this.updateViewConfig('only_new', !this.showNewContents).then(() => {
Sidebar.close();
});
},
diff --git a/resources/vue/components/MyCoursesSidebarSwitch.vue b/resources/vue/components/MyCoursesSidebarSwitch.vue
index 5abc1fb..788c053 100644
--- a/resources/vue/components/MyCoursesSidebarSwitch.vue
+++ b/resources/vue/components/MyCoursesSidebarSwitch.vue
@@ -1,13 +1,13 @@
<template>
<ul class="widget-list widget-links sidebar-views">
<li :class="{ active: tableView }">
- <a href="#" @click.prevent="setTableView">
- <translate>Tabellarische Ansicht</translate>
+ <a href="#" @click.prevent="setTiledView(false)">
+ {{ $gettext('Tabellarische Ansicht') }}
</a>
</li>
<li :class="{ active: tilesView }">
- <a href="#" @click.prevent="setTilesView">
- <translate>Kachelansicht</translate>
+ <a href="#" @click.prevent="setTiledView(true)">
+ {{ $gettext('Kachelansicht') }}
</a>
</li>
</ul>
@@ -22,24 +22,15 @@ export default {
mixins: [MyCoursesMixin],
computed: {
tableView () {
- return this.getConfig(this.viewConfig) === 'tables';
+ return !this.getViewConfig('tiled');
},
tilesView () {
- return this.getConfig(this.viewConfig) === 'tiles';
+ return this.getViewConfig('tiled');
},
},
methods: {
- setTableView () {
- this.setView('tables');
- },
- setTilesView () {
- this.setView('tiles');
- },
- setView (view) {
- this.updateConfigValue({
- key: this.viewConfig,
- value: view
- }).then(() => {
+ setTiledView (state) {
+ this.updateViewConfig('tiled', state).then(() => {
Sidebar.close();
});
}
diff --git a/resources/vue/mixins/MyCoursesMixin.js b/resources/vue/mixins/MyCoursesMixin.js
index 203340b..39e11e7 100644
--- a/resources/vue/mixins/MyCoursesMixin.js
+++ b/resources/vue/mixins/MyCoursesMixin.js
@@ -16,6 +16,22 @@ export default {
'updateConfigValue',
]),
+ getViewConfig(key) {
+ return this.getConfig(
+ 'view_settings',
+ this.responsiveDisplay ? 'responsive' : 'regular',
+ key
+ );
+ },
+ updateViewConfig(key, value) {
+ let config = this.getConfig('view_settings');
+ config[this.responsiveDisplay ? 'responsive' : 'regular'][key] = value;
+ return this.updateConfigValue({
+ key: 'view_settings',
+ value: config
+ });
+ },
+
getCourseName(course, include_number = false) {
let name = course.name;
if (include_number) {
@@ -110,7 +126,7 @@ export default {
return;
}
- if (this.getConfig('navigation_show_only_new') && !nav.important) {
+ if (this.getViewConfig('only_new') && !nav.important) {
return;
}
@@ -150,9 +166,6 @@ export default {
'getConfig',
]),
- viewConfig () {
- return this.responsiveDisplay ? 'responsive_type' : 'display_type';
- },
numberOfNavElements () {
return Math.max(
...Object.values(this.courses).map(course => {
diff --git a/resources/vue/store/MyCoursesStore.js b/resources/vue/store/MyCoursesStore.js
index a090040..08c0389 100644
--- a/resources/vue/store/MyCoursesStore.js
+++ b/resources/vue/store/MyCoursesStore.js
@@ -1,17 +1,7 @@
const configMapping = {
- display_type: value => {
+ view_settings: value => {
return {
- MY_COURSES_TILED_DISPLAY: value === 'tiles',
- }
- },
- responsive_type: value => {
- return {
- MY_COURSES_TILED_DISPLAY_RESPONSIVE: value === 'tiles',
- }
- },
- navigation_show_only_new: value => {
- return {
- MY_COURSES_SHOW_NEW_ICONS_ONLY: value,
+ MY_COURSES_VIEW_SETTINGS: value
};
},
open_groups: value => {
@@ -19,7 +9,6 @@ const configMapping = {
MY_COURSES_OPEN_GROUPS: value,
};
},
-
};
export default {
@@ -39,8 +28,12 @@ export default {
}
return state.config.open_groups.includes(group.id);
},
- getConfig: (state) => (key) => {
- return state.config[key];
+ getConfig: (state) => (...keys) => {
+ let config = state.config;
+ for (const key of keys) {
+ config = config[key];
+ }
+ return config;
},
},