diff --git a/apps/theming/lib/Settings/Personal.php b/apps/theming/lib/Settings/Personal.php index 4b7a7b0e8a1a7..c175416f978dc 100644 --- a/apps/theming/lib/Settings/Personal.php +++ b/apps/theming/lib/Settings/Personal.php @@ -74,7 +74,10 @@ public function getForm(): TemplateResponse { $this->initialStateService->provideInitialState('themes', array_values($themes)); $this->initialStateService->provideInitialState('enforceTheme', $enforcedTheme); $this->initialStateService->provideInitialState('isUserThemingDisabled', $this->themingDefaults->isUserThemingDisabled()); - $this->initialStateService->provideInitialState('enforcedDefaultApp', $forcedDefaultApp); + $this->initialStateService->provideInitialState('navigationBar', [ + 'userAppOrder' => json_decode($this->config->getUserValue($this->userId, 'core', 'apporder', '[]'), true, flags:JSON_THROW_ON_ERROR), + 'enforcedDefaultApp' => $forcedDefaultApp + ]); Util::addScript($this->appName, 'personal-theming'); diff --git a/apps/theming/src/components/AppOrderSelector.vue b/apps/theming/src/components/AppOrderSelector.vue index 98f2ce3f3d51d..bd4e4e7760de6 100644 --- a/apps/theming/src/components/AppOrderSelector.vue +++ b/apps/theming/src/components/AppOrderSelector.vue @@ -18,11 +18,13 @@ import { PropType, computed, defineComponent, ref } from 'vue' import AppOrderSelectorElement from './AppOrderSelectorElement.vue' -interface IApp { +export interface IApp { id: string // app id icon: string // path to the icon svg - label?: string // display name + label: string // display name default?: boolean // force app as default app + app: string + key: number } export default defineComponent({ diff --git a/apps/theming/src/components/AppOrderSelectorElement.vue b/apps/theming/src/components/AppOrderSelectorElement.vue index ee795b6272a85..73da7579d59c9 100644 --- a/apps/theming/src/components/AppOrderSelectorElement.vue +++ b/apps/theming/src/components/AppOrderSelectorElement.vue @@ -23,20 +23,22 @@
+ @click="moveUp">