You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by jc...@apache.org on 2011/12/13 15:12:16 UTC

svn commit: r1213701 [2/2] - in /incubator/rave/trunk: rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/ rave-portal-resources/src/main/resources/ rave-portal-resources/src/main/webapp/ rave-portal-resources/src/main/webapp/WEB-IN...

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/error.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/error.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/error.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/error.jsp Tue Dec 13 14:12:16 2011
@@ -16,39 +16,39 @@
   specific language governing permissions and limitations
   under the License.
   --%>
-<%@ page isErrorPage="true" trimDirectiveWhitespaces="true" contentType="text/html" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
-<%@ taglib prefix="portal" uri="http://www.apache.org/rave/tags" %>
-<%@ taglib tagdir="/WEB-INF/tags" prefix="rave"%>
+<%@ page isErrorPage="true" language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <fmt:setBundle basename="messages"/>
-<rave:rave_generic_page pageTitle="Error ${requestScope['javax.servlet.error.status_code']}: ${requestScope['javax.servlet.error.exception_type'].simpleName}">
-    <header>
-      <h1>
-          <fmt:message key="page.error.title" />
-      </h1>
-    </header>
-    <div id="content" >
-        <div id="errorMessage">
-            <div class="errorMessage">
-                <fmt:message key="page.error.message" />
-                &nbsp;<a href="javascript: window.location.reload();"><fmt:message key="page.error.reload" /></a>.<br/>
-                <a onclick="document.getElementById('errorStack').style.display = 'block';"><fmt:message key="page.error.details" /></a>
+<%-- Note: This page has the body definition embedded so we can reference it from the web.xml file
+and use it as the default error page for the entire application. --%>
+<tiles:insertDefinition name="templates.base">
+    <tiles:putAttribute name="pageTitleKey" value="page.error.title"/>
+    <tiles:putAttribute name="body">
+        <header>
+          <h1>
+              <fmt:message key="page.error.title" />
+          </h1>
+        </header>
+        <div id="content" >
+            <div id="errorMessage">
+                <div class="errorMessage">
+                    <fmt:message key="page.error.message" />
+                    &nbsp;<a href="javascript: window.location.reload();"><fmt:message key="page.error.reload" /></a>.<br/>
+                    <a onclick="document.getElementById('errorStack').style.display = 'block';"><fmt:message key="page.error.details" /></a>
+                </div>
             </div>
-        </div>
-        <div id="errorStack" title="Error Details" >
-            <pre class="errorTrace">
-                <c:out value="${requestScope['javax.servlet.error.message']}"/>
+            <div id="errorStack" title="Error Details" >
+                <pre class="errorTrace">
+                    <c:out value="${requestScope['javax.servlet.error.message']}"/>
 
-                <c:forEach var="i" items="${requestScope['javax.servlet.error.exception'].stackTrace}">
-                    <c:out value="${i}" /><br />
-                </c:forEach>
-            </pre>
-            <button type="button"
-                    onClick="document.getElementById('errorStack').style.display = 'none';">Close
-            </button>
+                    <c:forEach var="i" items="${requestScope['javax.servlet.error.exception'].stackTrace}">
+                        <c:out value="${i}" /><br />
+                    </c:forEach>
+                </pre>
+                <button type="button"
+                        onClick="document.getElementById('errorStack').style.display = 'none';">Close
+                </button>
+            </div>
         </div>
-    </div>
-</rave:rave_generic_page>
+    </tiles:putAttribute>
+</tiles:insertDefinition>
\ No newline at end of file

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/home.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/home.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/home.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/home.jsp Tue Dec 13 14:12:16 2011
@@ -18,8 +18,8 @@
   --%>
 <%@ page language="java" trimDirectiveWhitespaces="true" %>
 <%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
-<jsp:useBean id="pages" type="java.util.List<org.apache.rave.portal.model.Page>" scope="request"/>
 <fmt:setBundle basename="messages"/>
+<jsp:useBean id="pages" type="java.util.List<org.apache.rave.portal.model.Page>" scope="request"/>
 <%--@elvariable id="page" type="org.apache.rave.portal.model.Page"--%>
 <header>
     <nav class="topnav">

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/mobile_home.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/mobile_home.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/mobile_home.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/mobile_home.jsp Tue Dec 13 14:12:16 2011
@@ -18,8 +18,8 @@
   --%>
 <%@ page language="java" trimDirectiveWhitespaces="true" %>
 <%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
