You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by at...@apache.org on 2012/08/20 13:16:25 UTC

svn commit: r1374971 - in /rave/sandbox/content-services: demo-portal/src/main/java/ demo-portal/src/main/resources/ demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/ rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/

Author: ate
Date: Mon Aug 20 11:16:25 2012
New Revision: 1374971

URL: http://svn.apache.org/viewvc?rev=1374971&view=rev
Log:
RAVE-698: New dynamic page mapping and definition based on or cloned from Rave PageController. Work in progress but kind of working on url /portal/app/page (only)

Added:
    rave/sandbox/content-services/demo-portal/src/main/java/
    rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/footer.jsp
      - copied unchanged from r1373746, rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/common/footer.jsp
    rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-body.jsp   (with props)
    rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-content.jsp   (with props)
    rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-header.jsp
      - copied, changed from r1373746, rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/common/header.jsp
    rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-tabs.jsp   (with props)
    rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page.jsp
      - copied, changed from r1373746, rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/templates/base_layout.jsp
Modified:
    rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml
    rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java
    rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfig.java

Modified: rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml?rev=1374971&r1=1374970&r2=1374971&view=diff
==============================================================================
--- rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml (original)
+++ rave/sandbox/content-services/demo-portal/src/main/resources/page-configuration.xml Mon Aug 20 11:16:25 2012
@@ -20,9 +20,18 @@
 <configuration name="default">
 
   <page-definition name="myPage" path="/mypage2" description="My Page" displayname="My page" controller="org.apache.rave.portal.web.hmvc.example.MyPageController">
-    <page-fragment name="head" path="myHeader" controller="org.apache.rave.portal.web.hmvc.example.MyHeaderController"/>
-    <page-fragment name="body" path="myBody" controller="org.apache.rave.portal.web.hmvc.example.MyContentController"/>
-    <page-fragment name="footer" path="myFooter" controller="org.apache.rave.portal.web.hmvc.example.MyFooterController"/>
+    <page-fragment name="head" controller="org.apache.rave.portal.web.hmvc.example.MyHeaderController"/>
+    <page-fragment name="body" controller="org.apache.rave.portal.web.hmvc.example.MyContentController"/>
+    <page-fragment name="footer" controller="org.apache.rave.portal.web.hmvc.example.MyFooterController"/>
+  </page-definition>
+
+  <page-definition name="userPage" path="/page" controller="org.apache.rave.portal.web.hmvc.controller.UserPageController">
+    <page-fragment name="header" controller="org.apache.rave.portal.web.hmvc.controller.PageHeaderController"/>
+    <page-fragment name="body" controller="org.apache.rave.portal.web.hmvc.controller.PageBodyController">
+      <page-fragment name="tabs" controller="org.apache.rave.portal.web.hmvc.controller.PageTabsController"/>
+      <page-fragment name="content" controller="org.apache.rave.portal.web.hmvc.controller.PageContentController"/>
+    </page-fragment>
+    <page-fragment name="footer" controller="org.apache.rave.portal.web.hmvc.controller.FooterController"/>
   </page-definition>
 
 </configuration>

Added: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-body.jsp
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-body.jsp?rev=1374971&view=auto
==============================================================================
--- rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-body.jsp (added)
+++ rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-body.jsp Mon Aug 20 11:16:25 2012
@@ -0,0 +1,26 @@
+<%@ page language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
+<%@ taglib uri="http://www.apache-rave.org/jsp/core" prefix="hmvc" %>
+<jsp:useBean id="pageUser" type="org.apache.rave.portal.model.PageUser" scope="request"/>
+<sec:authentication property="principal.username" var="principleUsername" scope="request"/>
+
+<hmvc:include ref="tabs"/>
+<hmvc:include ref="content"/>
+
+<portal:register-init-script location="${'AFTER_RAVE'}">
+  <script>
+    $(function() {
+      rave.initPageEditorStatus(<c:out value="${pageUser.editor}"/>);
+      rave.initProviders();
+      rave.initWidgets();
+      rave.initUI();
+      rave.layout.init();
+      rave.layout.searchHandler.setDefaults("<c:out value="${principleUsername}"/>","<sec:authentication property="principal.id" />","<c:out value="${page.id}"/>", "${pageUser.pageStatus}");
+      rave.runOnPageInitializedHandlers();
+    });
+  </script>
+  <c:forEach var="members" items="${page.members}">
+    <script>rave.layout.searchHandler.addExistingMember("${members.user.username}",${members.editor});</script>
+  </c:forEach>
+</portal:register-init-script>
+

