summaryrefslogtreecommitdiffstats
path: root/routers/repo
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/repo
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/repo')
-rw-r--r--routers/repo/issue.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go
index 51516b828c..c7aef25594 100644
--- a/routers/repo/issue.go
+++ b/routers/repo/issue.go
@@ -1467,3 +1467,51 @@ func ChangeCommentReaction(ctx *context.Context, form auth.ReactionForm) {
"html": html,
})
}
+
+// UpdateDeadline adds or updates a deadline
+func UpdateDeadline(ctx *context.Context, form auth.DeadlineForm) {
+ issue := GetActionIssue(ctx)
+ if ctx.Written() {
+ return
+ }
+
+ if ctx.HasError() {
+ ctx.ServerError("ChangeIssueDeadline", errors.New(ctx.GetErrMsg()))
+ return
+ }
+
+ // Make unix of deadline string
+ deadline, err := time.ParseInLocation("2006-01-02", form.DateString, time.Local)
+ if err != nil {
+ ctx.Flash.Error(ctx.Tr("repo.issues.invalid_due_date_format"))
+ ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index))
+ return
+ }
+
+ if err = models.UpdateIssueDeadline(issue, util.TimeStamp(deadline.Unix()), ctx.User); err != nil {
+ ctx.Flash.Error(ctx.Tr("repo.issues.error_modifying_due_date"))
+ }
+
+ ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index))
+ return
+}
+
+// RemoveDeadline removes a deadline
+func RemoveDeadline(ctx *context.Context) {
+ issue := GetActionIssue(ctx)
+ if ctx.Written() {
+ return
+ }
+
+ if ctx.HasError() {
+ ctx.ServerError("RemoveIssueDeadline", errors.New(ctx.GetErrMsg()))
+ return
+ }
+
+ if err := models.UpdateIssueDeadline(issue, 0, ctx.User); err != nil {
+ ctx.Flash.Error(ctx.Tr("repo.issues.error_removing_due_date"))
+ }
+
+ ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index))
+ return
+}