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'),
},
];