Propchange: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-body.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-body.jsp
------------------------------------------------------------------------------
    svn:keywords = Id

Added: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-content.jsp
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-content.jsp?rev=1374971&view=auto
==============================================================================
--- rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-content.jsp (added)
+++ rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-content.jsp Mon Aug 20 11:16:25 2012
@@ -0,0 +1,38 @@
+<%@ page language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
+<fmt:setBundle basename="messages"/>
+<jsp:useBean id="pageUser" type="org.apache.rave.portal.model.PageUser" scope="request"/>
+<div class="row-fluid">
+  <div id="emptyPageMessageWrapper" class="emptyPageMessageWrapper hidden">
+    <div class="emptyPageMessage">
+      <c:choose>
+        <c:when test="${pageUser.editor == true}">
+          <a href="<spring:url value="/app/store?referringPageId=${page.id}" />"><fmt:message key="page.general.empty"/></a>
+        </c:when>
+        <c:otherwise>
+          <fmt:message key="page.general.non.editing.empty"/>
+        </c:otherwise>
+      </c:choose>
+    </div>
+  </div>
+  <div class="regions">
+    <%-- insert the region layout template --%>
+
+      <%-- TODO: hardcoded columns_3_newuser template for now --%>
+      <div class="columns_3_newuser_static">
+        <fmt:message key="page.layout.newuser.introtext"/>
+      </div>
+
+      <div class="columns_3_newuser_widgets">
+        <div class="columns_3_newuser_subtitle"><fmt:message key="page.layout.newuser.subtitle"/></div>
+        <div class="widgetRow upperRow">
+          <rave:region region="${page.regions[0]}" regionIdx="1" />
+          <rave:region region="${page.regions[1]}" regionIdx="2" />
+        </div>
+        <div class="widgetRow bottomRow">
+          <rave:region region="${page.regions[2]}" regionIdx="3" />
+        </div>
+      </div>
+  </div>
+  <div class="clear-float">&nbsp;</div>
+</div>

Propchange: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-content.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-content.jsp
------------------------------------------------------------------------------
    svn:keywords = Id

Copied: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-header.jsp (from r1373746, rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/common/header.jsp)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-header.jsp?p2=rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-header.jsp&p1=rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/common/header.jsp&r1=1373746&r2=1374971&rev=1374971&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/common/header.jsp (original)
+++ rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-header.jsp Mon Aug 20 11:16:25 2012
@@ -21,4 +21,19 @@ under the License.
 <%-- example on how to render static content from the cache using the tag library
 <%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <portal:render-static-content contentKey="standardCompanyHeader" />
---%>
\ No newline at end of file
+--%>
+<%@ page language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
+<%@ taglib uri="http://www.apache-rave.org/jsp/core" prefix="hmvc" %>
+<fmt:setBundle basename="messages"/>
+<sec:authentication property="principal.username" var="principleUsername" scope="request"/>
+<sec:authentication property="principal.displayName" var="displayName" scope="request"/>
+<fmt:message key="page.home.welcome" var="pagetitle">
+  <fmt:param>
+    <c:choose>
+      <c:when test="${not empty displayName}"><c:out value="${displayName}"/></c:when>
+      <c:otherwise><c:out value="${principleUsername}"/></c:otherwise>
+    </c:choose>
+  </fmt:param>
+</fmt:message>
+<rave:navbar pageTitle="${pagetitle}"/>

