From 3b8e7ed2581a4c0cab1b6dc7147e9cd8f8392839 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Tue, 9 Sep 2025 08:34:54 +0200 Subject: [PATCH] implemented creation of wiki tables Signed-off-by: Stephan Richter --- frontend/src/Components/Menu.svelte | 1 + wiki/build.gradle.kts | 5 ++ .../srsoftware/umbrella/wiki/Constants.java | 6 +++ .../de/srsoftware/umbrella/wiki/SqliteDb.java | 46 ++++++++++++++++++- 4 files changed, 56 insertions(+), 2 deletions(-) create mode 100644 wiki/build.gradle.kts diff --git a/frontend/src/Components/Menu.svelte b/frontend/src/Components/Menu.svelte index 94968a6..10003a7 100644 --- a/frontend/src/Components/Menu.svelte +++ b/frontend/src/Components/Menu.svelte @@ -58,6 +58,7 @@ onMount(fetchModules); go('/bookmark')}>{t('bookmarks')} go('/notes')}>{t('notes')} go('/time')}>{t('timetracking')} + go('/wiki')}>{t('wiki')} {t('tutorial')} {#each modules as module,i} {#if module.name.trim()}{module.name}{/if} diff --git a/wiki/build.gradle.kts b/wiki/build.gradle.kts new file mode 100644 index 0000000..bc92fdf --- /dev/null +++ b/wiki/build.gradle.kts @@ -0,0 +1,5 @@ +description = "Umbrella : Wiki" + +dependencies{ + implementation(project(":core")) +} \ No newline at end of file diff --git a/wiki/src/main/java/de/srsoftware/umbrella/wiki/Constants.java b/wiki/src/main/java/de/srsoftware/umbrella/wiki/Constants.java index 3b3c627..830f1f4 100644 --- a/wiki/src/main/java/de/srsoftware/umbrella/wiki/Constants.java +++ b/wiki/src/main/java/de/srsoftware/umbrella/wiki/Constants.java @@ -5,4 +5,10 @@ public class Constants { private Constants(){} public static final String CONFIG_DATABASE = "umbrella.modules.wiki.database"; + public static final String CONTENT = "content"; + public static final String PAGE_ID = "page_id"; + public static final String PERMISSIONS = "permissions"; + public static final String TABLE_PAGES = "pages"; + public static final String TABLE_PAGES_USERS = "pages_users"; + public static final String VERSION = "version"; } diff --git a/wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java b/wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java index 4f7d447..2098af0 100644 --- a/wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java +++ b/wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java @@ -3,6 +3,22 @@ package de.srsoftware.umbrella.wiki; import de.srsoftware.umbrella.core.BaseDb; import java.sql.Connection; +import java.sql.SQLException; + +import static de.srsoftware.umbrella.core.Constants.*; +import static de.srsoftware.umbrella.core.Constants.DESCRIPTION; +import static de.srsoftware.umbrella.core.Constants.DUE_DATE; +import static de.srsoftware.umbrella.core.Constants.ERROR_FAILED_CREATE_TABLE; +import static de.srsoftware.umbrella.core.Constants.EST_TIME; +import static de.srsoftware.umbrella.core.Constants.NAME; +import static de.srsoftware.umbrella.core.Constants.NO_INDEX; +import static de.srsoftware.umbrella.core.Constants.SHOW_CLOSED; +import static de.srsoftware.umbrella.core.Constants.START_DATE; +import static de.srsoftware.umbrella.core.Constants.STATUS; +import static de.srsoftware.umbrella.core.model.Status.OPEN; +import static de.srsoftware.umbrella.wiki.Constants.*; +import static java.lang.System.Logger.Level.ERROR; +import static java.text.MessageFormat.format; public class SqliteDb extends BaseDb implements WikiDb { private static final System.Logger LOG = System.getLogger("TaskDb"); @@ -16,9 +32,35 @@ public class SqliteDb extends BaseDb implements WikiDb { protected int createTables() { int currentVersion = createSettingsTable(); switch (currentVersion){ - case 0: ; // TODO + case 0: + createPagesTable(); + createPagesUsersTable(); } - return setCurrentVersion(3); + return setCurrentVersion(1); + } + + private void createPagesUsersTable() { + var sql = "CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) NOT NULL, {2} INT NOT NULL, {3} INT NOT NULL, PRIMARY KEY({1}, {2}))"; + try { + var stmt = db.prepareStatement(format(sql, TABLE_PAGES_USERS, PAGE_ID, USER_ID, PERMISSIONS)); + stmt.execute(); + stmt.close(); + } catch (SQLException e) { + LOG.log(ERROR, ERROR_FAILED_CREATE_TABLE, TABLE_PAGES, e); + throw new RuntimeException(e); + } + } + + private void createPagesTable() { + var sql = "CREATE TABLE IF NOT EXISTS {0} ( {1} VARCHAR(255) NOT NULL, {2} INT NOT NULL, {3} TEXT NOT NULL, PRIMARY KEY({1},{2}))"; + try { + var stmt = db.prepareStatement(format(sql, TABLE_PAGES, ID, VERSION, CONTENT)); + stmt.execute(); + stmt.close(); + } catch (SQLException e) { + LOG.log(ERROR, ERROR_FAILED_CREATE_TABLE, TABLE_PAGES, e); + throw new RuntimeException(e); + } } } \ No newline at end of file