diff --git a/changelog/unreleased/bugfix-extension-img b/changelog/unreleased/bugfix-extension-img new file mode 100644 index 00000000000..d2670b2cf6b --- /dev/null +++ b/changelog/unreleased/bugfix-extension-img @@ -0,0 +1,6 @@ +Bugfix: Show extension image + +Allow extensions to set an image as its logo, instead of an icon. +If `img` is set, it will take precedence over `icon`. + +https://github.com/owncloud/web/pull/5985 diff --git a/changelog/unreleased/bugfix-hide-files-by-default b/changelog/unreleased/bugfix-hide-files-by-default new file mode 100644 index 00000000000..b0195803638 --- /dev/null +++ b/changelog/unreleased/bugfix-hide-files-by-default @@ -0,0 +1,5 @@ +Bugfix: Hidden files hidden by default + +Hide hidden files (files started with ".") by default, similar to oc10 + +https://github.com/owncloud/web/pull/5985 diff --git a/changelog/unreleased/bugfix-order-extensions b/changelog/unreleased/bugfix-order-extensions new file mode 100644 index 00000000000..e121d79c60b --- /dev/null +++ b/changelog/unreleased/bugfix-order-extensions @@ -0,0 +1,6 @@ +Bugfix: Order extensions and default + +Ensure the default extensions are displayed first. +Ensure that extensions can be set as default or not. + +https://github.com/owncloud/web/pull/5985 \ No newline at end of file diff --git a/changelog/unreleased/enhancement-build-options b/changelog/unreleased/enhancement-build-options new file mode 100644 index 00000000000..93f60c4fa02 --- /dev/null +++ b/changelog/unreleased/enhancement-build-options @@ -0,0 +1,6 @@ +Enhancement: Build options + +Configure the startup title (displayed before the configuration is loaded) via env variable TITLE. +Make the source map generation optional with the env variable SOURCE_MAP. + +https://github.com/owncloud/web/pull/5985 \ No newline at end of file diff --git a/changelog/unreleased/enhancement-feedback-on-startup b/changelog/unreleased/enhancement-feedback-on-startup new file mode 100644 index 00000000000..0fa8747a6dd --- /dev/null +++ b/changelog/unreleased/enhancement-feedback-on-startup @@ -0,0 +1,6 @@ +Enhancement: Show feedback on startup + +Instead of displaying an empty page while all components load, display a spiner. +Also show an error message if there was an error. + +https://github.com/owncloud/web/pull/5985 \ No newline at end of file diff --git a/packages/web-app-files/src/components/ActionMenuItem.vue b/packages/web-app-files/src/components/ActionMenuItem.vue index 0eaf000bd90..d11b257a4e9 100644 --- a/packages/web-app-files/src/components/ActionMenuItem.vue +++ b/packages/web-app-files/src/components/ActionMenuItem.vue @@ -7,14 +7,19 @@ data-testid="action-handler" v-on="getComponentListeners(action, items)" > - + {{ action.label(filterParams) }} diff --git a/packages/web-app-files/src/components/AppBar/AppBar.vue b/packages/web-app-files/src/components/AppBar/AppBar.vue index 67cd1bc7aee..fdd785ca587 100644 --- a/packages/web-app-files/src/components/AppBar/AppBar.vue +++ b/packages/web-app-files/src/components/AppBar/AppBar.vue @@ -307,7 +307,7 @@ export default { created() { // Storage returns a string so we need to convert it into a boolean - const areHiddenFilesShown = window.localStorage.getItem('oc_hiddenFilesShown') || 'true' + const areHiddenFilesShown = window.localStorage.getItem('oc_hiddenFilesShown') || 'false' const areHiddenFilesShownBoolean = areHiddenFilesShown === 'true' if (areHiddenFilesShownBoolean !== this.areHiddenFilesShown) { diff --git a/packages/web-app-files/src/mixins/fileActions.js b/packages/web-app-files/src/mixins/fileActions.js index 218d786be9b..70b4b57c7e6 100644 --- a/packages/web-app-files/src/mixins/fileActions.js +++ b/packages/web-app-files/src/mixins/fileActions.js @@ -62,41 +62,50 @@ export default { }, $_fileActions_editorActions() { - return this.apps.fileEditors.map((editor) => { - return { - label: () => { - const translated = this.$gettext('Open in %{app}') - return this.$gettextInterpolate( - translated, - { app: this.apps.meta[editor.app].name }, - true - ) - }, - icon: this.apps.meta[editor.app].icon, - handler: ({ resources }) => - this.$_fileActions_openEditor( - editor, - resources[0].path, - resources[0].id, - EDITOR_MODE_EDIT - ), - isEnabled: ({ resources }) => { - if (resources.length !== 1) { - return false - } - if (Array.isArray(editor.routes) && !checkRoute(editor.routes, this.$route.name)) { - return false - } - - return resources[0].extension.toLowerCase() === editor.extension.toLowerCase() - }, - canBeDefault: true, - componentType: 'oc-button', - class: `oc-files-actions-${kebabCase( - this.apps.meta[editor.app].name - ).toLowerCase()}-trigger` - } - }) + return this.apps.fileEditors + .map((editor) => { + return { + label: () => { + const translated = this.$gettext('Open in %{app}') + return this.$gettextInterpolate( + translated, + { app: this.apps.meta[editor.app].name }, + true + ) + }, + icon: this.apps.meta[editor.app].icon, + img: this.apps.meta[editor.app].img, + handler: ({ resources }) => + this.$_fileActions_openEditor( + editor, + resources[0].path, + resources[0].id, + EDITOR_MODE_EDIT + ), + isEnabled: ({ resources }) => { + if (resources.length !== 1) { + return false + } + if (Array.isArray(editor.routes) && !checkRoute(editor.routes, this.$route.name)) { + return false + } + + return resources[0].extension.toLowerCase() === editor.extension.toLowerCase() + }, + canBeDefault: editor.canBeDefault, + componentType: 'oc-button', + class: `oc-files-actions-${kebabCase( + this.apps.meta[editor.app].name + ).toLowerCase()}-trigger` + } + }) + .sort((first, second) => { + // Ensure default are listed first + if (second.canBeDefault !== first.canBeDefault && second.canBeDefault) { + return 1 + } + return 0 + }) } }, @@ -214,7 +223,8 @@ export default { const label = this.$gettext('Open in %{ appName }') return { name: app.name, - img: app.icon, + icon: app.icon, + img: app.img, componentType: 'oc-button', class: `oc-files-actions-${app.name}-trigger`, isEnabled: () => true, diff --git a/packages/web-app-files/tests/unit/components/ActionMenuItem.spec.js b/packages/web-app-files/tests/unit/components/ActionMenuItem.spec.js index 8224e693664..095ebfac332 100644 --- a/packages/web-app-files/tests/unit/components/ActionMenuItem.spec.js +++ b/packages/web-app-files/tests/unit/components/ActionMenuItem.spec.js @@ -31,14 +31,10 @@ describe('ActionMenuItem component', () => { }) it('renders an image if there is one defined in the action', () => { const action = { ...fileActions.download, img: 'https://owncloud.tld/img.png' } - const wrapper1 = getShallowWrapper(action) - expect(wrapper1.find(selectors.icon).exists()).toBeTruthy() - expect(wrapper1.find(selectors.icon).attributes().name).toBe(action.icon) - delete action.icon - const wrapper2 = getShallowWrapper(action) - expect(wrapper2.find(selectors.icon).exists()).toBeFalsy() - expect(wrapper2.find(selectors.img).exists()).toBeTruthy() - expect(wrapper2.find(selectors.img).attributes().src).toBe(action.img) + const wrapper = getShallowWrapper(action) + expect(wrapper.find(selectors.icon).exists()).toBeFalsy() + expect(wrapper.find(selectors.img).exists()).toBeTruthy() + expect(wrapper.find(selectors.img).attributes().src).toBe(action.img) }) it('renders the action label', () => { const action = fileActions.download diff --git a/packages/web-container/index.html.ejs b/packages/web-container/index.html.ejs index 05bab1859ee..a47ee0c90d2 100644 --- a/packages/web-container/index.html.ejs +++ b/packages/web-container/index.html.ejs @@ -10,35 +10,77 @@ <% }); %> - + +
+
+
diff --git a/packages/web-runtime/src/pages/oidcCallback.vue b/packages/web-runtime/src/pages/oidcCallback.vue index 17ed49b298b..af609b6cc9f 100644 --- a/packages/web-runtime/src/pages/oidcCallback.vue +++ b/packages/web-runtime/src/pages/oidcCallback.vue @@ -12,8 +12,8 @@

Please contact the administrator if this error persists.