|
@@ -524,23 +524,22 @@ func NewMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) {
|
|
|
var deadline time.Time
|
|
|
var err error
|
|
|
if len(form.Deadline) == 0 {
|
|
|
- deadline = time.Now().AddDate(100, 0, 0)
|
|
|
- } else {
|
|
|
- deadline, err = time.Parse("01/02/2006", form.Deadline)
|
|
|
- if err != nil {
|
|
|
- ctx.Handle(500, "issue.NewMilestonePost(time.Parse)", err)
|
|
|
- return
|
|
|
- }
|
|
|
+ form.Deadline = "12/31/9999"
|
|
|
+ }
|
|
|
+ deadline, err = time.Parse("01/02/2006", form.Deadline)
|
|
|
+ if err != nil {
|
|
|
+ ctx.Handle(500, "issue.NewMilestonePost(time.Parse)", err)
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
- m := &models.Milestone{
|
|
|
+ mile := &models.Milestone{
|
|
|
RepoId: ctx.Repo.Repository.Id,
|
|
|
Index: int64(ctx.Repo.Repository.NumMilestones) + 1,
|
|
|
Name: form.Title,
|
|
|
Content: form.Content,
|
|
|
Deadline: deadline,
|
|
|
}
|
|
|
- if err = models.NewMilestone(m); err != nil {
|
|
|
+ if err = models.NewMilestone(mile); err != nil {
|
|
|
ctx.Handle(500, "issue.NewMilestonePost(NewMilestone)", err)
|
|
|
return
|
|
|
}
|
|
@@ -548,10 +547,73 @@ func NewMilestonePost(ctx *middleware.Context, form auth.CreateMilestoneForm) {
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/issues/milestones")
|
|
|
}
|
|
|
|
|
|
-func UpdateMilestones(ctx *middleware.Context) {
|
|
|
- ctx.Data["Title"] = "Update Milestones"
|
|
|
+func UpdateMilestone(ctx *middleware.Context, params martini.Params) {
|
|
|
+ ctx.Data["Title"] = "Update Milestone"
|
|
|
ctx.Data["IsRepoToolbarIssues"] = true
|
|
|
ctx.Data["IsRepoToolbarIssuesList"] = true
|
|
|
|
|
|
+ idx, _ := base.StrTo(params["index"]).Int64()
|
|
|
+ if idx == 0 {
|
|
|
+ ctx.Handle(404, "issue.UpdateMilestone", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mile, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, idx)
|
|
|
+ if err != nil {
|
|
|
+ if err == models.ErrMilestoneNotExist {
|
|
|
+ ctx.Handle(404, "issue.UpdateMilestone(GetMilestoneByIndex)", err)
|
|
|
+ } else {
|
|
|
+ ctx.Handle(500, "issue.UpdateMilestone(GetMilestoneByIndex)", err)
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mile.DeadlineString = mile.Deadline.UTC().Format("01/02/2006")
|
|
|
+ if mile.DeadlineString == "12/31/9999" {
|
|
|
+ mile.DeadlineString = ""
|
|
|
+ }
|
|
|
+ ctx.Data["Milestone"] = mile
|
|
|
+
|
|
|
ctx.HTML(200, "issue/milestone_edit")
|
|
|
}
|
|
|
+
|
|
|
+func UpdateMilestonePost(ctx *middleware.Context, params martini.Params, form auth.CreateMilestoneForm) {
|
|
|
+ ctx.Data["Title"] = "Update Milestone"
|
|
|
+ ctx.Data["IsRepoToolbarIssues"] = true
|
|
|
+ ctx.Data["IsRepoToolbarIssuesList"] = true
|
|
|
+
|
|
|
+ idx, _ := base.StrTo(params["index"]).Int64()
|
|
|
+ if idx == 0 {
|
|
|
+ ctx.Handle(404, "issue.UpdateMilestone", nil)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mile, err := models.GetMilestoneByIndex(ctx.Repo.Repository.Id, idx)
|
|
|
+ if err != nil {
|
|
|
+ if err == models.ErrMilestoneNotExist {
|
|
|
+ ctx.Handle(404, "issue.UpdateMilestone(GetMilestoneByIndex)", err)
|
|
|
+ } else {
|
|
|
+ ctx.Handle(500, "issue.UpdateMilestone(GetMilestoneByIndex)", err)
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var deadline time.Time
|
|
|
+ if len(form.Deadline) == 0 {
|
|
|
+ form.Deadline = "12/31/9999"
|
|
|
+ }
|
|
|
+ deadline, err = time.Parse("01/02/2006", form.Deadline)
|
|
|
+ if err != nil {
|
|
|
+ ctx.Handle(500, "issue.UpdateMilestonePost(time.Parse)", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mile.Name = form.Title
|
|
|
+ mile.Content = form.Content
|
|
|
+ mile.Deadline = deadline
|
|
|
+ if err = models.UpdateMilestone(mile); err != nil {
|
|
|
+ ctx.Handle(500, "issue.UpdateMilestonePost(UpdateMilestone)", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ ctx.Redirect(ctx.Repo.RepoLink + "/issues/milestones")
|
|
|
+}
|