diff --git a/src/main/scala/app/IssuesController.scala b/src/main/scala/app/IssuesController.scala index 9826c7f..0351442 100644 --- a/src/main/scala/app/IssuesController.scala +++ b/src/main/scala/app/IssuesController.scala @@ -59,7 +59,7 @@ }) // TODO requires users only and readable repository checking - post("/:owner/:repository/issues", form)( usersOnly { form => + post("/:owner/:repository/issues/new", form)( usersOnly { form => val owner = params("owner") val repository = params("repository") @@ -67,20 +67,18 @@ createIssue(owner, repository, context.loginAccount.get.userName, form.title, form.content))) }) - // TODO Authenticator, Validation - post("/:owner/:repository/issues/:id"){ + // TODO Authenticator + ajaxPost("/:owner/:repository/issues/edit/:id", form){ form => val owner = params("owner") val repository = params("repository") val issueId = params("id").toInt - val title = params("title") - val content = params.get("content") - updateIssue(owner, repository, issueId, title, content) + updateIssue(owner, repository, issueId, form.title, form.content) redirect("/%s/%s/issues/_data/%d".format(owner, repository, issueId)) } // TODO requires users only and readable repository checking - post("/:owner/:repository/issue_comments", commentForm)( usersOnly { form => + post("/:owner/:repository/issue_comments/new", commentForm)( usersOnly { form => val owner = params("owner") val repository = params("repository") @@ -88,17 +86,16 @@ createComment(owner, repository, context.loginAccount.get.userName, form.issueId, form.content))) }) - // TODO Authenticator, Validation - post("/:owner/:repository/issue_comments/:id"){ + // TODO Authenticator, repository checking + ajaxPost("/:owner/:repository/issue_comments/edit/:id", commentForm){ form => val commentId = params("id").toInt - val content = params("content") - updateComment(commentId, content) + updateComment(commentId, form.content) redirect("/%s/%s/issue_comments/_data/%d".format(params("owner"), params("repository"), commentId)) } // TODO Authenticator - get("/:owner/:repository/issues/_data/:id"){ + ajaxGet("/:owner/:repository/issues/_data/:id"){ getIssue(params("owner"), params("repository"), params("id")) map { x => params.get("dataType") collect { case t if t == "html" => issues.html.edit( @@ -115,7 +112,7 @@ } // TODO Authenticator - get("/:owner/:repository/issue_comments/_data/:id"){ + ajaxGet("/:owner/:repository/issue_comments/_data/:id"){ getComment(params("id")) map { x => params.get("dataType") collect { case t if t == "html" => issues.html.edit( diff --git a/src/main/twirl/issues/edit.scala.html b/src/main/twirl/issues/edit.scala.html index d073d95..cca5013 100644 --- a/src/main/twirl/issues/edit.scala.html +++ b/src/main/twirl/issues/edit.scala.html @@ -20,18 +20,25 @@ $('@{if(isComment) "#commentContent-" + key else "#issueContent"} input.btn').click(function(){ @if(isComment){ - var url = '@path/@owner/@repository/issue_comments/@key'; + var url = '@path/@owner/@repository/issue_comments/edit/@key'; var param = { + issueId : 0, // TODO content : $('#edit-content-@key').val() }; }else{ - var url = '@path/@owner/@repository/issues/@key'; + var url = '@path/@owner/@repository/issues/edit/@key'; var param = { title : $('#edit-title').val(), content : $('#edit-content').val() }; } - $.post(url, param, callback); + $.ajax({ + url: url, type: 'POST', data: param + }).done( + callback + ).fail(function(req) { + displayErrors($.parseJSON(req.responseText)); + }); }); $('@{if(isComment) "#commentContent-" + key else "#issueContent"} a.btn').click(function(){ diff --git a/src/main/twirl/issues/issue.scala.html b/src/main/twirl/issues/issue.scala.html index 09d43bc..f070958 100644 --- a/src/main/twirl/issues/issue.scala.html +++ b/src/main/twirl/issues/issue.scala.html @@ -34,7 +34,7 @@ } -