-<jsp:useBean id="pages" type="java.util.List<org.apache.rave.portal.model.Page>" scope="request"/>
 <fmt:setBundle basename="messages"/>
+<jsp:useBean id="pages" type="java.util.List<org.apache.rave.portal.model.Page>" scope="request"/>
 <%--@elvariable id="page" type="org.apache.rave.portal.model.Page"--%>
     <header class="header-mobile">
         <nav class="topnav">

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp Tue Dec 13 14:12:16 2011
@@ -17,15 +17,8 @@
   under the License.
   --%>
 <%@ page language="java" trimDirectiveWhitespaces="true" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
-<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-<%@ taglib tagdir="/WEB-INF/tags" prefix="rave"%>
-
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <fmt:setBundle basename="messages"/>
-<fmt:message key="page.newaccount.title" var="pagetitle"/>
-<rave:rave_generic_page pageTitle="${pagetitle}">
 <div id="content">
     <h1>${pagetitle}</h1>
     <form:form id="newAccountForm" commandName="newUser" action="newaccount" method="POST">
@@ -78,6 +71,4 @@
 <script src="<spring:url value="/script/rave.js"/>"></script>
 <script src="<spring:url value="/script/rave_forms.js"/>"></script>
 
-<script>$(document).ready(rave.forms.validateNewAccountForm());</script>
-</rave:rave_generic_page>
-  
\ No newline at end of file
+<script>$(document).ready(rave.forms.validateNewAccountForm());</script>
\ No newline at end of file

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/store.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/store.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/store.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/store.jsp Tue Dec 13 14:12:16 2011
@@ -17,16 +17,9 @@
   under the License.
   --%>
 <%@ page language="java" trimDirectiveWhitespaces="true" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
-<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
-<%@ taglib tagdir="/WEB-INF/tags" prefix="rave" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <fmt:setBundle basename="messages"/>
 
-<fmt:message key="page.store.title" var="pagetitle"/>
-<rave:rave_generic_page pageTitle="${pagetitle}">
 <header>
     <nav class="topnav">
         <ul class="horizontal-list">
@@ -246,5 +239,4 @@
         rave.setContext("<spring:url value="/app/" />");
         rave.store.init();
     });
-</script>
-</rave:rave_generic_page>
+</script>
\ No newline at end of file

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/userProfile.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/userProfile.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/userProfile.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/userProfile.jsp Tue Dec 13 14:12:16 2011
@@ -17,65 +17,56 @@
   under the License.
   --%>
 <%@ page language="java" trimDirectiveWhitespaces="true" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-<%@ taglib tagdir="/WEB-INF/tags" prefix="rave" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <fmt:setBundle basename="messages"/>
-
-<fmt:message key="page.userprofile.title" var="pagetitle"/>
-
 <jsp:useBean id="userProfile" type="org.apache.rave.portal.model.User" scope="request"/>
