summaryrefslogtreecommitdiffstats
path: root/routers/api
diff options
context:
space:
mode:
authorkolaente <konrad@kola-entertainments.de>2018-05-01 21:05:28 +0200
committerLauris BH <lauris@nix.lv>2018-05-01 22:05:28 +0300
commit1a97030017cd09b75f6c8d484e075f4eced1e001 (patch)
tree78fd666ad8693a91377807e77698ec44ddec7c58 /routers/api
parent85d14cc229263c5788cac9370ac60e9582f9de6c (diff)
downloadgitea-1a97030017cd09b75f6c8d484e075f4eced1e001.tar.gz
gitea-1a97030017cd09b75f6c8d484e075f4eced1e001.zip
Issue due date (#3794)
* Started adding deadline to ui * Implemented basic issue due date managing * Improved UI for due date managing * Added at least write access to the repo in order to modify issue due dates * Ui improvements * Added issue comments creation when adding/modifying/removing a due date * Show due date in issue list * Added api support for issue due dates * Fixed lint suggestions * Added deadline to sdk * Updated css * Added support for adding/modifiying deadlines for pull requests via api * Fixed comments not created when updating or removing a deadline * update sdk (will do properly once go-gitea/go-sdk#103 is merged) * enhanced updateIssueDeadline * Removed unnessecary Issue.DeadlineString * UI improvements * Small improvments to comment creation + ui & validation improvements * Check if an issue is overdue is now a seperate function * Updated go-sdk with govendor as it was merged * Simplified isOverdue method * removed unessecary deadline to 0 set * Update swagger definitions * Added missing return * Added an explanary comment * Improved updateIssueDeadline method so it'll only update `deadline_unix` * Small changes and improvements * no need to explicitly load the issue when updating a deadline, just use whats already there * small optimisations * Added check if a deadline was modified before updating it * Moved comment creating logic into its own function * Code cleanup for creating deadline comment * locale improvement * When modifying a deadline, the old deadline is saved with the comment * small improvments to xorm session handling when updating an issue deadline + style nitpicks * style nitpicks * Moved checking for if the user has write acces to middleware
Diffstat (limited to 'routers/api')
-rw-r--r--routers/api/v1/repo/issue.go27
-rw-r--r--routers/api/v1/repo/pull.go35
2 files changed, 48 insertions, 14 deletions
diff --git a/routers/api/v1/repo/issue.go b/routers/api/v1/repo/issue.go
index ce13d8a6ed..cc033554f3 100644
--- a/routers/api/v1/repo/issue.go
+++ b/routers/api/v1/repo/issue.go
@@ -163,12 +163,19 @@ func CreateIssue(ctx *context.APIContext, form api.CreateIssueOption) {
// responses:
// "201":
// "$ref": "#/responses/Issue"
+
+ var deadlineUnix util.TimeStamp
+ if form.Deadline != nil {
+ deadlineUnix = util.TimeStamp(form.Deadline.Unix())
+ }
+
issue := &models.Issue{
- RepoID: ctx.Repo.Repository.ID,
- Title: form.Title,
- PosterID: ctx.User.ID,
- Poster: ctx.User,
- Content: form.Body,
+ RepoID: ctx.Repo.Repository.ID,
+ Title: form.Title,
+ PosterID: ctx.User.ID,
+ Poster: ctx.User,
+ Content: form.Body,
+ DeadlineUnix: deadlineUnix,
}
if ctx.Repo.IsWriter() {
@@ -265,6 +272,16 @@ func EditIssue(ctx *context.APIContext, form api.EditIssueOption) {
issue.Content = *form.Body
}
+ var deadlineUnix util.TimeStamp
+ if form.Deadline != nil && !form.Deadline.IsZero() {
+ deadlineUnix = util.TimeStamp(form.Deadline.Unix())
+ }
+
+ if err := models.UpdateIssueDeadline(issue, deadlineUnix, ctx.User); err != nil {
+ ctx.Error(500, "UpdateIssueDeadline", err)
+ return
+ }
+
if ctx.Repo.IsWriter() && form.Assignee != nil &&
(issue.Assignee == nil || issue.Assignee.LowerName != strings.ToLower(*form.Assignee)) {
if len(*form.Assignee) == 0 {
diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go
index 742c0bccf9..3ea4b8d327 100644
--- a/routers/api/v1/repo/pull.go
+++ b/routers/api/v1/repo/pull.go
@@ -13,6 +13,7 @@ import (
"code.gitea.io/gitea/modules/auth"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/log"
+ "code.gitea.io/gitea/modules/util"
api "code.gitea.io/sdk/gitea"
)
@@ -236,16 +237,22 @@ func CreatePullRequest(ctx *context.APIContext, form api.CreatePullRequestOption
return
}
+ var deadlineUnix util.TimeStamp
+ if form.Deadline != nil {
+ deadlineUnix = util.TimeStamp(form.Deadline.Unix())
+ }
+
prIssue := &models.Issue{
- RepoID: repo.ID,
- Index: repo.NextIssueIndex(),
- Title: form.Title,
- PosterID: ctx.User.ID,
- Poster: ctx.User,
- MilestoneID: milestoneID,
- AssigneeID: assigneeID,
- IsPull: true,
- Content: form.Body,
+ RepoID: repo.ID,
+ Index: repo.NextIssueIndex(),
+ Title: form.Title,
+ PosterID: ctx.User.ID,
+ Poster: ctx.User,
+ MilestoneID: milestoneID,
+ AssigneeID: assigneeID,
+ IsPull: true,
+ Content: form.Body,
+ DeadlineUnix: deadlineUnix,
}
pr := &models.PullRequest{
HeadRepoID: headRepo.ID,
@@ -328,6 +335,16 @@ func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) {
issue.Content = form.Body
}
+ var deadlineUnix util.TimeStamp
+ if form.Deadline != nil && !form.Deadline.IsZero() {
+ deadlineUnix = util.TimeStamp(form.Deadline.Unix())
+ }
+
+ if err := models.UpdateIssueDeadline(issue, deadlineUnix, ctx.User); err != nil {
+ ctx.Error(500, "UpdateIssueDeadline", err)
+ return
+ }
+
if ctx.Repo.IsWriter() && len(form.Assignee) > 0 &&
(issue.Assignee == nil || issue.Assignee.LowerName != strings.ToLower(form.Assignee)) {
if len(form.Assignee) == 0 {