Skip to content

Commit 14c97c0

Browse files
a1012112796lunnyguillep2k
authored
Add titles and improve messages on sidebar menus (#10872)
* ui: add more message on sidebar menus * add title on the menus * show some message instead of hide choose bar when have nothing to choose * add simply filter for each menus * do same changes in mew_form.tmpl * remove some unusefull comments in mew_form.tmpl Signed-off-by: a1012112796 <[email protected]> * do review suggestions * add filter message on sidebar filter * change IsIssueWriter to HasIssuesOrPullsWritePermission Co-authored-by: Lunny Xiao <[email protected]> Co-authored-by: guillep2k <[email protected]>
1 parent 4f63f28 commit 14c97c0

File tree

9 files changed

+145
-91
lines changed

9 files changed

+145
-91
lines changed

options/locale/locale_en-US.ini

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -824,17 +824,24 @@ ext_issues = Ext. Issues
824824
ext_issues.desc = Link to an external issue tracker.
825825
826826
issues.desc = Organize bug reports, tasks and milestones.
827+
issues.filter_assignees = Filter Assignee
828+
issues.filter_milestones = Filter Milestone
829+
issues.filter_labels = Filter Label
827830
issues.new = New Issue
828831
issues.new.title_empty = Title cannot be empty
829832
issues.new.labels = Labels
833+
issues.new.add_labels_title = Apply labels
830834
issues.new.no_label = No Label
831835
issues.new.clear_labels = Clear labels
836+
issues.new.no_items = No items
832837
issues.new.milestone = Milestone
838+
issues.new.add_milestone_title = Set milestone
833839
issues.new.no_milestone = No Milestone
834840
issues.new.clear_milestone = Clear milestone
835841
issues.new.open_milestone = Open Milestones
836842
issues.new.closed_milestone = Closed Milestones
837843
issues.new.assignees = Assignees
844+
issues.new.add_assignees_title = Assign users
838845
issues.new.clear_assignees = Clear assignees
839846
issues.new.no_assignees = No Assignees
840847
issues.no_ref = No Branch/Tag Specified

routers/repo/compare.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,8 @@ func CompareDiff(ctx *context.Context) {
432432
setTemplateIfExists(ctx, pullRequestTemplateKey, pullRequestTemplateCandidates)
433433
renderAttachmentSettings(ctx)
434434

435+
ctx.Data["HasIssuesOrPullsWritePermission"] = ctx.Repo.CanWrite(models.UnitTypePullRequests)
436+
435437
ctx.HTML(200, tplCompare)
436438
}
437439

routers/repo/issue.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,6 +487,8 @@ func NewIssue(ctx *context.Context) {
487487
return
488488
}
489489

490+
ctx.Data["HasIssuesOrPullsWritePermission"] = ctx.Repo.CanWrite(models.UnitTypeIssues)
491+
490492
ctx.HTML(200, tplIssueNew)
491493
}
492494

@@ -1076,7 +1078,7 @@ func ViewIssue(ctx *context.Context) {
10761078
ctx.Data["ReadOnly"] = true
10771079
ctx.Data["SignInLink"] = setting.AppSubURL + "/user/login?redirect_to=" + ctx.Data["Link"].(string)
10781080
ctx.Data["IsIssuePoster"] = ctx.IsSigned && issue.IsPoster(ctx.User.ID)
1079-
ctx.Data["IsIssueWriter"] = ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull)
1081+
ctx.Data["HasIssuesOrPullsWritePermission"] = ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull)
10801082
ctx.Data["IsRepoAdmin"] = ctx.IsSigned && (ctx.Repo.IsAdmin() || ctx.User.IsAdmin)
10811083
ctx.Data["LockReasons"] = setting.Repository.Issue.LockReasons
10821084
ctx.HTML(200, tplIssueView)

