|
|
|
@ -5,7 +5,8 @@ |
|
|
|
import { t } from '../../translations.svelte'; |
|
|
|
import { t } from '../../translations.svelte'; |
|
|
|
import { user } from '../../user.svelte'; |
|
|
|
import { user } from '../../user.svelte'; |
|
|
|
|
|
|
|
|
|
|
|
import Editor from '../../Components/MarkdownEditor.svelte'; |
|
|
|
import MarkdownEditor from '../../Components/MarkdownEditor.svelte'; |
|
|
|
|
|
|
|
import LineEditor from '../../Components/LineEditor.svelte'; |
|
|
|
import Notes from '../notes/RelatedNotes.svelte'; |
|
|
|
import Notes from '../notes/RelatedNotes.svelte'; |
|
|
|
import PermissionEditor from '../../Components/PermissionEditor.svelte'; |
|
|
|
import PermissionEditor from '../../Components/PermissionEditor.svelte'; |
|
|
|
import TagList from '../tags/TagList.svelte'; |
|
|
|
import TagList from '../tags/TagList.svelte'; |
|
|
|
@ -15,6 +16,7 @@ |
|
|
|
let page = $state(null); |
|
|
|
let page = $state(null); |
|
|
|
let router = useTinyRouter(); |
|
|
|
let router = useTinyRouter(); |
|
|
|
let members = $state({}); |
|
|
|
let members = $state({}); |
|
|
|
|
|
|
|
let editable = $derived(page.members[user.id].permission.code<4); |
|
|
|
|
|
|
|
|
|
|
|
async function addMember(entry){ |
|
|
|
async function addMember(entry){ |
|
|
|
let newMembers = JSON.parse(JSON.stringify(page.members)); |
|
|
|
let newMembers = JSON.parse(JSON.stringify(page.members)); |
|
|
|
@ -88,6 +90,11 @@ |
|
|
|
return loadContent(res); |
|
|
|
return loadContent(res); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function patchTitle(t){ |
|
|
|
|
|
|
|
var result = await(patch({title:t})); |
|
|
|
|
|
|
|
router.navigate(`/wiki/${page.id}/view`); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
async function updatePermission(uid, newPerm){ |
|
|
|
async function updatePermission(uid, newPerm){ |
|
|
|
let newMembers = JSON.parse(JSON.stringify(page.members)); |
|
|
|
let newMembers = JSON.parse(JSON.stringify(page.members)); |
|
|
|
newMembers[uid] = {permission:newPerm}; |
|
|
|
newMembers[uid] = {permission:newPerm}; |
|
|
|
@ -103,18 +110,17 @@ |
|
|
|
<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/${key}/version/${v}`} {onclick} class={page.version == v?'selected':''}>{v}</a> |
|
|
|
<a href={`/wiki/${page.id}/version/${v}`} {onclick} class={page.version == v?'selected':''}>{v}</a> |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
{/each} |
|
|
|
{/each} |
|
|
|
<h2>{page.title}</h2> |
|
|
|
<LineEditor value={page.title} type="h2" {editable} onSet={t => patchTitle(t)} /> |
|
|
|
{#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} |
|
|
|
{#if page.members[user.id].permission.code<4} |
|
|
|
<MarkdownEditor {editable} value={page.content} onSet={s => patch({content:s})} /> |
|
|
|
<Editor editable={true} value={page.content} onSet={s => patch({content:s})}></Editor> |
|
|
|
{#if editable} |
|
|
|
<PermissionEditor members={page.members} {addMember} {dropMember} {getCandidates} {updatePermission} /> |
|
|
|
<PermissionEditor members={page.members} {addMember} {dropMember} {getCandidates} {updatePermission} /> |
|
|
|
{:else} |
|
|
|
{:else} |
|
|
|
<div class="markdown">{@html page.content.rendered}</div> |
|
|
|
|
|
|
|
<table> |
|
|
|
<table> |
|
|
|
<thead> |
|
|
|
<thead> |
|
|
|
<tr> |
|
|
|
<tr> |
|
|
|
|