diff --git a/changelog/unreleased/bugfix-display-path-on-resources b/changelog/unreleased/bugfix-display-path-on-resources
new file mode 100644
index 00000000000..25d2a2bd629
--- /dev/null
+++ b/changelog/unreleased/bugfix-display-path-on-resources
@@ -0,0 +1,7 @@
+Bugfix: Fix display path on resources
+
+We've fixed a bug, where the display path of a resource was missing parts.
+For example the respective space name or the folder name of a share.
+
+https://github.com/owncloud/web/pull/9843
+
diff --git a/changelog/unreleased/enhancement-add-editors-to-application-menu b/changelog/unreleased/enhancement-add-editors-to-application-menu
new file mode 100644
index 00000000000..f54be84b6a8
--- /dev/null
+++ b/changelog/unreleased/enhancement-add-editors-to-application-menu
@@ -0,0 +1,8 @@
+Enhancement: Add editors to the application menu
+
+We've added 'text-editor' and 'draw.io' to the application menu, so the user can easily
+open those apps with a one-click approach.
+
+https://github.com/owncloud/web/pull/9809
+https://github.com/owncloud/web/pull/9843
+https://github.com/owncloud/web/issues/9807
diff --git a/packages/design-system/src/components/OcResource/OcResource.vue b/packages/design-system/src/components/OcResource/OcResource.vue
index 20f1d3929e3..0a3191279a1 100644
--- a/packages/design-system/src/components/OcResource/OcResource.vue
+++ b/packages/design-system/src/components/OcResource/OcResource.vue
@@ -56,6 +56,7 @@
:full-path="resource.path"
:is-path-displayed="isPathDisplayed"
:is-extension-displayed="isExtensionDisplayed"
+ @click="$emit('clickFolder')"
/>
@@ -65,7 +66,7 @@
:to="parentFolderLink"
:style="parentFolderStyle"
class="parent-folder"
- @click.stop="$emit('parentFolderClicked')"
+ @click="$emit('clickParentFolder')"
>
@@ -189,7 +190,7 @@ export default defineComponent({
default: true
}
},
- emits: ['click', 'parentFolderClicked'],
+ emits: ['click', 'clickFolder', 'clickParentFolder'],
computed: {
parentFolderComponentType() {
return this.parentFolderLink !== null ? 'router-link' : 'span'
@@ -301,6 +302,7 @@ export default defineComponent({
a {
text-decoration: none;
}
+
a:hover,
a:focus {
outline-offset: 0;
@@ -345,94 +347,94 @@ export default defineComponent({
- ```js
-
-
-
-
-
-
-
-
-
-
-
- ```
+ }
+ },
+ }
+
+```
diff --git a/packages/web-pkg/src/components/Search/ResourcePreview.vue b/packages/web-pkg/src/components/Search/ResourcePreview.vue
index 630aefee931..733c31c8f41 100644
--- a/packages/web-pkg/src/components/Search/ResourcePreview.vue
+++ b/packages/web-pkg/src/components/Search/ResourcePreview.vue
@@ -1,24 +1,18 @@
-
-
-
+
diff --git a/packages/web-pkg/src/composables/folderLink/useFolderLink.ts b/packages/web-pkg/src/composables/folderLink/useFolderLink.ts
index 9a329448645..ab2cf8e45c8 100644
--- a/packages/web-pkg/src/composables/folderLink/useFolderLink.ts
+++ b/packages/web-pkg/src/composables/folderLink/useFolderLink.ts
@@ -28,7 +28,7 @@ export const useFolderLink = (options: ResourceRouteResolverOptions = {}) => {
}
if (isShareSpaceResource(space)) {
- return path.join($gettext('Shares'), $gettext('Shared with me'), space.name)
+ return path.join($gettext('Shares'), space.name)
}
return space.name
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 957c0a177d6..02fe65b3cf5 100644
--- a/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts
+++ b/packages/web-pkg/tests/unit/components/Search/ResourcePreview.spec.ts
@@ -18,7 +18,7 @@ jest.mock('../../../../src/composables/spaces/useGetMatchingSpace', () => ({
describe('Preview component', () => {
const driveAliasAndItem = '1'
jest.mocked(useGetMatchingSpace).mockImplementation(() => useGetMatchingSpaceMock())
- it('should set correct props on oc-resource component', () => {
+ it('should render preview component', () => {
const { wrapper } = getWrapper({
space: mock
({
id: '1',
@@ -27,23 +27,7 @@ describe('Preview component', () => {
getDriveAliasAndItem: () => driveAliasAndItem
})
})
- const ocResource = wrapper.findComponent('oc-resource-stub')
-
- expect(ocResource.props().resource).toMatchObject(wrapper.vm.searchResult.data)
- })
- describe('computed parentFolderLink', () => {
- it('should use the items storageId for the resource target location if present', () => {
- const driveAliasAndItem = '1'
- const { wrapper } = getWrapper({
- space: mock({
- id: '1',
- driveType: 'project',
- name: 'New space',
- getDriveAliasAndItem: () => driveAliasAndItem
- })
- })
- expect(wrapper.vm.parentFolderLink.params.driveAliasAndItem).toEqual(driveAliasAndItem)
- })
+ expect(wrapper.html()).toMatchSnapshot()
})
})
@@ -73,6 +57,9 @@ function getWrapper({
} = {}) {
jest.mocked(useGetMatchingSpace).mockImplementation(() =>
useGetMatchingSpaceMock({
+ isResourceAccessible() {
+ return true
+ },
getMatchingSpace() {
return space
}
@@ -90,7 +77,8 @@ function getWrapper({
}),
capabilities: () => ({
spaces: {
- share_jail: hasShareJail
+ share_jail: hasShareJail,
+ projects: { enabled: true }
}
}),
user: () => user
diff --git a/packages/web-pkg/tests/unit/components/Search/__snapshots__/ResourcePreview.spec.ts.snap b/packages/web-pkg/tests/unit/components/Search/__snapshots__/ResourcePreview.spec.ts.snap
new file mode 100644
index 00000000000..5598ec4e6e1
--- /dev/null
+++ b/packages/web-pkg/tests/unit/components/Search/__snapshots__/ResourcePreview.spec.ts.snap
@@ -0,0 +1,3 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`Preview component should render preview component 1`] = ``;
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 dbf7655debc..e1f85b08fd4 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
@@ -5,7 +5,7 @@ exports[`AppTopBar if a resource is present renders a resource and dropdownActio
-
+
@@ -23,7 +23,7 @@ exports[`AppTopBar if a resource is present renders a resource and dropdownActio
-
+
@@ -41,7 +41,7 @@ exports[`AppTopBar if a resource is present renders a resource and mainActions (
-
+
@@ -58,7 +58,7 @@ exports[`AppTopBar if a resource is present renders a resource and no actions (i
-
+
@@ -75,7 +75,7 @@ exports[`AppTopBar if no resource is present renders only a close button 1`] = `