diff options
author | puni9869 <80308335+puni9869@users.noreply.github.com> | 2023-08-14 15:26:14 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-14 11:56:14 +0200 |
commit | cafce3b4b5afb3f254a48e87f1516d7b5dc209b6 (patch) | |
tree | 2775b10c6b55ea659b87c5d22f30ecc45c5871e1 /routers/web | |
parent | db7b0a1a4ef2222ca6209c190b2283f27061db55 (diff) | |
download | gitea-cafce3b4b5afb3f254a48e87f1516d7b5dc209b6.tar.gz gitea-cafce3b4b5afb3f254a48e87f1516d7b5dc209b6.zip |
Allow to archive labels (#26478)
## Archived labels
This adds the structure to allow for archived labels.
Archived labels are, just like closed milestones or projects, a medium to hide information without deleting it.
It is especially useful if there are outdated labels that should no longer be used without deleting the label entirely.
## Changes
1. UI and API have been equipped with the support to mark a label as archived
2. The time when a label has been archived will be stored in the DB
## Outsourced for the future
There's no special handling for archived labels at the moment.
This will be done in the future.
## Screenshots


Part of https://github.com/go-gitea/gitea/issues/25237
---------
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Diffstat (limited to 'routers/web')
-rw-r--r-- | routers/web/org/org_labels.go | 1 | ||||
-rw-r--r-- | routers/web/repo/issue_label.go | 15 | ||||
-rw-r--r-- | routers/web/repo/issue_label_test.go | 7 |
3 files changed, 14 insertions, 9 deletions
diff --git a/routers/web/org/org_labels.go b/routers/web/org/org_labels.go index a9f9e963d4..2c7725e38d 100644 --- a/routers/web/org/org_labels.go +++ b/routers/web/org/org_labels.go @@ -75,6 +75,7 @@ func UpdateLabel(ctx *context.Context) { l.Exclusive = form.Exclusive l.Description = form.Description l.Color = form.Color + l.SetArchived(form.IsArchived) if err := issues_model.UpdateLabel(l); err != nil { ctx.ServerError("UpdateLabel", err) return diff --git a/routers/web/repo/issue_label.go b/routers/web/repo/issue_label.go index 5d326bab58..257610d3af 100644 --- a/routers/web/repo/issue_label.go +++ b/routers/web/repo/issue_label.go @@ -14,6 +14,7 @@ import ( "code.gitea.io/gitea/modules/label" "code.gitea.io/gitea/modules/log" repo_module "code.gitea.io/gitea/modules/repository" + "code.gitea.io/gitea/modules/timeutil" "code.gitea.io/gitea/modules/web" "code.gitea.io/gitea/services/forms" issue_service "code.gitea.io/gitea/services/issue" @@ -111,11 +112,12 @@ func NewLabel(ctx *context.Context) { } l := &issues_model.Label{ - RepoID: ctx.Repo.Repository.ID, - Name: form.Title, - Exclusive: form.Exclusive, - Description: form.Description, - Color: form.Color, + RepoID: ctx.Repo.Repository.ID, + Name: form.Title, + Exclusive: form.Exclusive, + Description: form.Description, + Color: form.Color, + ArchivedUnix: timeutil.TimeStamp(0), } if err := issues_model.NewLabel(ctx, l); err != nil { ctx.ServerError("NewLabel", err) @@ -137,11 +139,12 @@ func UpdateLabel(ctx *context.Context) { } return } - l.Name = form.Title l.Exclusive = form.Exclusive l.Description = form.Description l.Color = form.Color + + l.SetArchived(form.IsArchived) if err := issues_model.UpdateLabel(l); err != nil { ctx.ServerError("UpdateLabel", err) return diff --git a/routers/web/repo/issue_label_test.go b/routers/web/repo/issue_label_test.go index 4c9a359438..e29582f968 100644 --- a/routers/web/repo/issue_label_test.go +++ b/routers/web/repo/issue_label_test.go @@ -97,9 +97,10 @@ func TestUpdateLabel(t *testing.T) { test.LoadUser(t, ctx, 2) test.LoadRepo(t, ctx, 1) web.SetForm(ctx, &forms.CreateLabelForm{ - ID: 2, - Title: "newnameforlabel", - Color: "#abcdef", + ID: 2, + Title: "newnameforlabel", + Color: "#abcdef", + IsArchived: true, }) UpdateLabel(ctx) assert.EqualValues(t, http.StatusSeeOther, ctx.Resp.Status()) |