diff --git a/src/main/scala/app/LabelsController.scala b/src/main/scala/app/LabelsController.scala index 2ac47fc..3fe8c04 100644 --- a/src/main/scala/app/LabelsController.scala +++ b/src/main/scala/app/LabelsController.scala @@ -24,29 +24,33 @@ "editColor" -> trim(label("Color", text(required, color))) )(LabelForm.apply) - post("/:owner/:repository/issues/label/new", newForm)(collaboratorsOnly { (form, repository) => + get("/:owner/:repository/issues/labels")(collaboratorsOnly { repository => + issues.labels.html.list(getLabels(repository.owner, repository.name), repository, true) // TODO hasWritePermission + }) + + ajaxGet("/:owner/:repository/issues/labels/new")(collaboratorsOnly { repository => + issues.labels.html.edit(None, repository) + }) + + post("/:owner/:repository/issues/labels/new", newForm)(collaboratorsOnly { (form, repository) => createLabel(repository.owner, repository.name, form.labelName, form.color.substring(1)) - redirect(s"/${repository.owner}/${repository.name}/issues") + redirect(s"/${repository.owner}/${repository.name}/issues/labels") }) - ajaxGet("/:owner/:repository/issues/label/edit")(collaboratorsOnly { repository => - issues.labels.html.editlist(getLabels(repository.owner, repository.name), repository) - }) - - ajaxGet("/:owner/:repository/issues/label/:labelId/edit")(collaboratorsOnly { repository => + ajaxGet("/:owner/:repository/issues/labels/:labelId/edit")(collaboratorsOnly { repository => getLabel(repository.owner, repository.name, params("labelId").toInt).map { label => issues.labels.html.edit(Some(label), repository) } getOrElse NotFound() }) - ajaxPost("/:owner/:repository/issues/label/:labelId/edit", editForm)(collaboratorsOnly { (form, repository) => + post("/:owner/:repository/issues/labels/:labelId/edit", editForm)(collaboratorsOnly { (form, repository) => updateLabel(repository.owner, repository.name, params("labelId").toInt, form.labelName, form.color.substring(1)) - issues.labels.html.editlist(getLabels(repository.owner, repository.name), repository) + redirect(s"/${repository.owner}/${repository.name}/issues/labels") }) - ajaxGet("/:owner/:repository/issues/label/:labelId/delete")(collaboratorsOnly { repository => + get("/:owner/:repository/issues/labels/:labelId/delete")(collaboratorsOnly { repository => deleteLabel(repository.owner, repository.name, params("labelId").toInt) - issues.labels.html.editlist(getLabels(repository.owner, repository.name), repository) + redirect(s"/${repository.owner}/${repository.name}/issues/labels") }) /** diff --git a/src/main/twirl/issues/labels/edit.scala.html b/src/main/twirl/issues/labels/edit.scala.html index 649c093..c420b8d 100644 --- a/src/main/twirl/issues/labels/edit.scala.html +++ b/src/main/twirl/issues/labels/edit.scala.html @@ -1,18 +1,21 @@ @(label: Option[model.Label], repository: service.RepositoryService.RepositoryInfo)(implicit context: app.Context) @import context._ @import view.helpers._ -@defining((if(label.isEmpty) ("new", 190, 4) else ("edit", 180, 8))){ case (mode, width, margin) => -