7
7
"bytes"
8
8
"fmt"
9
9
"net/http"
10
- "net/url"
11
10
"strconv"
12
11
"strings"
13
12
@@ -23,6 +22,7 @@ import (
23
22
"code.gitea.io/gitea/modules/log"
24
23
"code.gitea.io/gitea/modules/optional"
25
24
"code.gitea.io/gitea/modules/setting"
25
+ "code.gitea.io/gitea/modules/templates"
26
26
"code.gitea.io/gitea/modules/util"
27
27
shared_user "code.gitea.io/gitea/routers/web/shared/user"
28
28
"code.gitea.io/gitea/services/context"
@@ -531,12 +531,7 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption opt
531
531
// 0 means issues with no label
532
532
// blank means labels will not be filtered for issues
533
533
selectLabels := ctx .FormString ("labels" )
534
- if selectLabels == "" {
535
- ctx .Data ["AllLabels" ] = true
536
- } else if selectLabels == "0" {
537
- ctx .Data ["NoLabel" ] = true
538
- }
539
- if len (selectLabels ) > 0 {
534
+ if selectLabels != "" {
540
535
labelIDs , err = base .StringsToInt64s (strings .Split (selectLabels , "," ))
541
536
if err != nil {
542
537
ctx .Flash .Error (ctx .Tr ("invalid_data" , selectLabels ), true )
@@ -616,8 +611,6 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption opt
616
611
ctx .Data ["TotalTrackedTime" ] = totalTrackedTime
617
612
}
618
613
619
- archived := ctx .FormBool ("archived" )
620
-
621
614
page := ctx .FormInt ("page" )
622
615
if page <= 1 {
623
616
page = 1
@@ -792,21 +785,28 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption opt
792
785
return
793
786
}
794
787
788
+ showArchivedLabels := ctx .FormBool ("archived_labels" )
789
+ ctx .Data ["ShowArchivedLabels" ] = showArchivedLabels
795
790
ctx .Data ["PinnedIssues" ] = pinned
796
791
ctx .Data ["IsRepoAdmin" ] = ctx .IsSigned && (ctx .Repo .IsAdmin () || ctx .Doer .IsAdmin )
797
792
ctx .Data ["IssueStats" ] = issueStats
798
793
ctx .Data ["OpenCount" ] = issueStats .OpenCount
799
794
ctx .Data ["ClosedCount" ] = issueStats .ClosedCount
800
- linkStr := "%s?q=%s&type=%s&sort=%s&state=%s&labels=%s&milestone=%d&project=%d&assignee=%d&poster=%v&archived=%t"
801
- ctx .Data ["AllStatesLink" ] = fmt .Sprintf (linkStr , ctx .Link ,
802
- url .QueryEscape (keyword ), url .QueryEscape (viewType ), url .QueryEscape (sortType ), "all" , url .QueryEscape (selectLabels ),
803
- milestoneID , projectID , assigneeID , url .QueryEscape (posterUsername ), archived )
804
- ctx .Data ["OpenLink" ] = fmt .Sprintf (linkStr , ctx .Link ,
805
- url .QueryEscape (keyword ), url .QueryEscape (viewType ), url .QueryEscape (sortType ), "open" , url .QueryEscape (selectLabels ),
806
- milestoneID , projectID , assigneeID , url .QueryEscape (posterUsername ), archived )
807
- ctx .Data ["ClosedLink" ] = fmt .Sprintf (linkStr , ctx .Link ,
808
- url .QueryEscape (keyword ), url .QueryEscape (viewType ), url .QueryEscape (sortType ), "closed" , url .QueryEscape (selectLabels ),
809
- milestoneID , projectID , assigneeID , url .QueryEscape (posterUsername ), archived )
795
+ linkStrQuery := templates .QueryBuild ("?" ,
796
+ "q" , keyword ,
797
+ "type" , viewType ,
798
+ "sort" , sortType ,
799
+ "state" , ctx .FormString ("state" ),
800
+ "labels" , selectLabels ,
801
+ "milestone" , milestoneID ,
802
+ "project" , projectID ,
803
+ "assignee" , assigneeID ,
804
+ "poster" , posterUsername ,
805
+ "archived_labels" , util .Iif (showArchivedLabels , "true" , "" ),
806
+ )
807
+ ctx .Data ["AllStatesLink" ] = ctx .Link + string (templates .QueryBuild (linkStrQuery , "state" , "all" ))
808
+ ctx .Data ["OpenLink" ] = ctx .Link + string (templates .QueryBuild (linkStrQuery , "state" , "open" ))
809
+ ctx .Data ["ClosedLink" ] = ctx .Link + string (templates .QueryBuild (linkStrQuery , "state" , "closed" ))
810
810
ctx .Data ["SelLabelIDs" ] = labelIDs
811
811
ctx .Data ["SelectLabels" ] = selectLabels
812
812
ctx .Data ["ViewType" ] = viewType
@@ -825,7 +825,6 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption opt
825
825
default :
826
826
ctx .Data ["State" ] = "open"
827
827
}
828
- ctx .Data ["ShowArchivedLabels" ] = archived
829
828
830
829
pager .AddParamString ("q" , keyword )
831
830
pager .AddParamString ("type" , viewType )
@@ -836,8 +835,9 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption opt
836
835
pager .AddParamString ("project" , fmt .Sprint (projectID ))
837
836
pager .AddParamString ("assignee" , fmt .Sprint (assigneeID ))
838
837
pager .AddParamString ("poster" , posterUsername )
839
- pager .AddParamString ("archived" , fmt .Sprint (archived ))
840
-
838
+ if showArchivedLabels {
839
+ pager .AddParamString ("archived_labels" , "true" )
840
+ }
841
841
ctx .Data ["Page" ] = pager
842
842
}
843
843
0 commit comments