Added: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-tabs.jsp
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-tabs.jsp?rev=1374971&view=auto
==============================================================================
--- rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-tabs.jsp (added)
+++ rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-tabs.jsp Mon Aug 20 11:16:25 2012
@@ -0,0 +1,245 @@
+<%@ page language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
+<%@ taglib uri="http://www.apache-rave.org/jsp/core" prefix="hmvc" %>
+<fmt:setBundle basename="messages"/>
+<jsp:useBean id="pages" type="java.util.List<org.apache.rave.portal.model.Page>" scope="request"/>
+<jsp:useBean id="pageUser" type="org.apache.rave.portal.model.PageUser" scope="request"/>
+<jsp:useBean id="pageLayouts" type="java.util.List<org.apache.rave.portal.model.JpaPageLayout>" scope="request"/>
+
+<c:set var="hasOnlyOnePage" scope="request">
+  <c:choose>
+    <c:when test="${fn:length(pages) == 1}">true</c:when>
+    <c:otherwise>false</c:otherwise>
+  </c:choose>
+</c:set>
+<c:set var="canMoveWidgetsToEditablePage" scope="request" value="false"/>
+
+<div id="pageContent" class="container-fluid">
+  <nav>
+    <ul class="nav nav-tabs">
+      <c:forEach var="userPage" items="${pages}">
+        <%-- determine if the current page in the list matches the page the user is viewing --%>
+        <c:set var="isCurrentPage">
+          <c:choose>
+            <c:when test="${page.id == userPage.id}">true</c:when>
+            <c:otherwise>false</c:otherwise>
+          </c:choose>
+        </c:set>
+        <c:set var="isSharedToMe">
+          <c:choose>
+            <c:when test="${userPage.owner.username == principleUsername}">false</c:when>
+            <c:otherwise>true</c:otherwise>
+          </c:choose>
+        </c:set>
+        <c:set var="isSharedByMe">
+          <c:choose>
+            <c:when test="${fn:length(userPage.members) > 1 and isSharedToMe == false}">true</c:when>
+            <c:otherwise>false</c:otherwise>
+          </c:choose>
+        </c:set>
+        <fmt:message key="sharing.page.tab.icon.tip.from" var="iconShareToolTipFrom">
+          <fmt:param value="${userPage.owner.username}"/>
+        </fmt:message>
+        <fmt:message key="sharing.page.tab.icon.tip.to" var="iconShareToolTipTo"/>
+        <c:choose>
+          <c:when test="${isCurrentPage}">
+            <li id="tab-${userPage.id}" class="active dropdown" >
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+                <c:if test="${isSharedToMe}">
+                  <b id="pageMenuSharedIcon" class="ui-icon ui-icon-person" title="<c:out value="${iconShareToolTipFrom}"/>"></b>
+                </c:if>
+                <c:if test="${isSharedByMe}">
+                  <b id="pageMenuSharedIcon" class="ui-icon ui-icon-folder-open" title="<c:out value="${iconShareToolTipTo}"/>"></b>
+                </c:if>
+                <c:out value="${userPage.name}"/>
+                <b class="caret"></b>
+              </a>
+              <ul class="dropdown-menu" >
+                <li id="pageMenuEdit" class="<c:if test="${isSharedToMe}">menu-item-disabled</c:if>"><a href="#"><fmt:message key="page.general.editpage"/></a></li>
+                <li id="pageMenuDelete" class="<c:if test='${hasOnlyOnePage or isSharedToMe}'>menu-item-disabled</c:if>"><a href="#"><fmt:message key="page.general.deletepage"/></a></li>
+                <li id="pageMenuMove" class="<c:if test='${hasOnlyOnePage}'>menu-item-disabled</c:if>"><a href="#"><fmt:message key="page.general.movepage"/></a></li>
+                <li id="pageMenuShare" class="<c:if test="${isSharedToMe}">menu-item-disabled</c:if>"><a href="#"><fmt:message key="page.general.sharepage"/></a></li>
+                <li id="pageMenuRevokeShare" class="<c:if test="${isSharedToMe == false}">menu-item-disabled</c:if>"><a href="#"><fmt:message key="page.general.removeshare"/></a></li>
+              </ul>
+            </li>
+          </c:when>
+          <c:otherwise>
+            <li id="tab-${userPage.id}" onclick="rave.viewPage(${userPage.id});">
+              <c:choose>
+                <c:when test="${isSharedToMe}">
+                  <a href="#" class="rave-ui-tab-shared-to-me">
+                    <b id="pageMenuSharedIcon" class="ui-icon ui-icon-person" title="<c:out value="${iconShareToolTipFrom}"/>"></b>
+                    <c:out value="${userPage.name}"/>
+                  </a>
+                </c:when>
+                <c:when test="${isSharedByMe}">
+                  <a href="#" class="rave-ui-tab-shared-by-me">
+                    <b id="pageMenuSharedIcon" class="ui-icon ui-icon-folder-open" title="<c:out value="${iconShareToolTipTo}"/>"></b>
+                    <c:out value="${userPage.name}"/>
+                  </a>
+                </c:when>
+                <c:otherwise>
+                  <a href="#"><c:out value="${userPage.name}"/></a>
+                </c:otherwise>
+              </c:choose>
+            </li>
+          </c:otherwise>
+        </c:choose>
+        <c:forEach var="members" items="${userPage.members}">
+          <c:if test="${members.user.username == principleUsername and members.editor and userPage.id != page.id}">
+            <c:set var="canMoveWidgetsToEditablePage" scope="request" value="true"/>
+          </c:if>
+        </c:forEach>
+      </c:forEach>
+      <li id="addPageButton"><a href="#"><i class="icon-plus"></i></a></li>
+    </ul>
+  </nav>
+</div>
+
+<div id="pageMenuDialog" class="modal hide" data-backdrop="static">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3 id="pageMenuDialogHeader"></h3>
+  </div>
+  <div class="modal-body">
+    <form id="pageForm" class="form-horizontal">
+      <input type="hidden" name="tab_id" id="tab_id" value=""/>
+      <fieldset>
+        <div class="control-group error">
+          <label id="pageFormErrors" class="control-label"></label>
+        </div>
+        <div class="control-group">
+          <label class="control-label" for="tab_title"><fmt:message key="page.general.addpage.title"/></label>
+          <div class="controls">
+            <input id="tab_title" name="tab_title" class="input-xlarge focused required" type="text" value="" />
+          </div>
+        </div>
+        <div class="control-group">
+          <label class="control-label" for="pageLayout"><fmt:message key="page.general.addpage.selectlayout"/></label>
+          <div class="controls">
+            <select name="pageLayout" id="pageLayout">
+              <c:forEach var="pageLayout" items="${pageLayouts}">
+                <option value="${pageLayout.code}" id="${pageLayout.code}_id">
+                  <fmt:message key="page.general.addpage.layout.${pageLayout.code}"/></option>
+              </c:forEach>
+            </select>
+          </div>
+        </div>
+      </fieldset>
+    </form>
+  </div>
+  <div class="modal-footer">
+    <a id="pageMenuCloseButton" href="#" class="btn"><fmt:message key="_rave_client.common.cancel"/></a>
+    <a id="pageMenuUpdateButton" href="#" class="btn btn-primary"></a>
+  </div>
+</div>
+
+<div id="movePageDialog" class="modal hide" data-backdrop="static">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3><fmt:message key="page.general.movethispage"/></h3>
+  </div>
+  <div class="modal-body">
+    <form id="movePageForm" class="form-horizontal">
+      <fieldset>
+        <div class="control-group">
+          <div class="controls">
+            <select id="moveAfterPageId">
+              <c:if test="${pageUser.renderSequence != 1}">
+                <option value="-1"><fmt:message key="page.general.movethispage.tofirst"/></option>
+              </c:if>
+              <c:forEach var="userPage" items="${pages}">
+                <c:if test="${userPage.id != page.id}">
+                  <option value="${userPage.id}">
+                    <fmt:message key="page.general.movethispage.after">
+                      <fmt:param><c:out value="${userPage.name}"/></fmt:param>
+                    </fmt:message>
+                  </option>
+                </c:if>
+              </c:forEach>
+            </select>
+          </div>
+        </div>
+      </fieldset>
+    </form>
+  </div>
+  <div class="modal-footer">
+    <a href="#" class="btn" onclick="$('#movePageDialog').modal('hide');"><fmt:message key="_rave_client.common.cancel"/></a>
+    <a href="#" class="btn btn-primary" onclick="rave.layout.movePage();"><fmt:message key="page.general.movepage"/></a>
+  </div>
+</div>
+
+<fmt:message key="widget.menu.movetopage" var="moveWidgetToPageTitle"/>
+<div id="moveWidgetModal" class="modal hide" data-backdrop="static">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3><fmt:message key="widget.menu.movethiswidget"/></h3>
+  </div>
+  <div class="modal-body">
+    <form id="moveWidgetForm" class="form-horizontal">
+      <fieldset>
+        <div class="control-group">
+          <div class="controls">
+            <select id="moveToPageId">
+              <c:forEach var="userPage" items="${pages}">
+                <c:forEach var="members" items="${userPage.members}">
+                  <c:if test="${members.user.username == principleUsername and members.editor and userPage.id != page.id}">
+                    <option value="${userPage.id}">
+                      <c:out value="${userPage.name}"/>
+                    </option>
+                  </c:if>
+                </c:forEach>
+              </c:forEach>
+            </select>
+          </div>
+        </div>
+      </fieldset>
+    </form>
+  </div>
+  <div class="modal-footer">
+    <a href="#" class="btn" onclick="$('#moveWidgetModal').modal('hide');"><fmt:message key="_rave_client.common.cancel"/></a>
+    <a href="#" class="btn btn-primary" onclick="rave.layout.moveWidgetToPage($('#moveWidgetModal').data('regionWidgetId'));"><fmt:message key="_rave_client.common.move"/></a>
+  </div>
+</div>
+
+<div id="sharePageDialog" class="modal hide" data-backdrop="static">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3><fmt:message key="page.general.search.title"/></h3>
+  </div>
+  <div class="modal-body">
+    <div id="sharePageDialogContent" >
+      <div id="shareContent">
+        <div id="searchControls"><input id="searchTerm" name="searchTerm" type="text"/>
+          <input id="shareSearchButton" value="<fmt:message key="page.store.search.button"/>" type="submit"/>
+          <input id="clearSearchButton" value="<fmt:message key="admin.clearsearch"/>" type="submit" class="hide"/>
+        </div>
+        <div id="shareSearchListHeader"></div>
+        <div id="shareSearchListPaging"></div>
+        <div id="shareSearchResults"></div>
+      </div>
+    </div>
+  </div>
+  <div class="modal-footer">
+    <a href="#" class="btn" onclick="$('#sharePageDialog').modal('hide');"><fmt:message key="_rave_client.common.cancel"/></a>
+  </div>
+</div>
+
+<div id="confirmSharePageDialog" class="modal hide" data-backdrop="static">
+  <div class="modal-header">
+    <a href="#" class="close" data-dismiss="modal">&times;</a>
+    <h3><fmt:message key="sharing.dialog.confirm.title"/></h3>
+  </div>
+  <div class="modal-body">
+    <div id="confirmSharePageDialogLegend">
+      <fmt:message key="sharing.dialog.confirm.message">
+        <fmt:param value="${page.owner.username}"/>
+      </fmt:message>
+    </div>
+  </div>
+  <div class="modal-footer">
+    <a href="#" class="btn btn-primary" onclick="rave.layout.searchHandler.acceptShare()"><fmt:message key="_rave_client.common.accept"/></a>
+    <a href="#" class="btn" onclick="rave.layout.searchHandler.declineShare();"><fmt:message key="_rave_client.common.decline"/></a>
+    <a href="#" class="btn" onclick="$('#confirmSharePageDialog').modal('hide');"><fmt:message key="_rave_client.common.cancel"/></a>
+  </div>
+</div>

