Browse Source

fixed bugs introduced by switching from titles as ids to separate ids

module/wiki
Stephan Richter 2 months ago
parent
commit
f13da92b48
  1. 1
      core/src/main/java/de/srsoftware/umbrella/core/model/WikiPage.java
  2. 4
      frontend/src/App.svelte
  3. 14
      frontend/src/routes/wiki/View.svelte
  4. 1
      notes/src/main/java/de/srsoftware/umbrella/notes/SqliteDb.java
  5. 2
      project/src/main/java/de/srsoftware/umbrella/project/SqliteDb.java
  6. 4
      wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java

1
core/src/main/java/de/srsoftware/umbrella/core/model/WikiPage.java

@ -126,6 +126,7 @@ public class WikiPage implements Mappable { @@ -126,6 +126,7 @@ public class WikiPage implements Mappable {
ID,id,
CONTENT,Map.of(SOURCE,content,RENDERED,markdown(content)),
MEMBERS,memberMap,
TITLE,title,
VERSION,version,
VERSIONS,versions
);

4
frontend/src/App.svelte

@ -90,8 +90,8 @@ @@ -90,8 +90,8 @@
<Route path="/user/oidc/add" component={EditService} />
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
<Route path="/wiki" component={WikiIndex} />
<Route path="/wiki/:id/view" component={WikiPage} />
<Route path="/wiki/:id/version/:version" component={WikiPage} />
<Route path="/wiki/:key/view" component={WikiPage} />
<Route path="/wiki/:key/version/:version" component={WikiPage} />
<Route>
Not found!
</Route>

14
frontend/src/routes/wiki/View.svelte

@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
import TagList from '../tags/TagList.svelte';
let error = $state(null);
let { id, version } = $props();
let { key, version } = $props();
let page = $state(null);
let router = useTinyRouter();
let members = $state({});
@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
}
async function loadPage(){
let path = `wiki/page/${id}`;
let path = `wiki/page/${key}`;
if (version) path += `/version/${version}`;
const url = api(path);
const res = await fetch(url,{credentials:'include'});
@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
}
async function patch(data){
const url = api(`wiki/page/${id}`);
const url = api(`wiki/page/${page.id}`);
const res = await fetch(url,{
credentials:'include',
method:'PATCH',
@ -103,10 +103,10 @@ @@ -103,10 +103,10 @@
<span class="version">{t('version')}</span>
{#each page.versions as v}
<span class="version">
<a href={`/wiki/${id}/version/${v}`} {onclick} class={page.version == v?'selected':''}>{v}</a> &nbsp;
<a href={`/wiki/${key}/version/${v}`} {onclick} class={page.version == v?'selected':''}>{v}</a> &nbsp;
</span>
{/each}
<h2>{id}</h2>
<h2>{page.title}</h2>
{#if page.version != page.versions[0]}
<span class="warn">{t('not_recent_version')}</span>
{/if}
@ -132,9 +132,9 @@ @@ -132,9 +132,9 @@
</tbody>
</table>
{/if}
<TagList module="wiki" {id} user_list={Object.keys(page.members).map(id => +id)} />
<TagList module="wiki" id={page.id} user_list={Object.keys(page.members).map(id => +id)} />
<div class="notes">
<h3>{t('notes')}</h3>
<Notes module="wiki" entity_id={id} />
<Notes module="wiki" entity_id={page.id} />
</div>
{/if}

1
notes/src/main/java/de/srsoftware/umbrella/notes/SqliteDb.java

@ -256,6 +256,7 @@ CREATE TABLE IF NOT EXISTS "{0}" ( @@ -256,6 +256,7 @@ CREATE TABLE IF NOT EXISTS "{0}" (
public void updateId(String module, Object oldId, Object newId) {
try {
update(TABLE_NOTES).set(ENTITY_ID).where(MODULE,equal(module)).where(ENTITY_ID,equal(oldId)).prepare(db).apply(newId).close();
LOG.log(DEBUG,"Updated note @ {0}.{1} → {0}.{2}",module,oldId,newId);
} catch (SQLException e) {
throw databaseException("Failed to update {0}.{1} → {0}.{2}",module,oldId,newId);
}

2
project/src/main/java/de/srsoftware/umbrella/project/SqliteDb.java

@ -23,7 +23,7 @@ import java.util.HashMap; @@ -23,7 +23,7 @@ import java.util.HashMap;
import java.util.Map;
public class SqliteDb extends BaseDb implements ProjectDb {
private static final System.Logger LOG = System.getLogger("Sqlite4Project");
private static final System.Logger LOG = System.getLogger("ProjectDb");
private static final int INITIAL_DB_VERSION = 1;
public SqliteDb(Connection connection) {

4
wiki/src/main/java/de/srsoftware/umbrella/wiki/SqliteDb.java

@ -24,7 +24,7 @@ import java.sql.SQLException; @@ -24,7 +24,7 @@ import java.sql.SQLException;
import java.util.*;
public class SqliteDb extends BaseDb implements WikiDb {
private static final System.Logger LOG = System.getLogger("TaskDb");
private static final System.Logger LOG = System.getLogger("WikiDb");
public SqliteDb(Connection connection) {
super(connection);
@ -286,7 +286,7 @@ public class SqliteDb extends BaseDb implements WikiDb { @@ -286,7 +286,7 @@ public class SqliteDb extends BaseDb implements WikiDb {
if (page.isDirty(MEMBERS)){
Query.delete().from(TABLE_PAGES_USERS).where(PAGE_ID,Condition.equal(page.title())).where(USER_ID,Condition.notIn(page.members().keySet().toArray())).execute(db);
var query = replaceInto(TABLE_PAGES_USERS,PAGE_ID,USER_ID,PERMISSIONS);
for (var member : page.members().entrySet()) query.values(page.title(),member.getKey(),wikiPermissionCode(member.getValue().permission()));
for (var member : page.members().entrySet()) query.values(page.id(),member.getKey(),wikiPermissionCode(member.getValue().permission()));
query.execute(db).close();
}
return page;

Loading…
Cancel
Save