Administration's pages are tables. The Settings-style section column inside the page took width they need.
The section list moves to the folder pane. Directory › Accounts and Mail › Domains now sit where Mail lists its folders, grouped the same way and showing only the sections the role can read. The pane's "Administration" label is replaced by the list.
The page is the open section alone, up to 1120px wide instead of a 240px column plus 960px. The domain and account panels still overlay on the right.
On a phone the list is in the drawer, as every other section's list is. A bare /admin now opens the first section instead of a page with only the list, and the "← Administration" back link is gone.
The code is split into AdminNav (the pane list, statically imported by AppShell) and AdminView (the page, still a lazy chunk).
Testing
Driven in Chrome against npm run dev:mock:
desktop Accounts and Domains, with a domain panel open;
collapsed sidebar: icons only;
420px wide: /admin opens Accounts, and the drawer shows the list with the open section highlighted.
A pre-existing issue, left alone: in the collapsed sidebar a group heading shows clipped ("DIRECT"). Mail's "FOLDERS" heading does exactly the same today, so it is a sidebar style issue, not something this change introduces.
New component test for the pane list: groups in order, the open section marked, a bare /admin treated as the first section, and sections the role can't read left out.
Checks:
npm run typecheck: clean;
npm test -w web: 1210/1210;
npm test -w server: 188/188;
npm run i18n:check: clean;
npm run build: succeeds.
Translations
No new strings. The pane reuses "Administration", "Directory", "Mail", "Accounts" and "Domains", which are already in all nine catalogues. Strings falling back to English: 16 before and after.
## Summary
Administration's pages are tables. The Settings-style section column inside the page took width they need.
- **The section list moves to the folder pane.** Directory › Accounts and Mail › Domains now sit where Mail lists its folders, grouped the same way and showing only the sections the role can read. The pane's "Administration" label is replaced by the list.
- **The page is the open section alone,** up to 1120px wide instead of a 240px column plus 960px. The domain and account panels still overlay on the right.
- **On a phone** the list is in the drawer, as every other section's list is. A bare `/admin` now opens the first section instead of a page with only the list, and the "← Administration" back link is gone.
The code is split into `AdminNav` (the pane list, statically imported by `AppShell`) and `AdminView` (the page, still a lazy chunk).
## Testing
- **Driven in Chrome** against `npm run dev:mock`:
- desktop Accounts and Domains, with a domain panel open;
- collapsed sidebar: icons only;
- 420px wide: `/admin` opens Accounts, and the drawer shows the list with the open section highlighted.
- **A pre-existing issue, left alone:** in the collapsed sidebar a group heading shows clipped ("DIRECT"). Mail's "FOLDERS" heading does exactly the same today, so it is a sidebar style issue, not something this change introduces.
- **New component test for the pane list:** groups in order, the open section marked, a bare `/admin` treated as the first section, and sections the role can't read left out.
- **Checks:**
- `npm run typecheck`: clean;
- `npm test -w web`: 1210/1210;
- `npm test -w server`: 188/188;
- `npm run i18n:check`: clean;
- `npm run build`: succeeds.
## Translations
No new strings. The pane reuses "Administration", "Directory", "Mail", "Accounts" and "Domains", which are already in all nine catalogues. Strings falling back to English: 16 before and after.
**Merged** 2026-09-13 as coffey-labs/ihasmail@b6cc762d232d
<sub>Rebuilt from: git history, session transcript.</sub>
This repo is archived. You cannot comment on issues.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Administration's pages are tables. The Settings-style section column inside the page took width they need.
/adminnow opens the first section instead of a page with only the list, and the "← Administration" back link is gone.The code is split into
AdminNav(the pane list, statically imported byAppShell) andAdminView(the page, still a lazy chunk).Testing
npm run dev:mock:/adminopens Accounts, and the drawer shows the list with the open section highlighted./admintreated as the first section, and sections the role can't read left out.npm run typecheck: clean;npm test -w web: 1210/1210;npm test -w server: 188/188;npm run i18n:check: clean;npm run build: succeeds.Translations
No new strings. The pane reuses "Administration", "Directory", "Mail", "Accounts" and "Domains", which are already in all nine catalogues. Strings falling back to English: 16 before and after.
Merged 2026-09-13 as coffey-labs/ihasmail@b6cc762d23
Rebuilt from: git history, session transcript.