refactor(addressbook): move from aside icon-bar to explorer nav link

Introduce generic explorer.nav_item slot type in app-main-aside.phtml
so modules can contribute links to the explorer nav panel.

Switch addressbook module from aside.tab_panel to explorer.nav_item.
Remove aside department-filter panel, AddressBookLayoutProvider, and
AddressBookSessionProvider (only served the now-removed aside panel).

Fix grid Name column overflow into Email column: CSS selector
.grid-name-cell > span:last-child never matched the <a> name link;
changed to :last-child and scoped flex-shrink:0 to :first-child only.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-26 15:06:15 +01:00
parent 376cf67c31
commit 5b2ea6bf27
9 changed files with 35 additions and 408 deletions

View File

@@ -3,8 +3,8 @@
/**
* Address Book module manifest.
*
* Contributes routes, sidebar slots, search entry, user-edit aside action,
* layout context data, and session lifecycle.
* Contributes routes, explorer nav link, search entry, user-edit aside action,
* and authorization policy.
*/
return [
'id' => 'addressbook',
@@ -27,16 +27,12 @@ return [
],
'ui_slots' => [
'aside.tab_panel' => [
'explorer.nav_item' => [
[
'key' => 'people',
'key' => 'address-book',
'label' => 'Address book',
'icon' => 'bi-people',
'href' => 'address-book',
'permission' => 'addressbook.view',
'panel_template' => 'templates/aside-people-panel.phtml',
'details_storage' => 'aside-people-tenant',
'details_open_active' => true,
'order' => 110,
],
],
@@ -77,13 +73,9 @@ return [
],
'scheduler_jobs' => [],
'layout_context_providers' => [
\MintyPHP\Module\AddressBook\Providers\AddressBookLayoutProvider::class,
],
'layout_context_providers' => [],
'session_providers' => [
\MintyPHP\Module\AddressBook\Providers\AddressBookSessionProvider::class,
],
'session_providers' => [],
'permissions' => [
[