-<rave:rave_generic_page pageTitle="${pagetitle}">
-    <div id="content">
-        <h1>${pagetitle}</h1>
-        <form:form id="userProfileForm" commandName="userProfile" action="updateUserProfile" method="POST">
-            <fieldset>
-                <form:errors cssClass="error" element="p"/>
-                <p>
-                    <fmt:message key="page.general.username"/> <c:out value=" ${userProfile.username}"/>
-                </p>
-                <p>
-                    <label for="passwordField"><fmt:message key="page.general.password"/></label>
-                    <form:password path="password" id="passwordField" required="required"
-                                   showPassword="true"/>
-                    <form:errors path="password" cssClass="error"/>
-                </p>
-
-                <p>
-                    <label for="passwordConfirmField"><fmt:message key="page.general.confirmpassword"/></label>
-                    <form:password path="confirmPassword" id="passwordConfirmField" required="required"
-                                   showPassword="true"/>
-                    <form:errors path="confirmPassword" cssClass="error"/>
-                </p>
-
-                <p>
-                    <label for="emailField"><fmt:message key="page.general.email"/></label>
-                    <spring:bind path="email">
-                        <input type="email" name="email" id="emailField" required="required" value="<c:out value="${status.value}"/>"/>
-                    </spring:bind>
-                    <form:errors path="email" cssClass="error"/>
-                </p>
-
-                <p>
-                    <label for="openIdField"><fmt:message key="page.userprofile.openid.url"/></label>
-                    <spring:bind path="openId">
-                        <input type="url" id="openIdField" name="openId" value="<c:out value="${status.value}"/>"/>
-                    </spring:bind>
-                    <form:errors path="openId" cssClass="error"/>
-                </p>
-            </fieldset>
-            <fieldset>
-                <fmt:message key="page.userprofile.button" var="updateButtonText"/>
-                <input type="submit" value="${updateButtonText}"/>
-            </fieldset>
-        </form:form>
-    </div>
-    <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js"></script>
-    <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js"></script>
-    <script src="<spring:url value="/script/rave.js"/>"></script>
-    <script src="<spring:url value="/script/rave_forms.js"/>"></script>
+<div id="content">
+    <h1>${pagetitle}</h1>
+    <form:form id="userProfileForm" commandName="userProfile" action="updateUserProfile" method="POST">
+        <fieldset>
+            <form:errors cssClass="error" element="p"/>
+            <p>
+                <fmt:message key="page.general.username"/> <c:out value=" ${userProfile.username}"/>
+            </p>
+            <p>
+                <label for="passwordField"><fmt:message key="page.general.password"/></label>
+                <form:password path="password" id="passwordField" required="required"
+                               showPassword="true"/>
+                <form:errors path="password" cssClass="error"/>
+            </p>
+
+            <p>
+                <label for="passwordConfirmField"><fmt:message key="page.general.confirmpassword"/></label>
+                <form:password path="confirmPassword" id="passwordConfirmField" required="required"
+                               showPassword="true"/>
+                <form:errors path="confirmPassword" cssClass="error"/>
+            </p>
+
+            <p>
+                <label for="emailField"><fmt:message key="page.general.email"/></label>
+                <spring:bind path="email">
+                    <input type="email" name="email" id="emailField" required="required" value="<c:out value="${status.value}"/>"/>
+                </spring:bind>
+                <form:errors path="email" cssClass="error"/>
+            </p>
+
+            <p>
+                <label for="openIdField"><fmt:message key="page.userprofile.openid.url"/></label>
+                <spring:bind path="openId">
+                    <input type="url" id="openIdField" name="openId" value="<c:out value="${status.value}"/>"/>
+                </spring:bind>
+                <form:errors path="openId" cssClass="error"/>
+            </p>
+        </fieldset>
+        <fieldset>
+            <fmt:message key="page.userprofile.button" var="updateButtonText"/>
+            <input type="submit" value="${updateButtonText}"/>
+        </fieldset>
+    </form:form>
+</div>
+<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js"></script>
+<script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js"></script>
+<script src="<spring:url value="/script/rave.js"/>"></script>
+<script src="<spring:url value="/script/rave_forms.js"/>"></script>
 
-    <script>$(document).ready(rave.forms.validateUserProfileForm());</script>
-</rave:rave_generic_page>
+<script>$(document).ready(rave.forms.validateUserProfileForm());</script>
\ No newline at end of file

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp Tue Dec 13 14:12:16 2011
@@ -17,195 +17,187 @@
   under the License.
   --%>
 <%@ page language="java" trimDirectiveWhitespaces="true" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
-<%@ taglib tagdir="/WEB-INF/tags" prefix="rave" %>
-<jsp:useBean id="widget" scope="request" class="org.apache.rave.portal.model.Widget"/>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <fmt:setBundle basename="messages"/>
-<rave:rave_generic_page pageTitle="${widget.title}">
-    <header>
-        <nav class="topnav">
-            <ul class="horizontal-list">
-                <c:if test="${not empty referringPageId}">
-                    <li>
-                        <a href="<spring:url value="/app/store?referringPageId=${referringPageId}" />">
-                            <fmt:message key="page.widget.backToStore"/>
-                        </a>
-                    </li>
-                </c:if>
-                <li>
-                    <c:choose>
-                        <c:when test="${empty referringPageId}">
-                            <spring:url value="/index.html" var="gobackurl"/>
-                        </c:when>
-                        <c:otherwise>
-                            <spring:url value="/app/page/view/${referringPageId}" var="gobackurl"/>
-                        </c:otherwise>
-                    </c:choose>
-                    <a href="<c:out value="${gobackurl}"/>"><fmt:message key="page.general.back"/></a>
-                </li>
-                <sec:authorize url="/app/admin/">
-                    <li>
-                        <a href="<spring:url value="/app/admin/"/>">
-                            <fmt:message key="page.general.toadmininterface"/>
-                        </a>
-                    </li>
-                </sec:authorize>
+<header>
+    <nav class="topnav">
+        <ul class="horizontal-list">
+            <c:if test="${not empty referringPageId}">
                 <li>