routers/repo/pull.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ func ViewPullFiles(ctx *context.Context) {
652652
}
653653
getBranchData(ctx, issue)
654654
ctx.Data["IsIssuePoster"] = ctx.IsSigned && issue.IsPoster(ctx.User.ID)
655-
ctx.Data["IsIssueWriter"] = ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull)
655+
ctx.Data["HasIssuesOrPullsWritePermission"] = ctx.Repo.CanWriteIssuesOrPulls(issue.IsPull)
656656
ctx.HTML(200, tplPullFiles)
657657
}
658658

templates/repo/issue/new_form.tmpl

Lines changed: 66 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,35 @@
3838
{{template "repo/issue/branch_selector_field" .}}
3939

4040
<input id="label_ids" name="label_ids" type="hidden" value="{{.label_ids}}">
41-
<div class="ui {{if and (not .Labels) (not .OrgLabels)}}disabled{{end}} floating jump select-label dropdown">
41+
<div class="ui {{if not .HasIssuesOrPullsWritePermission}}disabled{{end}} floating jump select-label dropdown">
4242
<span class="text">
4343
<strong>{{.i18n.Tr "repo.issues.new.labels"}}</strong>
44-
{{svg "octicon-gear" 16}}
44+
{{if .HasIssuesOrPullsWritePermission}}
45+
{{svg "octicon-gear" 16}}
46+
{{end}}
4547
</span>
4648
<div class="filter menu" data-id="#label_ids">
47-
<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div>
48-
{{range .Labels}}
49-
<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
50-
{{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a>
49+
<div class="header" style="text-transform: none;font-size:16px;">{{.i18n.Tr "repo.issues.new.add_labels_title"}}</div>
50+
{{if or .Labels .OrgLabels}}
51+
<div class="ui icon search input">
52+
<i class="search icon"></i>
53+
<input type="text" placeholder="{{.i18n.Tr "repo.issues.filter_labels"}}">
54+
</div>
5155
{{end}}
52-
<div class="ui divider"></div>
53-
{{range .OrgLabels}}
54-
<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
55-
{{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a>
56+
<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_labels"}}</div>
57+
{{if or .Labels .OrgLabels}}
58+
{{range .Labels}}
59+
<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
60+
{{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a>
61+
{{end}}
62+
63+
<div class="ui divider"></div>
64+
{{range .OrgLabels}}
65+
<a class="{{if .IsChecked}}checked{{end}} item has-emoji" href="#" data-id="{{.ID}}" data-id-selector="#label_{{.ID}}"><span class="octicon-check {{if not .IsChecked}}invisible{{end}}">{{svg "octicon-check" 16}}</span><span class="label color" style="background-color: {{.Color}}"></span> {{.Name}}
66+
{{if .Description }}<br><small class="desc">{{.Description}}</small>{{end}}</a>
67+
{{end}}
68+
{{else}}
69+
<div class="header" style="text-transform: none;font-size:14px;">{{.i18n.Tr "repo.issues.new.no_items"}}</div>
5670
{{end}}
5771
</div>
5872
</div>
@@ -69,31 +83,46 @@
6983
<div class="ui divider"></div>
7084

7185
<input id="milestone_id" name="milestone_id" type="hidden" value="{{.milestone_id}}">
72-
<div class="ui {{if not (or .OpenMilestones .ClosedMilestones)}}disabled{{end}} floating jump select-milestone dropdown">
86+
<div class="ui {{if not .HasIssuesOrPullsWritePermission}}disabled{{end}} floating jump select-milestone dropdown">
7387
<span class="text">
7488
<strong>{{.i18n.Tr "repo.issues.new.milestone"}}</strong>
75-
{{svg "octicon-gear" 16}}
89+
{{if .HasIssuesOrPullsWritePermission}}
90+
{{svg "octicon-gear" 16}}
91+
{{end}}
7692
</span>
7793
<div class="menu">
94+
<div class="header" style="text-transform: none;font-size:16px;">{{.i18n.Tr "repo.issues.new.add_milestone_title"}}</div>
95+
{{if or .OpenMilestones .ClosedMilestones}}
96+
<div class="ui icon search input">
97+
<i class="search icon"></i>
98+
<input type="text" placeholder="{{.i18n.Tr "repo.issues.filter_milestones"}}">
99+
</div>
100+
{{end}}
78101
<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_milestone"}}</div>
79-
{{if .OpenMilestones}}
80-
<div class="divider"></div>
81-
<div class="header">
82-
{{svg "octicon-milestone" 16}}
83-
{{.i18n.Tr "repo.issues.new.open_milestone"}}
102+
{{if and (not .OpenMilestones) (not .ClosedMilestones)}}
103+
<div class="header" style="text-transform: none;font-size:14px;">
104+
{{.i18n.Tr "repo.issues.new.no_items"}}
84105
</div>
85-
{{range .OpenMilestones}}
86-
<div class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name}}</div>
106+
{{else}}
107+
{{if .OpenMilestones}}
108+
<div class="divider"></div>
109+
<div class="header">
110+
{{svg "octicon-milestone" 16}}
111+
{{.i18n.Tr "repo.issues.new.open_milestone"}}
112+
</div>
113+
{{range .OpenMilestones}}
114+
<div class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name}}</div>
115+
{{end}}
87116
{{end}}
88-
{{end}}
89-
{{if .ClosedMilestones}}
90-
<div class="divider"></div>
91-
<div class="header">
92-
{{svg "octicon-milestone" 16}}
93-
{{.i18n.Tr "repo.issues.new.closed_milestone"}}
94-
</div>
95-
{{range .ClosedMilestones}}
96-
<a class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name}}</a>
117+
{{if .ClosedMilestones}}
118+
<div class="divider"></div>
119+
<div class="header">
120+
{{svg "octicon-milestone" 16}}
121+
{{.i18n.Tr "repo.issues.new.closed_milestone"}}
122+
</div>
123+
{{range .ClosedMilestones}}
124+
<a class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?milestone={{.ID}}"> {{.Name}}</a>
125+
{{end}}
97126
{{end}}
98127
{{end}}
99128
</div>
@@ -110,12 +139,19 @@
110139
<div class="ui divider"></div>
111140

112141
<input id="assignee_ids" name="assignee_ids" type="hidden" value="{{.assignee_ids}}">
113-
<div class="ui {{if not .Assignees}}disabled{{end}} floating jump select-assignees dropdown">
142+
<div class="ui {{if not .HasIssuesOrPullsWritePermission}}disabled{{end}} floating jump select-assignees dropdown">
114143
<span class="text">
115144
<strong>{{.i18n.Tr "repo.issues.new.assignees"}}</strong>
116-
{{svg "octicon-gear" 16}}
145+
{{if .HasIssuesOrPullsWritePermission}}
146+
{{svg "octicon-gear" 16}}
147+
{{end}}
117148
</span>
118149
<div class="filter menu" data-id="#assignee_ids">
150+
<div class="header" style="text-transform: none;font-size:16px;">{{.i18n.Tr "repo.issues.new.add_assignees_title"}}</div>
151+
<div class="ui icon search input">
152+
<i class="search icon"></i>
153+
<input type="text" placeholder="{{.i18n.Tr "repo.issues.filter_assignees"}}">
154+
</div>
119155
<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignees"}}</div>
120156
{{range .Assignees}}
121157
<a class="item" href="#" data-id="{{.ID}}" data-id-selector="#assignee_{{.ID}}">
@@ -137,28 +173,6 @@
137173
</a>
138174
{{end}}
139175
</div>
140-
141-
<!-- input id="assignee_ids" name="assignee_ids" type="hidden" value="{{.assignee_id}}">
142-
<div class="ui {{if not .Assignees}}disabled{{end}} floating jump select-assignee dropdown">
143-
<span class="text">
144-
<strong>{{.i18n.Tr "repo.issues.new.assignees"}}</strong>
145-
<span class="octicon octicon-gear"></span>
146-
</span>
147-
<div class="filter menu">
148-
<div class="no-select item">{{.i18n.Tr "repo.issues.new.clear_assignees"}}</div>
149-
{{range .Assignees}}
150-
<div class="item" data-id="{{.ID}}" data-href="{{$.RepoLink}}/issues?assignee={{.ID}}" data-avatar="{{.RelAvatarLink}}"><img src="{{.RelAvatarLink}}"> {{.Name}}</div>
151-
{{end}}
152-
</div>
153-
</div>
154-
<div class="ui select-assignee list">
155-
<span class="no-select item {{if .Assignee}}hide{{end}}">{{.i18n.Tr "repo.issues.new.no_assignees"}}</span>
156-
<div class="selected">
157-
{{if .Assignee}}
158-
<a class="item" href="{{.RepoLink}}/issues?assignee={{.Assignee.ID}}"><img class="ui avatar image" src="{{.Assignee.RelAvatarLink}}"> {{.Assignee.Name}}</a>
159-
{{end}}
160-
</div>
161-
</div>-->
162176
</div>
163177
</div>
164178
</form>

