diff --git a/frontend/src/components/layout/PluginToolbar.tsx b/frontend/src/components/layout/PluginToolbar.tsx index 9dc690b..99e8dee 100644 --- a/frontend/src/components/layout/PluginToolbar.tsx +++ b/frontend/src/components/layout/PluginToolbar.tsx @@ -15,7 +15,7 @@ function ToolbarButton({ item }: { item: ToolbarItem }) { title={item.label} > {item.icon && {item.icon}} - {item.label} + {!item.iconOnly && {item.label}} ); } @@ -214,26 +214,32 @@ export function PluginToolbar() { groups[g].push(item); } const groupNames = Object.keys(groups); + const rightGroupNames = groupNames.filter((g) => g.startsWith('zz-right')); + const leftGroupNames = groupNames.filter((g) => !g.startsWith('zz-right')); + + const renderGroup = (groupName: string, gi: number) => ( + + {gi > 0 &&
} +
+ {groups[groupName].map((item) => { + if (item.type === 'search') return ; + if (item.type === 'select') return ; + if (item.type === 'dropdown') return ; + if (item.type === 'custom' && item.customComponent) return {item.customComponent}; + return ; + })} +
+ + ); return (
- {groupNames.map((groupName, gi) => ( - - {gi > 0 &&
} -
- {groups[groupName].map((item) => { - if (item.type === 'search') return ; - if (item.type === 'select') return ; - if (item.type === 'dropdown') return ; - if (item.type === 'custom' && item.customComponent) return {item.customComponent}; - return ; - })} -
- - ))} + {leftGroupNames.map((groupName, gi) => renderGroup(groupName, gi))} + {rightGroupNames.length > 0 &&
} + {rightGroupNames.map((groupName, gi) => renderGroup(groupName, gi))}
); } diff --git a/frontend/src/pages/ContactsList.tsx b/frontend/src/pages/ContactsList.tsx index 2cc3172..69b8fb9 100644 --- a/frontend/src/pages/ContactsList.tsx +++ b/frontend/src/pages/ContactsList.tsx @@ -351,24 +351,26 @@ export function ContactsListPage() { icon: , onClick: () => setSavedFiltersOpen(true), }, - // Print + // Print — icon only, right side { id: 'print', plugin: 'contacts', label: t('common.print', 'Drucken'), type: 'button' as const, - group: 'actions', + group: 'zz-right', icon: , + iconOnly: true, onClick: () => window.print(), }, - // Open standalone + // Open standalone — icon only, right side { id: 'open-standalone', plugin: 'contacts', label: 'In neuem Fenster', type: 'button' as const, - group: 'actions', + group: 'zz-right', icon: , + iconOnly: true, onClick: () => window.open('/contacts-standalone', '_blank', 'width=1200,height=800'), }, ];