Commit Graph
17 Commits
Author SHA1 Message Date
Philipinho 4b75383460 fix(base): store file-cell URLs in the editor's /api/files/{id}/{name} shape
The file-cell value was storing the raw S3 storage path returned by
attachmentService (e.g. "01944.../files/019dd.../AlgoExpert_Receipt.pdf"),
which the browser can't fetch as-is — and the cell never built it
into a clickable link anyway. Match the editor's attachment node-view
pattern: store url as "/api/files/{id}/{fileName}" on upload and
resolve it through getFileUrl when rendering. The dropdown's file
rows are now <a target="_blank"> links so the user can actually open
the attached file.

`buildFileUrl` falls back to constructing the path from id+fileName
for any pre-existing values that still carry the old shape, so
already-uploaded attachments don't break.
2026-04-28 18:34:12 +01:00
Philipinho 79394f93f5 refactor(base): drop dedicated /bases/files/upload endpoint, reuse /files/upload
Base file-cell uploads were hitting a parallel POST /bases/files/upload
endpoint that re-implemented the multipart parse, the size limit
handling, and the spaceId resolution that the standard page-attachment
endpoint (POST /files/upload) already does. The two diverged on minor
points (no audit log, no attachmentId support, slightly different
permission check) without good reason — bases are pages (isBase=true),
so the existing endpoint already handles them correctly.

Server: delete uploadBaseFile and the now-unused BaseRepo injection.

Client: route the file-cell uploader through the existing uploadFile
helper in page-service. The base's pageId is a valid page id, so the
server's pageRepo.findById succeeds and pageAccessService.validateCanEdit
runs — which lines up with the Base edit ability at the space-role
level (Manage Page and Manage Base track together for admins/writers,
Read for readers).
2026-04-28 15:51:06 +01:00
Philipinho f56af5e6b4 refactor(base): rename baseId to pageId in client components 2026-04-27 01:44:11 +01:00
Philipinho 3eb7c9b1d4 feat(base): render formula cells with error badge support 2026-04-24 00:35:57 +01:00
Philipinho 9ecf88511b page property 2026-04-20 21:27:29 +01:00
Philipinho b95f3033d1 style(base): add focus-preservation comment to status cell mousedown 2026-04-18 15:07:05 +01:00
Philipinho 88c906cdcd feat(base): keyboard navigation for status cell dropdown 2026-04-18 15:05:30 +01:00
Philipinho 836a25cdbf feat(base): keyboard navigation for multi-select cell dropdown 2026-04-18 15:03:04 +01:00
Philipinho b02b2cd5d8 refactor(base): hoist NavItem type and drop IIFE in select cell 2026-04-18 15:01:12 +01:00
Philipinho bb398bb7d6 feat(base): keyboard navigation for single-select cell dropdown 2026-04-18 14:58:19 +01:00
Philipinho 4cefa40f5b refactor(base): destructure useListKeyboardNav and use clsx in person cell 2026-04-18 14:55:59 +01:00
Philipinho 2ca27f16a1 feat(base): keyboard navigation for person cell dropdown 2026-04-18 14:52:09 +01:00
Philipinho eb0538b856 fix 2026-04-17 13:41:24 +01:00
Philipinho 084746e65a WIP 2026-03-09 01:08:15 +00:00
Philipinho 2a6e604bf8 person cell 2026-03-08 03:36:57 +00:00
Philipinho 674b0ec64a filter/sort, file, person 2026-03-08 03:15:49 +00:00
Philipinho 94ee1e80fb feat: bases - WIP 2026-03-08 00:56:24 +00:00