Commit Graph

58 Commits

Author SHA1 Message Date
James fe7543a0c8 chore: auto-commit uncommitted changes 2026-03-16 18:02:01 -04:00
James 52edadab72 chore: auto-commit uncommitted changes 2026-03-16 06:02:44 -04:00
James dce2728bdb feat: permissions modal — replace folder dropdown with per-list checkboxes; fix savePermissions body 2026-03-15 00:45:59 -04:00
James 9be3c41493 fix: permissions button broken for new orgs — store orgs in JS map, pass only ID in onclick (same apostrophe/JSON escaping bug) 2026-03-15 00:07:32 -04:00
James 110d44e238 feat: add ⋯ menu to request_list and section rows — rename, delete, add section/request 2026-03-14 23:52:27 -04:00
James 1645061932 fix: menu buttons broken when title contains apostrophes — use showAttachModalById to avoid inline onclick escaping issues 2026-03-14 23:39:17 -04:00
James cec6841938 feat: auto-summarize long requests in Summary View; smarter placeholder text 2026-03-14 19:51:59 -04:00
James f06cce9089 feat: inline add section/request in tree; fix New List sort_order; Import List rename; + Section/+ Request buttons on list rows 2026-03-14 19:16:22 -04:00
James ce2c68634d feat: create request list manually; larger action buttons; Summary View/Detailed View toggle 2026-03-14 18:42:21 -04:00
James 19fccab7fd redesign: request detail — card-based layout, max-w-4xl centered, proper hierarchy, empty state 2026-03-12 05:11:07 -04:00
James 51928a1cdc fix: request detail — full width, response+discussion side by side, buyer preview-only, header breadcrumb 2026-03-12 05:06:42 -04:00
James 58023f464c redesign: request detail — single column, request→response→discussion, project name in breadcrumb 2026-03-12 05:03:15 -04:00
James d3f3360c48 fix: role restrictions use localStorage fallback; request text body size not h1 bold 2026-03-12 04:54:42 -04:00
James e197bb9526 fix: applyRoleRestrictions was called but never defined — was causing Error loading request 2026-03-12 04:51:25 -04:00
James 0e11ba2ba1 fix: buyer view — hide upload/mark answered/compose; fix duplicate request text; tighten title size 2026-03-12 04:36:24 -04:00
James f6632dddfc fix: add test role select to sidebar — was missing from template 2026-03-12 04:20:17 -04:00
James 84f8350700 feat: server-side test role — PUT /api/admin/test-role writes to session, middleware injects into context 2026-03-12 03:45:39 -04:00
James e89b4e5a5c feat: test role switcher in sidebar (admin only) — amber banner when impersonating 2026-03-12 03:19:37 -04:00
James d19ce5e8fa fix: org cards clickable — store orgs in JS map, pass entry_id to edit modal 2026-03-12 03:04:48 -04:00
James 62ce5266b7 fix: button text visible on Steel/Brutalist; org list redesign — row layout, sharp corners 2026-03-12 02:57:53 -04:00
James 909ce97aea ui: bump base font 13→14px; request table stays 13px 2026-03-12 02:56:05 -04:00
James b402d64cb9 feat: org edit modal — click card to edit name/domains/role/website/desc; PUT /api/orgs/:id 2026-03-12 02:53:23 -04:00
James bbce4cf36a fix: orgs page — read o.name/role/domains directly from API response, not data_text 2026-03-12 02:49:16 -04:00
James 35f6279d56 ui: reduce top padding on project page 2026-03-12 02:45:44 -04:00
James fdcc1b96e3 fix: admin link — inline script hides before paint, no flash 2026-03-12 02:44:40 -04:00
James 28189e17d1 ui: status+Import+Summary on tab line; Summary brighter; Admin pinned to sidebar bottom 2026-03-12 02:42:55 -04:00
James 449a902b4d ui: project name full white; Org tab → Parties; Summary toggle inline with tabs 2026-03-12 02:40:01 -04:00
James a9d40a31b5 ui: custom project switcher dropdown — no native select 2026-03-12 02:37:04 -04:00
James a2fc510065 ui: project switcher — strip browser default select styling 2026-03-12 02:35:41 -04:00
James 34319eef07 fix: remove inline SVG data URI from template attr (breaks Go template engine) 2026-03-12 02:34:04 -04:00
James 9368261ce2 ui: project switcher dropdown in header; consistent type hierarchy throughout 2026-03-12 02:32:40 -04:00
James 4abac19f35 ui: larger header + logo, project name in header selectable, sidebar font larger, no repeated h1 2026-03-12 02:29:41 -04:00
James bb33323957 feat: Steel + Brutalist themes; tighten all theme base sizes to 13px 2026-03-12 02:19:27 -04:00
James 14b35c95da fix: restore org name dropdown + no-match message; member name field full width 2026-03-12 01:04:46 -04:00
James 0bb8033ed7 fix: add org website/domain field for invite validation; dropdown hides on blur 2026-03-12 00:56:43 -04:00
James 8b0a09bb7e fix: auto-derive org domains from member emails; keep domain validation on backend 2026-03-12 00:39:15 -04:00
James 5c17bf5980 fix: add org — domain no longer required, dropdown hides on blur, member bubbles UX 2026-03-12 00:37:40 -04:00
James 72b5b59fe2 feat: Aria chat widget (chat.js + chat.css) — AI assistant on website 2026-03-07 17:08:42 -05:00
James eae31d55c7 fix: show full request sentences, no mid-word truncation; edit uses textarea showing full text 2026-03-07 14:21:46 -05:00
James 0e98be999c fix: add org modal HTML was missing from template, wire onclick 2026-03-07 13:54:53 -05:00
James 27c682b960 feat: org management — Add Org modal with typeahead, members, permissions per org 2026-03-07 13:50:03 -05:00
James 375a2acf37 feat: threaded channel comments — Announcements + per-PE channels, nested replies 2026-03-07 13:15:18 -05:00
James 3caf312fdb feat: file preview, buyer visibility, inline editing, template consolidation, CSS centralization 2026-03-07 13:10:12 -05:00
James 6d09b1ad24 chore: auto-commit uncommitted changes 2026-03-07 00:01:23 -05:00
James 27c715f963 chore: auto-commit uncommitted changes 2026-03-04 00:01:22 -05:00
James 0647eb91b6 Request tree: spreadsheet-style table with D&D, linking, import
- Add sort_order column to entries (migration 002)
- Upgrade migration runner to handle directory of SQL files
- Add TypeSection, SortOrder field, RequestListData, SectionData types
- Add tree API: ListRequestTree, MoveEntry, AnswerLink CRUD, ListAnswers
- Rewrite ImportRequests to create hierarchical tree (request_list → section → request)
- Rewrite project page Requests tab as spreadsheet-style tree table
  - Collapsible request lists and sections
  - Auto-numbering (1, 1.1, 1.2, 2.1.1)
  - Drag & drop reordering between sections
  - Priority/status badges with color coding
  - Attach answer modal (link existing docs or upload new)
  - Per-row actions menu

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 18:30:12 -05:00
James 54a8222b51 Add 5-theme switcher + open on projects instead of tasks
Landing page: /app now redirects to /app/projects (not tasks).
Logo links updated across all templates.

