Save repository options.

This commit is contained in:
takezoe
2013-06-04 18:23:51 +09:00
parent 118e32662d
commit 79a0ba5630
3 changed files with 48 additions and 14 deletions

View File

@@ -5,12 +5,19 @@ import jp.sf.amateras.scalatra.forms._
class SettingsController extends SettingsControllerBase with RepositoryService with AccountService
trait SettingsControllerBase extends ControllerBase { self: RepositoryService with AccountService =>
case class OptionsForm(description: Option[String], defaultBranch: String, repositoryType: Int)
val optionsForm = mapping(
"description" -> trim(label("Description" , optional(text()))),
"defaultBranch" -> trim(label("Default Branch" , text(required, maxlength(100)))),
"repositoryType" -> trim(label("Repository Type", number()))
)(OptionsForm.apply)
case class CollaboratorForm(userName: String)
val form = mapping(
val collaboratorForm = mapping(
"userName" -> trim(label("Username", text(required, collaborator)))
)(CollaboratorForm.apply)
@@ -27,6 +34,16 @@ trait SettingsControllerBase extends ControllerBase { self: RepositoryService wi
settings.html.options(getRepository(owner, repository, servletContext).get)
})
post("/:owner/:repository/settings/options", optionsForm){ form =>
val owner = params("owner")
val repository = params("repository")
// save repository options
saveRepositoryOptions(owner, repository, form.description, form.defaultBranch, form.repositoryType)
redirect("%s/%s/settings/options".format(owner, repository))
}
get("/:owner/:repository/settings/collaborators")(ownerOnly {
val owner = params("owner")
val repository = params("repository")
@@ -34,7 +51,7 @@ trait SettingsControllerBase extends ControllerBase { self: RepositoryService wi
settings.html.collaborators(getCollaborators(owner, repository), getRepository(owner, repository, servletContext).get)
})
post("/:owner/:repository/settings/collaborators/_add", form)(ownerOnly { form =>
post("/:owner/:repository/settings/collaborators/_add", collaboratorForm)(ownerOnly { form =>
val owner = params("owner")
val repository = params("repository")
addCollaborator(owner, repository, form.userName)