diff --git a/src/main/scala/gitbucket/core/controller/PrioritiesController.scala b/src/main/scala/gitbucket/core/controller/PrioritiesController.scala index 3adae1a..ab24b59 100644 --- a/src/main/scala/gitbucket/core/controller/PrioritiesController.scala +++ b/src/main/scala/gitbucket/core/controller/PrioritiesController.scala @@ -72,7 +72,7 @@ }) ajaxPost("/:owner/:repository/issues/priorities/default")(writableUsersOnly { (repository) => - setDefaultPriority(repository.owner, repository.name, params("priorityId").toInt) + setDefaultPriority(repository.owner, repository.name, priorityId("priorityId")) Ok() }) @@ -81,6 +81,8 @@ Ok() }) + val priorityId: String => Option[Int] = (key: String) => params.get(key).flatMap(_.toIntOpt) + /** * Constraint for the identifier such as user name, repository name or page name. */ diff --git a/src/main/scala/gitbucket/core/service/PrioritiesService.scala b/src/main/scala/gitbucket/core/service/PrioritiesService.scala index f5a867d..fa4e405 100644 --- a/src/main/scala/gitbucket/core/service/PrioritiesService.scala +++ b/src/main/scala/gitbucket/core/service/PrioritiesService.scala @@ -24,14 +24,12 @@ .map(m => m + 1) .getOrElse(0) - val isDefault = getDefaultPriority(owner, repository).isEmpty - Priorities returning Priorities.map(_.priorityId) insert Priority( userName = owner, repositoryName = repository, priorityName = priorityName, description = StringUtil.emptyToNone(description), - isDefault = isDefault, + isDefault = false, ordering = ordering, color = color ) @@ -71,16 +69,16 @@ .headOption } - def setDefaultPriority(owner: String, repository: String, priorityId: Int)(implicit s: Session): Unit = { + def setDefaultPriority(owner: String, repository: String, priorityId: Option[Int])(implicit s: Session): Unit = { Priorities .filter(_.byRepository(owner, repository)) .filter(_.isDefault) .map(_.isDefault) .update(false) - Priorities - .filter(_.byPrimaryKey(owner, repository, priorityId)) + priorityId.foreach(id => Priorities + .filter(_.byPrimaryKey(owner, repository, id)) .map(_.isDefault) - .update(true) + .update(true)) } } diff --git a/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala b/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala index 1fc487f..97df82d 100644 --- a/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala +++ b/src/main/scala/gitbucket/core/service/RepositoryCreationService.scala @@ -84,6 +84,6 @@ createPriority(userName, repositoryName, "important", "Issues can be shipped with a final product, but should be reviewed before the next release.", "fccd29") createPriority(userName, repositoryName, "default", "Default.", "acacac") - setDefaultPriority(userName, repositoryName, getPriority(userName, repositoryName, "default").get.priorityId) + setDefaultPriority(userName, repositoryName, getPriority(userName, repositoryName, "default").map(_.priorityId)) } } diff --git a/src/main/twirl/gitbucket/core/issues/priorities/list.scala.html b/src/main/twirl/gitbucket/core/issues/priorities/list.scala.html index e53f24c..185ba84 100644 --- a/src/main/twirl/gitbucket/core/issues/priorities/list.scala.html +++ b/src/main/twirl/gitbucket/core/issues/priorities/list.scala.html @@ -103,11 +103,21 @@ } function setDefaultPriority(priorityId){ + var $a = $('a[data-id="' + priorityId + '"].priority-default'); + var isDefault = $a.data('default'); $.post('@helpers.url(repository)/issues/priorities/default', - { priorityId: priorityId }, + { priorityId: isDefault ? '' : priorityId }, function(){ - $('.priority-default').removeClass('priority-default-selected'); - $('a[data-id="' + priorityId + '"] .priority-default').addClass('priority-default-selected'); + $('.priority-default') + .removeClass('priority-default-selected') + .data('default', false) + .attr('title', 'Set as default'); + if (!isDefault) { + $a + .addClass('priority-default-selected') + .data('default', true) + .attr('title', 'Unset as default'); + } } ); } diff --git a/src/main/twirl/gitbucket/core/issues/priorities/priority.scala.html b/src/main/twirl/gitbucket/core/issues/priorities/priority.scala.html index b9e1ad1..637b11a 100644 --- a/src/main/twirl/gitbucket/core/issues/priorities/priority.scala.html +++ b/src/main/twirl/gitbucket/core/issues/priorities/priority.scala.html @@ -24,7 +24,7 @@