Commit Graph

761 Commits

Author SHA1 Message Date
Andy Scherzinger b49ea3596e Merge pull request #60596 from nextcloud/fix/settings-clear-app-navigation-toggle-overhang
fix(settings): clear NcAppNavigation toggle overhang
2026-06-11 23:25:07 +02:00
Peter Ringelmann ca950f7f5b fix(settings): clear NcAppNavigation toggle overhang
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-06-11 14:35:49 +02:00
krazyhell f8980dab61 feat: implement isSelectableGroup function to filter out unselectable groups
Signed-off-by: krazyhell <hellwarrior@riseup.net>
2026-06-11 11:00:58 +02:00
nfebe f0486506a7 fix(settings): Show loading spinner while searching accounts
Typing in the account search field briefly emptied the list and
displayed "No accounts" until the request returned, which on large
instances misled admins into thinking the query matched nothing. The
empty-state now keeps the loading spinner visible whenever the list is
empty and a fetch is in flight, regardless of whether it is the initial
page load or a subsequent search/group switch.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-06-09 13:36:10 +01:00
Peter Ringelmann bbdb7d01b8 refactor(settings): switch wipe dialog to confirm
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann 1d035b4cfc refactor(settings): tighten auth-token dialog components
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann 4b1c3fbe3b fix(settings,oauth2): preserve wipe state across admin deletion paths
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann 16ca990bdb fix(settings): confirm before revoking app tokens
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Peter Ringelmann 05a188e3a8 fix(settings): confirm before revoking app tokens
Adds an NcDialog confirmation to the Revoke action; deletion was
previously instant on click. When the token is marked for remote
wipe, the dialog surfaces a warning and the destructive button
switches to "Cancel wipe and revoke" so cancelling an in-flight
wipe is an explicit opt-in.

Also migrates the existing Wipe confirm from the legacy
window.OC.dialogs.confirm helper to NcDialog, matching the new
delete dialog. The auth token store actions are now pure API
callers; the UI does the gating.

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-05-26 16:41:02 +02:00
Ferdinand Thiessen 4ffcb2a255 Merge pull request #60243 from nextcloud/fix/settings-icon
fix(settings): remove legacy handling of active navigation settings icon
2026-05-12 19:26:47 +02:00
Ferdinand Thiessen 56293454c8 fix(settings): apply consistent style by using proper components
Use the proper app navigation components for the account management
navigation.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 18:01:02 +02:00
nfebe 3eb717eb16 fix(settings): Limit active-icon inversion to legacy nav design
On the new tinted active background the inversion flips icons to
white on a light surface. Now scoped to the legacy design only.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-05-12 12:32:07 +02:00
Ferdinand Thiessen 60f4b4c159 fix(settings): use proper component structure to make navigation work
`NcAppNavigation` is only allowed in `NcContent` but we were not using
it because the content was rendered by the server as templates.
This is now fixed by moving the content inside the `NcContent` once
mounted.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-10 22:18:29 +02:00
Ferdinand Thiessen 5b756ad8bc refactor: split appstore from settings
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-05 10:41:04 +02:00
Peter Ringelmann b9ac421649 chore: fix linting
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:54:14 +02:00
Peter Ringelmann 15279b44d8 fix(settings): debounce manager search and drop startup-time preload
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:39 +02:00
Peter Ringelmann 9e82d25f22 refactor(settings): inline UserRowMixin into UserRow
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:38 +02:00
Peter Ringelmann 24c29f4606 fix(settings): restore initForm language assignment comment
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:38 +02:00
Peter Ringelmann cf2d31597f fix(settings): update group counts after editUserMultiField
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann 9fe75f3502 fix: align static value with inputs
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann f1b916ce3e fix(settings): reset new user form after creation
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann 72f41f399d fix(settings): replace disabled username input with static display, use design tokens
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann c8f3c0423e fix(provisioning_api): allow clearing display name via editUserMultiField
Map empty string to userId since User::setDisplayName() rejects ""
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann 2bfdd86561 fix(settings): auth guards, NcSelectUsers migration, form cleanup
Mirror editUser permission checks in editUserMultiField. Swap NcSelect
:user-select for NcSelectUsers. Extract helpers into userFormUtils.ts.
Simplify UserList form init, drop unused Vue import. Update E2E tests.
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann 48f4b0b956 fix: improve UI layout of modal
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann 5eb8ef6f18 feat(settings): replace inline user editing with edit dialog
Replace inline row editing in user management with a modal dialog.
Extract shared form fields into UserFormFields with sub-components
(Groups, Quota, Language, Manager) using a single formData prop.
Normalize newUser shape to API-aligned field names.

