Skip to content

feat: add Vue 3 admin settings UI for backend configuration#285

Draft
miaulalala wants to merge 1 commit intomasterfrom
feat/admin-settings-ui
Draft

feat: add Vue 3 admin settings UI for backend configuration#285
miaulalala wants to merge 1 commit intomasterfrom
feat/admin-settings-ui

Conversation

@miaulalala
Copy link
Collaborator

Implements a Nextcloud admin settings page that lets administrators manage user_backends configuration through the web UI instead of editing config.php manually.

  • lib/Settings/AdminSection.php — IIconSection registering the section
  • lib/Settings/Admin.php — ISettings page, injects current backends via initialState
  • lib/Service/BackendConfigService.php — reads/writes user_backends system config key
  • lib/Controller/ConfigController.php — GET/PUT REST API for backends, validates class names against known backends
  • appinfo/routes.php — route definitions
  • appinfo/info.xml — registers admin settings section
  • templates/admin.php — mount point for Vue app
  • src/backendSpecs.ts — field specs and argument marshalling for all 7 backend types (IMAP, FTP, SMB, SSH, BasicAuth, WebDAV, XMPP)
  • src/adminSettings.ts — Vue app entry point
  • src/views/AdminSettings.vue — main settings view with add/remove/save
  • src/components/BackendEntry.vue — per-backend form with dynamic fields
  • package.json + vite.config.ts — Vue 3 + Vite build setup

Fixes #28

Implements a Nextcloud admin settings page that lets administrators
manage user_backends configuration through the web UI instead of
editing config.php manually.

- lib/Settings/AdminSection.php — IIconSection registering the section
- lib/Settings/Admin.php — ISettings page, injects current backends
  via initialState
- lib/Service/BackendConfigService.php — reads/writes user_backends
  system config key
- lib/Controller/ConfigController.php — GET/PUT REST API for backends,
  validates class names against known backends
- appinfo/routes.php — route definitions
- appinfo/info.xml — registers admin settings section
- templates/admin.php — mount point for Vue app
- src/backendSpecs.ts — field specs and argument marshalling for all
  7 backend types (IMAP, FTP, SMB, SSH, BasicAuth, WebDAV, XMPP)
- src/adminSettings.ts — Vue app entry point
- src/views/AdminSettings.vue — main settings view with add/remove/save
- src/components/BackendEntry.vue — per-backend form with dynamic fields
- package.json + vite.config.ts — Vue 3 + Vite build setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@miaulalala miaulalala self-assigned this Mar 20, 2026
@miaulalala miaulalala added enhancement New feature or request 2. developing labels Mar 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2. developing enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Frontend

1 participant