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,
|
ID,id,
|
||||||
CONTENT,Map.of(SOURCE,content,RENDERED,markdown(content)),
|
CONTENT,Map.of(SOURCE,content,RENDERED,markdown(content)),
|
||||||
MEMBERS,memberMap,
|
MEMBERS,memberMap,
|
||||||
|
TITLE,title,
|
||||||
VERSION,version,
|
VERSION,version,
|
||||||
VERSIONS,versions
|
VERSIONS,versions
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -90,8 +90,8 @@
|
|||||||
<Route path="/user/oidc/add" component={EditService} />
|
<Route path="/user/oidc/add" component={EditService} />
|
||||||
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
|
<Route path="/user/oidc/edit/:serviceName" component={EditService} />
|
||||||
<Route path="/wiki" component={WikiIndex} />
|
<Route path="/wiki" component={WikiIndex} />
|
||||||
<Route path="/wiki/:id/view" component={WikiPage} />
|
<Route path="/wiki/:key/view" component={WikiPage} />
|
||||||
<Route path="/wiki/:id/version/:version" component={WikiPage} />
|
<Route path="/wiki/:key/version/:version" component={WikiPage} />
|
||||||
<Route>
|
<Route>
|
||||||
Not found!
|
Not found!
|
||||||
</Route>
|
</Route>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
import TagList from '../tags/TagList.svelte';
|
import TagList from '../tags/TagList.svelte';
|
||||||
|
|
||||||
let error = $state(null);
|
let error = $state(null);
|
||||||
let { id, version } = $props();
|
let { key, version } = $props();
|
||||||
let page = $state(null);
|
let page = $state(null);
|
||||||
let router = useTinyRouter();
|
let router = useTinyRouter();
|
||||||
let members = $state({});
|
let members = $state({});
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function loadPage(){
|
async function loadPage(){
|
||||||
let path = `wiki/page/${id}`;
|
let path = `wiki/page/${key}`;
|
||||||
if (version) path += `/version/${version}`;
|
if (version) path += `/version/${version}`;
|
||||||
const url = api(path);
|
const url = api(path);
|
||||||
const res = await fetch(url,{credentials:'include'});
|
const res = await fetch(url,{credentials:'include'});
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function patch(data){
|
async function patch(data){
|
||||||
const url = api(`wiki/page/${id}`);
|
const url = api(`wiki/page/${page.id}`);
|
||||||
const res = await fetch(url,{
|
const res = await fetch(url,{
|
||||||
credentials:'include',
|
credentials:'include',
|
||||||
method:'PATCH',
|
method:'PATCH',
|
||||||
@@ -103,10 +103,10 @@
|
|||||||
<span class="version">{t('version')}</span>
|
<span class="version">{t('version')}</span>
|
||||||
{#each page.versions as v}
|
{#each page.versions as v}
|
||||||
<span class="version">
|
<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>
|
</span>
|
||||||
{/each}
|
{/each}
|
||||||
<h2>{id}</h2>
|
<h2>{page.title}</h2>
|
||||||
{#if page.version != page.versions[0]}
|
{#if page.version != page.versions[0]}
|
||||||
<span class="warn">{t('not_recent_version')}</span>
|
<span class="warn">{t('not_recent_version')}</span>
|
||||||
{/if}
|
{/if}
|
||||||
@@ -132,9 +132,9 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
{/if}
|
{/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">
|
<div class="notes">
|
||||||
<h3>{t('notes')}</h3>
|
<h3>{t('notes')}</h3>
|
||||||
<Notes module="wiki" entity_id={id} />
|
<Notes module="wiki" entity_id={page.id} />
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|||||||
@@ -256,6 +256,7 @@ CREATE TABLE IF NOT EXISTS "{0}" (
|
|||||||
public void updateId(String module, Object oldId, Object newId) {
|
public void updateId(String module, Object oldId, Object newId) {
|
||||||
try {
|
try {
|
||||||
update(TABLE_NOTES).set(ENTITY_ID).where(MODULE,equal(module)).where(ENTITY_ID,equal(oldId)).prepare(db).apply(newId).close();
|
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) {
|
} catch (SQLException e) {
|
||||||
throw databaseException("Failed to update {0}.{1} → {0}.{2}",module,oldId,newId);
|
throw databaseException("Failed to update {0}.{1} → {0}.{2}",module,oldId,newId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class SqliteDb extends BaseDb implements ProjectDb {
|
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;
|
private static final int INITIAL_DB_VERSION = 1;
|
||||||
|
|
||||||
public SqliteDb(Connection connection) {
|
public SqliteDb(Connection connection) {
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import java.sql.SQLException;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class SqliteDb extends BaseDb implements WikiDb {
|
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) {
|
public SqliteDb(Connection connection) {
|
||||||
super(connection);
|
super(connection);
|
||||||
@@ -286,7 +286,7 @@ public class SqliteDb extends BaseDb implements WikiDb {
|
|||||||
if (page.isDirty(MEMBERS)){
|
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);
|
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);
|
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();
|
query.execute(db).close();
|
||||||
}
|
}
|
||||||
return page;
|
return page;
|
||||||
|
|||||||
Reference in New Issue
Block a user