Skip to content

Commit ff7009f

Browse files
brechtvlbartvdbraak
authored andcommitted
BLENDER: Projects: button to show/hide issue details and closed issue
Both are off by default. This is implemented fully on the frontend, so all issues and their details are still always loaded.
1 parent 388a96b commit ff7009f

File tree

4 files changed

+66
-12
lines changed

4 files changed

+66
-12
lines changed

templates/projects/view.tmpl

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,16 @@
1717
"TextFilterMatchAny" (ctx.Locale.Tr "repo.issues.filter_assignee_any_assignee")
1818
}}
1919
</div>
20+
<div class="ui compact mini menu" style="margin-left: auto; margin-right: 1em;">
21+
<button class="item btn" onclick="clickDetailsView()">
22+
<span class="issue-card-details">Show Details</span>
23+
<span class="issue-card-details tw-hidden">Hide Details</span>
24+
</button>
25+
<button class="item btn" onclick="clickClosedView()">
26+
<span class="issue-card-closed">Show Closed</span>
27+
<span class="issue-card-closed tw-hidden">Hide Closed</span>
28+
</button>
29+
</div>
2030
{{if $canWriteProject}}
2131
<div class="ui compact mini menu">
2232
<a class="item screen-full">
@@ -112,7 +122,7 @@
112122
<div class="divider"{{if .Color}} style="color: {{ContrastColor .Color}} !important"{{end}}></div>
113123
<div class="ui cards" data-url="{{$.Link}}/{{.ID}}" data-project="{{$.Project.ID}}" data-board="{{.ID}}" id="board_{{.ID}}">
114124
{{range (index $.IssuesMap .ID)}}
115-
<div class="issue-card tw-break-anywhere {{if $canWriteProject}}tw-cursor-grab{{end}}" data-issue="{{.ID}}">
125+
<div class="issue-card tw-break-anywhere {{if $canWriteProject}}tw-cursor-grab{{end}} {{if .IsClosed}}issue-card-closed tw-hidden{{end}}" data-issue="{{.ID}}">
116126
{{template "repo/issue/card" (dict "Issue" . "Page" $)}}
117127
</div>
118128
{{end}}
@@ -122,6 +132,37 @@
122132
</div>
123133
</div>
124134

135+
<script>
136+
keyDetails = 'project-show-issue-details:{{.Repository.FullName | JSEscape}}:{{.Project.ID}}';
137+
keyClosed = 'project-show-issue-closed:{{.Repository.FullName | JSEscape}}:{{.Project.ID}}';
138+
139+
function toggleDetailsView() {
140+
for (const elem of document.querySelectorAll('.issue-card-details')) {
141+
elem.classList.toggle('tw-hidden');
142+
}
143+
}
144+
function clickDetailsView() {
145+
localStorage.setItem(keyDetails, (localStorage.getItem(keyDetails) === 'true') ? 'false' : 'true');
146+
toggleDetailsView();
147+
}
148+
if (localStorage.getItem(keyDetails) === 'true') {
149+
toggleDetailsView();
150+
}
151+
152+
function toggleClosedView() {
153+
for (const elem of document.querySelectorAll('.issue-card-closed')) {
154+
elem.classList.toggle('tw-hidden');
155+
}
156+
}
157+
function clickClosedView() {
158+
localStorage.setItem(keyClosed, (localStorage.getItem(keyClosed) === 'true') ? 'false' : 'true');
159+
toggleClosedView();
160+
}
161+
if (localStorage.getItem(keyClosed) === 'true') {
162+
toggleClosedView();
163+
}
164+
</script>
165+
125166
{{if $canWriteProject}}
126167
<div class="ui small modal" id="project-column-modal-edit">
127168
<div class="header">edit</div>

