From bf964d7e5a0bc12df8ea0e82fae0fed66c4a5eb2 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Thu, 14 Dec 2023 13:24:52 +0100 Subject: [PATCH 1/8] Don't show file extensions in AppTopBar and Search if turned off via setting --- packages/web-pkg/src/components/AppTopBar.vue | 9 ++++++--- .../web-pkg/src/components/Search/ResourcePreview.vue | 9 +++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/web-pkg/src/components/AppTopBar.vue b/packages/web-pkg/src/components/AppTopBar.vue index 4da6f8e5872..1fd22afbb46 100644 --- a/packages/web-pkg/src/components/AppTopBar.vue +++ b/packages/web-pkg/src/components/AppTopBar.vue @@ -7,6 +7,7 @@ v-if="resource" id="app-top-bar-resource" :is-thumbnail-displayed="false" + :is-extension-displayed="areFileExtensionsShown" :path-prefix="pathPrefix" :resource="resource" :parent-folder-name="parentFolderName" @@ -81,7 +82,7 @@ import { computed, defineComponent, PropType, unref } from 'vue' import ContextActionMenu from './ContextActions/ContextActionMenu.vue' import { useGettext } from 'vue3-gettext' -import { Action, useEventBus, useFolderLink, useGetMatchingSpace } from '../composables' +import { Action, useEventBus, useFolderLink, useGetMatchingSpace, useStore } from '../composables' import { Resource, isPublicSpaceResource, @@ -110,9 +111,10 @@ export default defineComponent({ emits: ['close'], setup(props) { const { $gettext } = useGettext() - const eventBus = useEventBus() const { getMatchingSpace } = useGetMatchingSpace() + const store = useStore() + const areFileExtensionsShown = computed(() => unref(store.state.Files.areFileExtensionsShown)) const contextMenuLabel = computed(() => $gettext('Show context menu')) const closeButtonLabel = computed(() => $gettext('Close')) @@ -144,7 +146,8 @@ export default defineComponent({ contextMenuLabel, closeButtonLabel, parentFolderName, - parentFolderLinkIconAdditionalAttributes + parentFolderLinkIconAdditionalAttributes, + areFileExtensionsShown } } }) diff --git a/packages/web-pkg/src/components/Search/ResourcePreview.vue b/packages/web-pkg/src/components/Search/ResourcePreview.vue index 53313ca3eeb..3f0cadb1ff6 100644 --- a/packages/web-pkg/src/components/Search/ResourcePreview.vue +++ b/packages/web-pkg/src/components/Search/ResourcePreview.vue @@ -4,6 +4,7 @@ :path-prefix="pathPrefix" :is-path-displayed="true" :folder-link="folderLink" + :is-extension-displayed="areFileExtensionsShown" :parent-folder-link-icon-additional-attributes="parentFolderLinkIconAdditionalAttributes" :parent-folder-name="parentFolderName" :is-thumbnail-displayed="displayThumbnails" @@ -17,7 +18,7 @@ import { VisibilityObserver } from '../../observer' import { debounce } from 'lodash-es' import { computed, defineComponent, PropType, ref, unref } from 'vue' import { mapGetters } from 'vuex' -import { useGetMatchingSpace, useFileActions, useFolderLink } from '../../composables' +import { useGetMatchingSpace, useFileActions, useFolderLink, useStore } from '../../composables' import { Resource } from '@ownclouders/web-client/src/helpers' import { isResourceTxtFileAlmostEmpty } from '../../helpers' import { SearchResultValue } from './types' @@ -47,8 +48,11 @@ export default defineComponent({ getParentFolderLinkIconAdditionalAttributes, getFolderLink } = useFolderLink() + const store = useStore() const previewData = ref() + const areFileExtensionsShown = computed(() => unref(store.state.Files.areFileExtensionsShown)) + const resource = computed((): Resource => { return { ...(props.searchResult.data as Resource), @@ -98,7 +102,8 @@ export default defineComponent({ parentFolderLinkIconAdditionalAttributes: getParentFolderLinkIconAdditionalAttributes( unref(resource) ), - additionalAttrs + additionalAttrs, + areFileExtensionsShown } }, computed: { From b1b619534247a58ceaaa4e78b524ebd84727f2cb Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Thu, 14 Dec 2023 13:27:10 +0100 Subject: [PATCH 2/8] Add changelog item --- .../bugfix-turned-off-file-extensions-had-no-effect | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect diff --git a/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect new file mode 100644 index 00000000000..7bd076e146b --- /dev/null +++ b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect @@ -0,0 +1,6 @@ +Bugfix: Turned off file extensions had no effect + +We've fixed a bug where file extensions where shown in different views, +like Search and AppTopBar even if the user turned them off via setting. + +https://github.com/owncloud/web/pull/10176 From 96ba4a265865f59277b141bb742959ad57fdbee6 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Thu, 14 Dec 2023 13:30:51 +0100 Subject: [PATCH 3/8] Lint --- packages/web-pkg/src/components/AppTopBar.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-pkg/src/components/AppTopBar.vue b/packages/web-pkg/src/components/AppTopBar.vue index 1fd22afbb46..80ceed5831e 100644 --- a/packages/web-pkg/src/components/AppTopBar.vue +++ b/packages/web-pkg/src/components/AppTopBar.vue @@ -82,7 +82,7 @@ import { computed, defineComponent, PropType, unref } from 'vue' import ContextActionMenu from './ContextActions/ContextActionMenu.vue' import { useGettext } from 'vue3-gettext' -import { Action, useEventBus, useFolderLink, useGetMatchingSpace, useStore } from '../composables' +import { Action, useFolderLink, useGetMatchingSpace, useStore } from '../composables' import { Resource, isPublicSpaceResource, From cfec8b8c8538d7c535b5a161cbcf91d707e24795 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 15 Dec 2023 06:44:17 +0100 Subject: [PATCH 4/8] Update bugfix-turned-off-file-extensions-had-no-effect Co-authored-by: Benedikt Kulmann --- .../unreleased/bugfix-turned-off-file-extensions-had-no-effect | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect index 7bd076e146b..7f1fe3d4e65 100644 --- a/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect +++ b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect @@ -1,6 +1,6 @@ Bugfix: Turned off file extensions had no effect We've fixed a bug where file extensions where shown in different views, -like Search and AppTopBar even if the user turned them off via setting. +like Search and Top bar file info even if the user turned them off via setting. https://github.com/owncloud/web/pull/10176 From 7aa8f67c501bb8960c01b6e0760a0bc4aa576c14 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 15 Dec 2023 06:48:40 +0100 Subject: [PATCH 5/8] Update bugfix-turned-off-file-extensions-had-no-effect Co-authored-by: Benedikt Kulmann --- .../unreleased/bugfix-turned-off-file-extensions-had-no-effect | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect index 7f1fe3d4e65..f33abe7e5fd 100644 --- a/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect +++ b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect @@ -1,4 +1,4 @@ -Bugfix: Turned off file extensions had no effect +Bugfix: Turned off file extensions not always respected We've fixed a bug where file extensions where shown in different views, like Search and Top bar file info even if the user turned them off via setting. From e3dd43cec46d6d212ea73d3b57999929fae2a6b5 Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Fri, 15 Dec 2023 09:26:25 +0100 Subject: [PATCH 6/8] Add unit tests and lint --- .../tests/unit/components/AppTopBar.spec.ts | 15 +++++++++- .../components/Search/ResourcePreview.spec.ts | 30 +++++++++++++++++-- .../__snapshots__/AppTopBar.spec.ts.snap | 18 +++++++++++ 3 files changed, 60 insertions(+), 3 deletions(-) diff --git a/packages/web-pkg/tests/unit/components/AppTopBar.spec.ts b/packages/web-pkg/tests/unit/components/AppTopBar.spec.ts index 60a977cf421..23b53ffc933 100644 --- a/packages/web-pkg/tests/unit/components/AppTopBar.spec.ts +++ b/packages/web-pkg/tests/unit/components/AppTopBar.spec.ts @@ -61,20 +61,33 @@ describe('AppTopBar', () => { ) expect(wrapper.html()).toMatchSnapshot() }) + it('renders a resource without file extension if areFileExtensionsShown is set to false', () => { + const { wrapper } = getWrapper( + mock({ path: '/test.txt', shareRoot: '/test' }), + [mock()], + [mock()], + false + ) + + expect(wrapper.html()).toMatchSnapshot() + }) }) }) function getWrapper( resource: Resource = null, dropDownActions: Action[] = [], - mainActions: Action[] = [] + mainActions: Action[] = [], + areFileExtensionsShown = true ) { const storeOptions = { ...defaultStoreMockOptions } + storeOptions.modules.Files.state.areFileExtensionsShown = areFileExtensionsShown const store = createStore(storeOptions) const mocks = defaultComponentMocks({ currentRoute: mock({ name: 'admin-settings-general' }) }) return { + storeOptions, wrapper: shallowMount(AppTopBar, { props: { dropDownActions, diff --git a/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts b/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts index 02fe65b3cf5..fb0af2313fd 100644 --- a/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts +++ b/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts @@ -15,6 +15,10 @@ jest.mock('../../../../src/composables/spaces/useGetMatchingSpace', () => ({ useGetMatchingSpace: jest.fn() })) +const selectors = { + ocResourceStub: 'oc-resource-stub' +} + describe('Preview component', () => { const driveAliasAndItem = '1' jest.mocked(useGetMatchingSpace).mockImplementation(() => useGetMatchingSpaceMock()) @@ -29,6 +33,20 @@ describe('Preview component', () => { }) expect(wrapper.html()).toMatchSnapshot() }) + it('should render resource component without file extension when areFileExtensionsShown is set to false', () => { + const { wrapper } = getWrapper({ + areFileExtensionsShown: false, + space: mock({ + id: '1', + driveType: 'project', + name: 'New space', + getDriveAliasAndItem: () => driveAliasAndItem + }) + }) + expect( + wrapper.findComponent(selectors.ocResourceStub).attributes().isthumbnaildisplayed + ).toBe('false') + }) }) function getWrapper({ @@ -47,13 +65,15 @@ function getWrapper({ shareRoot: '' } }, - user = { id: 'test' } + user = { id: 'test' }, + areFileExtensionsShown = true }: { route?: any hasShareJail?: boolean space?: SpaceResource searchResult?: any user?: any + areFileExtensionsShown?: boolean } = {}) { jest.mocked(useGetMatchingSpace).mockImplementation(() => useGetMatchingSpaceMock({ @@ -65,9 +85,15 @@ function getWrapper({ } }) ) - const storeOptions = { ...defaultStoreMockOptions, + modules: { + Files: { + state: { + areFileExtensionsShown + } + } + }, getters: { ...defaultStoreMockOptions.getters, configuration: () => ({ diff --git a/packages/web-pkg/tests/unit/components/__snapshots__/AppTopBar.spec.ts.snap b/packages/web-pkg/tests/unit/components/__snapshots__/AppTopBar.spec.ts.snap index e1f85b08fd4..674a31cb211 100644 --- a/packages/web-pkg/tests/unit/components/__snapshots__/AppTopBar.spec.ts.snap +++ b/packages/web-pkg/tests/unit/components/__snapshots__/AppTopBar.spec.ts.snap @@ -70,6 +70,24 @@ exports[`AppTopBar if a resource is present renders a resource and no actions (i `; +exports[`AppTopBar if a resource is present renders a resource without file extension if areFileExtensionsShown is set to false 1`] = ` + +
+ +
+ +
+
+ + + + +
+
+
+
+`; + exports[`AppTopBar if no resource is present renders only a close button 1`] = `
From c7229fd9716e598f23b712ee7ea1e4f6cc0b530e Mon Sep 17 00:00:00 2001 From: Jan Ackermann Date: Fri, 15 Dec 2023 11:01:08 +0100 Subject: [PATCH 7/8] Fix the lolcow --- .../tests/unit/components/Search/ResourcePreview.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts b/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts index fb0af2313fd..f3b47dabbc4 100644 --- a/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts +++ b/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts @@ -44,7 +44,7 @@ describe('Preview component', () => { }) }) expect( - wrapper.findComponent(selectors.ocResourceStub).attributes().isthumbnaildisplayed + wrapper.findComponent(selectors.ocResourceStub).attributes().isextensiondisplayed ).toBe('false') }) }) From 68d8ac374d02f9642659663af53f285f04a29d1e Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 15 Dec 2023 11:31:50 +0100 Subject: [PATCH 8/8] Update changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect Co-authored-by: Benedikt Kulmann --- .../unreleased/bugfix-turned-off-file-extensions-had-no-effect | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect index f33abe7e5fd..2f41477397c 100644 --- a/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect +++ b/changelog/unreleased/bugfix-turned-off-file-extensions-had-no-effect @@ -1,6 +1,6 @@ Bugfix: Turned off file extensions not always respected -We've fixed a bug where file extensions where shown in different views, +We've fixed a bug where file extensions were shown in different places, like Search and Top bar file info even if the user turned them off via setting. https://github.com/owncloud/web/pull/10176