Theme system with 5 options persisted in localStorage:
- Midnight (default dark navy + gold)
- Light (white/gray + blue accent)
- Slate (gray-blue + teal accent)
- Compact (same as midnight, 85% font scale)
- Executive (warm dark browns, larger fonts, serif headings)

CSS custom properties override all hardcoded Tailwind colors via
attribute selectors. Floating theme bar on all pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 17:46:16 -05:00
James 667657c9fb Rebuild request detail page: fix API routes + two-column layout
- Fix all API endpoints to use correct routes:
  GET /api/requests/{id} (single call for request + children)
  POST /api/projects/{pid}/objects (file upload)
  POST /api/projects/{pid}/entries (create comment/document)
  PUT /api/projects/{pid}/entries/{eid} (mark as answered)
- Two-column desktop layout: Request (read-only) | Response (docs + upload)
- Full-width Discussion section below
- Upload creates both object + document entry linked to request
- "Mark as Answered" button updates request status
- Priority badge, section/item_number badge, answered banner

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 07:06:02 -05:00
James 051c6afe19 Fix project page: route alias + request rendering + remove smoke test data
- Add /api/projects/{projectID} route (was only /detail, frontend called without suffix)
- Fix project.html: unwrap response envelope (API returns {project:..., workstreams:...})
- Fix request list: use r.data || parseData(r.data_text) so r.data.title renders correctly
- DB: deleted 5 smoke test projects + their entries/access records from Shannon
2026-03-01 06:53:05 -05:00
James dafe075dc6 Restore clean project.html from e6a6882 + add import modal properly 2026-02-28 11:40:50 -05:00