-                    <a href="<spring:url value="/j_spring_security_logout" htmlEscape="true" />">
-                        <fmt:message key="page.general.logout"/></a>
+                    <a href="<spring:url value="/app/store?referringPageId=${referringPageId}" />">
+                        <fmt:message key="page.widget.backToStore"/>
+                    </a>
                 </li>
-            </ul>
-        </nav>
-        <h1><c:out value="${widget.title}"/></h1>
-    </header>
-
-
-    <div id="content">
-
-        <div class="widget-content">
-
-            <h2>
+            </c:if>
+            <li>
                 <c:choose>
-                    <c:when test="${not empty widget.titleUrl}">
-                        <a href="<c:out value="${widget.titleUrl}"/>" rel="external"><c:out
-                                value="${widget.title}"/></a>
+                    <c:when test="${empty referringPageId}">
+                        <spring:url value="/index.html" var="gobackurl"/>
                     </c:when>
                     <c:otherwise>
-                        <c:out value="${widget.title}"/>
+                        <spring:url value="/app/page/view/${referringPageId}" var="gobackurl"/>
                     </c:otherwise>
                 </c:choose>
-            </h2>
+                <a href="<c:out value="${gobackurl}"/>"><fmt:message key="page.general.back"/></a>
+            </li>
+            <sec:authorize url="/app/admin/">
+                <li>
+                    <a href="<spring:url value="/app/admin/"/>">
+                        <fmt:message key="page.general.toadmininterface"/>
+                    </a>
+                </li>
+            </sec:authorize>
+            <li>
+                <a href="<spring:url value="/j_spring_security_logout" htmlEscape="true" />">
+                    <fmt:message key="page.general.logout"/></a>
+            </li>
+        </ul>
+    </nav>
+    <h1><c:out value="${widget.title}"/></h1>
+</header>
+
+
+<div id="content">
+
+    <div class="widget-content">
+
+        <h2>
+            <c:choose>
+                <c:when test="${not empty widget.titleUrl}">
+                    <a href="<c:out value="${widget.titleUrl}"/>" rel="external"><c:out
+                            value="${widget.title}"/></a>
+                </c:when>
+                <c:otherwise>
+                    <c:out value="${widget.title}"/>
+                </c:otherwise>
+            </c:choose>
+        </h2>
+
+
+        <div class="detailWidgetPreview">
+            <c:if test="${not empty widget.screenshotUrl}">
+                <div class="detailWidgetScreenshot">
+                    <img src="${widget.screenshotUrl}"
+                         alt="<fmt:message key="page.general.screenshot"/>"
+                         title="<c:out value="${widget.title}"/> <fmt:message key="page.general.screenshot"/>"/>
+                </div>
+            </c:if>
+            <c:if test="${not empty widget.thumbnailUrl}">
+                <div class="detailWidgetThumbnail">
+                    <img src="<c:out value="${widget.thumbnailUrl}"/>" title="<c:out value="${widget.title}"/>"
+                         alt="<fmt:message key="page.general.thumbnail"/>"/>
+                </div>
+            </c:if>
 
+        </div>
+
+        <div class="detailWidgetInfo">
 
-            <div class="detailWidgetPreview">
-                <c:if test="${not empty widget.screenshotUrl}">
-                    <div class="detailWidgetScreenshot">
-                        <img src="${widget.screenshotUrl}"
-                             alt="<fmt:message key="page.general.screenshot"/>"
-                             title="<c:out value="${widget.title}"/> <fmt:message key="page.general.screenshot"/>"/>
+            <c:choose>
+                <c:when test="${widget.widgetStatus eq 'PUBLISHED'}">
+                    <div id="widgetAdded_${widget.entityId}" class="detailWidgetAdd">
+                        <button class="storeItemButton"
+                                id="addWidget_${widget.entityId}"
+                                onclick="rave.api.rpc.addWidgetToPage({widgetId: ${widget.entityId}, pageId: ${referringPageId}, redirectAfterAdd:true});">
+                            <fmt:message key="page.widget.addToPage"/>
+                        </button>
                     </div>