templates/repo/issue/view_content.tmpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
{{ template "repo/issue/view_content/pull". }}
6767
{{end}}
6868
{{if .IsSigned}}
69-
{{ if and (or .IsRepoAdmin .IsIssueWriter (or (not .Issue.IsLocked))) (not .Repository.IsArchived) }}
69+
{{ if and (or .IsRepoAdmin .HasIssuesOrPullsWritePermission (or (not .Issue.IsLocked))) (not .Repository.IsArchived) }}
7070
<div class="comment form">
7171
<a class="avatar" href="{{.SignedUser.HomeLink}}">
7272
<img src="{{.SignedUser.RelAvatarLink}}">
@@ -77,7 +77,7 @@
7777
{{.CsrfTokenHtml}}
7878
<input id="status" name="status" type="hidden">
7979
<div class="text right">
80-
{{if and (or .IsIssueWriter .IsIssuePoster) (not .DisableStatusChange)}}
80+
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .DisableStatusChange)}}
8181
{{if .Issue.IsClosed}}
8282
<div id="status-button" class="ui green basic button" tabindex="6" data-status="{{.i18n.Tr "repo.issues.reopen_issue"}}" data-status-and-comment="{{.i18n.Tr "repo.issues.reopen_comment_issue"}}" data-status-val="reopen">
8383
{{.i18n.Tr "repo.issues.reopen_issue"}}
@@ -126,7 +126,7 @@
126126
{{.CsrfTokenHtml}}
127127
<input id="status" name="status" type="hidden">
128128
<div class="text right">
129-
{{if and (or .IsIssueWriter .IsIssuePoster) (not .DisableStatusChange)}}
129+
{{if and (or .HasIssuesOrPullsWritePermission .IsIssuePoster) (not .DisableStatusChange)}}
130130
{{if .Issue.IsClosed}}
131131
<div id="status-button" class="ui green basic button" tabindex="6" data-status="{{.i18n.Tr "repo.issues.reopen_issue"}}" data-status-and-comment="{{.i18n.Tr "repo.issues.reopen_comment_issue"}}" data-status-val="reopen">
132132
{{.i18n.Tr "repo.issues.reopen_issue"}}

templates/repo/issue/view_content/context_menu.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<div class="item context clipboard" data-clipboard-text="{{Printf "%s%s/issues/%d#%s" AppUrl .ctx.Repository.FullName .ctx.Issue.Index .item.HashTag}}">{{.ctx.i18n.Tr "repo.issues.context.copy_link"}}</div>
1111
{{end}}
1212
<div class="item context quote-reply {{if .diff}}quote-reply-diff{{end}}" data-target="{{.item.ID}}">{{.ctx.i18n.Tr "repo.issues.context.quote_reply"}}</div>
13-
{{if or .ctx.Permission.IsAdmin .ctx.IsIssuePoster .ctx.IsIssueWriter}}
13+
{{if or .ctx.Permission.IsAdmin .ctx.IsIssuePoster .ctx.HasIssuesOrPullsWritePermission}}
1414
<div class="divider"></div>
1515
<div class="item context edit-content">{{.ctx.i18n.Tr "repo.issues.context.edit"}}</div>
1616
{{if .delete}}

0 commit comments

Comments
 (0)