worklist documents) support saved column configuration via visibleColumns, riGroupFields, and crGroupFields on worklistSchema, configured in NewWorklistDrawer.tsx and rendered through WorklistResolver.tsx with WorklistTableHeader, SingleJobsBar, SingleQuoteBar, and SingleEventBar.WorklistMenu.tsx (DEFAULT_WORKLISTS: quotes, published, agreements, unconfirmed, paid, invoices) and routed in [[...type]]/page.tsx to dedicated task-check components (QuoteList, IsPublished, AgreementsNeeded, UnconfirmedOrders, JobsNotPaid, InvoicesDue).SingleJobsBar, SingleQuoteBar) already accept visibleColumns, but defaults never pass them — they fall back to catalog defaults in columnConfig.ts via getEffectiveVisibleColumns.WorklistColumnsButton.tsx component exists for in-view column toggling on custom worklists but is not wired to any page today; column changes on custom worklists are currently set at create/edit time in NewWorklistDrawer.tsx./work/quotes) filtered to status=on_hold via HardcodedFiltersBar / WorklistFiltersBar.Locked
Open
_companyId-scoped).WorklistColumnsButton or equivalent on the list toolbar) vs admin/settings-only vs both? Custom worklists today only expose column pickers in the create/edit drawer.GroupedClientJobsBar (client-grouped), not the single-row grid used by WorklistResolver. Should column configuration apply to grouped rows, or only to single-row defaults (Unconfirmed Orders, Not Published, Agreements Not Signed, Open Quotes)?grp_ri / grp_cr group columns and individual ri_* / cr_* keys as custom worklists, or a static-catalog-only subset for v1?WorklistTableHeader above rows; most defaults do not. Is a sticky column header row required for defaults when optional columns are enabled?Frontend (attik-frontend)
WorklistMenu.tsx keys and routes; src/app/tools/work/[[...type]]/page.tsx dispatches to QuoteList, IsPublished, AgreementsNeeded, UnconfirmedOrders, JobsNotPaid, InvoicesDue.SingleJobsBar.tsx, SingleQuoteBar.tsx, and grouped GroupedClientJobsBar.tsx already partially support visibleColumns; defaults must load saved prefs and pass them through (plus WorklistTableHeader if product requires header parity).src/util/worklist/columnConfig.ts entity types (inspections, quotes); map each default worklist to the correct entity type (all inspection-based defaults → inspections; Open Quotes → quotes).NewWorklistDrawer.tsx column picker pattern and/or unused WorklistColumnsButton.tsx are likely reuse points; product decision needed on which surface to expose for defaults.HardcodedFiltersBar.tsx / WorklistFiltersBar.tsx (including quote status tabs like on hold) stay as-is; this work is column display only.Backend (attik-backend)
defaultWorklist preference model). A new schema/route (e.g. company-scoped prefs keyed by default worklist id) or extension of an existing settings document is likely needed — exact shape is an engineering choice once persistence model (Open #2) is locked.worklistSchema.ts visibleColumns / riGroupFields / crGroupFields fields define the column shape custom worklists use; defaults should store compatible column key arrays if reusing the same rendering path.Out of scope (unless product expands Open decisions)
worklist documents.attik-frontend/src/app/tools/work/WorklistMenu.tsx, attik-frontend/src/util/worklist/columnConfig.ts, attik-frontend/src/components/task-check/WorklistResolver.tsxattik-backend/src/models/worklistSchema.tsPlease authenticate to join the conversation.
Planned
Main App
1 day ago
Linear
Get notified by email when there are changes.
Planned
Main App
1 day ago
Linear
Get notified by email when there are changes.