diff options
Diffstat (limited to 'resources')
| -rw-r--r-- | resources/vue/components/MyCourses.vue | 2 | ||||
| -rw-r--r-- | resources/vue/components/MyCoursesNewContentToggle.vue | 9 | ||||
| -rw-r--r-- | resources/vue/components/MyCoursesSidebarSwitch.vue | 25 | ||||
| -rw-r--r-- | resources/vue/mixins/MyCoursesMixin.js | 21 | ||||
| -rw-r--r-- | resources/vue/store/MyCoursesStore.js | 23 |
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; }, }, |
