Share one user form, add user photos and Revoke, confirm every form

- Settings > Users uses the people UserForm (useFormInit) instead of its
  own copy; it saves in one request through users/save-user, which now
  takes an optional profile photo (setUserProfileImage)
- Revoke action on user rows adds the revoked type, as the edit form would
- Every admin form asks for confirmation before it saves

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-19 11:03:57 +01:00
co-authored by Claude Opus 5.5
parent c44048dbab
commit 4dd34ed251
35 changed files with 352 additions and 535 deletions
@@ -48,6 +48,7 @@ export default function AddComputerForm({ computer, onCancel, onCreated, onUpdat
const submit = async () => {
if (loading) return;
if (!window.confirm(computer?.id ? `Save ${computer.name || "this computer"}? New resources restart it; its files stay.` : `Create ${name || "this computer"}?`)) return;
setLoading(true);
setError(undefined);
@@ -27,6 +27,7 @@ export default function AddWorkspaceForm({ onCancel }: Props) {
const submit = async () => {
if (loading) return;
if (!window.confirm(`Create ${name || "this workspace"}?`)) return;
setLoading(true);
setError(undefined);
+1
View File
@@ -49,6 +49,7 @@ export default function BotForm({ bot, onCancel }: Props) {
const submit = async () => {
if (loading) return;
if (!window.confirm(bot?.id ? `Save changes to ${bot.name || "this bot"}?` : `Add ${name || "this bot"} to your crew?`)) return;
setLoading(true);
setError(undefined);