Archiv-Navigator: Baum nur Ordner + flache Inhaltsliste (Zeilen: öffnen/umbenennen/löschen), Ordner/Dokument anlegen (Dateiname ohne Stempel, Datum im Frontmatter), Write-back geöffneter Archiv-Dokumente über Quell-Verknüpfung; Ablösen übergibt aktiven Tab
This commit is contained in:
+23
-4
@@ -9,11 +9,30 @@ export const wikiTab: PanelTab = {
|
||||
buffer: "wiki",
|
||||
labelKey: "panel.tabWiki",
|
||||
titleKey: "panel.tabWikiTitle",
|
||||
init: (container, ctx) => initWikiView(container, ctx.openWiki),
|
||||
// Wiki-Tab bei leerem Puffer (Session-Start): Übersicht direkt laden.
|
||||
onActivate: (view, ctx) => {
|
||||
if (view.empty()) ctx.openWiki("tag:");
|
||||
// Dokument-/Ordner-Operationen laufen als Commands; der neue Stand kommt
|
||||
// über den Wiki-Puffer (wiki-update) zurück, Fehler als Toast. Der
|
||||
// Dokument-Sprung lädt wie ein Suchtreffer in den Dokument-Tab.
|
||||
init: (container, ctx) => {
|
||||
const run = (cmd: string, args: Record<string, string>) =>
|
||||
void invoke(cmd, { project: ctx.project, ...args }).catch((e) =>
|
||||
ctx.toast(String(e)),
|
||||
);
|
||||
return initWikiView(container, {
|
||||
openDoc: ctx.openDoc,
|
||||
openWiki: ctx.openWiki,
|
||||
actions: {
|
||||
rename: (relpath, name) => run("archive_rename", { relpath, name }),
|
||||
remove: (relpath) => run("archive_delete", { relpath }),
|
||||
moveFolder: (folder, to) => run("archive_move_folder", { folder, to }),
|
||||
createFolder: (folder) => run("archive_create_folder", { folder }),
|
||||
createDoc: (folder, name) => run("archive_create_doc", { folder, name }),
|
||||
},
|
||||
});
|
||||
},
|
||||
// Beim Aktivieren die Übersicht frisch laden: das Anlegen eines Dokuments
|
||||
// öffnet den Dokument-Tab, ohne den Wiki-Puffer anzufassen — und auch
|
||||
// direkt archivierte oder von Hand abgelegte Dateien erscheinen so.
|
||||
onActivate: (_view, ctx) => ctx.openWiki("tag:"),
|
||||
};
|
||||
|
||||
export const searchTab: PanelTab = {
|
||||
|
||||
Reference in New Issue
Block a user