From fe6055a38d8d534ab17cd8334d928c20ac80d048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20P=C3=B6ttker?= Date: Mon, 4 May 2026 13:50:01 +0200 Subject: [PATCH] feat: add Agrarmonitor external link to sidebar and fix Mailpostfach filter initialization logic --- paperless-frontend/src/layouts/AppLayout.tsx | 12 +++++++++++- paperless-frontend/src/pages/MailpostfachPage.tsx | 3 ++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/paperless-frontend/src/layouts/AppLayout.tsx b/paperless-frontend/src/layouts/AppLayout.tsx index 5693bb6..e90e9a9 100644 --- a/paperless-frontend/src/layouts/AppLayout.tsx +++ b/paperless-frontend/src/layouts/AppLayout.tsx @@ -12,6 +12,7 @@ import { SunOutlined, MoonOutlined, AppstoreOutlined, + GlobalOutlined, } from '@ant-design/icons'; import { useAuth } from '../auth/AuthContext'; import { useTheme } from '../theme/ThemeContext'; @@ -27,6 +28,7 @@ type MenuItemDef = { label: string; permission?: Permission; countKey?: keyof StatsCounts; + externalUrl?: string; }; const allMenuItems: MenuItemDef[] = [ @@ -35,6 +37,7 @@ const allMenuItems: MenuItemDef[] = [ { key: '/posteingang', icon: , label: 'Posteingang', permission: Permission.VIEW_INBOX, countKey: 'posteingang' }, { key: '/manuell', icon: , label: 'Manuell bearbeiten', permission: Permission.PROCESS_MANUALLY, countKey: 'manuell' }, { key: '/mailpostfach', icon: , label: 'Mailpostfach', permission: Permission.VIEW_MAIL, countKey: 'mailpostfach' }, + { key: 'agrarmonitor', icon: , label: 'In Agrarmonitor', permission: Permission.PROCESS_MANUALLY, countKey: 'agrarmonitor', externalUrl: 'https://admin7.agrarmonitor.de/dateien/eingang#dateien' }, { key: '/settings', icon: , label: 'Einstellungen', permission: Permission.MANAGE_SETTINGS }, ]; @@ -148,7 +151,14 @@ export default function AppLayout() { mode="inline" selectedKeys={[selectedKey]} items={menuItems} - onClick={({ key }) => navigate(key)} + onClick={({ key }) => { + const item = allMenuItems.find((i) => i.key === key); + if (item?.externalUrl) { + window.open(item.externalUrl, '_blank', 'noopener,noreferrer'); + } else { + navigate(key); + } + }} style={isDark ? { flex: 1 } : { background: 'transparent', flex: 1 }} /> diff --git a/paperless-frontend/src/pages/MailpostfachPage.tsx b/paperless-frontend/src/pages/MailpostfachPage.tsx index 306bff0..d6ac553 100644 --- a/paperless-frontend/src/pages/MailpostfachPage.tsx +++ b/paperless-frontend/src/pages/MailpostfachPage.tsx @@ -19,7 +19,8 @@ export default function MailpostfachPage() { const [searchText, setSearchText] = useState(() => sessionStorage.getItem('mailSearch') || ''); const [statusFilter, setStatusFilter] = useState(() => { const saved = sessionStorage.getItem('mailStatus'); - return saved !== null && saved !== 'all' ? Number(saved) : 'all'; + if (saved === null) return 0; + return saved === 'all' ? 'all' : Number(saved); }); const { hasPermission } = useAuth();