From ea23d4badb2c9d9eb783cba1be9f4920aa7af07d Mon Sep 17 00:00:00 2001 From: Ramteid Date: Sun, 22 Feb 2026 23:12:12 +0100 Subject: [PATCH 1/2] feat(board): Add default board functionality and redirect to it on main route Signed-off-by: ramteid --- .../navigation/AppNavigationBoard.vue | 24 +++++++++++++++++++ src/router.js | 8 +++++++ 2 files changed, 32 insertions(+) diff --git a/src/components/navigation/AppNavigationBoard.vue b/src/components/navigation/AppNavigationBoard.vue index 740999f9bf..4fac039ce1 100644 --- a/src/components/navigation/AppNavigationBoard.vue +++ b/src/components/navigation/AppNavigationBoard.vue @@ -72,6 +72,13 @@ {{ board.settings['notify-due'] === 'off' ? t('deck', 'Turn on due date reminders') : t('deck', 'Turn off due date reminders') }} + + + {{ isDefaultBoard ? t('deck', 'Remove as default board') : t('deck', 'Set as default board') }} + @@ -172,6 +179,8 @@ import LeaveIcon from 'vue-material-design-icons/ExitRun.vue' import AccountIcon from 'vue-material-design-icons/AccountOutline.vue' import CloseIcon from 'vue-material-design-icons/Close.vue' import CheckIcon from 'vue-material-design-icons/Check.vue' +import PinIcon from 'vue-material-design-icons/Pin.vue' +import PinOffIcon from 'vue-material-design-icons/PinOff.vue' import { loadState } from '@nextcloud/initial-state' import { emit } from '@nextcloud/event-bus' @@ -198,6 +207,8 @@ export default { CloneIcon, CloseIcon, CheckIcon, + PinIcon, + PinOffIcon, LeaveIcon, BoardCloneModal, BoardExportModal, @@ -231,6 +242,7 @@ export default { cloneModalOpen: false, exportModalOpen: false, currentUser: getCurrentUser(), + defaultBoardId: localStorage.getItem('deck.defaultBoardId'), } }, computed: { @@ -275,6 +287,9 @@ export default { } return '' }, + isDefaultBoard() { + return this.defaultBoardId === String(this.board.id) + }, }, watch: {}, mounted() { @@ -282,6 +297,15 @@ export default { this.popupItem = this.$el }, methods: { + toggleDefaultBoard() { + if (this.isDefaultBoard) { + localStorage.removeItem('deck.defaultBoardId') + this.defaultBoardId = null + } else { + localStorage.setItem('deck.defaultBoardId', String(this.board.id)) + this.defaultBoardId = String(this.board.id) + } + }, unDelete() { clearTimeout(this.undoTimeoutHandle) this.boardApi.unDeleteBoard(this.board) diff --git a/src/router.js b/src/router.js index e4f206cf9f..f311410cbb 100644 --- a/src/router.js +++ b/src/router.js @@ -155,6 +155,14 @@ router.beforeEach((to, from, next) => { next(path) return } + // Redirect to the pinned default board if set and navigating to the main route + if (to.name === 'main') { + const defaultBoardId = localStorage.getItem('deck.defaultBoardId') + if (defaultBoardId) { + next({ name: 'board', params: { id: parseInt(defaultBoardId, 10) } }) + return + } + } next() }) From d871610b9576bb1fec94237def24374d576a187e Mon Sep 17 00:00:00 2001 From: Ramteid Date: Sun, 22 Feb 2026 23:35:57 +0100 Subject: [PATCH 2/2] Added English and German language files Signed-off-by: ramteid --- l10n/de.js | 4 +++- l10n/de.json | 4 +++- l10n/de_DE.js | 4 +++- l10n/de_DE.json | 4 +++- l10n/en_GB.js | 4 +++- l10n/en_GB.json | 4 +++- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/l10n/de.js b/l10n/de.js index bb9b27081b..0cad7004d2 100644 --- a/l10n/de.js +++ b/l10n/de.js @@ -411,6 +411,8 @@ OC.L10N.register( "Save" : "Speichern", "Today" : "Heute", "Tomorrow" : "Morgen", - "No due" : "Kein Fälligkeitsdatum" + "No due" : "Kein Fälligkeitsdatum", + "Set as default board" : "Als Standard-Board festlegen", + "Remove as default board" : "Als Standard-Board entfernen" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/de.json b/l10n/de.json index e2610f4257..0923008321 100644 --- a/l10n/de.json +++ b/l10n/de.json @@ -409,6 +409,8 @@ "Save" : "Speichern", "Today" : "Heute", "Tomorrow" : "Morgen", - "No due" : "Kein Fälligkeitsdatum" + "No due" : "Kein Fälligkeitsdatum", + "Set as default board" : "Als Standard-Board festlegen", + "Remove as default board" : "Als Standard-Board entfernen" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/de_DE.js b/l10n/de_DE.js index aa943e66fb..2c02c8f4b6 100644 --- a/l10n/de_DE.js +++ b/l10n/de_DE.js @@ -411,6 +411,8 @@ OC.L10N.register( "Save" : "Speichern", "Today" : "Heute", "Tomorrow" : "Morgen", - "No due" : "Kein Fälligkeitsdatum" + "No due" : "Kein Fälligkeitsdatum", + "Set as default board" : "Als Standard-Board festlegen", + "Remove as default board" : "Als Standard-Board entfernen" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/de_DE.json b/l10n/de_DE.json index bb289a6d6a..0ae2053ff3 100644 --- a/l10n/de_DE.json +++ b/l10n/de_DE.json @@ -409,6 +409,8 @@ "Save" : "Speichern", "Today" : "Heute", "Tomorrow" : "Morgen", - "No due" : "Kein Fälligkeitsdatum" + "No due" : "Kein Fälligkeitsdatum", + "Set as default board" : "Als Standard-Board festlegen", + "Remove as default board" : "Als Standard-Board entfernen" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/l10n/en_GB.js b/l10n/en_GB.js index c4f5771c69..7a9e9e1137 100644 --- a/l10n/en_GB.js +++ b/l10n/en_GB.js @@ -411,6 +411,8 @@ OC.L10N.register( "Save" : "Save", "Today" : "Today", "Tomorrow" : "Tomorrow", - "No due" : "No due" + "No due" : "No due", + "Set as default board" : "Set as default board", + "Remove as default board" : "Remove as default board" }, "nplurals=2; plural=(n != 1);"); diff --git a/l10n/en_GB.json b/l10n/en_GB.json index 05200cc663..176ce08e59 100644 --- a/l10n/en_GB.json +++ b/l10n/en_GB.json @@ -409,6 +409,8 @@ "Save" : "Save", "Today" : "Today", "Tomorrow" : "Tomorrow", - "No due" : "No due" + "No due" : "No due", + "Set as default board" : "Set as default board", + "Remove as default board" : "Remove as default board" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file