Propchange: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-tabs.jsp
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page-tabs.jsp
------------------------------------------------------------------------------
    svn:keywords = Id

Copied: rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page.jsp (from r1373746, rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/templates/base_layout.jsp)
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page.jsp?p2=rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page.jsp&p1=rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/templates/base_layout.jsp&r1=1373746&r2=1374971&rev=1374971&view=diff
==============================================================================
--- rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/templates/base_layout.jsp (original)
+++ rave/sandbox/content-services/demo-portal/src/main/webapp/WEB-INF/jsp/views/hmvc/page.jsp Mon Aug 20 11:16:25 2012
@@ -1,26 +1,8 @@
-<%--
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements.  See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership.  The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied.  See the License for the
-specific language governing permissions and limitations
-under the License.
---%>
+<%@ page import="javax.xml.bind.JAXBElement" %>
 <%@ page language="java" trimDirectiveWhitespaces="true" %>
-<%@ page errorPage="/WEB-INF/jsp/views/error.jsp" %>
 <%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
-<%-- Expose any attributes defined in the tiles-defs.xml to the request scope for use in other tiles --%>
-<tiles:importAttribute scope="request"/>
+<%@ taglib uri="http://www.apache-rave.org/jsp/core" prefix="hmvc" %>
+
 <!DOCTYPE html>
 <html class="no-js">
 <head>
