diff --git a/src/components/LinkItems/Item.vue b/src/components/LinkItems/Item.vue index 25896334f9..645ccdafc8 100644 --- a/src/components/LinkItems/Item.vue +++ b/src/components/LinkItems/Item.vue @@ -3,7 +3,7 @@ + + +
{{ hotkey }} @@ -20,11 +23,14 @@ import NewTabOpenIcon from '@/assets/interface-icons/open-new-tab.svg'; import SameTabOpenIcon from '@/assets/interface-icons/open-current-tab.svg'; import IframeOpenIcon from '@/assets/interface-icons/open-iframe.svg'; import WorkspaceOpenIcon from '@/assets/interface-icons/open-workspace.svg'; +import ParentOpenIcon from '@/assets/interface-icons/open-parent.svg'; +import TopOpenIcon from '@/assets/interface-icons/open-top.svg'; +import UnknownIcon from '@/assets/interface-icons/unknown-icon.svg'; export default { name: 'ItemOpenMethodIcon', props: { - openingMethod: String, // newtab | sametab | modal | workspace + openingMethod: String, // newtab | sametab | parent | top | modal | workspace isSmall: Boolean, // If true, will apply small class position: String, // Position classes: top, bottom, left, right isTransparent: Boolean, // If true, will apply opacity @@ -44,6 +50,9 @@ export default { SameTabOpenIcon, IframeOpenIcon, WorkspaceOpenIcon, + ParentOpenIcon, + TopOpenIcon, + UnknownIcon, }, }; diff --git a/src/utils/ConfigHelpers.js b/src/utils/ConfigHelpers.js index d8ce987f5e..974f9935f7 100644 --- a/src/utils/ConfigHelpers.js +++ b/src/utils/ConfigHelpers.js @@ -7,6 +7,8 @@ import { theme as defaultTheme, language as defaultLanguage, } from '@/utils/defaults'; +import ErrorHandler from '@/utils/ErrorHandler'; +import ConfigSchema from '@/utils/ConfigSchema.json'; /** * Initiates the Accumulator class and generates a complete config object @@ -97,3 +99,17 @@ export const getUsersLanguage = () => { const langObj = languages.find(lang => lang.code === langCode); return langObj; }; + +/** + * validator for item target attribute + * Uses enum values from config schema, and shows warning if invalid + * @param {String} target + * @returns {Boolean} isValid + */ +export const targetValidator = (target) => { + const acceptedTargets = ConfigSchema.properties.sections.items + .properties.items.items.properties.target.enum; + const isTargetValid = acceptedTargets.indexOf(target) !== -1; + if (!isTargetValid) ErrorHandler(`Unknown target value: ${target}`); + return isTargetValid; +};