preparing document module
This commit is contained in:
@@ -13,6 +13,7 @@ application{
|
||||
|
||||
dependencies{
|
||||
implementation(project(":core"))
|
||||
implementation(project(":documents"))
|
||||
implementation(project(":legacy"))
|
||||
implementation(project(":messages"))
|
||||
implementation(project(":translations"))
|
||||
|
||||
@@ -10,6 +10,7 @@ import de.srsoftware.configuration.JsonConfig;
|
||||
import de.srsoftware.tools.ColorLogger;
|
||||
import de.srsoftware.umbrella.core.ConnectionProvider;
|
||||
import de.srsoftware.umbrella.core.UmbrellaException;
|
||||
import de.srsoftware.umbrella.documents.DocumentApi;
|
||||
import de.srsoftware.umbrella.legacy.LegacyApi;
|
||||
import de.srsoftware.umbrella.message.MessageApi;
|
||||
import de.srsoftware.umbrella.message.MessageSystem;
|
||||
@@ -59,8 +60,8 @@ public class Application {
|
||||
var server = HttpServer.create(new InetSocketAddress(port), 0);
|
||||
server.setExecutor(Executors.newFixedThreadPool(threads));
|
||||
|
||||
|
||||
new LegacyApi(userDb,config).bindPath("/legacy").on(server);
|
||||
new DocumentApi().bindPath("/api/document").on(server);
|
||||
new MessageApi(messageSystem).bindPath("/api/messages").on(server);
|
||||
translationModule.bindPath("/api/translations").on(server);
|
||||
new UserModule(userDb,loginServiceDb,messageSystem).bindPath("/api/user").on(server);
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.core.model;
|
||||
|
||||
import de.srsoftware.umbrella.core.UmbrellaException;
|
||||
|
||||
import static de.srsoftware.tools.Optionals.allSet;
|
||||
import static java.net.HttpURLConnection.HTTP_BAD_REQUEST;
|
||||
import static java.text.MessageFormat.format;
|
||||
|
||||
import de.srsoftware.umbrella.core.UmbrellaException;
|
||||
|
||||
public class EmailAddress {
|
||||
private final String email;
|
||||
|
||||
5
documents/build.gradle.kts
Normal file
5
documents/build.gradle.kts
Normal file
@@ -0,0 +1,5 @@
|
||||
description = "Umbrella : Documents"
|
||||
|
||||
dependencies{
|
||||
implementation(project(":core"))
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.documents;
|
||||
|
||||
public class Constants {
|
||||
private Constants(){}
|
||||
|
||||
public static final String COMPANIES = "companies";
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.documents;
|
||||
|
||||
import static de.srsoftware.umbrella.core.ResponseCode.HTTP_NOT_IMPLEMENTED;
|
||||
import static de.srsoftware.umbrella.documents.Constants.COMPANIES;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import de.srsoftware.tools.Path;
|
||||
import de.srsoftware.umbrella.core.BaseHandler;
|
||||
import java.io.IOException;
|
||||
|
||||
public class DocumentApi extends BaseHandler {
|
||||
@Override
|
||||
public boolean doGet(Path path, HttpExchange ex) throws IOException {
|
||||
addCors(ex);
|
||||
var head = path.pop();
|
||||
return switch (head){
|
||||
case COMPANIES -> getCompanies(ex);
|
||||
case null, default -> super.doGet(path,ex);
|
||||
};
|
||||
}
|
||||
|
||||
private boolean getCompanies(HttpExchange ex) throws IOException {
|
||||
return sendEmptyResponse(HTTP_NOT_IMPLEMENTED,ex);
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
import { user } from './user.svelte.js';
|
||||
import { Router, Route } from 'svelte-tiny-router';
|
||||
import Callback from "./routes/user/OidcCallback.svelte";
|
||||
import DocList from "./routes/document/List.svelte";
|
||||
import EditService from "./routes/user/EditService.svelte";
|
||||
import EditUser from "./routes/user/EditUser.svelte";
|
||||
import Footer from "./Components/Footer.svelte";
|
||||
@@ -34,6 +35,8 @@
|
||||
{#if user.name }
|
||||
<!-- https://github.com/notnotsamuel/svelte-tiny-router -->
|
||||
<Menu />
|
||||
<Route path="/" component={User} />
|
||||
<Route path="/document" component={DocList} />
|
||||
<Route path="/message/settings" component={Messages} />
|
||||
<Route path="/search" component={Search} />
|
||||
<Route path="/user" component={User} />
|
||||
@@ -42,7 +45,9 @@
|
||||
<Route path="/user/:user_id/edit" component={EditUser} />
|
||||
<Route path="/user/oidc/add" component={EditService} />
|
||||
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
|
||||
<Route component={User} />
|
||||
<Route>
|
||||
Not found!
|
||||
</Route>
|
||||
{:else}
|
||||
<Route path="/user/reset/pw" component={ResetPw} />
|
||||
<Route path="/oidc_callback" component={Callback} />
|
||||
|
||||
@@ -30,6 +30,7 @@ onMount(fetchModules);
|
||||
|
||||
<nav>
|
||||
<a onclick={() => router.navigate('/user')}>{t('menu.users')}</a>
|
||||
<a onclick={() => router.navigate('/document')}>{t('menu.documents')}</a>
|
||||
<a href="https://svelte.dev/tutorial/svelte/state" target="_blank">{t('menu.tutorial')}</a>
|
||||
{#each modules as module,i}
|
||||
<a href={module.url}>{module.name}</a>
|
||||
|
||||
29
frontend/src/routes/document/List.svelte
Normal file
29
frontend/src/routes/document/List.svelte
Normal file
@@ -0,0 +1,29 @@
|
||||
<script>
|
||||
import { onMount } from 'svelte';
|
||||
import { t } from '../../translations.svelte.js';
|
||||
|
||||
let company = null;
|
||||
let error = null;
|
||||
|
||||
async function loadCompanies(){
|
||||
const url = `${location.protocol}//${location.host.replace('5173','8080')}/api/document/companies`;
|
||||
var resp = await fetch(url,{ credentials: 'include'});
|
||||
if (resp.ok){
|
||||
} else {
|
||||
error = await resp.text();
|
||||
}
|
||||
}
|
||||
|
||||
onMount(loadCompanies);
|
||||
</script>
|
||||
|
||||
<fieldset>
|
||||
<legend>{t('documents.documents')}</legend>
|
||||
{#if error}
|
||||
<div class="error">{error}</div>
|
||||
{/if}
|
||||
<div>
|
||||
{t('documents.select_company')}
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
@@ -25,7 +25,6 @@ import jakarta.mail.util.ByteArrayDataSource;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class MessageSystem implements PostBox {
|
||||
public static final System.Logger LOG = System.getLogger(MessageSystem.class.getSimpleName());
|
||||
|
||||
@@ -6,10 +6,8 @@ import static java.lang.System.Logger.Level.TRACE;
|
||||
import static java.text.MessageFormat.format;
|
||||
|
||||
import de.srsoftware.umbrella.core.model.UmbrellaUser;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class CombinedMessage {
|
||||
private static final System.Logger LOG = System.getLogger(CombinedMessage.class.getSimpleName());
|
||||
|
||||
@@ -7,3 +7,5 @@ include("messages")
|
||||
include("translations")
|
||||
include("user")
|
||||
include("web")
|
||||
|
||||
include("documents")
|
||||
Reference in New Issue
Block a user