* Handle deadline is zero (to remove deadline) * Better API documentation for issue deadline. * Add parameter to unset due date. * Update pull edit API commenttags/v1.11.0-rc1
@@ -69,8 +69,6 @@ require ( | |||
github.com/mattn/go-sqlite3 v1.11.0 | |||
github.com/mcuadros/go-version v0.0.0-20190308113854-92cdf37c5b75 | |||
github.com/microcosm-cc/bluemonday v0.0.0-20161012083705-f77f16ffc87a | |||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect | |||
github.com/modern-go/reflect2 v1.0.1 // indirect | |||
github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae // indirect | |||
github.com/msteinert/pam v0.0.0-20151204160544-02ccfbfaf0cc | |||
github.com/nfnt/resize v0.0.0-20160724205520-891127d8d1b5 |
@@ -99,7 +99,8 @@ type EditIssueOption struct { | |||
Milestone *int64 `json:"milestone"` | |||
State *string `json:"state"` | |||
// swagger:strfmt date-time | |||
Deadline *time.Time `json:"due_date"` | |||
Deadline *time.Time `json:"due_date"` | |||
RemoveDeadline *bool `json:"unset_due_date"` | |||
} | |||
// EditDeadlineOption options for creating a deadline |
@@ -88,5 +88,6 @@ type EditPullRequestOption struct { | |||
Labels []int64 `json:"labels"` | |||
State *string `json:"state"` | |||
// swagger:strfmt date-time | |||
Deadline *time.Time `json:"due_date"` | |||
Deadline *time.Time `json:"due_date"` | |||
RemoveDeadline *bool `json:"unset_due_date"` | |||
} |
@@ -458,9 +458,16 @@ func EditIssue(ctx *context.APIContext, form api.EditIssueOption) { | |||
issue.Content = *form.Body | |||
} | |||
// Update the deadline | |||
if form.Deadline != nil && ctx.Repo.CanWrite(models.UnitTypeIssues) { | |||
deadlineUnix := timeutil.TimeStamp(form.Deadline.Unix()) | |||
// Update or remove the deadline, only if set and allowed | |||
if (form.Deadline != nil || form.RemoveDeadline != nil) && ctx.Repo.CanWrite(models.UnitTypeIssues) { | |||
var deadlineUnix timeutil.TimeStamp | |||
if (form.RemoveDeadline == nil || !*form.RemoveDeadline) && !form.Deadline.IsZero() { | |||
deadline := time.Date(form.Deadline.Year(), form.Deadline.Month(), form.Deadline.Day(), | |||
23, 59, 59, 0, form.Deadline.Location()) | |||
deadlineUnix = timeutil.TimeStamp(deadline.Unix()) | |||
} | |||
if err := models.UpdateIssueDeadline(issue, deadlineUnix, ctx.User); err != nil { | |||
ctx.Error(500, "UpdateIssueDeadline", err) | |||
return |
@@ -8,6 +8,7 @@ import ( | |||
"fmt" | |||
"net/http" | |||
"strings" | |||
"time" | |||
"code.gitea.io/gitea/models" | |||
"code.gitea.io/gitea/modules/auth" | |||
@@ -326,7 +327,7 @@ func CreatePullRequest(ctx *context.APIContext, form api.CreatePullRequestOption | |||
func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) { | |||
// swagger:operation PATCH /repos/{owner}/{repo}/pulls/{index} repository repoEditPullRequest | |||
// --- | |||
// summary: Update a pull request | |||
// summary: Update a pull request. If using deadline only the date will be taken into account, and time of day ignored. | |||
// consumes: | |||
// - application/json | |||
// produces: | |||
@@ -385,9 +386,15 @@ func EditPullRequest(ctx *context.APIContext, form api.EditPullRequestOption) { | |||
issue.Content = form.Body | |||
} | |||
// Update Deadline | |||
if form.Deadline != nil { | |||
deadlineUnix := timeutil.TimeStamp(form.Deadline.Unix()) | |||
// Update or remove deadline if set | |||
if form.Deadline != nil || form.RemoveDeadline != nil { | |||
var deadlineUnix timeutil.TimeStamp | |||
if (form.RemoveDeadline == nil || !*form.RemoveDeadline) && !form.Deadline.IsZero() { | |||
deadline := time.Date(form.Deadline.Year(), form.Deadline.Month(), form.Deadline.Day(), | |||
23, 59, 59, 0, form.Deadline.Location()) | |||
deadlineUnix = timeutil.TimeStamp(deadline.Unix()) | |||
} | |||
if err := models.UpdateIssueDeadline(issue, deadlineUnix, ctx.User); err != nil { | |||
ctx.Error(500, "UpdateIssueDeadline", err) | |||
return |
@@ -4715,7 +4715,7 @@ | |||
"tags": [ | |||
"repository" | |||
], | |||
"summary": "Update a pull request", | |||
"summary": "Update a pull request. If using deadline only the date will be taken into account, and time of day ignored.", | |||
"operationId": "repoEditPullRequest", | |||
"parameters": [ | |||
{ | |||
@@ -8532,6 +8532,10 @@ | |||
"title": { | |||
"type": "string", | |||
"x-go-name": "Title" | |||
}, | |||
"unset_due_date": { | |||
"type": "boolean", | |||
"x-go-name": "RemoveDeadline" | |||
} | |||
}, | |||
"x-go-package": "code.gitea.io/gitea/modules/structs" | |||
@@ -8660,6 +8664,10 @@ | |||
"title": { | |||
"type": "string", | |||
"x-go-name": "Title" | |||
}, | |||
"unset_due_date": { | |||
"type": "boolean", | |||
"x-go-name": "RemoveDeadline" | |||
} | |||
}, | |||
"x-go-package": "code.gitea.io/gitea/modules/structs" |