diff options
author | kolaente <konrad@kola-entertainments.de> | 2018-05-01 21:05:28 +0200 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2018-05-01 22:05:28 +0300 |
commit | 1a97030017cd09b75f6c8d484e075f4eced1e001 (patch) | |
tree | 78fd666ad8693a91377807e77698ec44ddec7c58 /routers/repo | |
parent | 85d14cc229263c5788cac9370ac60e9582f9de6c (diff) | |
download | gitea-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.go | 48 |
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 +} |