Commit graph

862 commits

Author SHA1 Message Date
Ferdinand Thiessen
cc727e43da
fix(core): use proper API routes for recommended apps
- resolves https://github.com/nextcloud/server/issues/61313

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-27 19:48:00 +02:00
Carl Schwan
c479c7ab45 fix: Add plural form for translations
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-27 11:52:28 +00:00
Francisco Silva
9ec3906478
fix(a11y): label account QR code button
Signed-off-by: Francisco Silva <116388885+Will-thom@users.noreply.github.com>
2026-06-26 09:07:42 +02:00
Peter Ringelmann
5ac49579ad fix(core): keep app menu settings icon legible on light backgrounds
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-06-12 08:08:58 +00:00
Joas Schilling
03a76494b3 fix(menu): Fix icon colors on waffle menu
[skip ci]

Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-06-05 07:33:37 +00:00
Peter Ringelmann
8d5cfb37e8 fix: tests
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>

Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-06-03 10:10:47 +02:00
Peter Ringelmann
b7dda0cc0d fix: settings icon
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-06-03 07:44:30 +00:00
Peter Ringelmann
954839f715 fix(core): collapse settings entries to 'Settings' in current-app trigger
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-06-03 07:44:30 +00:00
Peter Ringelmann
4f79c8ab15 fix(core): Hide current-app label at narrower viewports
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-27 21:55:29 +02:00
nfebe
826f205f77 feat(core): Add centered search input to top bar
A centered, input-styled trigger replaces the top-right search icon as
the entry point to Unified Search. First phase of a phased rollout
that will later turn the trigger into a real inline-filtering input.

Refs: nextcloud/server#59888
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-05-27 09:28:17 +00:00
Peter Ringelmann
683331077f refactor: simplify dynamic height logic
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-20 12:09:44 +00:00
Peter Ringelmann
d3386334c3 fix(core): preserve waffle menu peek-row hint when labels wrap
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-20 12:09:44 +00:00
Peter Ringelmann
96543f463c feat(core): app menu polish for NC34
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-20 12:09:44 +00:00
Peter Ringelmann
bc04903ce6 fix(core): app menu icon contrast in dark mode
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-11 14:50:49 +02:00
Peter Ringelmann
490c6e7c06 test(core): align AppMenu mock with new icon helper
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-11 14:50:49 +02:00
Peter Ringelmann
0b97e4f585 fix(core): app menu launcher tile icon, dark mode, and hyphenation
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-11 14:50:49 +02:00
Peter Ringelmann
fa201206bb fix: unit test
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
55f9a872af fix: minor styling issues
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
041dd9f70b refactor(AppItem): drop redundant boolean prop defaults
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
f895e77ab4 feat: only app store link opens in new tab
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
8e5d02be2d feat: add app store link for non-admins
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
7ec7eb86bf fix: remove new tab links
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
78e98bba29 fix: stylelint issue
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
4cd0ddbf66 feat(core): app menu waffle launcher
- Popover grid replaces the old hamburger overlay
- Roving tabindex keyboard nav (arrow keys, Home/End, Enter/Space)
- Focus returns to whichever trigger opened the popover
- RTL-aware horizontal alignment
- Admin-only "More apps" tile
- Unit + Cypress coverage

Resolves: #59888
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-07 19:25:15 +02:00
Peter Ringelmann
82fb2e1bb3 fix(core): prompt for password once when installing recommended apps
Wire the password-confirmation interceptors into the recommendedapps
entry point and switch the installer to a single bulk enable call so
the strict password confirmation on enableApps is satisfied.

Fixes #60068
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-06 13:25:52 +02:00
Ferdinand Thiessen
b0d364388a
refactor(appstore): handle in-app-search of appstore
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-05 22:16:01 +02:00
Anna Larch
ef0db44d01 test(core): add unit tests for RedirectUnsupportedBrowsers
Covers the main logic paths: supported browser (no redirect), unsupported
browser (redirect with btoa-encoded URL), already on the warning page
(no double redirect), and a no-throw guard that would have caught the
window.Buffer regression.

AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-05-04 20:35:59 +02:00
Anna Larch
2aa944a80f fix(core): use btoa() instead of window.Buffer.from() for base64 encoding
window.Buffer is a Node.js API that is not natively available in browsers.
It was apparently polyfilled in the webpack bundle by a dependency, but
the polyfill is absent in environments like headless Electron (Cypress).

This went undetected because browserslist-useragent-regexp < 4.1.4 had a
bug where an empty browser set produced /(?:)/ (matches everything). Electron
matched as "supported" and the redirect code was never reached.

browserslist-useragent-regexp 4.1.4 fixed that bug (PR #1583: faithfully
match an empty set of browsers), generating /[]/ instead. Electron 118 no
longer matches as supported, the redirect path is now exercised, and
window.Buffer.from() throws:

  TypeError: Cannot read properties of undefined (reading 'from')

The fix replaces window.Buffer.from(str).toString('base64') with the
native browser btoa(str), which has been universally available since
before our minimum browser support baseline and requires no polyfill.

Fixes: #57920

Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-05-04 19:48:19 +02:00
Côme Chilliet
ab2df86b78
chore: Fix lint error in PasswordLessLoginForm.vue
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-04-30 14:07:00 +02:00
Ferdinand Thiessen
c4e2159284
Merge pull request #58576 from nextcloud/carl/updater-controller
refactor(updater): Move updater to a Controller
2026-04-30 01:19:45 +02:00
Carl Schwan
b53d9a7259
refactor(updater): Move updater to a Controller
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-04-29 22:58:15 +02:00
Côme Chilliet
6ced1ce9d8 chore: Fix npm lint issues in PasswordLessLoginForm.vue
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-04-28 10:00:19 +02:00
Côme Chilliet
19c7ac9194 fix: Always redirect to an absolute URL
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-04-28 10:00:19 +02:00
Ferdinand Thiessen
a4132d73cc chore!(core): remove deprecated Handlebars globals
Global Handlebars have been deprecated since Nextcloud 19.
We do not use them anymore and all integrations were removed with
Nextcloud 34. So its time to also remove the globals and thus the
dependency.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-24 07:46:38 +02:00
Peter Ringelmann
ea6e031e04 fix(core): skip unified-search Ctrl+F on pages with their own handler
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Ferdinand Thiessen
0dc7add400
chore: fix ESLint issues reported because of config update
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-20 22:13:24 +02:00
Ferdinand Thiessen
6db75dca92
chore: fix ESLint issues for rules added in ESLint v10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-20 22:13:24 +02:00
Ferdinand Thiessen
c96099183e fix(sharing): show common confirmation on password reset
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-09 16:59:19 +02:00
Josh
1c1bd469b8
chore(EventSource): drop client-side fallback
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-21 09:14:35 -04:00
provokateurin
e8feef1c9c fix(core): Allow external sharing to plain http://localhost
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-23 10:59:02 +00:00
Ferdinand Thiessen
b0df06d533
chore!(core): remove deprecated jQuery and jQuery UI
"jQuery is deprecated and will be removed with Nextcloud 19"
Well... At least it is removed now 😉

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:51:42 +01:00
Ferdinand Thiessen
00a5c028a4
chore!(core): remove legacy Backbone
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
a32168b01e
chore!(core): remove legacy OC.Files.Client
Use the DAV client from `@nextcloud/files/dav` instead.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
fd5108b68b
chore!(core): remove global snapper.js handling
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
c89939fbd6
chore!(core): remove handling of .live-relative-timestamp use @nextcloud/vue/components/NcDateTime instead
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
503fad2b16
chore!(core): remove legacy OC.registerMenu and other menu helpers
Instead use Vue components.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
e14d97b95a
chore!(core): remove deprecated OC.Apps
Instead use components from `@nextcloud/vue`

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
b66292a0d4
chore!(core): drop deprecated OC.Notification
Deprecated since 17.0.0, use the `@nextcloud/dialogs` package instead.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
16f4ff98e4
chore!(core): drop deprecated OC.Dialogs.fileexists
It is deprecated since 29.0.0.
Instead use `openConflictPicker` from the `@nextcloud/upload` (Vue 2).
Or from `@nextcloud/dialogs` (every other framework like Vue 3 etc).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00
Ferdinand Thiessen
9c8f80102a
chore!(core): drop deprecated OC.Settings
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-17 12:50:49 +01:00