2251a1d45f
Bisher war der Dateipfad die Identität einer Notiz: Umbenennen brach Verweise, und der Pfad tauchte in der Oberfläche auf (Tooltips, Menüpunkte "Dateiname ändern"/"Ordnerpfad ändern"). Jede Notiz trägt jetzt eine technische ID im Frontmatter (id: <uuid>), die nie wechselt; der Systempfad ist nur noch eine Eigenschaft. - ensure_ids ergänzt fehlende IDs beim Seitenaufbau (wie ensure_node_texts); frontmatter() schreibt sie bei jedem Anlegen als erste Zeile. - Doc, WikiDocEntry, FolderNode und Suchtreffer führen die ID mit; resolve_id löst sie auf den aktuellen relpath auf. - Commands sprechen IDs: archive_read/write/set_title/delete nehmen `id`, archive_create_doc/create_folder die ID des Elternknotens plus Namen, panel_archive_cmd den Zielknoten als ID. - Frontend adressiert durchgehend über IDs: Auswahl, Klapp-Zustand, Verlauf des Zurück-Knopfs, Wikilink-Sprünge, Suchtreffer-Vormerkung und der Zielordner-Baum des Archiv-Dialogs. - Der Pfad ist aus der Oberfläche verschwunden: die Menüpunkte zum Umbenennen von Datei und Ordner samt Commands (archive_rename, archive_move, archive_move_folder) sind entfallen — es gibt nur noch den Titel, Name und Titel können nicht mehr auseinanderlaufen. Offen dadurch: Verschieben im Baum fehlt (ToDo: Drag & Drop). Archiv-Dialog nebenbei überarbeitet: modales Popup im Design der Archiv-Ansicht mit Abbrechen und zuverlässigem Escape, Zielordner über einen einklappbaren Baum statt Pfadeingabe, zusätzlicher Knopf "Auf Platte legen" (panel_save_as); Archivieren öffnet keinen Dateimanager mehr.
82 lines
2.1 KiB
Rust
82 lines
2.1 KiB
Rust
fn main() {
|
|
// App-ACL-Manifest: erzeugt pro Command allow-/deny-Permissions. Sobald das
|
|
// Manifest existiert, gilt deny-by-default — jedes Command muss in einer
|
|
// Capability einem Fenster zugeteilt sein (capabilities/*.json), sonst
|
|
// lehnt Tauri den Aufruf ab. Neue Commands hier UND in der passenden
|
|
// Capability eintragen.
|
|
tauri_build::try_build(
|
|
tauri_build::Attributes::new().app_manifest(tauri_build::AppManifest::new().commands(&[
|
|
"list_projects",
|
|
"create_project_full",
|
|
"add_project",
|
|
"delete_preview",
|
|
"delete_project_scoped",
|
|
"project_work_dirs",
|
|
"set_project_dir",
|
|
"add_work_dir",
|
|
"remove_work_dir",
|
|
"list_pools",
|
|
"create_oauth_pool",
|
|
"create_apikey_pool",
|
|
"create_reference_pool",
|
|
"default_config_dir",
|
|
"rename_pool",
|
|
"delete_pool",
|
|
"assign_pool",
|
|
"unassign_pool",
|
|
"set_terminal_config",
|
|
"project_icon",
|
|
"pool_label",
|
|
"usage_stats",
|
|
"stop_project",
|
|
"restart_project",
|
|
"start_or_focus_cmd",
|
|
"open_main_window",
|
|
"quit_app",
|
|
"sync_setting",
|
|
"set_sync_setting",
|
|
"terminal_font_size",
|
|
"set_terminal_font_size",
|
|
"link_pool_runtime",
|
|
"oauth_login",
|
|
"keychain_status",
|
|
"set_apikey",
|
|
"panel_archive_dir_cmd",
|
|
"panel_archive_cmd",
|
|
"set_archive_home_cmd",
|
|
"change_archive_home_cmd",
|
|
"clear_archive_home_cmd",
|
|
"archive_docs_cmd",
|
|
"reveal_path_cmd",
|
|
"spellcheck_lang",
|
|
"open_terminal",
|
|
"term_start",
|
|
"term_log",
|
|
"term_write",
|
|
"term_resize",
|
|
"buffer_read",
|
|
"enabled_modules",
|
|
"module_registry",
|
|
"set_module",
|
|
"commands_delete",
|
|
"todos_delete",
|
|
"todos_add",
|
|
"todos_update",
|
|
"panel_set",
|
|
"search_run",
|
|
"panel_load",
|
|
"wiki_open",
|
|
"archive_read",
|
|
"archive_write",
|
|
"archive_set_title",
|
|
"archive_folders",
|
|
"panel_save_as",
|
|
"archive_delete",
|
|
"archive_create_folder",
|
|
"archive_create_doc",
|
|
"open_panel_window",
|
|
])),
|
|
)
|
|
.expect("tauri-build");
|
|
}
|