]> source.dussan.org Git - gitea.git/commitdiff
Add same changes from issues page to milestone->issues page (#6328)
authorJohn Olheiser <42128690+jolheiser@users.noreply.github.com>
Fri, 15 Mar 2019 15:50:27 +0000 (10:50 -0500)
committertechknowlogick <matti@mdranta.net>
Fri, 15 Mar 2019 15:50:27 +0000 (11:50 -0400)
routers/repo/milestone.go
routers/routes/routes.go
templates/repo/issue/list.tmpl
templates/repo/issue/milestone_issues.tmpl

index 6c3ad11f1f68be0e709cdebb533300b1d889005f..632c792c434e5d8719294e99f683c1f512336721 100644 (file)
@@ -260,5 +260,13 @@ func MilestoneIssuesAndPulls(ctx *context.Context) {
 
        issues(ctx, milestoneID, util.OptionalBoolNone)
 
+       perm, err := models.GetUserRepoPermission(ctx.Repo.Repository, ctx.User)
+       if err != nil {
+               ctx.ServerError("GetUserRepoPermission", err)
+               return
+       }
+       ctx.Data["CanWriteIssues"] = perm.CanWriteIssuesOrPulls(false)
+       ctx.Data["CanWritePulls"] = perm.CanWriteIssuesOrPulls(true)
+
        ctx.HTML(200, tplMilestoneIssues)
 }
index 1e98d3216af600838a6e4726eda8fd4659893f42..5f55d6cf9de9c4ad4096918a4958a03b3808cc9a 100644 (file)
@@ -635,7 +635,7 @@ func RegisterRoutes(m *macaron.Macaron) {
                }, context.RepoMustNotBeArchived(), reqRepoIssuesOrPullsWriter, context.RepoRef())
                m.Group("/milestone", func() {
                        m.Get("/:id", repo.MilestoneIssuesAndPulls)
-               }, reqRepoIssuesOrPullsWriter, context.RepoRef())
+               }, reqRepoIssuesOrPullsReader, context.RepoRef())
                m.Combo("/compare/*", context.RepoMustNotBeArchived(), reqRepoCodeReader, reqRepoPullsReader, repo.MustAllowPulls, repo.SetEditorconfigIfExists).
                        Get(repo.SetDiffViewStyle, repo.CompareAndPullRequest).
                        Post(bindIgnErr(auth.CreateIssueForm{}), repo.CompareAndPullRequestPost)
index 758b64f27e70563afc935303118493169e01ef73..deed251cda5f304863841107adef711feecbb9cc 100644 (file)
@@ -44,7 +44,7 @@
                                                <div class="menu">
                                                        <a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a>
                                                        {{range .Labels}}
-                                                               <a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.QueryString}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if .IsSelected}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
+                                                               <a class="item has-emoji" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.QueryString}}&milestone={{$.MilestoneID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if .IsSelected}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
                                                        {{end}}
                                                </div>
                                        </div>
                                                </span>
                                                <div class="menu">
                                                        {{range .Labels}}
-                                                               <div class="item issue-action" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels">
+                                                               <div class="item issue-action has-emoji" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels">
                                                                        <span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
                                                                </div>
                                                        {{end}}
index 04510a4b46c44efb41df8486ebfced0db54632c5..f2298dfdabc478365f70b896a736fe820bd6b258 100644 (file)
@@ -11,7 +11,9 @@
                        </div>
                        {{if not .Repository.IsArchived}}
                                <div class="column right aligned">
+                                       {{if or .CanWriteIssues .CanWritePulls}}
                                        <a class="ui grey button" href="{{.RepoLink}}/milestones/{{.MilestoneID}}/edit">{{.i18n.Tr "repo.milestones.edit"}}</a>
+                                       {{end}}
                                        <a class="ui green button" href="{{.RepoLink}}/issues/new?milestone={{.MilestoneID}}">{{.i18n.Tr "repo.issues.new"}}</a>
                                </div>
                        {{end}}
@@ -58,7 +60,7 @@
                                                <div class="menu">
                                                        <a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&assignee={{$.AssigneeID}}">{{.i18n.Tr "repo.issues.filter_label_no_select"}}</a>
                                                        {{range .Labels}}
-                                                               <a class="item" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
+                                                               <a class="item has-emoji" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}"><span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}</a>
                                                        {{end}}
                                                </div>
                                        </div>
                                </div>
                        </div>
                </div>