-                </c:if>
-                <c:if test="${not empty widget.thumbnailUrl}">
-                    <div class="detailWidgetThumbnail">
-                        <img src="<c:out value="${widget.thumbnailUrl}"/>" title="<c:out value="${widget.title}"/>"
-                             alt="<fmt:message key="page.general.thumbnail"/>"/>
+                </c:when>
+                <c:when test="${widget.widgetStatus eq 'PREVIEW'}">
+                    <div class="alert-message info">
+                        <p><fmt:message key="widget.widgetStatus.PREVIEW"/></p>
                     </div>
-                </c:if>
+                </c:when>
+            </c:choose>
+
+            <c:if test="${not empty widget.author}">
+                <p class="storeWidgetAuthor">
+                    <fmt:message key="widget.author"/>
+                    <c:out value=" "/><%-- intentional empty String in the c:out --%>
+                    <c:choose>
+                        <c:when test="${not empty widget.authorEmail}">
+                            <a href="mailto:<c:out value="${widget.authorEmail}"/>"><c:out
+                                    value="${widget.author}"/></a>
+                        </c:when>
+                        <c:otherwise><c:out value="${widget.author}"/></c:otherwise>
+                    </c:choose>
+                </p>
+            </c:if>
 
+            <c:if test="${not empty widget.description}">
+                <p class="storeWidgetDesc"><c:out value="${widget.description}"/></p>
+            </c:if>
+
+            <div class="widgetRating">
+                <fmt:message key="page.widget.rate"/>
+                <div id="radio" class="ratingButtons">
+                    <input type="radio" id="like-${widget.entityId}" class="widgetLikeButton widgetRatingButton"
+                           value="10"
+                           name="rating-${widget.entityId}"${widgetStatistics.userRating=='10'?" checked='true'":""}>
+                    <label for="like-${widget.entityId}">${widgetStatistics.totalLike}</label>
+                    <input type="radio" id="dislike-${widget.entityId}"
+                           class="widgetDislikeButton widgetRatingButton" value="0"
+                           name="rating-${widget.entityId}"${widgetStatistics.userRating=='0'?" checked='true'":""}>
+                    <label for="dislike-${widget.entityId}">${widgetStatistics.totalDislike}</label>
+                </div>
             </div>
 
-            <div class="detailWidgetInfo">
+        </div>
 
-                <c:choose>
-                    <c:when test="${widget.widgetStatus eq 'PUBLISHED'}">
-                        <div id="widgetAdded_${widget.entityId}" class="detailWidgetAdd">
-                            <button class="storeItemButton"
-                                    id="addWidget_${widget.entityId}"
-                                    onclick="rave.api.rpc.addWidgetToPage({widgetId: ${widget.entityId}, pageId: ${referringPageId}, redirectAfterAdd:true});">
-                                <fmt:message key="page.widget.addToPage"/>
-                            </button>
-                        </div>
-                    </c:when>
-                    <c:when test="${widget.widgetStatus eq 'PREVIEW'}">
-                        <div class="alert-message info">
-                            <p><fmt:message key="widget.widgetStatus.PREVIEW"/></p>
-                        </div>
-                    </c:when>
-                </c:choose>
+        <div class="widgetComments">
+            <div class="new-comment">
+                <h3><fmt:message key="page.widget.comments"/></h3>
+                <textarea id="newComment-${widget.entityId}" rows="3" cols="50"></textarea>
+                <button id="comment-new-${widget.entityId}" class="commentNewButton"></button>
+            </div>
+            <c:if test="${not empty widget.comments}">
+                <ul class="comments">
+                <c:forEach var="comment" items="${widget.comments}">
+                    <li class="comment">
 
-                <c:if test="${not empty widget.author}">
-                    <p class="storeWidgetAuthor">
-                        <fmt:message key="widget.author"/>
-                        <c:out value=" "/><%-- intentional empty String in the c:out --%>
+                       <fmt:formatDate value="${comment.createdDate}" type="both" var="commentDate"/>
                         <c:choose>
-                            <c:when test="${not empty widget.authorEmail}">
-                                <a href="mailto:<c:out value="${widget.authorEmail}"/>"><c:out
-                                        value="${widget.author}"/></a>
+                            <c:when test="${not empty comment.user.displayName}">
+                                <c:out value="${comment.user.displayName}"/>
                             </c:when>
-                            <c:otherwise><c:out value="${widget.author}"/></c:otherwise>
+                            <c:otherwise><c:out value="${comment.user.username}"/></c:otherwise>
                         </c:choose>
-                    </p>
-                </c:if>
+                        <c:out value=" - ${commentDate} "/>
 
