diff --git a/packages/web-app-files/src/components/SideBar/Details/FileDetails.vue b/packages/web-app-files/src/components/SideBar/Details/FileDetails.vue index 79b5ee360c..f685e37e88 100644 --- a/packages/web-app-files/src/components/SideBar/Details/FileDetails.vue +++ b/packages/web-app-files/src/components/SideBar/Details/FileDetails.vue @@ -146,7 +146,7 @@ import { Resource, SpaceResource } from '@opencloud-eu/web-client' import { useGettext } from 'vue3-gettext' import { getSharedAncestorRoute } from '@opencloud-eu/web-pkg' import { ResourceIcon } from '@opencloud-eu/web-pkg' -import { tagsHelper } from '../../../helpers/contextualHelpers' +import { useContextualHelpers } from '../../../composables/contextualHelpers' import { ContextualHelper } from '@opencloud-eu/design-system/helpers' import TagsSelect from './TagsSelect.vue' import { WebDavDetails, CustomComponentTarget } from '@opencloud-eu/web-pkg' @@ -165,6 +165,7 @@ const { resourceContentsText } = useResourceContents({ showSizeInformation: fals const { loadPreview, previewsLoading } = useLoadPreview() const { openSideBarPanel } = useSideBar() const { getIndicators } = useResourceIndicators() +const { tagsHelper } = useContextualHelpers() const language = useGettext() const { $gettext, current: currentLanguage } = language diff --git a/packages/web-app-files/src/components/SideBar/Shares/Collaborators/InviteCollaborator/InviteCollaboratorForm.vue b/packages/web-app-files/src/components/SideBar/Shares/Collaborators/InviteCollaborator/InviteCollaboratorForm.vue index 8aa49b74c8..e9f1d7faf3 100644 --- a/packages/web-app-files/src/components/SideBar/Shares/Collaborators/InviteCollaborator/InviteCollaboratorForm.vue +++ b/packages/web-app-files/src/components/SideBar/Shares/Collaborators/InviteCollaborator/InviteCollaboratorForm.vue @@ -176,7 +176,8 @@ import { useSpacesStore, useConfigStore, useSharesStore, - useUserStore + useUserStore, + $gettext } from '@opencloud-eu/web-pkg' import { @@ -202,11 +203,6 @@ import ExpirationDateIndicator from '../../ExpirationDateIndicator.vue' import { ContextualHelper } from '@opencloud-eu/design-system/helpers' import CopyPrivateLink from '../../../../Shares/CopyPrivateLink.vue' -// just a dummy function to trick gettext tools -const $gettext = (str: string) => { - return str -} - type DropDownShouldOpenOptions = { open: boolean; search: string[] } export type ShareRoleType = { id: string; label: string; longLabel: string } diff --git a/packages/web-app-files/src/components/SideBar/Shares/FileLinks.vue b/packages/web-app-files/src/components/SideBar/Shares/FileLinks.vue index ad65be3bcc..0813bb9c0e 100644 --- a/packages/web-app-files/src/components/SideBar/Shares/FileLinks.vue +++ b/packages/web-app-files/src/components/SideBar/Shares/FileLinks.vue @@ -102,7 +102,7 @@ import { UpdateLinkOptions, useRouter } from '@opencloud-eu/web-pkg' -import { shareViaLinkHelp, shareViaIndirectLinkHelp } from '../../../helpers/contextualHelpers' +import { useContextualHelpers } from '../../../composables/contextualHelpers' import { isSpaceResource, LinkShare, Resource, SpaceResource } from '@opencloud-eu/web-client' import ListItem from './Links/ListItem.vue' import { isLocationSharesActive, useSharesStore } from '@opencloud-eu/web-pkg' @@ -120,6 +120,7 @@ const { dispatchModal } = useModals() const { removeResources } = useResourcesStore() const { isPasswordEnforcedForLinkType } = useLinkTypes() const { canShare } = useCanShare() +const { shareViaLinkHelp, shareViaIndirectLinkHelp } = useContextualHelpers() const canCreateLinks = computed(() => { if (!ability.can('create-all', 'PublicLink')) { diff --git a/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue b/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue index ae93d4ccaa..817e1e4d1a 100644 --- a/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue +++ b/packages/web-app-files/src/components/SideBar/Shares/FileShares.vue @@ -97,7 +97,7 @@ import { textUtils } from '../../../helpers/textUtils' import { isShareSpaceResource, ShareTypes } from '@opencloud-eu/web-client' import InviteCollaboratorForm from './Collaborators/InviteCollaborator/InviteCollaboratorForm.vue' import CollaboratorListItem from './Collaborators/ListItem.vue' -import { shareInviteCollaboratorHelp } from '../../../helpers/contextualHelpers' +import { useContextualHelpers } from '../../../composables/contextualHelpers' import { computed, defineComponent, inject, ref, Ref, unref } from 'vue' import { isProjectSpaceResource, @@ -126,6 +126,7 @@ export default defineComponent({ const { dispatchModal } = useModals() const { canShare } = useCanShare() const { showMessage, showErrorMessage } = useMessages() + const { shareInviteCollaboratorHelp } = useContextualHelpers() const resourcesStore = useResourcesStore() const { removeResources, getAncestorById } = resourcesStore @@ -190,6 +191,12 @@ export default defineComponent({ return unref(collaboratorShares).sort(collaboratorsComparator) }) + const inviteCollaboratorHelp = computed(() => + shareInviteCollaboratorHelp({ + configStore + }) + ) + return { addShare, deleteShare, @@ -212,17 +219,12 @@ export default defineComponent({ canShare, showMessage, showErrorMessage, + inviteCollaboratorHelp, fileSideBarSharesPanelSharedWithTopExtensionPoint, fileSideBarSharesPanelSharedWithBottomExtensionPoint } }, computed: { - inviteCollaboratorHelp() { - return shareInviteCollaboratorHelp({ - configStore: this.configStore - }) - }, - helpersEnabled() { return this.configOptions.contextHelpers }, diff --git a/packages/web-app-files/src/components/SideBar/Shares/SpaceMembers.vue b/packages/web-app-files/src/components/SideBar/Shares/SpaceMembers.vue index 8ef678511f..95543e495b 100644 --- a/packages/web-app-files/src/components/SideBar/Shares/SpaceMembers.vue +++ b/packages/web-app-files/src/components/SideBar/Shares/SpaceMembers.vue @@ -95,7 +95,7 @@ import { useUserStore } from '@opencloud-eu/web-pkg' import { computed, inject, nextTick, ref, Ref, unref, useTemplateRef, watch } from 'vue' -import { shareSpaceAddMemberHelp } from '../../../helpers/contextualHelpers' +import { useContextualHelpers } from '../../../composables/contextualHelpers' import { ProjectSpaceResource, CollaboratorShare } from '@opencloud-eu/web-client' import { useClientService } from '@opencloud-eu/web-pkg' import Fuse from 'fuse.js' @@ -119,6 +119,7 @@ const { showMessage, showErrorMessage } = useMessages() const router = useRouter() const { $gettext } = useGettext() const configStore = useConfigStore() +const { shareSpaceAddMemberHelp } = useContextualHelpers() const { user } = storeToRefs(userStore) @@ -175,9 +176,7 @@ const helpersEnabled = computed(() => { canShare({ space: unref(resource), resource: unref(resource) }) ) }) -const spaceAddMemberHelp = computed(() => { - return shareSpaceAddMemberHelp({ configStore: configStore }) -}) +const spaceAddMemberHelp = computed(() => shareSpaceAddMemberHelp({ configStore })) const hasCollaborators = computed(() => { return unref(spaceMembers).length > 0 }) diff --git a/packages/web-app-files/src/composables/contextualHelpers/index.ts b/packages/web-app-files/src/composables/contextualHelpers/index.ts new file mode 100644 index 0000000000..004a0aa99c --- /dev/null +++ b/packages/web-app-files/src/composables/contextualHelpers/index.ts @@ -0,0 +1 @@ +export * from './useContextualHelpers' diff --git a/packages/web-app-files/src/composables/contextualHelpers/useContextualHelpers.ts b/packages/web-app-files/src/composables/contextualHelpers/useContextualHelpers.ts new file mode 100644 index 0000000000..dda783894a --- /dev/null +++ b/packages/web-app-files/src/composables/contextualHelpers/useContextualHelpers.ts @@ -0,0 +1,142 @@ +import { omit } from 'lodash-es' +import { ContextualHelperData } from '@opencloud-eu/design-system/helpers' +import { ConfigStore } from '@opencloud-eu/web-pkg' +import { useGettext } from 'vue3-gettext' + +interface ContextualHelperOptions { + configStore: ConfigStore +} + +const filterContextHelper = ( + data: ContextualHelperData, + options?: ContextualHelperOptions +): ContextualHelperData => { + if (options.configStore.options.contextHelpersReadMore === false) { + return omit(data, 'readMoreLink') + } + return data +} + +export function useContextualHelpers() { + const { $gettext } = useGettext() + + const shareInviteCollaboratorHelp = (options: ContextualHelperOptions) => + filterContextHelper( + { + title: $gettext('Share with people'), + text: $gettext( + 'Use the input field to search for users and groups. Select them to share the item.' + ), + list: [ + { text: $gettext('Subfolders'), headline: true }, + { + text: $gettext( + 'If you share a folder, all of its contents and subfolders will be shared as well.' + ) + }, + { text: $gettext('Notification'), headline: true }, + { + text: $gettext( + 'People you share resources with will be notified via email or in-app notification.' + ) + }, + { text: $gettext('Incognito'), headline: true }, + { + text: $gettext('People you share resources with can not see who else has access.') + }, + { text: $gettext('"via folder"'), headline: true }, + { + text: $gettext( + 'The "via folder" is shown next to a share, if access has already been given via a parent folder. Click on the "via folder" to edit the share on its parent folder.' + ) + } + ], + readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' + }, + options + ) + + const shareSpaceAddMemberHelp = (options: ContextualHelperOptions) => + filterContextHelper( + { + title: $gettext('Add members to this Space'), + text: $gettext('Enter a name to add people or groups as members to this Space.'), + list: [ + { text: $gettext('Member capabilities'), headline: true }, + { + text: $gettext( + 'Members are able to see who has access to this space and access all files in this space. Read or write permissions can be set by assigning a role.' + ) + }, + { text: $gettext('Space manager capabilities'), headline: true }, + { + text: $gettext( + 'Members with the Manager role are able to edit all properties and content of a Space, such as adding or removing members, sharing subfolders with non-members, or creating links to share.' + ) + } + ], + readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' + }, + options + ) + + const shareViaLinkHelp = (options: ContextualHelperOptions) => + filterContextHelper( + { + title: $gettext('Choose how access is granted'), + list: [ + { + text: $gettext( + 'No login required. Everyone with the link can access. If you share this link with people from the list "Invited people", they need to login so that their individual assigned permissions can take effect. If they are not logged-in, the permissions of the link take effect.' + ) + } + ], + readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' + }, + options + ) + + const shareViaIndirectLinkHelp = (options: ContextualHelperOptions) => + filterContextHelper( + { + title: $gettext('What are indirect links?'), + text: $gettext('Indirect links are links giving access by a parent folder.'), + list: [ + { + text: $gettext('How to edit indirect links'), + headline: true + }, + { + text: $gettext( + 'Indirect links can only be edited in their parent folder. Click on the folder icon below the link to navigate to the parent folder.' + ) + } + ], + readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' + }, + options + ) + + const tagsHelper = (options: ContextualHelperOptions) => + filterContextHelper( + { + title: $gettext('Who can view tags?'), + list: [ + { + text: $gettext( + 'Everyone who can view the file can view its tags. Likewise, everyone who can edit the file can edit its tags.' + ) + } + ] + }, + options + ) + + return { + shareInviteCollaboratorHelp, + shareSpaceAddMemberHelp, + shareViaLinkHelp, + shareViaIndirectLinkHelp, + tagsHelper + } +} diff --git a/packages/web-app-files/src/helpers/contextualHelpers.ts b/packages/web-app-files/src/helpers/contextualHelpers.ts deleted file mode 100644 index a6aa49535a..0000000000 --- a/packages/web-app-files/src/helpers/contextualHelpers.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { omit } from 'lodash-es' -import { ContextualHelperData } from '@opencloud-eu/design-system/helpers' -import { ConfigStore } from '@opencloud-eu/web-pkg' - -// just a dummy function to trick gettext tools -function $gettext(msg: string) { - return msg -} - -interface ContextualHelperOptions { - configStore: ConfigStore -} - -export const shareInviteCollaboratorHelp = (options: ContextualHelperOptions) => - filterContextHelper( - { - title: $gettext('Share with people'), - text: $gettext( - 'Use the input field to search for users and groups. Select them to share the item.' - ), - list: [ - { text: $gettext('Subfolders'), headline: true }, - { - text: $gettext( - 'If you share a folder, all of its contents and subfolders will be shared as well.' - ) - }, - { text: $gettext('Notification'), headline: true }, - { - text: $gettext( - 'People you share resources with will be notified via email or in-app notification.' - ) - }, - { text: $gettext('Incognito'), headline: true }, - { - text: $gettext('People you share resources with can not see who else has access.') - }, - { text: $gettext('“via folder”'), headline: true }, - { - text: $gettext( - 'The “via folder” is shown next to a share, if access has already been given via a parent folder. Click on the “via folder” to edit the share on its parent folder.' - ) - } - ], - readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' - }, - options - ) - -export const shareSpaceAddMemberHelp = (options: ContextualHelperOptions) => - filterContextHelper( - { - title: $gettext('Add members to this Space'), - text: $gettext('Enter a name to add people or groups as members to this Space.'), - list: [ - { text: $gettext('Member capabilities'), headline: true }, - { - text: $gettext( - 'Members are able to see who has access to this space and access all files in this space. Read or write permissions can be set by assigning a role.' - ) - }, - { text: $gettext('Space manager capabilities'), headline: true }, - { - text: $gettext( - 'Members with the Manager role are able to edit all properties and content of a Space, such as adding or removing members, sharing subfolders with non-members, or creating links to share.' - ) - } - ], - readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' - }, - options - ) -export const shareViaLinkHelp = (options: ContextualHelperOptions) => - filterContextHelper( - { - title: $gettext('Choose how access is granted'), - list: [ - { - text: $gettext( - 'No login required. Everyone with the link can access. If you share this link with people from the list "Invited people", they need to login so that their individual assigned permissions can take effect. If they are not logged-in, the permissions of the link take effect.' - ) - } - ], - readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' - }, - options - ) -export const shareViaIndirectLinkHelp = (options: ContextualHelperOptions) => - filterContextHelper( - { - title: $gettext('What are indirect links?'), - text: $gettext('Indirect links are links giving access by a parent folder.'), - list: [ - { - text: $gettext('How to edit indirect links'), - headline: true - }, - { - text: $gettext( - 'Indirect links can only be edited in their parent folder. Click on the folder icon below the link to navigate to the parent folder.' - ) - } - ], - readMoreLink: 'https://docs.opencloud.eu/docs/user/sharing' - }, - options - ) - -const filterContextHelper = ( - data: ContextualHelperData, - options?: ContextualHelperOptions -): ContextualHelperData => { - if (options.configStore.options.contextHelpersReadMore === false) { - return omit(data, 'readMoreLink') - } - return data -} - -export const tagsHelper = (options: ContextualHelperOptions) => - filterContextHelper( - { - title: $gettext('Who can view tags?'), - list: [ - { - text: $gettext( - 'Everyone who can view the file can view its tags. Likewise, everyone who can edit the file can edit its tags.' - ) - } - ] - }, - options - ) diff --git a/packages/web-app-files/src/search/sdk/index.ts b/packages/web-app-files/src/search/sdk/index.ts index 6468363411..cddaf34e64 100644 --- a/packages/web-app-files/src/search/sdk/index.ts +++ b/packages/web-app-files/src/search/sdk/index.ts @@ -6,13 +6,10 @@ import { SearchFunction, SearchList, SearchPreview, - SearchProvider + SearchProvider, + $gettext } from '@opencloud-eu/web-pkg' -function $gettext(msg: string) { - return msg -} - export default class Provider implements SearchProvider { public readonly id: string public readonly displayName: string diff --git a/packages/web-app-pdf-viewer/src/index.ts b/packages/web-app-pdf-viewer/src/index.ts index 9a5ad6cc66..8b76d8332d 100644 --- a/packages/web-app-pdf-viewer/src/index.ts +++ b/packages/web-app-pdf-viewer/src/index.ts @@ -1,46 +1,48 @@ +import { useGettext } from 'vue3-gettext' import translations from '../l10n/translations.json' -import { AppWrapperRoute } from '@opencloud-eu/web-pkg' +import { AppWrapperRoute, defineWebApplication } from '@opencloud-eu/web-pkg' import PdfViewer from './App.vue' -// just a dummy function to trick gettext tools -function $gettext(msg: string) { - return msg -} +export default defineWebApplication({ + setup() { + const { $gettext } = useGettext() -const routes = [ - { - path: '/:driveAliasAndItem(.*)?', - component: AppWrapperRoute(PdfViewer, { - applicationId: 'pdf-viewer', - urlForResourceOptions: { - disposition: 'inline' + const appId = 'pdf-viewer' + + const routes = [ + { + path: '/:driveAliasAndItem(.*)?', + component: AppWrapperRoute(PdfViewer, { + applicationId: appId, + urlForResourceOptions: { + disposition: 'inline' + } + }), + name: 'pdf-viewer', + meta: { + authContext: 'hybrid', + title: $gettext('PDF Viewer'), + patchCleanPath: true + } } - }), - name: 'pdf-viewer', - meta: { - authContext: 'hybrid', - title: $gettext('PDF Viewer'), - patchCleanPath: true - } - } -] + ] -const appInfo = { - name: $gettext('PDF Viewer'), - id: 'pdf-viewer', - icon: 'resource-type-pdf', - iconFillType: 'fill', - iconColor: 'var(--oc-color-icon-pdf)', - extensions: [ - { - extension: 'pdf', - routeName: 'pdf-viewer' + return { + appInfo: { + name: $gettext('PDF Viewer'), + id: appId, + icon: 'resource-type-pdf', + iconFillType: 'fill', + iconColor: 'var(--oc-color-icon-pdf)', + extensions: [ + { + extension: 'pdf', + routeName: 'pdf-viewer' + } + ] + }, + routes, + translations } - ] -} - -export default { - appInfo, - routes, - translations -} + } +}) diff --git a/packages/web-app-webfinger/package.json b/packages/web-app-webfinger/package.json index 36afd48976..2752ee2d4a 100644 --- a/packages/web-app-webfinger/package.json +++ b/packages/web-app-webfinger/package.json @@ -10,6 +10,7 @@ "peerDependencies": { "@opencloud-eu/design-system": "workspace:^", "@opencloud-eu/web-client": "workspace:*", - "@opencloud-eu/web-pkg": "workspace:*" + "@opencloud-eu/web-pkg": "workspace:*", + "vue-router": "5.0.4" } } diff --git a/packages/web-app-webfinger/src/index.ts b/packages/web-app-webfinger/src/index.ts index 27c5feac50..365eb3e2c2 100644 --- a/packages/web-app-webfinger/src/index.ts +++ b/packages/web-app-webfinger/src/index.ts @@ -1,42 +1,44 @@ +import { useGettext } from 'vue3-gettext' import translations from '../l10n/translations.json' +import { defineWebApplication } from '@opencloud-eu/web-pkg' +import { RouteRecordRaw } from 'vue-router' import Resolve from './views/Resolve.vue' -// just a dummy function to trick gettext tools -function $gettext(msg: string) { - return msg -} +export default defineWebApplication({ + setup() { + const { $gettext } = useGettext() -const appInfo = { - name: $gettext('Webfinger'), - id: 'webfinger', - icon: 'fingerprint' -} + const routes: RouteRecordRaw[] = [ + { + name: 'webfinger-root', + path: '/', + redirect: () => { + return { name: 'webfinger-resolve' } + }, + meta: { + authContext: 'anonymous' + } + }, + { + path: '/resolve', + name: 'webfinger-resolve', + component: Resolve, + meta: { + authContext: 'idp', + title: $gettext('Resolve destination'), + entryPoint: true + } + } + ] -const routes = () => [ - { - name: 'webfinger-root', - path: '/', - redirect: () => { - return { name: 'webfinger-resolve' } - }, - meta: { - authContext: 'anonymous' - } - }, - { - path: '/resolve', - name: 'webfinger-resolve', - component: Resolve, - meta: { - authContext: 'idp', - title: $gettext('Resolve destination'), - entryPoint: true + return { + appInfo: { + name: $gettext('Webfinger'), + id: 'webfinger', + icon: 'fingerprint' + }, + routes, + translations } } -] - -export default { - appInfo, - routes, - translations -} +}) diff --git a/packages/web-pkg/src/helpers/ui/resourceTiles.ts b/packages/web-pkg/src/helpers/ui/resourceTiles.ts index 6453860ffd..327494ef56 100644 --- a/packages/web-pkg/src/helpers/ui/resourceTiles.ts +++ b/packages/web-pkg/src/helpers/ui/resourceTiles.ts @@ -2,11 +2,7 @@ import { Resource } from '@opencloud-eu/web-client' import { SortField } from '../../composables/sort' import { Language } from 'vue3-gettext' import { SortDir } from '@opencloud-eu/design-system/helpers' - -// just a dummy function to trick gettext tools -function $gettext(msg: string) { - return msg -} +import { $gettext } from '../../utils/dummyGettext' export const sortFields: SortField[] = [ { diff --git a/packages/web-pkg/src/router/common.ts b/packages/web-pkg/src/router/common.ts index 9d302d9f40..ffc1860c38 100644 --- a/packages/web-pkg/src/router/common.ts +++ b/packages/web-pkg/src/router/common.ts @@ -1,6 +1,7 @@ import { RouteComponents } from './router' import { RouteLocationNamedRaw, RouteRecordRaw } from 'vue-router' -import { createLocation, $gettext, isLocationActiveDirector } from './utils' +import { createLocation, isLocationActiveDirector } from './utils' +import { $gettext } from '../utils/dummyGettext' type commonTypes = 'files-common-favorites' | 'files-common-search' diff --git a/packages/web-pkg/src/router/index.ts b/packages/web-pkg/src/router/index.ts index 5291b06c9f..8369fdfc7f 100644 --- a/packages/web-pkg/src/router/index.ts +++ b/packages/web-pkg/src/router/index.ts @@ -35,6 +35,7 @@ import { createLocationTrash } from './trash' import { isLocationActiveDirector, createLocation } from './utils' +import { $gettext } from '../utils/dummyGettext' import type { ActiveRouteDirectorFunc } from './utils' const ROOT_ROUTE = { @@ -74,7 +75,8 @@ export { locationSharesWithMe, locationSharesWithOthers, buildRoutes, - ActiveRouteDirectorFunc + ActiveRouteDirectorFunc, + $gettext } export type { RouteShareTypes } diff --git a/packages/web-pkg/src/router/public.ts b/packages/web-pkg/src/router/public.ts index 911537f1e1..58166a91a8 100644 --- a/packages/web-pkg/src/router/public.ts +++ b/packages/web-pkg/src/router/public.ts @@ -1,6 +1,7 @@ import { RouteComponents } from './router' import { RouteLocationNamedRaw, RouteRecordRaw } from 'vue-router' -import { createLocation, isLocationActiveDirector, $gettext } from './utils' +import { createLocation, isLocationActiveDirector } from './utils' +import { $gettext } from '../utils/dummyGettext' type shareTypes = 'files-public-link' | 'files-public-upload' diff --git a/packages/web-pkg/src/router/shares.ts b/packages/web-pkg/src/router/shares.ts index d09f37d13f..8c17f7acbd 100644 --- a/packages/web-pkg/src/router/shares.ts +++ b/packages/web-pkg/src/router/shares.ts @@ -1,6 +1,7 @@ import { RouteComponents } from './router' import { RouteLocationNamedRaw, RouteRecordRaw } from 'vue-router' -import { createLocation, isLocationActiveDirector, $gettext } from './utils' +import { createLocation, isLocationActiveDirector } from './utils' +import { $gettext } from '../utils/dummyGettext' export type RouteShareTypes = | 'files-shares' diff --git a/packages/web-pkg/src/router/spaces.ts b/packages/web-pkg/src/router/spaces.ts index d9e62f40b1..13c3b1d004 100644 --- a/packages/web-pkg/src/router/spaces.ts +++ b/packages/web-pkg/src/router/spaces.ts @@ -1,6 +1,7 @@ import { RouteLocationNamedRaw, RouteRecordRaw } from 'vue-router' import { RouteComponents } from './router' -import { createLocation, isLocationActiveDirector, $gettext } from './utils' +import { createLocation, isLocationActiveDirector } from './utils' +import { $gettext } from '../utils/dummyGettext' type spaceTypes = 'files-spaces-projects' | 'files-spaces-generic' diff --git a/packages/web-pkg/src/router/trash.ts b/packages/web-pkg/src/router/trash.ts index fa20ad400d..ebd4f7725f 100644 --- a/packages/web-pkg/src/router/trash.ts +++ b/packages/web-pkg/src/router/trash.ts @@ -1,6 +1,7 @@ import { RouteComponents } from './router' import { RouteLocationNamedRaw, RouteRecordRaw } from 'vue-router' -import { $gettext, createLocation, isLocationActiveDirector } from './utils' +import { createLocation, isLocationActiveDirector } from './utils' +import { $gettext } from '../utils/dummyGettext' type trashTypes = 'files-trash-generic' | 'files-trash-overview' diff --git a/packages/web-pkg/src/router/utils.ts b/packages/web-pkg/src/router/utils.ts index 10c407a5e5..4e2f2a0194 100644 --- a/packages/web-pkg/src/router/utils.ts +++ b/packages/web-pkg/src/router/utils.ts @@ -70,14 +70,7 @@ export const isLocationActiveDirector = ( } } -/** - * just a dummy function to trick gettext tools - * - * @param msg - */ -export function $gettext(msg: string): string { - return msg -} +export { $gettext } from '../utils/dummyGettext' /** * create a location with attached default values diff --git a/packages/web-pkg/src/utils/dummyGettext.ts b/packages/web-pkg/src/utils/dummyGettext.ts new file mode 100644 index 0000000000..a4529d659e --- /dev/null +++ b/packages/web-pkg/src/utils/dummyGettext.ts @@ -0,0 +1,8 @@ +/** + * just a dummy function to trick gettext tools + * + * @param msg + */ +export function $gettext(msg: string): string { + return msg +} diff --git a/packages/web-pkg/src/utils/index.ts b/packages/web-pkg/src/utils/index.ts index f9b37ac189..e723d06395 100644 --- a/packages/web-pkg/src/utils/index.ts +++ b/packages/web-pkg/src/utils/index.ts @@ -3,3 +3,4 @@ export * from './encodePath' export * from './objectKeys' export * from './semver' export * from './types' +export * from './dummyGettext' diff --git a/packages/web-runtime/src/extensionPoints.ts b/packages/web-runtime/src/extensionPoints.ts index b8cbfd7dc3..cc9990a2bb 100644 --- a/packages/web-runtime/src/extensionPoints.ts +++ b/packages/web-runtime/src/extensionPoints.ts @@ -3,12 +3,11 @@ import { AppMenuItemExtension, CustomComponentExtension, Extension, - ExtensionPoint + ExtensionPoint, + $gettext } from '@opencloud-eu/web-pkg' import { computed } from 'vue' -const $gettext = (str: string) => str - export const appMenuExtensionPoint: ExtensionPoint = { id: 'app.runtime.header.app-menu', extensionType: 'appMenuItem', diff --git a/packages/web-runtime/src/extensions.ts b/packages/web-runtime/src/extensions.ts index 5f1c02391f..d63a37b825 100644 --- a/packages/web-runtime/src/extensions.ts +++ b/packages/web-runtime/src/extensions.ts @@ -7,12 +7,11 @@ import { CustomComponentExtension, LoadingIndicator, useCapabilityStore, - useUserStore + useUserStore, + $gettext } from '@opencloud-eu/web-pkg' import { storeToRefs } from 'pinia' -const $gettext = (str: string) => str - export const extensions = () => { const capabilityStore = useCapabilityStore() const userStore = useUserStore() diff --git a/packages/web-runtime/src/helpers/additionalTranslations.ts b/packages/web-runtime/src/helpers/additionalTranslations.ts index db4f2d2e66..740f60f094 100644 --- a/packages/web-runtime/src/helpers/additionalTranslations.ts +++ b/packages/web-runtime/src/helpers/additionalTranslations.ts @@ -1,7 +1,4 @@ -// just a dummy function to trick gettext tools -function $gettext(msg: string): string { - return msg -} +import { $gettext } from '@opencloud-eu/web-pkg' export const additionalTranslations = { admin: $gettext('Admin'), diff --git a/packages/web-runtime/src/router/index.ts b/packages/web-runtime/src/router/index.ts index ba71d8ab90..daba38ed2b 100644 --- a/packages/web-runtime/src/router/index.ts +++ b/packages/web-runtime/src/router/index.ts @@ -24,17 +24,12 @@ import AccountPreferences from '../pages/account/accountPreferences.vue' import AccountInformation from '../pages/account/accountInformation.vue' import AccountLayout from '../pages/account/accountLayout.vue' import AccountGDPR from '../pages/account/accountGDPR.vue' -import { createLocation, isLocationActiveDirector } from '@opencloud-eu/web-pkg' +import { createLocation, isLocationActiveDirector, $gettext } from '@opencloud-eu/web-pkg' import AccountExtensionLayout from '../pages/account/accountExtensionLayout.vue' export * from './helpers' export { createRouter } from 'vue-router' -// just a dummy function to trick gettext tools -function $gettext(msg: string) { - return msg -} - export type RouteAccountTypes = | 'account-information' | 'account-preferences' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 71470c3565..f8dcae00b6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -777,6 +777,9 @@ importers: '@opencloud-eu/web-pkg': specifier: workspace:* version: link:../web-pkg + vue-router: + specifier: 5.0.4 + version: 5.0.4(@vue/compiler-sfc@3.5.32)(pinia@3.0.4(typescript@6.0.3)(vue@3.5.32(typescript@6.0.3)))(vue@3.5.32(typescript@6.0.3)) devDependencies: '@opencloud-eu/web-test-helpers': specifier: workspace:*