-               <div id="issue-actions" class="ui stackable grid">
+               <div id="issue-actions" class="ui stackable grid hide">
                        <div class="six wide column">
-                               <div class="ui basic status buttons">
-                                       <div class="ui green active basic button issue-action" data-action="open" data-url="{{$.RepoLink}}/issues/status">{{.i18n.Tr "repo.issues.action_open"}}</div>
-                                       <div class="ui red active basic button issue-action" data-action="close" data-url="{{$.RepoLink}}/issues/status">{{.i18n.Tr "repo.issues.action_close"}}</div>
+                               <div class="ui tiny basic status buttons">
+                                       <a class="ui {{if not .IsShowClosed}}green active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&sort={{$.SortType}}&state=open&labels={{.SelectLabels}}&assignee={{.AssigneeID}}">
+                                               <i class="octicon octicon-issue-opened"></i>
+                                               {{.i18n.Tr "repo.issues.open_tab" .IssueStats.OpenCount}}
+                                       </a>
+                                       <a class="ui {{if .IsShowClosed}}red active{{end}} basic button" href="{{$.Link}}?q={{$.Keyword}}&type={{.ViewType}}&sort={{$.SortType}}&state=closed&labels={{.SelectLabels}}&assignee={{.AssigneeID}}">
+                                               <i class="octicon octicon-issue-closed"></i>
+                                               {{.i18n.Tr "repo.issues.close_tab" .IssueStats.ClosedCount}}
+                                       </a>
                                </div>
                        </div>
 
                        this one correctly, but not the other one. */}}
                        <div class="nine wide right aligned right floated column">
                                <div class="ui secondary filter stackable menu">
+                                       <!-- Action Button -->
+                                       {{if .IsShowClosed}}
+                                               <div class="ui green active basic button issue-action" data-action="open" data-url="{{$.RepoLink}}/issues/status" style="margin-left: auto">{{.i18n.Tr "repo.issues.action_open"}}</div>
+                                       {{else}}
+                                               <div class="ui red active basic button issue-action" data-action="close" data-url="{{$.RepoLink}}/issues/status" style="margin-left: auto">{{.i18n.Tr "repo.issues.action_close"}}</div>
+                                       {{end}}
                                        <!-- Labels -->
-                                       <div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item" style="margin-left: auto">
+                                       <div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item">
                                                <span class="text">
                                                        {{.i18n.Tr "repo.issues.action_label"}}
                                                        <i class="dropdown icon"></i>
                                                </span>
                                                <div class="menu">
                                                        {{range .Labels}}
-                                                               <div class="item issue-action" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels">
+                                                               <div class="item issue-action has-emoji" data-action="toggle" data-element-id="{{.ID}}" data-url="{{$.RepoLink}}/issues/labels">
                                                                        <span class="octicon {{if eq $.SelectLabels .ID}}octicon-check{{end}}"></span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
                                                                </div>
                                                        {{end}}
                        {{range .Issues}}
                                {{ $timeStr:= TimeSinceUnix .CreatedUnix $.Lang }}
                                <li class="item">
+                                       {{if or (and $.CanWriteIssues (not .IsPull)) (and $.CanWritePulls .IsPull)}}
                                        <div class="ui checkbox issue-checkbox">
                                                <input type="checkbox" data-issue-id={{.ID}}></input>
                                        </div>
+                                       {{end}}
                                        <div class="ui {{if .IsRead}}black{{else}}green{{end}} label">#{{.Index}}</div>
                                        <a class="title has-emoji" href="{{$.RepoLink}}/issues/{{.Index}}">{{.Title}}</a>
 
                                                <a class="ui label" href="{{$.RepoLink}}/src/branch/{{.Ref}}">{{.Ref}}</a>
                                        {{end}}
                                        {{range .Labels}}
-                                               <a class="ui label" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description}}">{{.Name}}</a>
+                                               <a class="ui label has-emoji" href="{{$.Link}}?q={{$.Keyword}}&type={{$.ViewType}}&state={{$.State}}&labels={{.ID}}&assignee={{$.AssigneeID}}" style="color: {{.ForegroundColor}}; background-color: {{.Color}}" title="{{.Description}}">{{.Name}}</a>
                                        {{end}}
 
                                        {{if .NumComments}}