From 40385ef2848c0e23ed204218605fa77d75a236e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Van=C4=9Bk?= Date: Thu, 10 Sep 2026 22:32:46 +0200 Subject: [PATCH] fix(projects): allow max columns to the limit (#39272) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Petr Vaněk Co-authored-by: silverwind --- models/project/column.go | 2 +- models/project/column_test.go | 2 +- routers/web/shared/project/project.go | 4 ++-- web_src/js/features/repo-projects.ts | 6 ++++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/models/project/column.go b/models/project/column.go index 6cf9d76792f..37802f256fa 100644 --- a/models/project/column.go +++ b/models/project/column.go @@ -138,7 +138,7 @@ func createDefaultColumnsForProject(ctx context.Context, project *Project) error // maxProjectColumns max columns allowed in a project, this should not bigger than 127 // because sorting is int8 in database -const maxProjectColumns = 20 +const maxProjectColumns = 127 // NewColumn adds a new project column to a given project func NewColumn(ctx context.Context, column *Column) error { diff --git a/models/project/column_test.go b/models/project/column_test.go index 731d3c42d87..d120930e825 100644 --- a/models/project/column_test.go +++ b/models/project/column_test.go @@ -123,7 +123,7 @@ func Test_NewColumn(t *testing.T) { assert.NoError(t, err) } err = NewColumn(t.Context(), &Column{ - Title: "column-21", + Title: fmt.Sprintf("column-%d", maxProjectColumns+1), ProjectID: project1.ID, }) assert.Error(t, err) diff --git a/routers/web/shared/project/project.go b/routers/web/shared/project/project.go index 1664912013c..999e4ec62a1 100644 --- a/routers/web/shared/project/project.go +++ b/routers/web/shared/project/project.go @@ -90,7 +90,7 @@ func AddColumnToProjectPost(ctx *context.Context) { Color: form.Color, CreatorID: ctx.Doer.ID, }); err != nil { - ctx.ServerError("NewProjectColumn", err) + ctx.JSONErrorAuto(err) return } @@ -113,7 +113,7 @@ func EditProjectColumn(ctx *context.Context) { } if err := project_model.UpdateColumn(ctx, column); err != nil { - ctx.ServerError("UpdateProjectColumn", err) + ctx.JSONErrorAuto(err) return } diff --git a/web_src/js/features/repo-projects.ts b/web_src/js/features/repo-projects.ts index 99e1ac58c17..c9cd88a3bfb 100644 --- a/web_src/js/features/repo-projects.ts +++ b/web_src/js/features/repo-projects.ts @@ -1,6 +1,7 @@ import {contrastColor} from '../utils/color.ts'; import {createSortable} from '../modules/sortable.ts'; -import {POST, request} from '../modules/fetch.ts'; +import {POST} from '../modules/fetch.ts'; +import {performFetchActionRequest} from '../modules/fetch-action.ts'; import {hideFomanticModal} from '../modules/fomantic/modal.ts'; import {queryElemChildren, queryElems, toggleElem} from '../utils/dom.ts'; import type {SortableEvent} from 'sortablejs'; @@ -113,7 +114,8 @@ function initRepoProjectColumnEdit(writableProjectBoard: Element): void { try { elForm.classList.add('is-loading'); - await request(formLink, {method: formMethod, data: formData}); + const resp = await performFetchActionRequest(elForm, {url: formLink, method: formMethod, data: formData}); + if (!resp) return; if (!columnId) { window.location.reload(); // newly added column, need to reload the page return;