diff --git a/frontend/src/components/misc/Icon.ts b/frontend/src/components/misc/Icon.ts index db615628f..db333c0dd 100644 --- a/frontend/src/components/misc/Icon.ts +++ b/frontend/src/components/misc/Icon.ts @@ -6,6 +6,7 @@ import { faArchive, faArrowLeft, faArrowUpFromBracket, + faArrowUpRightFromSquare, faBold, faItalic, faStrikethrough, @@ -195,6 +196,7 @@ library.add(faRulerHorizontal) library.add(faUnderline) library.add(faFaceLaugh) library.add(faExclamation) +library.add(faArrowUpRightFromSquare) // overwriting the wrong types export default FontAwesomeIcon as unknown as FontAwesomeIconFixedTypes diff --git a/frontend/src/modelTypes/IUserSettings.ts b/frontend/src/modelTypes/IUserSettings.ts index 263a0f41a..53c106b9d 100644 --- a/frontend/src/modelTypes/IUserSettings.ts +++ b/frontend/src/modelTypes/IUserSettings.ts @@ -19,6 +19,15 @@ export interface IFrontendSettings { dateDisplay: DateDisplay } +export interface IExtraSettingsLink { + text: string + url: string +} + +export interface IExtraSettingsLinks { + [key: string]: IExtraSettingsLink +} + export interface IUserSettings extends IAbstract { name: string emailRemindersEnabled: boolean @@ -31,4 +40,5 @@ export interface IUserSettings extends IAbstract { timezone: string language: SupportedLocale | null frontendSettings: IFrontendSettings + extraSettingsLinks: IExtraSettingsLinks } diff --git a/frontend/src/models/userSettings.ts b/frontend/src/models/userSettings.ts index a37374492..2dd3b9d29 100644 --- a/frontend/src/models/userSettings.ts +++ b/frontend/src/models/userSettings.ts @@ -27,6 +27,7 @@ export default class UserSettingsModel extends AbstractModel impl minimumPriority: PRIORITIES.MEDIUM, dateDisplay: DATE_DISPLAY.RELATIVE, } + extraSettingsLinks = {} constructor(data: Partial = {}) { super() diff --git a/frontend/src/views/user/Settings.vue b/frontend/src/views/user/Settings.vue index 40e1a64d8..24fd56e20 100644 --- a/frontend/src/views/user/Settings.vue +++ b/frontend/src/views/user/Settings.vue @@ -15,6 +15,24 @@ {{ title }} +
  • + + + {{ text }} + + + + + +
  • @@ -32,6 +50,8 @@ import { useConfigStore } from '@/stores/config' import { useAuthStore } from '@/stores/auth' import {useRoute} from 'vue-router' +import BaseButton from '@/components/base/BaseButton.vue' + const { t } = useI18n({useScope: 'global'}) useTitle(() => t('user.settings.title')) @@ -97,6 +117,8 @@ const navigationItems = computed(() => { return items.filter(({condition}) => condition !== false) }) + +const extraSettingsLinks = computed(() => authStore.settings.extraSettingsLinks)