templates/repo/issue/card.tmpl

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@
1010
{{end}}
1111
{{end}}
1212
<div class="content tw-w-full">
13+
<!-- BLENDER: Assignees here for more compact display -->
14+
{{if .Assignees}}
15+
<div class="issue-card-assignees">
16+
{{range .Assignees}}
17+
<a target="_blank" href="{{.HomeLink}}" data-tooltip-content="{{ctx.Locale.Tr "repo.projects.column.assigned_to"}} {{.Name}}">{{ctx.AvatarUtils.Avatar . 28 "mini gt-mr-3"}}</a>
18+
{{end}}
19+
</div>
20+
{{end}}
1321
<div class="tw-flex tw-items-start tw-gap-[5px]">
1422
<div class="issue-card-icon">
1523
{{template "shared/issueicon" .}}
@@ -22,7 +30,7 @@
2230
{{end}}
2331
</div>
2432
<div class="meta">
25-
<span class="text light grey muted-links">
33+
<span class="text light grey muted-links issue-card-details tw-hidden">
2634
{{if not $.Page.Repository}}{{.Repo.FullName}}{{end}}#{{.Index}}
2735
{{$timeStr := DateUtils.TimeSince .GetLastEventTimestamp}}
2836
{{if .OriginalAuthor}}
@@ -35,7 +43,7 @@
3543
</span>
3644
</div>
3745
{{if .MilestoneID}}
38-
<div class="meta tw-my-1">
46+
<div class="meta tw-my-1 issue-card-details tw-hidden">
3947
<a class="milestone" href="{{.Repo.Link}}/milestone/{{.MilestoneID}}">
4048
{{svg "octicon-milestone" 16 "tw-mr-1 tw-align-middle"}}
4149
<span class="tw-align-middle">{{.Milestone.Name}}</span>
@@ -44,7 +52,7 @@
4452
{{end}}
4553
{{if $.Page.LinkedPRs}}
4654
{{range index $.Page.LinkedPRs .ID}}
47-
<div class="meta tw-my-1">
55+
<div class="meta tw-my-1 issue-card-details tw-hidden">
4856
<a href="{{.Repo.Link}}/pulls/{{.Index}}">
4957
<span class="tw-m-0 text {{if .PullRequest.HasMerged}}purple{{else if .IsClosed}}red{{else}}green{{end}}">{{svg "octicon-git-merge" 16 "tw-mr-1 tw-align-middle"}}</span>
5058
<span class="tw-align-middle">{{.Title}} <span class="text light grey">#{{.Index}}</span></span>
@@ -54,25 +62,20 @@
5462
{{end}}
5563
{{$tasks := .GetTasks}}
5664
{{if gt $tasks 0}}
57-
<div class="meta tw-my-1">
65+
<div class="meta tw-my-1 issue-card-details tw-hidden">
5866
{{svg "octicon-checklist" 16 "tw-mr-1 tw-align-middle"}}
5967
<span class="tw-align-middle">{{.GetTasksDone}} / {{$tasks}}</span>
6068
</div>
6169
{{end}}
6270
</div>
6371

64-
{{if or .Labels .Assignees}}
72+
{{if or .Labels}}
6573
<div class="issue-card-bottom">
66-
<div class="labels-list">
74+
<div class="labels-list issue-card-details tw-hidden">
6775
{{range .Labels}}
6876
<a target="_blank" href="{{$.Issue.Repo.Link}}/issues?labels={{.ID}}">{{ctx.RenderUtils.RenderLabel .}}</a>
6977
{{end}}
7078
</div>
71-
<div class="issue-card-assignees">
72-
{{range .Assignees}}
73-
<a target="_blank" href="{{.HomeLink}}" data-tooltip-content="{{ctx.Locale.Tr "repo.projects.column.assigned_to"}} {{.Name}}">{{ctx.AvatarUtils.Avatar . 28}}</a>
74-
{{end}}
75-
</div>
7679
</div>
7780
{{end}}
7881
{{end}}

web_src/css/features/projects.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@
1919
}
2020

2121
.project-column {
22+
background-color: var(--color-project-column-bg) !important;
23+
border: 1px solid var(--color-secondary) !important;
24+
border-radius: var(--border-radius);
25+
margin: 0 0.5rem !important;
26+
padding: 0.5rem !important;
27+
width: 320px;
28+
height: initial;
29+
min-height: max(calc(100vh - 225px), 300px);
2230
flex: 0 0 auto;
2331
display: flex;
2432
flex-direction: column;

web_src/css/repo/issue-card.css

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,6 @@
3737
gap: 0.25em;
3838
justify-content: end;
3939
flex-wrap: wrap;
40+
float: right;
41+
margin-left: 0.5em;
4042
}

0 commit comments

Comments
 (0)