Skip to content

Commit

Permalink
reply button added
Browse files Browse the repository at this point in the history
  • Loading branch information
ignatov committed Jul 25, 2011
1 parent f613654 commit 1498a0e
Showing 1 changed file with 36 additions and 4 deletions.
40 changes: 36 additions & 4 deletions src/main/scala/scala/tools/colladoc/page/Template.scala
Original file line number Diff line number Diff line change
Expand Up @@ -190,15 +190,18 @@ class Template(tpl: DocTemplateEntity) extends tools.nsc.doc.html.page.Template(
by
<span class="author">{d.authorProfileHyperlink}</span>
<discussion_comment:link />
<discussion_comment:reply />
<discussion_comment:edit />
<discussion_comment:delete />
</div>
<div id={"reply_for_" + d.id} />
</li>

/** Render discussion comment with actions. */
private def discussionToHtmlWithActions(d: Discussion) = bind("discussion_comment", discussionToHtml(d),
"edit" -> {if (User.superUser_?) { editDiscussionButton(d) } else NodeSeq.Empty},
"delete" -> {if (User.superUser_?) { deleteDiscussionButton(d) } else NodeSeq.Empty}
"delete" -> {if (User.superUser_?) { deleteDiscussionButton(d) } else NodeSeq.Empty},
"reply" -> { replyDiscussionButton(d) }
)

/** Render add comment button. */
Expand Down Expand Up @@ -230,7 +233,7 @@ class Template(tpl: DocTemplateEntity) extends tools.nsc.doc.html.page.Template(
case _ => JsCmds.Noop
}
case None =>
Editor.editorObj("", preview _, saveDiscussionComment _) match {
Editor.editorObj("", preview _, saveDiscussionComment(_)) match {
case (n, j) =>
Replace("add_discussion_button",
<form id="discussion_form" class="edit" method="GET">
Expand Down Expand Up @@ -259,8 +262,13 @@ class Template(tpl: DocTemplateEntity) extends tools.nsc.doc.html.page.Template(
Jq(Str("button")) ~> Button()

/** Save discussion comment to database. */
private def saveDiscussionComment(text: String) {
Discussion.create.qualifiedName(tpl.qualifiedName).comment(text).dateTime(now).user(User.currentUser.open_!).valid(true).save
private def saveDiscussionComment(text: String, parent: Option[Discussion] = None) {
val d = Discussion.create.qualifiedName(tpl.qualifiedName).comment(text).dateTime(now).user(User.currentUser.open_!).valid(true)
parent match {
case Some(p) => d.parent(p)
case _ =>
}
d.save
}

/** Parse input string to show comment preview. */
Expand All @@ -285,6 +293,30 @@ class Template(tpl: DocTemplateEntity) extends tools.nsc.doc.html.page.Template(
/** Render delete button for discussion comment. */
def editDiscussionButton(d: Discussion) = SHtml.a(discussionEditor(Some(d)) _, Text("Edit"))

/** Render reply button for discussion comment. */
def replyDiscussionButton(d: Discussion) = SHtml.a(replyEditor(d) _, Text("Reply"))

def replyEditor(parent: Discussion)() =
Editor.editorObj("", preview _, text => { saveDiscussionComment(text, Some(parent)) }) match {
case (n, j) =>
Replace("reply_for_" + parent.id,
<form id={"reply_form_for_" + parent.id} class="edit" method="GET">
<div class="editor">
{ n }
<div class="buttons">
{ SHtml.ajaxButton(Text("Save"), () => SHtml.submitAjaxForm("reply_form_for_" + parent.id, () => reloadDiscussion)) }
{ SHtml.a(Text("Cancel"),
Replace("reply_form_for_" + parent.id, <div id={"reply_for_" + parent.id} />) &
PrettyDate &
Jq(Str("button")) ~> Button(),
("class", "button"))
}
</div>
</div>
</form>) & j & Jq(Str("button")) ~> Button()
case _ => JsCmds.Noop
}

/** Update discussion comment record in database. */
private def updateDiscussionComment(d: Discussion)(text: String) {
d.comment(text).save
Expand Down

0 comments on commit 1498a0e

Please sign in to comment.