@@ -237,7 +237,7 @@ func issues(ctx *context.Context, milestoneID, projectID int64, isPullOption uti
237237 pager := context .NewPagination (total , setting .UI .IssuePagingNum , page , 5 )
238238
239239 var mileIDs []int64
240- if milestoneID > 0 {
240+ if milestoneID > 0 || milestoneID == db . NoConditionID { // -1 to get those issues which have no any milestone assigned
241241 mileIDs = []int64 {milestoneID }
242242 }
243243
@@ -438,20 +438,37 @@ func Issues(ctx *context.Context) {
438438 return
439439 }
440440
441- var err error
441+ renderMilestones (ctx )
442+ if ctx .Written () {
443+ return
444+ }
445+
446+ ctx .Data ["CanWriteIssuesOrPulls" ] = ctx .Repo .CanWriteIssuesOrPulls (isPullList )
447+
448+ ctx .HTML (http .StatusOK , tplIssues )
449+ }
450+
451+ func renderMilestones (ctx * context.Context ) {
442452 // Get milestones
443- ctx . Data [ "Milestones" ] , _ , err = issues_model .GetMilestones (issues_model.GetMilestonesOption {
453+ milestones , _ , err : = issues_model .GetMilestones (issues_model.GetMilestonesOption {
444454 RepoID : ctx .Repo .Repository .ID ,
445- State : api .StateType ( ctx . FormString ( "state" )) ,
455+ State : api .StateAll ,
446456 })
447457 if err != nil {
448458 ctx .ServerError ("GetAllRepoMilestones" , err )
449459 return
450460 }
451461
452- ctx .Data ["CanWriteIssuesOrPulls" ] = ctx .Repo .CanWriteIssuesOrPulls (isPullList )
453-
454- ctx .HTML (http .StatusOK , tplIssues )
462+ openMilestones , closedMilestones := issues_model.MilestoneList {}, issues_model.MilestoneList {}
463+ for _ , milestone := range milestones {
464+ if milestone .IsClosed {
465+ closedMilestones = append (closedMilestones , milestone )
466+ } else {
467+ openMilestones = append (openMilestones , milestone )
468+ }
469+ }
470+ ctx .Data ["OpenMilestones" ] = openMilestones
471+ ctx .Data ["ClosedMilestones" ] = closedMilestones
455472}
456473
457474// RetrieveRepoMilestonesAndAssignees find all the milestones and assignees of a repository
0 commit comments