-                <c:if test="${not empty widget.description}">
-                    <p class="storeWidgetDesc"><c:out value="${widget.description}"/></p>
-                </c:if>
-
-                <div class="widgetRating">
-                    <fmt:message key="page.widget.rate"/>
-                    <div id="radio" class="ratingButtons">
-                        <input type="radio" id="like-${widget.entityId}" class="widgetLikeButton widgetRatingButton"
-                               value="10"
-                               name="rating-${widget.entityId}"${widgetStatistics.userRating=='10'?" checked='true'":""}>
-                        <label for="like-${widget.entityId}">${widgetStatistics.totalLike}</label>
-                        <input type="radio" id="dislike-${widget.entityId}"
-                               class="widgetDislikeButton widgetRatingButton" value="0"
-                               name="rating-${widget.entityId}"${widgetStatistics.userRating=='0'?" checked='true'":""}>
-                        <label for="dislike-${widget.entityId}">${widgetStatistics.totalDislike}</label>
-                    </div>
-                </div>
-
-            </div>
-
-            <div class="widgetComments">
-                <div class="new-comment">
-                    <h3><fmt:message key="page.widget.comments"/></h3>
-                    <textarea id="newComment-${widget.entityId}" rows="3" cols="50"></textarea>
-                    <button id="comment-new-${widget.entityId}" class="commentNewButton"></button>
-                </div>
-                <c:if test="${not empty widget.comments}">
-                    <ul class="comments">
-                    <c:forEach var="comment" items="${widget.comments}">
-                        <li class="comment">
-
-                           <fmt:formatDate value="${comment.createdDate}" type="both" var="commentDate"/>
-                            <c:choose>
-                                <c:when test="${not empty comment.user.displayName}">
-                                    <c:out value="${comment.user.displayName}"/>
-                                </c:when>
-                                <c:otherwise><c:out value="${comment.user.username}"/></c:otherwise>
-                            </c:choose>
-                            <c:out value=" - ${commentDate} "/>
-
-                            <c:if test="${userProfile.entityId eq comment.user.entityId}">
-                                <button id="comment-delete-${comment.entityId}" class="commentDeleteButton"
-                                        value="Delete" data-widgetid="<c:out value="${comment.widgetId}"/>"></button>
-                                <button id="comment-edit-${comment.entityId}" class="commentEditButton" value="Edit"
-                                        data-widgetid="<c:out value="${comment.widgetId}"/>"></button>
-                            </c:if>
-
-                            <p class="commentText"><c:out value="${comment.text}"/></p>
-
-                        </li>
-                    </c:forEach>
-                    </ul>
-                </c:if>
-            </div>
+                        <c:if test="${userProfile.entityId eq comment.user.entityId}">
+                            <button id="comment-delete-${comment.entityId}" class="commentDeleteButton"
+                                    value="Delete" data-widgetid="<c:out value="${comment.widgetId}"/>"></button>
+                            <button id="comment-edit-${comment.entityId}" class="commentEditButton" value="Edit"
+                                    data-widgetid="<c:out value="${comment.widgetId}"/>"></button>
+                        </c:if>
 
+                        <p class="commentText"><c:out value="${comment.text}"/></p>
 
+                    </li>
+                </c:forEach>
+                </ul>
+            </c:if>
         </div>
 
-    </div>
 
-    <fmt:message key="page.widget.comment.edit" var="editCommentTitle"/>
-    <div id="editComment-dialog" title="<c:out value="${editCommentTitle}"/>" style="display: none;">
-        <textarea id="editComment" rows="3" cols="50"> </textarea>
     </div>
-    <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js"></script>
-    <script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/jquery-ui.min.js"></script>
-    <!--[if lt IE 9]><script src=//css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js></script><![endif]-->
-    <script src="<spring:url value="/script/rave.js"/>"></script>
-    <script src="<spring:url value="/script/rave_api.js"/>"></script>
-    <script src="<spring:url value="/script/rave_store.js"/>"></script>
-    <script>
-        $(function() {
-            rave.setContext("<spring:url value="/app/" />");
-            rave.store.init();
-            rave.store.initComments();
-        });
-    </script>
 
