9.0.0 (Sprint Increment)
Changelog for ownCloud Web 9.0.0 (2024-06-17)
Summary
- Bugfix - User data not updated while altering own user: #10377
- Bugfix - Admin settings keyboard navigation: #10417
- Bugfix - Load thumbnail when postprocessing is finished: #10517
- Bugfix - Share sidebar icons: #10551
- Bugfix - Apply sandbox attribute to iframe in draw-io extension: #10702
- Bugfix - Apply sandbox attribute to iframe in app-external extension: #10706
- Bugfix - Versions loaded multiple times when opening sidebar: #10746
- Bugfix - Incoming notifications broken while notification center is open: #10760
- Bugfix - Vertical scroll for OcModal on small screens: #10814
- Bugfix - Context menu empty in tiles view: #10900
- Bugfix - Resource deselection on right-click: #10918
- Bugfix - Resources with name consist of number won't show up in trash bin: #10920
- Bugfix - Disable search in public link context: #10928
- Bugfix - Space not updating on navigation: #10941
- Bugfix - Local logout if IdP has no logout support: #10974
- Change - Remove deprecated code: #7338
- Change - Remove skeleton app: #9892
- Change - Remove deprecated extension point for adding quick actions: #10102
- Change - Remove homeFolder option: #10122
- Change - Vuex store removed: #10210
- Change - Remove ocs user: #10240
- Change - Registering app file editors: #10330
- Change - Add extensionPoint concept: #10443
- Change - Portal target removed: #10758
- Change - Disable opening files in embed mode: #10786
- Enhancement - Accessibility improvements: #5383
- Enhancement - Icon for .dcm files: #9215
- Enhancement - Tile sizes: #10018
- Enhancement - Enable user preferences in public links: #10207
- Enhancement - Move ThemeSwitcher into Account Settings: #10334
- Enhancement - Top loading bar increase visibility: #10383
- Enhancement - Integrate ToastUI editor in the text editor app: #10390
- Enhancement - Custom component extension type: #10443
- Enhancement - Epub reader app: #10448
- Enhancement - Highlight search term in sharing autosuggest list: #10485
- Enhancement - Warn user before closing browser when upload is in progress: #10519
- Enhancement - Full text search default: #10534
- Enhancement - Show locked and processing next to other status indicators: #10544
- Enhancement - Set emoji as space icon: #10546
- Enhancement - Add SSE events for locking, renaming, deleting, and restoring: #10586
- Enhancement - Remember left nav bar state: #10611
- Enhancement - Remember right side bar state: #10612
- Enhancement - Add details panel to trash: #10624
- Enhancement - Implement Server-Sent Events (SSE) for File Creation: #10709
- Enhancement - Search providers extension point: #10758
- Enhancement - Implement Server-Sent Events (SSE) for file updates: #10782
- Enhancement - Add SSE event for moving: #10798
- Enhancement - Ability to theme sharing role icons: #10801
- Enhancement - Add SSE event for moving: #10807
- Enhancement - Show loading spinner while searching or filtering users: #10874
- Enhancement - Display hidden resources information in files list: #10907
- Enhancement - Add loading spinner to admin settings spaces and groups: #10929
- Enhancement - Audio metadata panel: #10956
- Enhancement - EXIF metadata panel: #10956
- Enhancement - Faster page loading times: #10976
- Enhancement - Add include disabled filter to spaces overview: #11004
- Enhancement - Multiple sidebar root panels: #11037
Details
-
Bugfix - User data not updated while altering own user: #10377
We've fixed a bug, where the user data was not updated when altering the own
user via the admin settings app, this effected for example the username and
email address in the top bar. -
Bugfix - Admin settings keyboard navigation: #10417
We've fixed a bug where keyboard navigation stopped working after deleting a
resource in the admin settings app. We also fixed a bug where initial keyboard
navigation didn't work, when no resource was selected. -
Bugfix - Load thumbnail when postprocessing is finished: #10517
We've fixed a bug when thumbnails weren't properly refreshed when postprocessing
is active on server and the file was updated, e.G text files. -
Bugfix - Share sidebar icons: #10551
We've fixed a bug where the share invite search dropdown didn't have icons in
some cases. -
Bugfix - Apply sandbox attribute to iframe in draw-io extension: #10702
General hardening of ownCloud Web integration with draw.io
-
Bugfix - Apply sandbox attribute to iframe in app-external extension: #10706
General hardening of ownCloud Web integration with OnlyOffice/Collabora
-
Bugfix - Versions loaded multiple times when opening sidebar: #10746
We've fixed a bug, where the versions endpoint was fetched multiple times when
the sidebar was opened and therefore added unnecessary load to the server. -
Bugfix - Incoming notifications broken while notification center is open: #10760
We've fixed a bug where the visual representation of new incoming notifications
were broken, while the notification center was opened. -
Bugfix - Vertical scroll for OcModal on small screens: #10814
We've fixed an issue where modals were not scrollable on screens with small
heights. -
Bugfix - Context menu empty in tiles view: #10900
We've fixed a bug where the context menu was empty in the tiles view after
clicking the show context menu button -
Bugfix - Resource deselection on right-click: #10918
We've fixed an issue where right-clicking any empty space inside the files table
would reset the current selection. -
Bugfix - Resources with name consist of number won't show up in trash bin: #10920
We've fixed a bug, where deleted resources that have only numbers in name like
"123" won't show up in the trash bin -
Bugfix - Disable search in public link context: #10928
We've fixed a bug where the search was visible in the public link context but
not usable, since we are not able yet to provide searching in this context.
Therefore the search was disabled in the public link context. -
Bugfix - Space not updating on navigation: #10941
We've fixed an issue where the current space did not update when navigating from
one space into another directly, e.g. via search results. That could lead to
uploads and file actions not working properly. -
Bugfix - Local logout if IdP has no logout support: #10974
Some IdPs don't support a logout endpoint. In those cases the web UI ran into a
fatal error and showed an empty screen without further redirects. Fixed by
forgetting the currently authenticated user when the OpenID Connect
configuration doesn't contain anendSessionEndpoint
url.https://github.com/owncloud/enterprise/issues/6631
#10974 -
Change - Remove deprecated code: #7338
We have removed the
getToken
getter from our vuex store and support for the
deprecateduser-management
name for theadmin-settings
app. See linked
"Deprecations" issue for more information. -
Change - Remove skeleton app: #9892
Due to improvements in the extension system in general, we have removed the
skeleton app. Documentation regarding the extension API and guides/examples can
be found in the dev docs. -
Change - Remove deprecated extension point for adding quick actions: #10102
BREAKING CHANGE for developers: The old way of registering quick actions via the
quickaction
property of an app has been removed. Quick actions should be
registered as extension via our extension registry. They need to be of type
action
and have theapp.files.quick-action
extensionPointId. -
Change - Remove homeFolder option: #10122
We have removed the
homeFolder
option as it was originally implemented and
used by CERN but isn't needed anymore. -
Change - Vuex store removed: #10210
BREAKING CHANGE for developers: The vuex store has been removed in favor of
pinia.All store modules have been migrated to a pinia store module. Please see the
linked issue down below for a list of all migrated stores and how to use them
now.There are a number of things that have been removed and/or moved into pinia
composables instead:Globals:
store
and$store
variables have been removed. -ConfigurationManager
has
been removed. The config now sits inside the configuration store.
App framework:
announceStore
has been removed. There is no need for apps to announce stores
to the runtime. If you need to use a store in your app, simply create a pinia
store module and use it. -announceExtensions
has been removed. The proper way
for an app to register file extensions is via theextensions
property inside
theappInfo
object. -requestStore
has been removed. There is no need to
request specific stores. All stores thatweb-pkg
provides can be imported and
accessed via their composables. -enabled
callback as well as thename
callback of theAppNavigationItem
no longer have thecapabilities
parameter.store
param of theClassicApplicationScript
has been removed.
Composables:
useStore
has been removed. Use the pinia for the store you want to use
instead. -useAccessToken
has been removed. It now sits inside the auth store.usePublicLinkContext
has been removed. It now sits inside the auth store. -
usePublicLinkPassword
has been removed. It now sits inside the auth store. -
usePublicLinkToken
has been removed. It now sits inside the auth store. -
useUserContext
has been removed. It now sits inside the auth store. -
useConfigurationManager
has been removed. The config now sits inside the
configuration store. -use...Capability
composables have been removed.
Capablities now sit inside the capability store.
For store specific changes please see the linked issue and PRs down below.
#10210
#10212
#10240
#10307
#10309
#10316
#10323
#10326
#10329
#10331
#10336
#10338
#10341
#10346
#10349
#10362
#10363
#10368
#10372 -
Change - Remove ocs user: #10240
BREAKING CHANGE for developers: The user from the ocs api has been removed in
favor of the graph user. That means the user that can be retrieved from the
store looks slightly different than the OCS user (though it still holds the same
information).For more details please see the linked PR down below.
-
Change - Registering app file editors: #10330
BREAKING CHANGE for developers: The
announceExtensions
method inside the app's
ready
hook, which could be used to register file editors, has been removed.
Developers should use theextensions
property inside theappInfo
object
instead.Note that the
handler
property of such an extension has been renamed to
createFileHandler
. -
Change - Add extensionPoint concept: #10443
BREAKING CHANGE for developers: The
scopes
property has been removed from the
Extension
type in favour of the newextensionPointIds
property.The extension system now allows developers to register extension points. An
extension point defines the metadata for the integration of a certain extension
type in a certain context. Examples for extension points are render targets for
custom components, targets for file actions (e.g. the right click context menu,
the batch actions, the whitespace context menu), etc.Extensions can now specify that they are only valid for a certain or multiple
extension points. This way a file action extension can e.g. specify to be
rendered only in the context menu, but not in the batch actions. Consequently,
the extension points concept is the next iteration of thescopes
concept. The
scopes
concept has been removed from the codebase.Extension points can define if users should be able to choose preferences for
the extension point. E.g. for the global progress bar extension point, users can
choose which of the available progress bar extensions should be used, since the
extension point only allows one extension to be active. At the moment we persist
the user choice in the localStorage of the browser. -
Change - Portal target removed: #10758
BREAKING CHANGE for developers: The (undocumented) portal target
app.runtime.header
is not available anymore. Please use the extension point
app.runtime.header.center
withcustomComponent
extensions instead (for
details see below).The portal target
app.runtime.header
has been removed in favour of a new
extension point with the idapp.runtime.header.center
. The extension point is
capable of mounting extensions of typecustomComponent
. The search bar, which
was previously using this portal target, was rewired into an extension. Other
portal
instances which used this portal target won't work anymore and need to
be ported to thecustomComponent
extension type instead. -
Change - Disable opening files in embed mode: #10786
We have disabled to open files in the embed mode, since opening or editing files
is not in scope of the embed mode. -
Enhancement - Accessibility improvements: #5383
Across the board, we have implemented improvements in regards of accessibility
for the web UI. -
Enhancement - Icon for .dcm files: #9215
We've added a custom icon for medical images of the file type dcm.
-
Enhancement - Tile sizes: #10018
We've adjusted the tile sizes to have a bigger base size and smaller stepping
from one tile size to the next. In addition to that the default tile size has
been changed to the second stepping, so that initially both space tiles and
file/folder tiles have a sufficient size for reading longer names. -
Enhancement - Enable user preferences in public links: #10207
We've enabled user preferences in public links, so any user even without an
account can open preferences in a public link context and for example change the
current language. -
Enhancement - Move ThemeSwitcher into Account Settings: #10334
We've moved the ThemeSwitcher to the account settings page.
-
Enhancement - Top loading bar increase visibility: #10383
We've improved the visibility in the top loading bar, the height has been
increased along with the color contrast. -
Enhancement - Integrate ToastUI editor in the text editor app: #10390
We've integrated the ToastUI editor in our text editor app. This makes writing
markdown much easier, since the users will have access to a markdown compatible
toolbar. Code syntax highlighting is also supported. -
Enhancement - Custom component extension type: #10443
We've introduced a new extension type
customComponent
. This allows to register
a custom component via an extension which can then be rendered in a custom
component render target. For the mapping to the render target, an extension
point needs to be registered and a CustomComponentTarget for this extension
point needs to be in place in a vue template. -
Enhancement - Epub reader app: #10448
We've added a epub reader app to open ebooks in web. This includes a variety of
functionalities such as a comprehensive chapter list, font size adjustment
options, and the ability to remember the user's last reading position even after
the app is closed. -
Enhancement - Highlight search term in sharing autosuggest list: #10485
We've adjusted the sharing autosuggest list, so the entered search term will be
highlighted in the respective name and mail of the found users. -
Enhancement - Warn user before closing browser when upload is in progress: #10519
We've added a warning message for the user, if they try to close the browser
while upload is in progress. -
Enhancement - Full text search default: #10534
Full text search is now enabled by default when searching for files if the
server supports it. -
Enhancement - Show locked and processing next to other status indicators: #10544
We've moved the processing and lock indicators to the status table column so all
indicators are easy accessible at the same spot. We also show the respective
lock and processing states in the tiles view. -
Enhancement - Set emoji as space icon: #10546
We've added a new feature to set emojis as space icon, to do so, the user needs
to click on the 'Set icon' button in the context menu of the respective space
and has to select an emoji from the emoji picker. -
Enhancement - Add SSE events for locking, renaming, deleting, and restoring: #10586
We've added Server-Sent Events (SSE) for locking, renaming, deleting, and
restoring actions. This enhancement ensures that these actions are instantly
propagated to other browsers and devices where the logged in user has access the
relevant files and folders. Now, users can experience real-time updates across
all their devices. -
Enhancement - Remember left nav bar state: #10611
We've implemented a feature to remember the state of the left navbar. Now, when
the user reopens the web application, the navbar will remain in its last state,
either fully open or collapsed, based on the user's previous interaction with
it. -
Enhancement - Remember right side bar state: #10612
We've implemented a feature to remember the state of the right side bar. Now,
when the user reopens the web application, the right side bar will remain in its
last state, either open or closed, based on the user's previous interaction with
it. -
Enhancement - Add details panel to trash: #10624
We've added the details panel to the right side bar, when the user selects a
resource in the trash. We also added a panel for multi select. -
Enhancement - Implement Server-Sent Events (SSE) for File Creation: #10709
We've implemented Server-Sent Events (SSE) to notify users in real-time when a
file is uploaded, a new folder is created, or a file is created (e.g., a text
file). With this enhancement, users will see new files automatically appear in
another browser tab if they have one open or when collaborating with others in
the same space. -
Enhancement - Search providers extension point: #10758
We've added a new extension point with the id
app.search.provider
and for the
extensionTypesearch
that can be used to register additional search providers.
All search providers that are registered for this extension point will be used
by the global search automatically. -
Enhancement - Implement Server-Sent Events (SSE) for file updates: #10782
We've implemented Server-Sent Events (SSE) to notify users in real-time about
file changes. Users now receive real-time UI updates when e.g. the last
modification date or size of a file is updated. -
Enhancement - Add SSE event for moving: #10798
We've added Server-Sent Events (SSE) for moving resources. When the user moves
files or folders, everyone with access to them instantly sees the changes across
their browsers and devices. -
Enhancement - Ability to theme sharing role icons: #10801
We've added the ability to theme the sharing role icons. This is useful for
custom themes that want to customize the look of the sharing role dropdown. -
Enhancement - Add SSE event for moving: #10807
We've added Server-Sent Events (SSE) for sharing. This notifies the user when
they received or revoked access to a share or membership to a space. -
Enhancement - Show loading spinner while searching or filtering users: #10874
While searching or filtering users in the admin settings, there will be shown a
loading spinner, to indicate the request is processing. -
Enhancement - Display hidden resources information in files list: #10907
We've added the ability for the user to see how many files and folders are
hidden in the files list footer. -
Enhancement - Add loading spinner to admin settings spaces and groups: #10929
We've added a loading spinner to the spaces and groups view in the admin
settings to indicate loading task, when the server needs time to respond. -
Enhancement - Audio metadata panel: #10956
We've added a right sidebar panel with the name
Audio Info
, which display
audio
metadata if present on the given resource. It is registered by the files
app and becomes visible in the global right sidebar in all file contexts, e.g.
file listing with single select on an audio file with indexed id3 information or
when listening to an audio file in the preview app. -
Enhancement - EXIF metadata panel: #10956
We've added a right sidebar panel with the name
Image Info
, which displays
image
,photo
andlocation
metadata if present on the given resource. It is
registered by the files app and becomes visible in the global right sidebar in
all file contexts, e.g. file listing with single select on an image or the
preview app displaying an image. -
Enhancement - Faster page loading times: #10976
We've massively decreased the initial page loading times. This is especially
noticeable with slower network connections.According to the lighthouse performance metrics, we improved from a score of 60
to 94 out of 100.This has been achieved by taking several different actions:
- Lazy load large dependencies - Improve chunking - Enable server side
compression - Reduce the size of the main font we're using - Only register
translations for the currently selected language
- Lazy load large dependencies - Improve chunking - Enable server side
-
Enhancement - Add include disabled filter to spaces overview: #11004
We've added an 'include disabled' filter to the spaces overview which is off by
default. This helps the user to manage spaces efficiently, even if there are a
lot of disabled spaces. -
Enhancement - Multiple sidebar root panels: #11037
The right sidebar now supports rendering multiple root panels. Since all panels
determine their visibility individually it can happen that e.g. for a given file
type multiple root panels would be available. Previously we only rendered the
first one. Now we render all of them below each other, separated by a fine
horizontal line.