diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-04-30 23:51:20 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-30 11:51:20 -0400 |
commit | 14c142b0bca2af79f30fcf221479fb66d63dbdf8 (patch) | |
tree | 9262eade4d2e21210cd66618468d99162a66707b | |
parent | e8173c2c33f1dd5b0a2c044255434d414cab62d2 (diff) | |
download | gitea-14c142b0bca2af79f30fcf221479fb66d63dbdf8.tar.gz gitea-14c142b0bca2af79f30fcf221479fb66d63dbdf8.zip |
Improve issue list filter (#24425)
Partial regression of #24393, not only regression, but broken for long
time, 24393 didn't really improve it but used wrong `overflow: scroll`.
Actually, that "ui secondary filter menu labels" shouldn't be set as
scrollable (I missed that at that time), the problem is: if a "ui menu"
has "dropdown" items, then it should not be scrollable. Otherwise the
dropdown menu can't be shown correctly.
And there are more problems:
* The "issue-filters" shouldn't be used anywhere else (copying&pasting
problem again ....)
* There is also an "issue-actions" container, it should also be fixed.
* There are similar problems on the milestone page.
* The old comment in code: "grid column" doesn't work well.
The major changes of this PR are: use "flex: 1" instead of "ui grid
column".
After this PR, not 100% perfect but much better than before.
-rw-r--r-- | templates/repo/actions/list.tmpl | 2 | ||||
-rw-r--r-- | templates/repo/issue/list.tmpl | 25 | ||||
-rw-r--r-- | templates/repo/issue/milestone_issues.tmpl | 27 | ||||
-rw-r--r-- | templates/user/notification/notification_subscriptions.tmpl | 2 | ||||
-rw-r--r-- | web_src/css/index.css | 1 | ||||
-rw-r--r-- | web_src/css/repository.css | 17 | ||||
-rw-r--r-- | web_src/css/repository/issue-list.css | 14 | ||||
-rw-r--r-- | web_src/js/features/repo-issue-list.js | 2 |
8 files changed, 51 insertions, 39 deletions
diff --git a/templates/repo/actions/list.tmpl b/templates/repo/actions/list.tmpl index 0f44630201..c75e81948e 100644 --- a/templates/repo/actions/list.tmpl +++ b/templates/repo/actions/list.tmpl @@ -20,7 +20,7 @@ </div> </div> <div class="twelve wide column content"> - <div id="issue-filters" class="ui stackable grid"> + <div class="ui stackable grid"> <div class="six wide column"> {{template "repo/actions/openclose" .}} </div> diff --git a/templates/repo/issue/list.tmpl b/templates/repo/issue/list.tmpl index fb2d8ee3bd..8e553ee7bb 100644 --- a/templates/repo/issue/list.tmpl +++ b/templates/repo/issue/list.tmpl @@ -17,18 +17,20 @@ {{end}} {{end}} </div> + <div class="ui divider"></div> - <div id="issue-filters" class="ui stackable grid"> - <div class="six wide column"> + + <div id="issue-filters" class="issue-list-toolbar"> + <div class="issue-list-toolbar-left"> {{if $.CanWriteIssuesOrPulls}} - <input type="checkbox" autocomplete="off" class="issue-checkbox-all gt-vm gt-mr-4" title="{{.locale.Tr "repo.issues.action_check_all"}}"> + <input type="checkbox" autocomplete="off" class="issue-checkbox-all gt-mr-4" title="{{.locale.Tr "repo.issues.action_check_all"}}"> {{end}} {{template "repo/issue/openclose" .}} </div> - <div class="ten wide right aligned column"> - <div class="ui secondary filter menu labels gt-overflow-x-auto gt-overflow-y-hidden"> + <div class="issue-list-toolbar-right"> + <div class="ui secondary filter stackable menu labels"> <!-- Label --> - <div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item label-filter" style="margin-left: auto"> + <div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item label-filter"> <span class="text"> {{.locale.Tr "repo.issues.filter_label"}} {{svg "octicon-triangle-down" 14 "dropdown icon"}} @@ -206,15 +208,12 @@ </div> </div> </div> - <div id="issue-actions" class="ui stackable grid gt-hidden"> - <div class="six wide column"> + + <div id="issue-actions" class="issue-list-toolbar gt-hidden"> + <div class="issue-list-toolbar-left"> {{template "repo/issue/openclose" .}} </div> - {{/* Ten wide does not cope well and makes the columns stack. - This seems to be related to jQuery's hide/show: in fact, switching - issue-actions and issue-filters and having this ten wide will show - this one correctly, but not the other one. */}} - <div class="nine wide right aligned right floated column"> + <div class="issue-list-toolbar-right"> <div class="ui secondary filter stackable menu"> {{if not .Repository.IsArchived}} <!-- Action Button --> diff --git a/templates/repo/issue/milestone_issues.tmpl b/templates/repo/issue/milestone_issues.tmpl index 472bebb33f..a1fc245887 100644 --- a/templates/repo/issue/milestone_issues.tmpl +++ b/templates/repo/issue/milestone_issues.tmpl @@ -2,12 +2,10 @@ <div role="main" aria-label="{{.Title}}" class="page-content repository milestone-issue-list"> {{template "repo/header" .}} <div class="ui container"> - <div class="ui two column stackable grid"> - <div class="column"> - <h1>{{.Milestone.Name}}</h1> - </div> + <div class="gt-df"> + <h1>{{.Milestone.Name}}</h1> {{if not .Repository.IsArchived}} - <div class="column right aligned"> + <div class="text right gt-f1"> {{if or .CanWriteIssues .CanWritePulls}} {{if .Milestone.IsClosed}} <a class="ui green basic button link-action" href data-url="{{$.RepoLink}}/milestones/{{.MilestoneID}}/open">{{$.locale.Tr "repo.milestones.open"}} @@ -45,11 +43,12 @@ </div> </div> <div class="ui divider"></div> - <div id="issue-filters" class="ui stackable grid"> - <div class="six wide column"> + + <div id="issue-filters" class="issue-list-toolbar"> + <div class="issue-list-toolbar-left"> {{template "repo/issue/openclose" .}} </div> - <div class="ten wide right aligned column"> + <div class="issue-list-toolbar-right"> <div class="ui secondary filter stackable menu labels"> <!-- Label --> <div class="ui {{if not .Labels}}disabled{{end}} dropdown jump item label-filter" style="margin-left: auto"> @@ -145,16 +144,12 @@ </div> </div> </div> - <div id="issue-actions" class="ui stackable grid gt-hidden"> - <div class="six wide column"> + + <div id="issue-actions" class="issue-list-toolbar gt-hidden"> + <div class="issue-list-toolbar-left"> {{template "repo/issue/openclose" .}} </div> - - {{/* Ten wide does not cope well and makes the columns stack. - This seems to be related to jQuery's hide/show: in fact, switching - issue-actions and issue-filters and having this ten wide will show - this one correctly, but not the other one. */}} - <div class="nine wide right aligned right floated column"> + <div class="issue-list-toolbar-right"> <div class="ui secondary filter stackable menu"> <!-- Action Button --> {{if .IsShowClosed}} diff --git a/templates/user/notification/notification_subscriptions.tmpl b/templates/user/notification/notification_subscriptions.tmpl index ce46919236..6d3262ad6d 100644 --- a/templates/user/notification/notification_subscriptions.tmpl +++ b/templates/user/notification/notification_subscriptions.tmpl @@ -11,7 +11,7 @@ </div> <div class="ui bottom attached active tab segment"> {{if eq .Status 1}} - <div id="issue-filters" class="ui stackable grid"> + <div class="ui stackable grid"> <div class="six wide column"> <div class="small-pill-buttons ui compact tiny menu"> <a class="{{if eq .State "all"}}active {{end}}item" href="{{$.Link}}?sort={{$.SortType}}&state=all&issueType={{$.IssueType}}&labels={{$.Labels}}"> diff --git a/web_src/css/index.css b/web_src/css/index.css index cdd0c51a54..d6ef1da9b9 100644 --- a/web_src/css/index.css +++ b/web_src/css/index.css @@ -32,6 +32,7 @@ @import "./repository.css"; @import "./repository/release-tag.css"; @import "./repository/issue-label.css"; +@import "./repository/issue-list.css"; @import "./repository/list-header.css"; @import "./editor.css"; @import "./editor/combomarkdowneditor.css"; diff --git a/web_src/css/repository.css b/web_src/css/repository.css index 6ad6ba88a8..259cfda3a1 100644 --- a/web_src/css/repository.css +++ b/web_src/css/repository.css @@ -141,12 +141,19 @@ font-size: 11px; } -.repository .filter.menu .menu { +/* make all issue filter dropdown menus popup leftward, to avoid go out the viewport (right side) */ +.repository .filter.menu .ui.dropdown .menu { max-height: 500px; max-width: 300px; overflow-x: hidden; - right: 0 !important; - left: auto !important; + right: 0; + left: auto; +} + +/* the label-filter is the first dropdown, it shouldn't be shown leftward, otherwise it may go out the viewport (left side) */ +.repository .filter.menu .ui.dropdown.label-filter .menu { + right: unset; + left: 0; } .repository .select-label .desc { @@ -2394,10 +2401,6 @@ margin: 6px 0; } -#issue-actions { - margin-top: -1rem !important; /* counteract padding from Semantic */ -} - .ui.menu .item > img:not(.ui) { width: auto; } diff --git a/web_src/css/repository/issue-list.css b/web_src/css/repository/issue-list.css new file mode 100644 index 0000000000..2c2d3572e0 --- /dev/null +++ b/web_src/css/repository/issue-list.css @@ -0,0 +1,14 @@ +.issue-list-toolbar { + display: flex; + flex-wrap: wrap; + align-items: flex-start; + gap: 1rem; +} + +.issue-list-toolbar-left { + display: flex; +} + +.issue-list-toolbar-right { + margin-left: auto; +} diff --git a/web_src/js/features/repo-issue-list.js b/web_src/js/features/repo-issue-list.js index 915cd2e132..af0e80af81 100644 --- a/web_src/js/features/repo-issue-list.js +++ b/web_src/js/features/repo-issue-list.js @@ -23,7 +23,7 @@ function initRepoIssueListCheckboxes() { toggleElem($('#issue-filters'), !anyChecked); toggleElem($('#issue-actions'), anyChecked); // there are two panels but only one select-all checkbox, so move the checkbox to the visible panel - $('#issue-filters, #issue-actions').filter(':visible').find('.column:first').prepend($issueSelectAll); + $('#issue-filters, #issue-actions').filter(':visible').find('.issue-list-toolbar-left').prepend($issueSelectAll); }; $issueCheckboxes.on('change', syncIssueSelectionState); |