Categories are a table, and each one opens as its own page

Featurekamo-internal
Shipped
September 9, 2026 at 11:56 PM UTC
Author
Kamo
Commit
3277b74

/settings/features/docs carried eight tabs: General, then seven that each mounted the same three managers against a different ordinal. Seven copies of one screen, and four of them were editing the wrong thing. The ordinals were written when ImageAssocType was six constants long. Appending constants and giving them explicit ids moved CALL_RECORDING from 3 to 7, and the page had no way to notice: the tab labelled "Call Recordings" had been editing MY_DOCS, "My Documents" MEET_RECORDING, "Meet Recordings" SYSTEM_WIDE, "System-Wide" VM_RECORDING, and CALL_RECORDING was unreachable. Nothing failed, because an ordinal is always a valid category. Meanwhile the categories that were never given a tab held the actual work — this organization's thirty-six doc types all sit on LOAN, which the page could not open at all. So the page is two tabs now. General says what document management is; Categories is a table of every category the ORGANIZATION can configure, served by DocsService from the enum itself, with folders, doc types, types defined, stacking orders and documents stored beside each one. A row opens as its own page under **************** the way a phone provider does — breadcrumb back to the table, the same gradient header, and Configuration / Doc Types / Stacking Orders as real tabs rather than grey ones nested inside a panel. The URL carries the enum NAME, never the ordinal, so a link saved today survives the next constant somebody appends. Smaller things this fixes on the way past: - The General tab had been rendering "Description", "Categories Heading" and "Categories Body" — placeholders nobody filled in. - The settings launchpad and the settings menu listed all seven dead tabs. - A category whose doc types can never apply (Marketing Materials) no longer offers a Doc Types tab; one whose doc types are merely switched off says so, next to the switch, rather than letting someone define types that do nothing. - AssocTypeSettings held the old nested tab bar and has no callers left.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing