From 8af1e8fcbaf1d66f0c89585966418d3711936954 Mon Sep 17 00:00:00 2001 From: Michael Manganiello Date: Wed, 20 Aug 2025 16:29:49 -0300 Subject: [PATCH 1/3] fix: Allow up to 1000 characters for label description (#948) The database schema already supports 1,000 characters for label description, so this seems just like an oversight. --- backend/app/api/static/docs/docs.go | 2 +- backend/app/api/static/docs/swagger.json | 2 +- backend/app/api/static/docs/swagger.yaml | 2 +- backend/internal/data/repo/repo_labels.go | 4 ++-- docs/en/api/openapi-2.0.json | 2 +- docs/en/api/openapi-2.0.yaml | 2 +- frontend/components/Label/CreateModal.vue | 2 +- frontend/lib/api/types/data-contracts.ts | 2 +- frontend/pages/label/[id].vue | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/backend/app/api/static/docs/docs.go b/backend/app/api/static/docs/docs.go index 65ab97a9..cbf1d5a8 100644 --- a/backend/app/api/static/docs/docs.go +++ b/backend/app/api/static/docs/docs.go @@ -3639,7 +3639,7 @@ const docTemplate = `{ }, "description": { "type": "string", - "maxLength": 255 + "maxLength": 1000 }, "name": { "type": "string", diff --git a/backend/app/api/static/docs/swagger.json b/backend/app/api/static/docs/swagger.json index 764c05bd..75c84cd7 100644 --- a/backend/app/api/static/docs/swagger.json +++ b/backend/app/api/static/docs/swagger.json @@ -3637,7 +3637,7 @@ }, "description": { "type": "string", - "maxLength": 255 + "maxLength": 1000 }, "name": { "type": "string", diff --git a/backend/app/api/static/docs/swagger.yaml b/backend/app/api/static/docs/swagger.yaml index cf9eae6a..e47ad0df 100644 --- a/backend/app/api/static/docs/swagger.yaml +++ b/backend/app/api/static/docs/swagger.yaml @@ -1012,7 +1012,7 @@ definitions: color: type: string description: - maxLength: 255 + maxLength: 1000 type: string name: maxLength: 255 diff --git a/backend/internal/data/repo/repo_labels.go b/backend/internal/data/repo/repo_labels.go index 6238a8b3..fab7a1ec 100644 --- a/backend/internal/data/repo/repo_labels.go +++ b/backend/internal/data/repo/repo_labels.go @@ -20,14 +20,14 @@ type LabelRepository struct { type ( LabelCreate struct { Name string `json:"name" validate:"required,min=1,max=255"` - Description string `json:"description" validate:"max=255"` + Description string `json:"description" validate:"max=1000"` Color string `json:"color"` } LabelUpdate struct { ID uuid.UUID `json:"id"` Name string `json:"name" validate:"required,min=1,max=255"` - Description string `json:"description" validate:"max=255"` + Description string `json:"description" validate:"max=1000"` Color string `json:"color"` } diff --git a/docs/en/api/openapi-2.0.json b/docs/en/api/openapi-2.0.json index 764c05bd..75c84cd7 100644 --- a/docs/en/api/openapi-2.0.json +++ b/docs/en/api/openapi-2.0.json @@ -3637,7 +3637,7 @@ }, "description": { "type": "string", - "maxLength": 255 + "maxLength": 1000 }, "name": { "type": "string", diff --git a/docs/en/api/openapi-2.0.yaml b/docs/en/api/openapi-2.0.yaml index cf9eae6a..e47ad0df 100644 --- a/docs/en/api/openapi-2.0.yaml +++ b/docs/en/api/openapi-2.0.yaml @@ -1012,7 +1012,7 @@ definitions: color: type: string description: - maxLength: 255 + maxLength: 1000 type: string name: maxLength: 255 diff --git a/frontend/components/Label/CreateModal.vue b/frontend/components/Label/CreateModal.vue index aec9dbbb..74fa1c3c 100644 --- a/frontend/components/Label/CreateModal.vue +++ b/frontend/components/Label/CreateModal.vue @@ -12,7 +12,7 @@
diff --git a/frontend/lib/api/types/data-contracts.ts b/frontend/lib/api/types/data-contracts.ts index 3ae47355..279c9a24 100644 --- a/frontend/lib/api/types/data-contracts.ts +++ b/frontend/lib/api/types/data-contracts.ts @@ -648,7 +648,7 @@ export interface ItemUpdate { export interface LabelCreate { color: string; - /** @maxLength 255 */ + /** @maxLength 1000 */ description: string; /** * @minLength 1 diff --git a/frontend/pages/label/[id].vue b/frontend/pages/label/[id].vue index 34819c64..d9abeaf4 100644 --- a/frontend/pages/label/[id].vue +++ b/frontend/pages/label/[id].vue @@ -129,7 +129,7 @@ Date: Thu, 21 Aug 2025 15:59:13 +0100 Subject: [PATCH 2/3] fix: change Content-Disposition to inline for proper document display in attachments (#950) --- backend/app/api/handlers/v1/v1_ctrl_items_attachments.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/api/handlers/v1/v1_ctrl_items_attachments.go b/backend/app/api/handlers/v1/v1_ctrl_items_attachments.go index e055ec63..27da77ba 100644 --- a/backend/app/api/handlers/v1/v1_ctrl_items_attachments.go +++ b/backend/app/api/handlers/v1/v1_ctrl_items_attachments.go @@ -205,7 +205,7 @@ func (ctrl *V1Controller) handleItemAttachmentsHandler(w http.ResponseWriter, r }(bucket) // Set the Content-Disposition header for RFC6266 compliance - disposition := "attachment; filename*=UTF-8''" + url.QueryEscape(doc.Title) + disposition := "inline; filename*=UTF-8''" + url.QueryEscape(doc.Title) w.Header().Set("Content-Disposition", disposition) http.ServeContent(w, r, doc.Title, doc.CreatedAt, file) return nil From 8c87cda9abd83f430edd5d5f148e5b77548ab759 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Natal=C3=AD=20Paura?= <30585029+natilou@users.noreply.github.com> Date: Thu, 21 Aug 2025 15:52:10 -0300 Subject: [PATCH 3/3] Fix label name length (#822) * Fix label name length The labels name were shortened to the max length of 20 characters and not taking advantage of extra space. And it was difficult to distinguish between labels with the same prefix. * run task ui:fix * fix label selector when creating an item * feat: sort styles for line wrapping --------- Co-authored-by: Tonya --- frontend/components/Label/Chip.vue | 2 +- frontend/components/Label/Selector.vue | 29 ++++++++++---------------- 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/frontend/components/Label/Chip.vue b/frontend/components/Label/Chip.vue index bcb5ebe3..c1b4a0f8 100644 --- a/frontend/components/Label/Chip.vue +++ b/frontend/components/Label/Chip.vue @@ -42,6 +42,6 @@
- {{ label.name.length > 20 ? `${label.name.substring(0, 20)}...` : label.name }} + {{ label.name }} diff --git a/frontend/components/Label/Selector.vue b/frontend/components/Label/Selector.vue index 72b3fb29..e12ca16f 100644 --- a/frontend/components/Label/Selector.vue +++ b/frontend/components/Label/Selector.vue @@ -7,16 +7,16 @@ -
- +
+ - +
@@ -61,9 +61,9 @@ " > {{ label.label }} @@ -114,16 +114,9 @@ const open = ref(false); const searchTerm = ref(""); - const shortenedLabels = computed(() => { - return props.labels.map(l => ({ - ...l, - name: l.name.length > 20 ? `${l.name.substring(0, 20)}...` : l.name, - })); - }); - const filteredLabels = computed(() => { const filtered = fuzzysort - .go(searchTerm.value, shortenedLabels.value, { key: "name", all: true }) + .go(searchTerm.value, props.labels, { key: "name", all: true }) .map(l => ({ value: l.obj.id, label: l.obj.name,