fixed bugs introduced by switching from titles as ids to separate ids
This commit is contained in:
@@ -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
|
||||
);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 @@
|
||||
}
|
||||
|
||||
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 @@
|
||||
}
|
||||
|
||||
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 @@
|
||||
<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>
|
||||
<a href={`/wiki/${key}/version/${v}`} {onclick} class={page.version == v?'selected':''}>{v}</a>
|
||||
</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 @@
|
||||
</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}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 {
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user