diff --git a/apps/mana/apps/web/src/lib/app-registry/apps.ts b/apps/mana/apps/web/src/lib/app-registry/apps.ts index c40b57c7b..513e853bd 100644 --- a/apps/mana/apps/web/src/lib/app-registry/apps.ts +++ b/apps/mana/apps/web/src/lib/app-registry/apps.ts @@ -849,6 +849,43 @@ registerApp({ }, }); +registerApp({ + id: 'articles', + name: 'Artikel', + color: '#F97316', + icon: BookOpen, + views: { + // ArticlesTabShell enthält intern alle drei Tabs (Übersicht / + // Leseliste / Highlights). Im Workbench-Karten-Kontext lassen + // sich die Tabs ohne Page-Navigation wechseln. In den direkten + // SvelteKit-Routen (/articles, /articles/list, /articles/highlights) + // wird dieselbe Shell mit passendem initialTab gemountet. + list: { load: () => import('$lib/modules/articles/ArticlesTabShell.svelte') }, + detail: { load: () => import('$lib/modules/articles/views/DetailView.svelte') }, + }, + contextMenuActions: [ + { + id: 'new-article', + label: 'URL speichern', + icon: Plus, + action: () => + window.dispatchEvent( + new CustomEvent('mana:quick-action', { detail: { app: 'articles', action: 'new' } }) + ), + }, + ], + collection: 'articles', + paramKey: 'articleId', + // dragType: 'article' absichtlich weggelassen — der DragType-Union in + // @mana/shared-ui/dnd kennt noch keinen 'article'-Slot. Wenn später + // Drag-to-calendar / Drag-to-todo gebraucht wird, erweitern wir den + // Union dort und hängen es hier ein. + getDisplayData: (item) => ({ + title: (item.title as string) || 'Artikel', + subtitle: (item.siteName as string) || undefined, + }), +}); + registerApp({ id: 'research-lab', name: 'Research Lab', diff --git a/apps/mana/apps/web/src/lib/modules/articles/ArticlesTabShell.svelte b/apps/mana/apps/web/src/lib/modules/articles/ArticlesTabShell.svelte new file mode 100644 index 000000000..cc3426178 --- /dev/null +++ b/apps/mana/apps/web/src/lib/modules/articles/ArticlesTabShell.svelte @@ -0,0 +1,150 @@ + + + +
Später lesen — gespeicherte Web-Artikel, offline verfügbar.
-Lädt…
@@ -127,12 +185,9 @@Noch nichts gespeichert.
- URL einfügen, der Server extrahiert den Artikel mit Readability, alles bleibt verschlüsselt - offline verfügbar. + Geh auf die Übersicht und füge oben eine URL ein — der Server extrahiert den Artikel mit + Readability, alles bleibt verschlüsselt offline verfügbar.
-{error}
+ {/if} +Alle markierten Stellen aus deinen gespeicherten Artikeln.
-Lädt…
@@ -99,7 +89,6 @@Markier eine Textstelle in einem gespeicherten Artikel — sie erscheint hier automatisch.
-