aboutsummaryrefslogtreecommitdiffstats
path: root/models/issue_tracked_time.go
diff options
context:
space:
mode:
authorSpaWn2KiLl <SpaWn2KiLl@users.noreply.github.com>2020-01-24 19:00:29 +0000
committertechknowlogick <techknowlogick@gitea.io>2020-01-24 14:00:29 -0500
commit1f01f53c53ea75634f981611635be49c69e1920b (patch)
treedd99285ba1d9a8a888f8deccef7865e53901d859 /models/issue_tracked_time.go
parent333401e0fdca1abe096257479e7090c6e69985ec (diff)
downloadgitea-1f01f53c53ea75634f981611635be49c69e1920b.tar.gz
gitea-1f01f53c53ea75634f981611635be49c69e1920b.zip
API add/generalize pagination (#9452)
* paginate results * fixed deadlock * prevented breaking change * updated swagger * go fmt * fixed find topic * go mod tidy * go mod vendor with go1.13.5 * fixed repo find topics * fixed unit test * added Limit method to Engine struct; use engine variable when provided; fixed gitignore * use ItemsPerPage for default pagesize; fix GetWatchers, getOrgUsersByOrgID and GetStargazers; fix GetAllCommits headers; reverted some changed behaviors * set Page value on Home route * improved memory allocations * fixed response headers * removed logfiles * fixed import order * import order * improved swagger * added function to get models.ListOptions from context * removed pagesize diff on unit test * fixed imports * removed unnecessary struct field * fixed go fmt * scoped PR * code improvements * code improvements * go mod tidy * fixed import order * fixed commit statuses session * fixed files headers * fixed headers; added pagination for notifications * go mod tidy * go fmt * removed Private from user search options; added setting.UI.IssuePagingNum as default valeu on repo's issues list * Apply suggestions from code review Co-Authored-By: 6543 <6543@obermui.de> Co-Authored-By: zeripath <art27@cantab.net> * fixed build error * CI.restart() * fixed merge conflicts resolve * fixed conflicts resolve * improved FindTrackedTimesOptions.ToOptions() method * added backwards compatibility on ListReleases request; fixed issue tracked time ToSession * fixed build error; fixed swagger template * fixed swagger template * fixed ListReleases backwards compatibility * added page to user search route Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: zeripath <art27@cantab.net>
Diffstat (limited to 'models/issue_tracked_time.go')
-rw-r--r--models/issue_tracked_time.go16
1 files changed, 12 insertions, 4 deletions
diff --git a/models/issue_tracked_time.go b/models/issue_tracked_time.go
index 55e8baacd7..49fefd3279 100644
--- a/models/issue_tracked_time.go
+++ b/models/issue_tracked_time.go
@@ -10,7 +10,6 @@ import (
"code.gitea.io/gitea/modules/setting"
"xorm.io/builder"
- "xorm.io/xorm"
)
// TrackedTime represents a time that was spent for a specific issue.
@@ -71,6 +70,7 @@ func (tl TrackedTimeList) LoadAttributes() (err error) {
// FindTrackedTimesOptions represent the filters for tracked times. If an ID is 0 it will be ignored.
type FindTrackedTimesOptions struct {
+ ListOptions
IssueID int64
UserID int64
RepositoryID int64
@@ -104,11 +104,19 @@ func (opts *FindTrackedTimesOptions) ToCond() builder.Cond {
}
// ToSession will convert the given options to a xorm Session by using the conditions from ToCond and joining with issue table if required
-func (opts *FindTrackedTimesOptions) ToSession(e Engine) *xorm.Session {
+func (opts *FindTrackedTimesOptions) ToSession(e Engine) Engine {
+ sess := e
if opts.RepositoryID > 0 || opts.MilestoneID > 0 {
- return e.Join("INNER", "issue", "issue.id = tracked_time.issue_id").Where(opts.ToCond())
+ sess = e.Join("INNER", "issue", "issue.id = tracked_time.issue_id")
}
- return e.Where(opts.ToCond())
+
+ sess = sess.Where(opts.ToCond())
+
+ if opts.Page != 0 {
+ sess = opts.setEnginePagination(sess)
+ }
+
+ return sess
}
func getTrackedTimes(e Engine, options FindTrackedTimesOptions) (trackedTimes TrackedTimeList, err error) {