From a5d5d5872dbdf24a8a39c6301831212fa22693a8 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Thu, 2 Apr 2026 13:57:08 +0200 Subject: [PATCH] implemented account list Signed-off-by: Stephan Richter --- .../umbrella/accounting/AccountingModule.java | 3 ++- frontend/src/App.svelte | 2 ++ frontend/src/routes/accounting/account.svelte | 5 +++++ frontend/src/routes/accounting/index.svelte | 20 ++++++++++++++++++- .../srsoftware/umbrella/user/UserModule.java | 3 +-- 5 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 frontend/src/routes/accounting/account.svelte diff --git a/accounting/src/main/java/de/srsoftware/umbrella/accounting/AccountingModule.java b/accounting/src/main/java/de/srsoftware/umbrella/accounting/AccountingModule.java index 2b3d9552..4966563e 100644 --- a/accounting/src/main/java/de/srsoftware/umbrella/accounting/AccountingModule.java +++ b/accounting/src/main/java/de/srsoftware/umbrella/accounting/AccountingModule.java @@ -26,6 +26,7 @@ import static de.srsoftware.tools.Optionals.nullIfEmpty; import static de.srsoftware.umbrella.accounting.Constants.CONFIG_DATABASE; import static de.srsoftware.umbrella.core.ConnectionProvider.connect; import static de.srsoftware.umbrella.core.ModuleRegistry.userService; +import static de.srsoftware.umbrella.core.Util.mapValues; import static de.srsoftware.umbrella.core.constants.Path.JSON; import static de.srsoftware.umbrella.core.constants.Path.SEARCH; import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.invalidField; @@ -81,7 +82,7 @@ public class AccountingModule extends BaseHandler implements AccountingService { } private boolean getAccounts(UmbrellaUser user, HttpExchange ex) throws IOException { - return sendContent(ex,accountDb.listAccounts(user.id())); + return sendContent(ex,accountDb.listAccounts(user.id()).stream().map(Account::toMap)); } diff --git a/frontend/src/App.svelte b/frontend/src/App.svelte index 443b88da..a84253ab 100644 --- a/frontend/src/App.svelte +++ b/frontend/src/App.svelte @@ -5,6 +5,7 @@ import { loadTranslation } from './translations.svelte'; import { checkUser, user } from './user.svelte'; + import Account from "./routes/accounting/account.svelte"; import Accounts from "./routes/accounting/index.svelte"; import AddDoc from "./routes/document/Add.svelte"; import AddTask from "./routes/task/Add.svelte"; @@ -90,6 +91,7 @@ {@html messages.warning} {/if} + diff --git a/frontend/src/routes/accounting/account.svelte b/frontend/src/routes/accounting/account.svelte new file mode 100644 index 00000000..93839853 --- /dev/null +++ b/frontend/src/routes/accounting/account.svelte @@ -0,0 +1,5 @@ + +

Account {id}

\ No newline at end of file diff --git a/frontend/src/routes/accounting/index.svelte b/frontend/src/routes/accounting/index.svelte index 6c9d140c..494f9f74 100644 --- a/frontend/src/routes/accounting/index.svelte +++ b/frontend/src/routes/accounting/index.svelte @@ -22,11 +22,29 @@ router.navigate('/accounting/new'); } + function onclick(e){ + e.preventDefault(); + let href = e.target.getAttribute('href'); + if (href) router.navigate(href); + return false; + } + onMount(load);
{t('accounts')} - + + + + + +
\ No newline at end of file diff --git a/user/src/main/java/de/srsoftware/umbrella/user/UserModule.java b/user/src/main/java/de/srsoftware/umbrella/user/UserModule.java index 14ced958..e836000d 100644 --- a/user/src/main/java/de/srsoftware/umbrella/user/UserModule.java +++ b/user/src/main/java/de/srsoftware/umbrella/user/UserModule.java @@ -412,8 +412,7 @@ public class UserModule extends BaseHandler implements UserService { private boolean getUserList(HttpExchange ex, UmbrellaUser user) throws IOException, UmbrellaException { if (!(user instanceof DbUser dbUser && dbUser.permissions().contains(LIST_USERS))) throw forbidden("You are not allowed to list users!"); - var list = users.list(0, null,null).values().stream().map(UmbrellaUser::toMap).toList(); - return sendContent(ex,list); + return sendContent(ex,users.list(0, null,null).values().stream().map(UmbrellaUser::toMap)); } private boolean impersonate(HttpExchange ex, Long targetId) throws IOException, UmbrellaException {