-</rave:rave_generic_page>
+</div>
+
+<fmt:message key="page.widget.comment.edit" var="editCommentTitle"/>
+<div id="editComment-dialog" title="<c:out value="${editCommentTitle}"/>" style="display: none;">
+    <textarea id="editComment" rows="3" cols="50"> </textarea>
+</div>
+<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js"></script>
+<script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/jquery-ui.min.js"></script>
+<!--[if lt IE 9]><script src=//css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js></script><![endif]-->
+<script src="<spring:url value="/script/rave.js"/>"></script>
+<script src="<spring:url value="/script/rave_api.js"/>"></script>
+<script src="<spring:url value="/script/rave_store.js"/>"></script>
+<script>
+    $(function() {
+        rave.setContext("<spring:url value="/app/" />");
+        rave.store.init();
+        rave.store.initComments();
+    });
+</script>
\ No newline at end of file

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml Tue Dec 13 14:12:16 2011
@@ -25,7 +25,6 @@
     <!-- BASE DEFINITIONS FOR THE ENTIRE APPLICATION -->
     <definition name="templates.base" template="/WEB-INF/jsp/templates/base_layout.jsp">
         <put-attribute name="pageTitleKey" value="page.general.title"/>
-        <put-attribute name="pageTitleSuffixKey" value="page.general.titlesuffix"/>
         <put-attribute name="header" value="/WEB-INF/jsp/common/header.jsp"/>
         <put-attribute name="footer" value="/WEB-INF/jsp/common/footer.jsp"/>
     </definition>
@@ -37,5 +36,9 @@
     </definition>
 
     <!-- ADMIN ONLY PAGES -->
+    <definition name="templates.admin.*" extends="templates.base">
+        <put-attribute name="pageTitleKey" value="admin.{1}.title"/>
+        <put-attribute name="body" value="/WEB-INF/jsp/views/admin/{1}.jsp"/>
+    </definition>
 
 </tiles-definitions>
\ No newline at end of file

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/login.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/login.jsp?rev=1213701&r1=1213700&r2=1213701&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/login.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/login.jsp Tue Dec 13 14:12:16 2011
@@ -16,82 +16,84 @@
   ~ specific language governing permissions and limitations
   ~ under the License.
   --%>
