diff options
author | 6543 <6543@obermui.de> | 2019-12-02 04:50:36 +0100 |
---|---|---|
committer | techknowlogick <techknowlogick@gitea.io> | 2019-12-01 22:50:36 -0500 |
commit | 66028d58f9ed3f69a82b84360784f8e6ccbcd582 (patch) | |
tree | 2d2b9df042d5a0f8f1968a65bd1b9e5ade909ee6 /models/issue.go | |
parent | 668eaf95d581f68507523563d0701000a4505055 (diff) | |
download | gitea-66028d58f9ed3f69a82b84360784f8e6ccbcd582.tar.gz gitea-66028d58f9ed3f69a82b84360784f8e6ccbcd582.zip |
[UI] IssuePage multi repo select (#8741)
* Make repository list @ issues/PR page persist
Will partially fix #6355
* Enable multiple selections in repo list @ issues/PR page
Part of issue #6355
* Add RepoIDs to UserIssueStatsOptions to make "type" count correct when selecting one/multiple repos.
* Replace variable "repo" with list "repos[]" and enable multiple selections of repositories from list by including/excluding RepoIDs in list.
*
* Remove redundant code
* Add 'All' button
Improves functionality of the page, so that backtracking is not necessary to reset the page
* Remove redundant variable
Completely replace 'RepoID' with 'RepoIDs' and remove redundant code
* Add RepoIDs to label link
* Revert part of code to previous version to troubleshoot build failure
* Implement old and new pieces of code whilst adhering to multi select
* Attempt to join the two versions
Last commit passed tests but doesn't work in practice, this works in practice and hopefully passes the tests.
* Update tests to desired state
* Fix pagination implementation and tests
* Pass repoIDs as `repos=[1,2,3...]` instead of several `repos[]=..`
* Update tests file to reflect new functionality
* Update template with new `repos` format
* Implement new solution to show constant "total issues" count for "All" button
* Correct behavior when passing zero to array
* Comment out test url returning 404
This keeps returning 404 in the test despite working in practice, for the sake of running more tests I am commenting it out
* Comment out another test url returning 404
Last attempt, if more tests crash I will uncomment the urls and request assistance.
* Reenable tests and test fix
* Re-enable tests
* Make selecting "In your repositories" reset selection as passing IDs of repos belonging to other profiles causes breakage
* Remove unnecessary (with multi-selection enable) code
* Drop repo from repo map and total count if permission denied
* Remove extra parenthesis
* make template work again
* find bug!
* forgot the '#' at bugfixing
* delete unused RepoID
* compile regex only one time
* make fmt
* local variable = capital letter lower
* check if repos query pattern is correct
* pagination remove last , - make regex work again
* use Replace instead of ReplaceAll; del delete
* fix test
* how did this test binary got in?!?
dont forgot the "-p" at git add * !
* dont replace -> cut fisrt & last string
Co-Authored-By: zeripath <art27@cantab.net>
* jet another regex
dont mind as long as it has the same result and is performatn ...
Co-Authored-By: zeripath <art27@cantab.net>
* dont use nonexisting repo for test
* exclude /issues?type=created_by from test
* add table to querys
use same syntax in each query (table.colum)
* add new issue for test
* dont make a workaround or something else
this need a refactor itself and is out of scope for this PR
* fix misspell
* CI.redo()
* englisch txt update
Co-Authored-By: zeripath <art27@cantab.net>
* add sugestions
* Tweak & Fix
* CI.restart()
Diffstat (limited to 'models/issue.go')
-rw-r--r-- | models/issue.go | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/models/issue.go b/models/issue.go index 310971c45f..a3597f1585 100644 --- a/models/issue.go +++ b/models/issue.go @@ -1402,7 +1402,7 @@ func GetIssueStats(opts *IssueStatsOptions) (*IssueStats, error) { // UserIssueStatsOptions contains parameters accepted by GetUserIssueStats. type UserIssueStatsOptions struct { UserID int64 - RepoID int64 + RepoIDs []int64 UserRepoIDs []int64 FilterMode int IsPull bool @@ -1416,19 +1416,19 @@ func GetUserIssueStats(opts UserIssueStatsOptions) (*IssueStats, error) { cond := builder.NewCond() cond = cond.And(builder.Eq{"issue.is_pull": opts.IsPull}) - if opts.RepoID > 0 { - cond = cond.And(builder.Eq{"issue.repo_id": opts.RepoID}) + if len(opts.RepoIDs) > 0 { + cond = cond.And(builder.In("issue.repo_id", opts.RepoIDs)) } switch opts.FilterMode { case FilterModeAll: - stats.OpenCount, err = x.Where(cond).And("is_closed = ?", false). + stats.OpenCount, err = x.Where(cond).And("issue.is_closed = ?", false). And(builder.In("issue.repo_id", opts.UserRepoIDs)). Count(new(Issue)) if err != nil { return nil, err } - stats.ClosedCount, err = x.Where(cond).And("is_closed = ?", true). + stats.ClosedCount, err = x.Where(cond).And("issue.is_closed = ?", true). And(builder.In("issue.repo_id", opts.UserRepoIDs)). Count(new(Issue)) if err != nil { @@ -1450,14 +1450,14 @@ func GetUserIssueStats(opts UserIssueStatsOptions) (*IssueStats, error) { return nil, err } case FilterModeCreate: - stats.OpenCount, err = x.Where(cond).And("is_closed = ?", false). - And("poster_id = ?", opts.UserID). + stats.OpenCount, err = x.Where(cond).And("issue.is_closed = ?", false). + And("issue.poster_id = ?", opts.UserID). Count(new(Issue)) if err != nil { return nil, err } - stats.ClosedCount, err = x.Where(cond).And("is_closed = ?", true). - And("poster_id = ?", opts.UserID). + stats.ClosedCount, err = x.Where(cond).And("issue.is_closed = ?", true). + And("issue.poster_id = ?", opts.UserID). Count(new(Issue)) if err != nil { return nil, err |