Refs: #40903
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Peter Ringelmann f96730587f feat(provisioning_api): implement editUserMultiField PATCH endpoint
Add atomic multi-field user update with collected validation errors,
IAppConfig migration, and corresponding Vuex store action/mutation.

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-29 16:26:29 +02:00
Josh b7ecd901aa fix(settings): sort app list by status bucket and app name
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-04-29 12:24:52 +00:00
Peter Ringelmann 6f5ede3412 feat(settings): advertise keyboard shortcuts in user management
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann a17d6a8e02 refactor(settings): use useHotKey composable for Ctrl+F shortcut
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann 6ca6601820 fix: catch ctrl+f event to focus new search
-e
Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann 43a1f7c832 feat(settings): unified search for accounts and groups
Replace the unified search event bus subscription and the separate group
sidebar search with a single input in the account management navigation.
The query is shared via Vuex so UserList and AppNavigationGroupList
react to the same state.

Part of #53862
Fixes #59166

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-23 09:53:22 +02:00
Peter Ringelmann a070301443 fix(frontend): add strict password confirmation for sensitive admin actions
Register axios password confirmation interceptors in the apps
management, admin delegation, admin security, and OAuth2 settings
bundles, and pass PwdConfirmationMode.Strict on requests to endpoints
protected with #[PasswordConfirmationRequired(strict: true)], so that
the user password is verified via Basic auth on the request itself
rather than relying on the session timestamp.

Signed-off-by: Peter Ringelmann <peter.ringelmann@nextcloud.com>
2026-04-21 10:21:08 +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
Joas Schilling c9d7bce447 fix(apppasswords): Require password also on delete and update
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-04-13 15:09:10 +02:00
mykh-hailo 415ecb1cf5 feat: remove password column from user table
Signed-off-by: mykh-hailo <kristianderonta0205@gmail.com>
2026-04-08 12:03:56 -04:00
Ferdinand Thiessen b060efaca4 fix(settings): hide list of webauthn devices if empty
- resolves https://github.com/nextcloud/server/issues/59339

If there are no devices the list would be empty.
This is invalid for accessibility, as every list needs at least one
listitem.
Ref: https://www.w3.org/TR/wai-aria-1.2/#mustContain

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-07 16:56:21 +02:00
Chandrika Mohan 38278d172f fix(settings): correctly detect Chrome on Android in devices & sessions
Signed-off-by: Chandrika Mohan <chandrikalov@gmail.com>

common logic to detect ua

Signed-off-by: Chandrika Mohan <chandrikalov@gmail.com>
2026-03-20 14:08:15 +01:00
Julien Veyssier 2fc9eda850 feat(profile-picker): add an admin setting in the profile section to toggle the picker and the previews
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-02-23 14:40:50 +01:00
Julius Knorr edeba296b3 feat: Add office switcher with feature comparison
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2026-02-03 19:12:22 +01:00
Ferdinand Thiessen 2e4ede0320 refactor(settings): use NcAppNavigation for the settings navigation
Migrate away from jQuery and Snap.js for the navigation.
This is required to finally drop both dependencies.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-27 02:29:41 +01:00
Ferdinand Thiessen efdf1ccf36 chore(legacy): fix vue/component-options-name-casing ESLint rule
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-26 00:05:29 +01:00
Ferdinand Thiessen 503acb0ed6 feat: allow to filter contacts by team
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-23 14:54:41 +01:00
Côme Chilliet 407d7cb101 fix: Add translator hints to avoid confusion between big and large
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-22 17:16:09 +01:00
Castillo 263a96faec fix(settings): Improve sharing form labels
Signed-off-by: Castillo <37965565+castillo92@users.noreply.github.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2026-01-20 16:37:10 +01:00
Arsalan Ul Haq Sohni 02dc7f1f79 docs: remove developer documentation link
Signed-off-by: Arsalan Ul Haq Sohni <arsalan-ul-haq.sohni@strato.de>
2026-01-20 09:40:03 +01:00
Ferdinand Thiessen 7ff0804e90 chore: adjust styles for new stylelint config
- replace renamed `word-wrap` with new name `overflow-wrap` (CSS3)
- use extensions for `@use`

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-19 15:33:39 +01:00
Cristian Scheid 5c1b795cb5 feat(profile): show Teams memberships on account details
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-01-19 12:10:14 +00:00
Ferdinand Thiessen 04fc1a4418 chore(settings): remove dead legacy code
The `security_password` was last used in the personal setting security
section, but already migrated to vue.
So it can be safely removed.

The styles can also be removed by moving the required ones directly to
the Vue component.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-15 16:13:35 +01:00
Ferdinand Thiessen 7d21350040 feat(settings): add option to allow self-signed mail certificates
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-15 02:12:03 +01:00