@@ -31,12 +13,13 @@ under the License.
     <rave:third_party_head_js/>
  </head>
 <body>
+  <input id="currentPageId" type="hidden" value="${page.id}"/>
 <%-- Header Content --%>
-<tiles:insertAttribute name="header"/>
+<hmvc:include ref="header"/>
 <%-- Main Body Content --%>
-<tiles:insertAttribute name="body"/>
+<hmvc:include ref="body"/>
 <%-- Footer Content --%>
-<tiles:insertAttribute name="footer"/>
+<hmvc:include ref="footer"/>
 <%-- render any script that needs to execute pre-src includes --%>
 <portal:render-init-script location="${'BEFORE_RAVE'}" />
 <%-- render the javascript src includes at the bottom of the page for performance --%>

Modified: rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java?rev=1374971&r1=1374970&r2=1374971&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java (original)
+++ rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodHandlerAdapter.java Mon Aug 20 11:16:25 2012
@@ -24,6 +24,7 @@ import javax.servlet.http.HttpServletRes
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.DispatcherServlet;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.method.annotation.ForkedRequestMappingHandlerAdapter;
 
@@ -40,6 +41,7 @@ public class HmvcHandlerMethodHandlerAda
             Map<String, ModelAndView> cmvMap = new LinkedHashMap<String, ModelAndView>();
             for (String name : hm.getChildrenNames()) {
                 HmvcHandlerMethod chm = hm.getChild(name);
+                request.setAttribute(DispatcherServlet.INPUT_FLASH_MAP_ATTRIBUTE, mv.getModel());
                 ModelAndView cmv = handleInternal(request, response, chm);
                 if (cmv != null) {
                     // override view name (if set):

Modified: rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfig.java
URL: http://svn.apache.org/viewvc/rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfig.java?rev=1374971&r1=1374970&r2=1374971&view=diff
==============================================================================
--- rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfig.java (original)
+++ rave/sandbox/content-services/rave-web-hmvc/src/main/java/org/apache/rave/portal/web/hmvc/HmvcHandlerMethodMappingByConfig.java Mon Aug 20 11:16:25 2012
@@ -76,11 +76,10 @@ public class HmvcHandlerMethodMappingByC
                     RequestMapping annotation = AnnotationUtils.findAnnotation(method, RequestMapping.class);
                     RequestMappingInfo mappingInfo = createMappingInfo(annotation, pageDefinition);
                     try {
-                        Object handler = controllerClass.newInstance();
+                        Object handler = getApplicationContext().getBean(controllerClass);
+//                        Object handler = controllerClass.newInstance();
                         registerPageHandlerMethod(pageDefinition, handler, method, mappingInfo);
-                    } catch (InstantiationException e) {
-                        log.error("Error", e);
-                    } catch (IllegalAccessException e) {
+                    } catch (Exception e) {
                         log.error("Error", e);
                     }
                 }