[jboss-cvs] jboss-seam/examples/wiki/view/plugins/forumReplies ...
Christian Bauer
christian at hibernate.org
Tue Dec 18 23:29:31 EST 2007
User: cbauer
Date: 07/12/18 23:29:31
Modified: examples/wiki/view/plugins/forumReplies replyForm.xhtml
plugin.xhtml
Log:
Major rewrite of the most of the application
Revision Changes Path
1.2 +90 -31 jboss-seam/examples/wiki/view/plugins/forumReplies/replyForm.xhtml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: replyForm.xhtml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/view/plugins/forumReplies/replyForm.xhtml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- replyForm.xhtml 9 Nov 2007 15:00:29 -0000 1.1
+++ replyForm.xhtml 19 Dec 2007 04:29:31 -0000 1.2
@@ -8,75 +8,134 @@
xmlns:a="https://ajax4jsf.dev.java.net/ajax"
xmlns:wiki="http://jboss.com/products/seam/wiki">
+<script type="text/javascript">
+ function scrollToCommentForm() {
+ window.scrollTo(0, jQuery('#forumRepliesPlugin\\:replyForm').offset().top)
+ jQuery("#forumRepliesPlugin\\:replyForm\\:replyTextArea").focus();
+ }
+</script>
+
+<s:fragment rendered="#{replyHome.showForm}">
+ <script type="text/javascript">jQuery(function () {scrollToCommentForm(); })</script>
+ <script type="text/javascript">startSessionTimeoutCheck();</script>
+</s:fragment>
+
+<s:fragment rendered="#{not replyHome.showForm}">
+ <script type="text/javascript">stopSessionTimeoutCheck();</script>
+</s:fragment>
+
<s:fragment rendered="#{s:hasPermission('Node', 'create', currentDirectory) and replyHome.showForm}">
<div class="box">
<h:form id="replyForm">
-
<div class="form">
- <div class="formHead">
- <h:outputText value="New Reply"/>
+ <ui:include src="../../includes/statusIndicator.xhtml">
+ <ui:param name="statusId" value="replyFormStatus"/>
+ </ui:include>
+
+ <div class="formHead bottomBorder">
+ <h:outputText value="#{messages['forum.label.NewReply']}"/>
</div>
<a:region>
- <s:div styleClass="formFields formBorder">
+ <s:div rendered="#{replyHome.showForm}"
+ styleClass="formFields formBorder #{replyHome.instance.ownedByRegularUser ? '' : 'wideLabels'}">
+
+ <s:fragment rendered="#{not replyHome.instance.ownedByRegularUser}">
+ <a:region>
+ <s:decorate id="userNameDecorate" template="../../includes/formFieldDecorate.xhtml">
+ <ui:define name="label">#{messages['forum.label.replyForm.Name']}</ui:define>
+ <h:inputText styleClass="ajaxSupport" tabindex="1" size="40" maxlength="100" required="true"
+ id="userName" value="#{replyHome.instance.fromUserName}">
+ <a:support status="replyFormStatus" event="onblur" reRender="userNameDecorate" oncomplete="onAjaxRequestComplete()"/>
+ </h:inputText>
+ </s:decorate>
+ </a:region>
+
+ <s:decorate id="userEmailDecorate" template="../../includes/formFieldDecorate.xhtml">
+ <ui:define name="label">#{messages['forum.label.replyForm.Email']}</ui:define>
+ <h:inputText tabindex="1" size="40" maxlength="255" required="false"
+ id="userEmail" value="#{replyHome.instance.fromUserEmail}">
+ </h:inputText>
+ </s:decorate>
+
+ <s:decorate id="userHomepageDecorate" template="../../includes/formFieldDecorate.xhtml">
+ <ui:define name="label">#{messages['forum.label.replyForm.Homepage']}</ui:define>
+ <h:inputText tabindex="1" size="40" maxlength="1000" required="false"
+ id="userHomepage" value="#{replyHome.instance.fromUserHomepage}">
+ </h:inputText>
+ </s:decorate>
+ </s:fragment>
<s:decorate id="subjectDecorate" template="../../includes/formFieldDecorate.xhtml">
- <ui:define name="label">Subject</ui:define>
- <h:inputText id="replySubject" tabindex="1" size="90" maxlength="255" required="true" value="#{replyHome.comment.subject}">
- <a:support event="onblur" reRender="subjectDecorate"/>
+ <ui:define name="label">#{messages['forum.label.replyForm.Subject']}</ui:define>
+ <h:inputText styleClass="ajaxSupport" tabindex="1" size="40" maxlength="255" required="true"
+ id="subject" value="#{replyHome.instance.subject}">
+ <a:support status="replyFormStatus" event="onblur" reRender="subjectDecorate" oncomplete="onAjaxRequestComplete()"/>
</h:inputText>
</s:decorate>
+ <!-- TODO: Update messsage label -->
<ui:include src="../../includes/wikiTextEditor.xhtml">
<ui:param name="textEditorId" value="reply"/>
<ui:param name="textPreviewId" value="replyPreview"/>
<ui:param name="namingContainer" value="forumRepliesPlugin\\\\:replyForm"/>
- <ui:param name="label" value="Message"/>
- <ui:param name="valueBinding" value="#{replyHome.comment.text}"/>
+ <ui:param name="statusId" value="replyFormStatus"/>
+ <ui:param name="label" value="#{messages['forum.label.replyForm.Message']}"/>
+ <ui:param name="valueBinding" value="#{replyHome.instance.content}"/>
<ui:param name="valueMaxLength" value="32768"/>
<ui:param name="valueRequired" value="true"/>
- <ui:param name="textEditorColumns" value="88"/>
+ <ui:param name="textEditorColumns" value="#{replyHome.instance.ownedByRegularUser ? '80' : '50'}"/>
<ui:param name="textEditorRows" value="20"/>
</ui:include>
- <s:div styleClass="marginLeft">
<ui:include src="../../includes/wikiTextPreview.xhtml">
<ui:param name="textPreviewId" value="replyPreview"/>
- <ui:param name="valueBinding" value="#{replyHome.comment.text}"/>
+ <ui:param name="valueBinding" value="#{replyHome.instance.content}"/>
<ui:param name="enablePlugins" value="false"/>
<ui:param name="baseDocument" value="#{currentDocument}"/>
- <ui:param name="baseDirectory" value="#{currentDirectory}"/>
+ <ui:param name="baseDirectory" value="#{currentDocument.parent}"/>
</ui:include>
- </s:div>
+
+ <s:decorate id="verifyCaptchaEntry" template="../../includes/captchaEntry.xhtml">
+ <ui:param name="statusId" value="replyFormStatus"/>
+ <ui:param name="rendered" value="#{!identity.loggedIn}"/>
+ </s:decorate>
</s:div>
- <div class="formControls">
+ <s:div rendered="#{replyHome.showForm}"
+ styleClass="formControls #{replyHome.instance.ownedByRegularUser ? '' : 'wideLabels'}">
<div class="entry">
<div class="label"> </div>
<div class="input">
- <a:commandLink id="save" action="#{replyHome.persist}"
- reRender="forumPostingHeaderControls, forumRepliesPluginContainer, messageBoxContainer"
- tabindex="1" accesskey="#{messages['forum.button.Save.accesskey']}"
- styleClass="button saveButton">
+ <a:commandLink id="post"
+ action="#{replyHome.persist}" tabindex="1"
+ reRender="documentDisplay"
+ accesskey="#{messages['forum.button.Save.accesskey']}"
+ status="replyFormStatus"
+ eventsQueue="ajaxEventQueue"
+ oncomplete="onAjaxRequestComplete()"
+ styleClass="button sessionEventTrigger">
<h:outputText escape="false" styleClass="buttonLabel" value="#{messages['forum.button.Save']}"/>
</a:commandLink>
- <a:commandLink action="#{replyHome.cancel}"
+ <a:commandLink action="#{replyHome.cancel}" tabindex="1"
+ reRender="documentDisplay"
immediate="true"
- reRender="forumPostingHeaderControls, forumRepliesPluginContainer, messageBoxContainer"
- tabindex="1" styleClass="buttonNonpersistent"
- accesskey="#{messages['forum.button.Cancel.accesskey']}">
+ eventsQueue="ajaxEventQueue"
+ accesskey="#{messages['forum.button.Cancel.accesskey']}"
+ oncomplete="onAjaxRequestComplete()"
+ styleClass="buttonNonpersistent sessionEventTrigger">
<h:outputText styleClass="buttonLabel" escape="false" value="#{messages['forum.button.Cancel']}"/>
</a:commandLink>
</div>
</div>
- </div>
+ </s:div>
</a:region>
1.3 +86 -125 jboss-seam/examples/wiki/view/plugins/forumReplies/plugin.xhtml
(In the diff below, changes in quantity of whitespace are not shown.)
Index: plugin.xhtml
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/view/plugins/forumReplies/plugin.xhtml,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- plugin.xhtml 20 Nov 2007 08:05:12 -0000 1.2
+++ plugin.xhtml 19 Dec 2007 04:29:31 -0000 1.3
@@ -8,134 +8,95 @@
xmlns:a="https://ajax4jsf.dev.java.net/ajax"
xmlns:s="http://jboss.com/products/seam/taglib">
-<s:span id="forumRepliesPluginContainer">
- <script type="text/javascript">jQuery(function() {
- jQuery(".userInfoPopupContainer")
- .jqm({trigger: false, overlay: 0});
- });</script>
- <script type="text/javascript">jQuery(function() {
- wrapBoxes();
- });</script>
-
- <s:div styleClass="box" style="margin-top:25px" rendered="#{not empty replyHome.comments}">
-
- <h:panelGrid columns="1" width="100%"
- cellpadding="0" cellspacing="0" border="0">
-
- <c:forEach var="c" items="#{replyHome.comments}">
- <s:div styleClass="replyContainer">
- <a id="comment#{c.id}"/>
-
- <h:panelGrid columns="2"
- styleClass="replyHeaderGrid"
- columnClasses="replyHeaderInfo, replyHeaderControls"
- cellpadding="0" cellspacing="0" border="0">
-
- <s:span>
- <s:span styleClass="item">
- <h:outputText value="#{c.createdOn}">
- <f:convertDateTime type="both" timeZone="#{wikiPreferences.timeZone}"/>
- </h:outputText>
- </s:span>
-
- <s:fragment rendered="#{wiki:isRegularUser(c.fromUser)}">
- <s:span styleClass="item">
- <s:span styleClass="undecoratedLink">
- <h:outputLink value="#" onclick="jQuery('#userInfoPopup#{c.id}').jqmShow();">
- <h:outputText value="#{c.fromUser.fullname}"/>
- </h:outputLink>
- <s:span rendered="#{c.fromUser.id != guestUser.id}">
- <h:outputText value=", "/>
- <h:outputLink value="#{wiki:escapeEmailURL(wiki:concat('mailto:', c.fromUser.email))}">
- <h:outputText value="#{wiki:escapeAtSymbol(c.fromUser.email)}"/>
- </h:outputLink>
- </s:span>
- </s:span>
- </s:span>
-
- <ui:include src="../forumPosting/userInfoPopup.xhtml">
- <ui:param name="user" value="#{c.fromUser}"/>
- <ui:param name="userInfoPopupId" value="#{c.id}"/>
- </ui:include>
- </s:fragment>
+ <!-- The forumPostingDocumentWrapper <div> is open! -->
- <s:span styleClass="item" rendered="#{not wiki:isRegularUser(c.fromUser)}">
- <h:outputText value="#{c.fromUser.fullname}"/>
- </s:span>
-
- <s:span styleClass="item undecoratedLink">
- <h:outputLink value="#{wiki:renderCommentPermLink(currentDocument, c)}" target="_top">
- <h:outputText value="#{messages['lacewiki.label.Link']}"/>
- </h:outputLink>
- </s:span>
+ <s:div styleClass="commentSignature"
+ rendered="#{not empty currentDocument.createdBy.profile.signature and not empty currentDocument.areaNumber}">
+ <s:div styleClass="commentSignatureSeparator">
+ <h:outputText value=" "/>
+ </s:div>
+ <wiki:formattedText value="#{currentDocument.createdBy.profile.signature}"
+ linkStyleClass="regularLink"
+ brokenLinkStyleClass="brokenLink"
+ attachmentLinkStyleClass="regularLink"
+ thumbnailLinkStyleClass="regularLink"
+ linkBaseFile="#{currentDocument}"
+ currentAreaNumber="#{currentDocument.areaNumber}"
+ enablePlugins="false"/>
+ </s:div>
- </s:span>
+ <s:div id="forumPostingControls" styleClass="forumPostingControls">
- <h:form>
- <h:panelGroup>
+ <h:panelGroup rendered="#{not replyHome.showForm and replyHome.hasReplyPermission()}">
- <a:commandLink rendered="#{s:hasPermission('Node', 'create', currentDirectory)
- and not replyHome.showForm and currentDocument.enableCommentForm}"
- action="#{replyHome.newReplyToComment(c.id, false)}"
- reRender="forumPostingHeaderControls, forumRepliesPluginContainer, messageBoxContainer"
- focus="forumRepliesPlugin:replyForm:replyTextArea"
- tabindex="1" styleClass="buttonNonpersistent">
- <h:outputText styleClass="buttonLabel" value="#{messages['forum.button.Reply.nokey']}"/>
- </a:commandLink>
-
- <a:commandLink rendered="#{s:hasPermission('Node', 'create', currentDirectory)
- and not replyHome.showForm and currentDocument.enableCommentForm}"
- action="#{replyHome.newReplyToComment(c.id, true)}"
- reRender="forumPostingHeaderControls, forumRepliesPluginContainer, messageBoxContainer"
- focus="forumRepliesPlugin:replyForm:replyTextArea"
- tabindex="1" styleClass="buttonNonpersistent">
- <h:outputText styleClass="buttonLabel" value="#{messages['forum.button.Quote.nokey']}"/>
- </a:commandLink>
-
- <a:commandLink rendered="#{s:hasPermission('User', 'isAdmin', currentUser) and not replyHome.showForm}"
- action="#{replyHome.remove(c.id)}"
- reRender="forumRepliesPluginContainer, messageBoxContainer"
- oncomplete="wrapBoxes();"
- styleClass="button">
- <h:outputText styleClass="buttonLabel" value="#{messages['forum.button.RemoveReply']}"/>
- </a:commandLink>
+ <s:link tabindex="1"
+ action="#{replyHome.replyToDocument()}"
+ accesskey="#{messages['forum.button.Reply.accesskey']}"
+ styleClass="buttonNonpersistent">
+ <h:outputText styleClass="buttonLabel" escape="false" value="#{messages['forum.button.Reply']}"/>
+ </s:link>
+
+ <s:link tabindex="1"
+ action="#{replyHome.quoteDocument()}"
+ styleClass="buttonNonpersistent"
+ accesskey="#{messages['forum.button.Quote.accesskey']}">
+ <h:outputText styleClass="buttonLabel" escape="false" value="#{messages['forum.button.Quote']}"/>
+ </s:link>
</h:panelGroup>
- </h:form>
- </h:panelGrid>
+ </s:div>
- <s:div styleClass="replyContent">
+ <!-- The forumPostingDocumentWrapper <div> is closed here! -->
+ <h:outputText escape="false" value="</div>"/>
+ <s:span id="forumRepliesContainer">
- <s:div styleClass="replySubject undecoratedLink" rendered="#{currentDocument.name != c.subject}">
- <h:outputLink value="#{wiki:renderCommentURL(currentDocument, c)}">
- <h:outputText value="#{c.subject}"/>
- </h:outputLink>
- </s:div>
+ <s:fragment rendered="#{currentDocument.enableComments}">
- <s:div styleClass="replyText">
- <wiki:formattedText value="#{c.text}"
- linkStyleClass="regularLink"
- brokenLinkStyleClass="brokenLink"
- attachmentLinkStyleClass="regularLink"
- thumbnailLinkStyleClass="regularLink"
- renderBaseDocument="#{currentDocument}"
- renderBaseDirectory="#{currentDirectory}"
- enablePlugins="false"/>
- </s:div>
+ <ui:decorate template="../../includes/commentsDisplay.xhtml">
+ <ui:param name="titleSingular" value="#{messages['forum.label.Reply']}"/>
+ <ui:param name="titlePlural" value="#{messages['forum.label.Replies']}"/>
+ <ui:define name="controls">
+
+ <s:fragment rendered="#{not replyHome.showForm and replyHome.hasReplyPermission()}">
+
+ <s:link tabindex="102"
+ action="#{replyHome.replyTo()}"
+ styleClass="buttonNonpersistent">
+ <f:param name="parentCommentId" value="#{c.id}"/>
+ <h:outputText styleClass="buttonLabel" value="#{messages['lacewiki.button.commentsDisplay.ReplyTo']}"/>
+ </s:link>
+
+ <s:link tabindex="102"
+ action="#{replyHome.quote()}"
+ styleClass="buttonNonpersistent">
+ <f:param name="parentCommentId" value="#{c.id}"/>
+ <h:outputText styleClass="buttonLabel" value="#{messages['lacewiki.button.commentsDisplay.Quote']}"/>
+ </s:link>
- </s:div>
+ </s:fragment>
- </s:div>
- </c:forEach>
- </h:panelGrid>
+ <s:fragment rendered="#{s:hasPermission('Comment', 'delete', currentDocument) and not replyHome.showForm}">
+ <a:jsFunction name="deleteReplyId#{c.id}"
+ reRender="forumRepliesContainer"
+ action="#{replyHome.remove(c.id)}"/>
+ <h:outputLink value="#"
+ onclick="deleteConfirmation('#{messages['lacewiki.label.commentsDisplay.Comment']} \\'#{c.subject}\\'', 'deleteReplyId#{c.id}')"
+ styleClass="button sessionEventTrigger">
+ <h:outputText styleClass="buttonLabel" value="#{messages['lacewiki.button.commentsDisplay.RemoveComment']}"/>
+ </h:outputLink>
+ </s:fragment>
+ </ui:define>
+ </ui:decorate>
- </s:div>
+ <ui:include src="replyForm.xhtml">
+ <ui:param name="home" value="#{replyHome}"/>
+ </ui:include>
- <ui:include src="replyForm.xhtml"/>
+ </s:fragment>
-</s:span>
+ </s:span>
</wiki:plugin>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list