-<%@ page trimDirectiveWhitespaces="true" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-<%@ taglib tagdir="/WEB-INF/tags" prefix="rave"%>
+<%@ page language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <fmt:setBundle basename="messages"/>
-
-<fmt:message key="page.login.title" var="pagetitle"/>
-
-<rave:rave_generic_page pageTitle="${pagetitle}">
-<div id="content">
-
-    <h1>${pagetitle}</h1>
-
-    <h2><fmt:message key="page.login.usernamepassword"/></h2>
-    <form id="loginForm" name="loginForm" action="j_spring_security_check" method="post">
-        <c:if test="${param['authfail'] eq 'form'}">
-            <p class="error"><fmt:message key="page.login.usernamepassword.fail"/></p>
-        </c:if>
-        <fieldset>
-            <p>
-                <label for="usernameField"><fmt:message key="page.general.username"/></label>
-                <input id="usernameField" type="text" name="j_username" autofocus="autofocus"/>
-            </p>
-
-            <p>
-                <label for="passwordField"><fmt:message key="page.general.password"/></label>
-                <input id="passwordField" type="password" name="j_password"/>
-            </p>
-            <p>
-                <label for="remember_me" class="checkboxLabel">
-                    <input type='checkbox' name='_spring_security_remember_me' id="remember_me"
-                           value="true"/>
-                    <fmt:message key="page.login.rememberme"/>
-                </label>
-            </p>
-        </fieldset>
-        <fieldset>
-          <fmt:message key="page.login.usernamepassword.login" var="loginButtonText"/>
-            <input type="submit" value="${loginButtonText}"/>
-        </fieldset>
-    </form>
-    
-    <h2><fmt:message key="page.login.createaccount"/></h2>
-    <form id="newAccount" action="<c:url value="/app/newaccount.jsp"/>" method="get">
-        <fieldset>
-            <p>
-              <label for="createNewAccountButton"><fmt:message key="page.login.createaccount.label"/></label>
-              <fmt:message key="page.login.createaccount.button" var="createAccountButtonText"/>
-              <input id="createNewAccountButton" type="submit" value="${createAccountButtonText}" />
-            </p>
-        </fieldset>
-    </form>
-    
-    <h2><fmt:message key="page.login.openid"/></h2>
-    <form id="oidForm" name='oidf' action='j_spring_openid_security_check' method='POST'>
-        <c:if test="${param['authfail'] eq 'openid'}">
-            <p class="error"><fmt:message key="page.login.openid.fail"/></p>
-        </c:if>
-        <fieldset>
-            <p>
-                <label for="openid_identifier"><fmt:message key="page.login.openid.identifier"/></label>
-                <input type='text' id="openid_identifier" name='openid_identifier' class="long"/>
-            </p>
-            <p>
-                <label for="remember_me_openid" class="checkboxLabel">
-                    <input type='checkbox' name='_spring_security_remember_me' id="remember_me_openid"
-                           value="true"/>
-                  <fmt:message key="page.login.rememberme"/>
-                </label>
-            </p>
-        </fieldset>
-        <fieldset>
-          <fmt:message key="page.login.openid.button" var="openidButtonText"/>
-            <input type="submit" value="${openidButtonText}"/>
-        </fieldset>
-
-    </form>
-</div>
-</rave:rave_generic_page>
+<%-- Note: This page has the body definition embedded so we can reference it directly from the security config file. --%>
+<tiles:insertDefinition name="templates.base">
+    <%-- Override the default pageTitleKey and then export it to the request scope for use later on this page --%>
+    <tiles:putAttribute name="pageTitleKey" value="page.login.title"/>
+    <tiles:importAttribute name="pageTitleKey" scope="request"/>
+
+    <tiles:putAttribute name="body">
+        <div id="content">
+
+            <h1><fmt:message key="${pageTitleKey}"/></h1>
+
+            <h2><fmt:message key="page.login.usernamepassword"/></h2>
+            <form id="loginForm" name="loginForm" action="j_spring_security_check" method="post">
+                <c:if test="${param['authfail'] eq 'form'}">
+                    <p class="error"><fmt:message key="page.login.usernamepassword.fail"/></p>
+                </c:if>
+                <fieldset>
+                    <p>
+                        <label for="usernameField"><fmt:message key="page.general.username"/></label>
+                        <input id="usernameField" type="text" name="j_username" autofocus="autofocus"/>
+                    </p>
+
+                    <p>
+                        <label for="passwordField"><fmt:message key="page.general.password"/></label>
+                        <input id="passwordField" type="password" name="j_password"/>
+                    </p>
+                    <p>
+                        <label for="remember_me" class="checkboxLabel">
+                            <input type='checkbox' name='_spring_security_remember_me' id="remember_me"
+                                   value="true"/>
+                            <fmt:message key="page.login.rememberme"/>
+                        </label>
+                    </p>
+                </fieldset>
+                <fieldset>
+                  <fmt:message key="page.login.usernamepassword.login" var="loginButtonText"/>
+                    <input type="submit" value="${loginButtonText}"/>
+                </fieldset>
+            </form>
+
+            <h2><fmt:message key="page.login.createaccount"/></h2>
+            <form id="newAccount" action="<c:url value="/app/newaccount.jsp"/>" method="get">
+                <fieldset>
+                    <p>
+                      <label for="createNewAccountButton"><fmt:message key="page.login.createaccount.label"/></label>
+                      <fmt:message key="page.login.createaccount.button" var="createAccountButtonText"/>
+                      <input id="createNewAccountButton" type="submit" value="${createAccountButtonText}" />
+                    </p>
+                </fieldset>
+            </form>
+
+            <h2><fmt:message key="page.login.openid"/></h2>
+            <form id="oidForm" name='oidf' action='j_spring_openid_security_check' method='POST'>
+                <c:if test="${param['authfail'] eq 'openid'}">
+                    <p class="error"><fmt:message key="page.login.openid.fail"/></p>
+                </c:if>
+                <fieldset>
+                    <p>
+                        <label for="openid_identifier"><fmt:message key="page.login.openid.identifier"/></label>
+                        <input type='text' id="openid_identifier" name='openid_identifier' class="long"/>
+                    </p>
+                    <p>
+                        <label for="remember_me_openid" class="checkboxLabel">
+                            <input type='checkbox' name='_spring_security_remember_me' id="remember_me_openid"
+                                   value="true"/>
+                          <fmt:message key="page.login.rememberme"/>
+                        </label>
+                    </p>
+                </fieldset>
+                <fieldset>
+                  <fmt:message key="page.login.openid.button" var="openidButtonText"/>
+                    <input type="submit" value="${openidButtonText}"/>
+                </fieldset>
+
+            </form>
+        </div>
+    </tiles:putAttribute>
+</tiles:insertDefinition>
\ No newline at end of file