Show documentation in an Explorer-like layout: a folder navigation
pane on the left, folder and document tiles with large icons on the
right, plus back/up buttons, a clickable address bar and a status bar.
A view switcher (Explorer | Tree | List) lets users go back to the
previous tree view; the chosen view is remembered in localStorage.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ein Zeilenumbruch im Regex-Literal hat das Skript der Dokumentansicht
abbrechen lassen, sodass kein Kopieren-Button erschien. Version auf
0.12.0 angehoben.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Im Editor gibt es jetzt das TinyMCE-Plugin "codesample", um Code-
Bloecke ohne Markdown/HTML einzufuegen. In der Ansicht erhalten
Code-Bloecke ein einheitliches dunkles Layout, eine gut sichtbare
Textmarkierung (eingefuegte Inline-Hintergruende werden ignoriert)
und einen Kopieren-Button mit Fallback fuer Umgebungen ohne
Clipboard-API.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Die Baumansichten (DocumentTreeView, DocumentCategoryTreeView) bauen
ihr Queryset manuell statt ueber ein NetBoxModelFilterSet, wodurch das
netbox-utilities-Plugin seinen tenant_id/tenant_group_id-Parameter nicht
injizieren konnte und ausserhalb des gewaehlten Mandanten liegende
Ordner/Dokumente mit angezeigt wurden. Liest jetzt den oeffentlichen
Scope aus netbox_utilities.tenant_scope direkt aus (fallback: kein
Filter, falls das Plugin nicht installiert ist).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Neue Standardansicht fuer "Dokumentationen" im Windows-Explorer/
Nextcloud-Stil: Ordner und Unterordner als aufklappbarer Baum mit
den zugehoerigen Dokumenten als Dateien darin, inkl. Live-Suche.
Die bisherige Tabellenansicht bleibt als "Listenansicht" erreichbar.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Neue Baumansicht fuer Ordner & Kategorien im Nextcloud/Bookstack-Stil
mit Klapp-Navigation, Live-Suche und Breadcrumb-Pfad auf der
Ordner-Detailseite. Die bisherige Tabellenansicht bleibt fuer
Bulk-Aktionen als "Listenansicht" erhalten.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Beim ZIP-Import wurden Tenant/TenantGroup bisher per Slug per
.filter().first() aufgelöst. Existierte der referenzierte Mandant auf
der Zielinstanz nicht, wurde das Feld stillschweigend auf None gesetzt.
Das führte bei Instanzen mit Mandanten-Pflichtfeld-Validierung zu einer
generischen ValidationError beim document.save(), ohne Hinweis darauf,
welches Dokument oder welcher Mandant betroffen war.
_resolve_tenant()/_resolve_tenant_group() werfen nun eine ArchiveFailure
mit Dokument-/Ordnertitel und fehlendem Slug, sobald ein referenzierter
Mandant nicht gefunden wird.