Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
 Thu Aug  9 21:45:33 2012
@@ -25,6 +25,8 @@
 <%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <fmt:setBundle basename="messages"/>
 <jsp:useBean id="userProfile" type="org.apache.rave.portal.model.JpaUser" 
scope="request"/>
+<sec:authentication property="principal.username" var="principleUsername" 
scope="request"/>
+<sec:authentication property="principal.displayName" var="displayName" 
scope="request"/>
 
 <!-- get the display name of user -->
 <fmt:message key="page.personProfile.title" var="pageTitle">
@@ -44,8 +46,8 @@
 <fmt:message key="page.home.welcome" var="pagetitle">
     <fmt:param>
         <c:choose>
-            <c:when test="${not empty page.owner.displayName}"><c:out 
value="${page.owner.displayName}"/></c:when>
-            <c:otherwise><c:out value="${page.owner.username}"/></c:otherwise>
+            <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>
@@ -54,67 +56,92 @@
 <div id="pageContent" class="container-fluid navbar-spacer">
     <div class="row-fluid">
         <div class="span9">
-            <div id="personProfileContent" class="row-fluid">
-                <form:form id="editAccountForm" commandName="userProfile" 
action="person?referringPageId=${referringPageId}" method="POST">
-                    <!-- Display personal information of user-->
-                    <h2><fmt:message key="page.profile.personal.info" /></h2>
-                    <fieldset>
-                        <div class="span12">
-                            <p>
-                                <label for="givenNameField"><fmt:message 
key="page.profile.first.name"/></label>
-                                <label id="givenName" 
class="profile-info-visible"><c:out value="${userProfile.givenName}"/></label>
-                                <form:input id="givenNameField" 
path="givenName" class="profile-info-hidden" value="${userProfile.givenName}" />
-                            </p>
-                        </div>
-                        <div class="span12">
-                            <p>
-                                <label for="familyNameField"><fmt:message 
key="page.profile.last.name"/></label>
-                                <label id="familyName" 
class="profile-info-visible"><c:out value="${userProfile.familyName}"/></label>
-                                <form:input id="familyNameField" 
path="familyName" class="profile-info-hidden" 
value="${userProfile.familyName}"/>
-                            </p>
-                        </div>
-                        <div class="span12">
-                            <p>
-                                <label for="displayNameField" 
class="profile-info-hidden"><fmt:message 
key="page.profile.display.name"/></label>
-                                <form:input id="displayNameField" 
path="displayName" class="profile-info-hidden" 
value="${userProfile.displayName}"/>
-                            </p>
-                        </div>
-                    </fieldset>
+            <div id="personProfileContent">
+                <form:form id="editAccountForm" commandName="userProfile" 
action="person?referringPageId=${referringPageId}" method="POST" 
class="form-horizontal">
 
-                    <!-- Display basic information of user -->
-                    <h2><fmt:message key="page.profile.basic.info" /></h2>
-                    <fieldset>
-                        <div class="span12">
-                            <p>
-                                <label for="aboutMeField"><fmt:message 
key="page.profile.about.me"/></label>
-                                <label id="aboutMe" 
class="profile-info-visible"><c:out value=" ${userProfile.aboutMe}"/></label>
-                                <form:textarea id="aboutMeField" 
path="aboutMe" class="profile-info-hidden" value="${userProfile.aboutMe}" />
-                            </p>
-                        </div>
-                        <div class="span12">
-                            <p>
-                                <label for="statusField"><fmt:message 
key="page.profile.status"/></label>
-                                <label id="status" 
class="profile-info-visible"><c:out value=" ${userProfile.status}"/></label>
-                                <form:input id="statusField" path="status" 
class="profile-info-hidden" value="${userProfile.status}" />
-                            </p>
+                    <fieldset class="row-fluid" id="userProfilePrimaryData">
+                       <div class="span2 profile-user-thumb">
+                               <img 
src="http://placehold.it/125x165&text=photo"/>
+                       </div>
+
+                        <div class="span10">
+                               <!-- Display user info-->
+                               <div class="profile-info-visible">
+                                       <h2><c:out 
value="${userProfile.displayName}"/></h2>
+                                       <h3><span id="givenName"><c:out 
value="${userProfile.givenName}"/></span>&nbsp;<span id="familyName"><c:out 
value="${userProfile.familyName}"/></span></h3>
+                                <p class="profile-user-status">
+                                       <fmt:message key="page.profile.status"/>
+                                       &nbsp;<span id="status"><c:out 
value="${userProfile.status}"/></span>
+                                </p>
+                                <p class="profile-info-visible">
+                                       <fmt:message 
key="page.profile.about.me"/>
+                                       &nbsp;<span id="aboutMe"><c:out value=" 
${userProfile.aboutMe}"/></span>
+                                </p>
+                               </div>
+                               <!-- Display edit view of user info-->
+                               <div class="profile-info-hidden">
+                                       <div class="control-group">
+                                       <label for="displayNameField" 
class="control-label"><fmt:message key="page.profile.display.name"/></label>
+                                       <div class="controls">
+                                               <form:input 
id="displayNameField" path="displayName" value="${userProfile.displayName}" 
class="span6"/>
+                                       </div>
+                                       </div>
+                                       <div class="control-group">
+                                               <label class="control-label 
pull-left"><fmt:message key="page.profile.first.name"/></label>
+                                                       <form:input 
id="givenNameField" path="givenName" class="span3 pull-left" 
value="${userProfile.givenName}" />&nbsp;
+
+                                       <label class="control-label 
pull-left"><fmt:message key="page.profile.last.name"/></label>
+                                               <form:input 
id="familyNameField" path="familyName" class="span3 pull-left" 
value="${userProfile.familyName}"/>
+                                       </div>
+                                       <div class="control-group">
+                                               <label for="statusField" 
class="control-label"><fmt:message key="page.profile.status"/></label>
+                                               <div class="controls">
+                                                       <form:select 
path="status" class="span3" id="statusField">
+                                                                       
<fmt:message key="page.general.relation.single" var="singleText"/>
+                                                                   
<form:option value="${singleText}" id="single_id">${singleText}</form:option>
+                                                                   
<fmt:message key="page.general.relation.committed" var="committedText"/>
+                                                                   
<form:option value="${committedText}" 
id="committed_id">${committedText}</form:option>
+                                                                   
<fmt:message key="page.general.relation.married" var="marriedText"/>
+                                                                   
<form:option value="${marriedText}" id="married_id">${marriedText}</form:option>
+                                                                   
<fmt:message key="page.general.relation.other" var="otherText"/>
+                                                                   
<form:option value="${otherText}" id="other_id">${otherText}</form:option>
+                                                               </form:select>
+                                               </div>
+                                       </div>
+                                       <div class="control-group">
+                                               <label for="aboutMeField" 
class="control-label"><fmt:message key="page.profile.about.me"/></label>
+                                               <div class="controls">
+                                                       <form:textarea 
id="aboutMeField" path="aboutMe" value="${userProfile.aboutMe}" class="span11" 
/>
+                                               </div>
+                                       </div>
+                               </div>
                         </div>
                     </fieldset>
 
                     <!-- Display contact information of user -->
-                    <h2><fmt:message key="page.profile.contact.info" /></h2>
-                    <fieldset>
-                        <div class="span12">
-                            <p>
-                                <label for="emailField"><fmt:message 
key="page.profile.email"/></label>
-                                <label id="email" 
class="profile-info-visible"><c:out value=" ${userProfile.email}"/></label>
-                                <form:input id="emailField" path="email" 
class="profile-info-hidden" value="${userProfile.email}" />
-                            </p>
-                        </div>
+                           <fieldset class="row-fluid">
+                           <div class=" span12">
+                               <div class="well">
+                                       <h4><fmt:message 
key="page.profile.contact.info" /></h4>
+                                   <div class="profile-info-visible">
+                                       <p id='email'><c:out value=" 
${userProfile.email}"/></p>
+                                   </div>
+                                   <div class="profile-info-hidden">
+                                       <div class="control-group">
+                                               <label for="emailField" 
class="control-label"><fmt:message key="page.profile.email"/></label>
+                                               <div class="controls">
+                                                       <form:input 
id="emailField" path="email" class="span5" value="${userProfile.email}" />
+                                               </div>
+                                       </div>
+                                   </div>
+                               </div>
+                           </div>
                     </fieldset>
+
                     <%-- only display the edit profile button if the current 
logged in user matches the profile being viewed --%>
                     <c:set var="currentUsername"><sec:authentication 
property="principal.username" htmlEscape="false" /></c:set>
                     <c:if test="${currentUsername == userProfile.username}">
-                        <fieldset>
+                       <fieldset class="row-fluid">
                             <div class="span12">
                                 <p>
                                     <input type="hidden" id="profileInfo" 
value="profile-info" />
@@ -126,6 +153,7 @@
                              </div>
                         </fieldset>
                     </c:if>
+
                 </form:form>
             </div>
 
@@ -157,6 +185,10 @@
             rave.initUI();
             rave.layout.init();
             rave.personprofile.init();
+            rave.setPageOwner({
+                username: "${userProfile.username}",
+                id: "${userProfile.id}"
+            });
         });
     </script>
 </portal:register-init-script>

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/retrieveusername.jsp
 Thu Aug  9 21:45:33 2012
@@ -23,75 +23,50 @@
 <tiles:putAttribute name="pageTitleKey" value="page.retrieveusername.title"/>
 <tiles:importAttribute name="pageTitleKey" scope="request"/>
 
-<header>
-    <nav>
-        <div class="navbar navbar-fixed-top">
-            <div class="container">
-                <a href="<c:url value="/"/>" class="brand">RAVE</a>
-                <ul class="nav pull-right">
-                    <li class="divider-vertical"></li>
-                    <li>
-                        <form class="form-inline" action="<c:url 
value="/app/newpassword"/>" method="get">
-                            <fmt:message 
key="page.login.forgot.password.button" var="requestNewPasswordButtonText"/>
-                            <button class="btn btn-info" 
id="requestNewPasswordButton" type="submit" 
value="${requestNewPasswordButtonText}">${requestNewPasswordButtonText}</button>
-                        </form>
-                    </li>
-                    <li class="divider-vertical"></li>
-                    <li>
-                        <form class="form-inline" action="<c:url 
value="/app/newaccount.jsp"/>" method="get">
-                            <fieldset>
-                                <fmt:message 
key="page.login.createaccount.button" var="createAccountButtonText"/>
-                                <button class="btn btn-info" 
id="createNewAccountButton" type="submit" 
value="${createAccountButtonText}">${createAccountButtonText}</button>
-                            </fieldset>
-                        </form>
-                    </li>
-                    <li class="divider-vertical"></li>
-                </ul>
-            </div>
-        </div>
-    </nav>
-</header>
-<br><br>
-<div class="container navbar-spacer">
-    <h1><fmt:message key="page.retrieveusername.title"/></h1>
-    <c:choose>
-        <c:when test="${success}">
+<rave:login_navbar hideButton="requestNewUsernameButton" />
 
-            <div class="alert-message success">
-                <fmt:message key="page.newpassword.email.sent">
-                    <fmt:param>${email}</fmt:param>
-                </fmt:message>
-            </div>
-            <a href="<c:url value="/"/>"><fmt:message 
key="page.newpassword.email.sent.login"/></a>
-        </c:when>
-
-        <c:otherwise>
-            <form:form cssClass="form-horizontal well" commandName="user" 
action="retrieveusername" method="post">
-                <fieldset>
-                    <p><fmt:message key="form.all.fields.required"/></p>
-
-                    <p><form:errors cssClass="error"/></p>
-
-                    <div class="control-group">
-
-                        <label class="control-label" 
for="emailField"><fmt:message key="page.general.email"/></label>
-                        <div class="controls">
-                            <form:input id="emailField" path="email" 
required="required" autofocus="autofocus"/>
-                            <form:errors path="email" cssClass="error"/>
-                        </div>
-                    </div>
-                </fieldset>
-                <fieldset>
-                    <div class="control-group">
-                        <div class="controls">${captchaHtml}</div>
-                    </div>
-                </fieldset>
-
-                <fieldset>
-                    <fmt:message key="page.login.forgot.username.button" 
var="submitButtonText"/>
-                    <button class="btn btn-primary" type="submit" 
value="${submitButtonText}">${submitButtonText}</button>
-                </fieldset>
-            </form:form>
-        </c:otherwise>
-    </c:choose>
+<div class="container-fluid">
+       <div class="row-fluid">
+           <h1><fmt:message key="page.retrieveusername.title"/></h1>
+           <c:choose>
+               <c:when test="${success}">
+       
+                   <div class="alert-message success">
+                       <fmt:message key="page.newpassword.email.sent">
+                           <fmt:param>${email}</fmt:param>
+                       </fmt:message>
+                   </div>
+                   <a href="<c:url value="/"/>"><fmt:message 
key="page.newpassword.email.sent.login"/></a>
+               </c:when>
+       
+               <c:otherwise>
+                   <form:form cssClass="form-horizontal well" 
commandName="user" action="retrieveusername" method="post">
+                       <fieldset>
+                           <p><fmt:message key="form.all.fields.required"/></p>
+       
+                           <p><form:errors cssClass="error"/></p>
+       
+                           <div class="control-group">
+       
+                               <label class="control-label" 
for="emailField"><fmt:message key="page.general.email"/></label>
+                               <div class="controls">
+                                   <form:input id="emailField" path="email" 
required="required" autofocus="autofocus"/>
+                                   <form:errors path="email" cssClass="error"/>
+                               </div>
+                           </div>
+                       </fieldset>
+                       <fieldset>
+                           <div class="control-group">
+                               <div class="controls">${captchaHtml}</div>
+                           </div>
+                       </fieldset>
+       
+                       <fieldset>
+                           <fmt:message 
key="page.login.forgot.username.button" var="submitButtonText"/>
+                           <button class="btn btn-primary" type="submit" 
value="${submitButtonText}">${submitButtonText}</button>
+                       </fieldset>
+                   </form:form>
+               </c:otherwise>
+           </c:choose>
+       </div>
 </div>
\ No newline at end of file

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/rave_js.tag
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/rave_js.tag?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/rave_js.tag
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/rave_js.tag
 Thu Aug  9 21:45:33 2012
@@ -18,11 +18,11 @@
 
 --%>
 <%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
-<portal:render-script location="${'BEFORE_LIB'}" />
-<rave:third_party_js />
-<portal:render-script location="${'AFTER_LIB'}" />
+<portal:render-script location="${'BEFORE_LIB'}"/>
+<rave:third_party_js/>
+<portal:render-script location="${'AFTER_LIB'}"/>
 <%-- local rave scripts --%>
-<portal:render-script location="${'BEFORE_RAVE'}" />
+<portal:render-script location="${'BEFORE_RAVE'}"/>
 <%-- check to see if the javaScriptDebugMode is on, if so render the 
individual JS files, otherwise render the minified single file --%>
 <c:choose>
     <c:when test="${not empty portalSettings and not empty 
portalSettings['javaScriptDebugMode'] and 
portalSettings['javaScriptDebugMode'].value == '0'}">
@@ -41,8 +41,14 @@
     </c:otherwise>
 </c:choose>
 <script src="<spring:url 
value="/app/messagebundle/rave_client_messages.js"/>"></script>
-<portal:render-script location="${'AFTER_RAVE'}" />
+<portal:render-script location="${'AFTER_RAVE'}"/>
 <%-- common javascript to execute on all pages --%>
 <script>
     rave.setContext("<spring:url value="/app/" />");
+    <sec:authorize access="isAuthenticated()">
+        <sec:authentication property="principal.username" scope="request" 
var="username"/>
+        <sec:authentication property="principal.id" scope="request" var="id"/>
+        rave.setPageViewer({username:"${username}",
+            id:"${id}"});
+    </sec:authorize>
 </script>

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tiles-defs.xml
 Thu Aug  9 21:45:33 2012
@@ -22,6 +22,14 @@
 
 <tiles-definitions>
 
+       <!-- PARTIALS -->
+       <definition name="templates.partial" 
template="/WEB-INF/jsp/templates/partial_layout.jsp">
+    </definition>
+    
+    <definition name="templates.partial.regionwidget" 
extends="templates.partial">
+        <put-attribute name="body" 
value="/WEB-INF/jsp/views/regionwidget.jsp"/>
+    </definition>
+
     <!-- 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"/>

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/css/rave-css.less
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/static/css/rave-css.less?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/css/rave-css.less
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/css/rave-css.less
 Thu Aug  9 21:45:33 2012
@@ -20,7 +20,14 @@
 .hidden {
     display: none;
 }
-
+.alert-error a{
+       color: @errorText;
+       text-decoration: underline;
+       
+       &:hover{
+               color: #B12926;
+       }
+}
 /* content */
 #content {
     background-color: transparent;
@@ -36,9 +43,31 @@
 
 #personProfileContent {
     background-color: transparent;
-    padding: 0 20px;
-    width: 90%;
-    margin: 1em auto 0;
+    /*padding: 0 20px;
+    width: 90%;*/
+    margin: 1em 0 0;
+
+       .form-horizontal .controls{
+               margin-left: 100px;
+       }
+       
+       .profile-user-thumb img{
+               max-width: 100%;
+       }
+       
+       #userProfilePrimaryData{ margin-bottom: 20px;}
+
+    h3{font-weight: normal; margin-bottom: 9px;}
+
+    #editAccountForm {
+       input[type="text"]{float: left;}
+       
+       label{
+               text-align: right;
+               width: 95px;
+               margin-right: 5px;
+           }
+       }
 }
 
 .person-profile-page-content {
@@ -219,6 +248,14 @@
 /* layout */
 .navbar {
     margin-bottom: 18px;
+    
+    .nav form{
+           margin: 0;
+           
+           button{
+                   margin-top: 7px;
+           }
+    }
 }
 
 .regions {
@@ -781,8 +818,12 @@ span.error, label.error {
 
 #errorStack {
     display: none;
-    width: 90%;
     margin: auto;
+    text-align: center;
+    
+    pre{
+           text-align: left;
+    }
 }
 
 .errorMessage {
@@ -1176,4 +1217,4 @@ footer {
        }
 }
 @media (min-width: 768px) and (max-width: 979px) { }
-@media (min-width: 1200px) { }
\ No newline at end of file
+@media (min-width: 1200px) { }

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave.js
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave.js?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave.js
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave.js
 Thu Aug  9 21:45:33 2012
@@ -26,6 +26,14 @@ var rave = rave || (function () {
     // variable to store whether or not some
     // UI actions should be propagated back to the server
     var pageEditor = true;
+    var pageViewer = {
+        username: "Unknown",
+        id:-1
+    };
+    var pageOwner = {
+        username: "Unknown",
+        id:-1
+    };
 
     var onWidgetsInitializedHandlers = [];
     var onProvidersInitializedHandlers = [];
@@ -946,6 +954,24 @@ var rave = rave || (function () {
     function resetOpenAjaxHubInstance() {
         openAjaxHub = null;
     }
+    
+    function renderNewWidget(regionWidgetId){
+        // When run as the callback argument supplied to 
rave.api.rpc.addWidgetToPage
+        // this method will render the widget in the current page.
+        
+        // load widget into a placeholder element
+        var placeholder = document.createElement("div");
+        
$(placeholder).load(rave.getContext()+"/api/rest/regionwidget/"+regionWidgetId, 
function(){
+          // prepend to first region
+          var region = $("#region-1-id");
+          region.prepend(placeholder);
+          // remove the placeholder around the widget-wrapper
+          region.children(":first").children(":first").unwrap();
+          // initialize
+          initializeWidgets();
+          }        
+        );
+    }
 
     function initializeWidgets() {
         //We get the widget objects in a map keyed by region ID.  The code 
below converts that map into a flat array
@@ -1003,6 +1029,18 @@ var rave = rave || (function () {
     }
 
     function initializeWidget(widget) {
+    
+        // Widget has been deleted on the page but not removed from list
+        var widgetBody = $(["#widget-", widget.regionWidgetId, 
"-body"].join(""));
+        if(widgetBody.length === 0){
+          return;
+        } else {
+            // Widget has already been initialized
+            if(typeof widgetBody.children !== "undefined" && 
widgetBody.children().length !== 0){
+              return;
+            }
+        }
+    
         if (widget.type == "DISABLED") {
             renderDisabledWidget(widget.regionWidgetId, 
unescape(widget.disabledMessage));
             return;
@@ -1044,6 +1082,22 @@ var rave = rave || (function () {
         return context;
     }
 
+    function setPageViewer(viewer) {
+        pageViewer = viewer;
+    }
+
+    function getPageViewer(){
+        return pageViewer;
+    }
+
+    function setPageOwner(owner){
+        pageOwner = owner;
+    }
+
+    function getPageOwner(){
+        return pageOwner;
+    }
+
     function getRegionWidgetById(regionWidgetId) {
         return widgetByIdMap[regionWidgetId];
     }
@@ -1162,6 +1216,12 @@ var rave = rave || (function () {
         registerWidget:registerWidget,
 
         /**
+         * Render a newly-added widget in the page
+         * @param regionWidgetId the regionWidgetId of the widget to render
+         */
+        renderNewWidget:renderNewWidget,
+
+        /**
          * Initialize all of the registered providers
          */
         initProviders:initializeProviders,
@@ -1228,6 +1288,30 @@ var rave = rave || (function () {
         getContext:getContext,
 
         /**
+         * Sets the authenticated page viewer for the Rave web application
+         *
+         * @param viewer an object representing the authenticated user viewing 
the page {username:"bob", id:"1"}
+         */
+        setPageViewer:setPageViewer,
+
+        /**
+         * Gets the current viewer
+         */
+        getPageViewer:getPageViewer,
+
+        /**
+         * Sets the owner of the current page
+         *
+         * @param owner an object representing the owner of the page
+         */
+        setPageOwner:setPageOwner,
+
+        /**
+         * Gets the page owner
+         */
+        getPageOwner:getPageOwner,
+
+        /**
          * Gets a regionwidget by region widget id
          */
         getRegionWidgetById:getRegionWidgetById,

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_api.js
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_api.js?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_api.js
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_api.js
 Thu Aug  9 21:45:33 2012
@@ -257,6 +257,10 @@ rave.api = rave.api || (function() {
 
                         if (addedWidget != undefined && addedWidget.title != 
undefined && addedWidget.title.length > 0) {
                             widgetTitle = addedWidget.title;
+                        }
+                        // if a callback is supplied, invoke it with the 
regionwidget id
+                        if (args.successCallback && addedWidget != undefined){
+                            args.successCallback(result.result.id);
                         }
                         rave.showInfoMessage(widgetTitle + ' ' + 
rave.getClientMessage("widget.add_suffix"));
                     }

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_layout.js
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_layout.js?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_layout.js
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_layout.js
 Thu Aug  9 21:45:33 2012
@@ -68,6 +68,9 @@ rave.layout = rave.layout || (function()
                 // dialog between separate add/edit page actions
                 $pageMenuUpdateButton.unbind('click');
                 $pageMenuUpdateButton.click(rave.layout.addPage);
+                $('#pageMenuDialog').on('shown', function () {
+                    $("#tab_title").first().focus();
+                });
                 $("#pageMenuDialog").modal('show');
             });
 
@@ -85,6 +88,9 @@ rave.layout = rave.layout || (function()
                                             // dialog between separate 
add/edit page actions
                                             
$pageMenuUpdateButton.unbind('click');
                                             
$pageMenuUpdateButton.click(rave.layout.updatePage);
+                                            $('#pageMenuDialog').on('shown', 
function () {
+                                                
$("#tab_title").first().focus();
+                                            });
                                             $("#pageMenuDialog").modal('show');
                                         }
                 });
@@ -111,6 +117,9 @@ rave.layout = rave.layout || (function()
                     rave.api.rpc.getUsers({offset: 0,
                         successCallback: function(result) {
                             
rave.layout.searchHandler.dealWithUserResults(result);
+                            $('#sharePageDialog').on('shown', function () {
+                                $("#searchTerm").first().focus();
+                            });
                             $("#sharePageDialog").modal('show');
                         }
                     });
@@ -306,7 +315,11 @@ rave.layout = rave.layout || (function()
             $('#confirmSharePageDialog').modal('hide');
             rave.api.rpc.updateSharedPageStatus({pageId: 
rave.layout.searchHandler.pageId, shareStatus: 'refused',
                 successCallback: function(result) {
-                    document.location.href='/';
+                    
rave.api.rpc.removeMemberFromPage({pageId:rave.layout.searchHandler.pageId, 
userId:rave.layout.searchHandler.userId,
+                        successCallback:function (result) {
+                            document.location.href='/';
+                        }});
+
                 }
             });
         }

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_wookie.js
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_wookie.js?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_wookie.js
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/static/script/rave_wookie.js
 Thu Aug  9 21:45:33 2012
@@ -76,27 +76,27 @@ rave.wookie = rave.wookie || (function()
         
         // collapse/restore functions
         widget.collapse = function() {
-            $(ooacontainer.getIframe).hide();
+            $(ooacontainer.getIframe()).hide();
         };
         widget.restore = function() {
-            $(ooacontainer.getIframe).show();
+            $(ooacontainer.getIframe()).show();
         };
         widget.maximize = function() {
             // always display the widget in canvas view even if it currently 
collapsed
             if (widget.collapsed){
                 userCollapsed = true;
-                $(ooacontainer.getIframe).show();
+                $(ooacontainer.getIframe()).show();
             }
         };
         widget.minimize = function() {
             if (widget.collapsed){
                 userCollapsed = false;
-                $(ooacontainer.getIframe).hide();
+                $(ooacontainer.getIframe()).hide();
             }
         };
         // if in the collapsed state, hide the layer
         if (widget.collapsed){
-            $(ooacontainer.getIframe).hide();
+            $(ooacontainer.getIframe()).hide();
         }
     }
 

Modified: 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
 Thu Aug  9 21:45:33 2012
@@ -97,7 +97,8 @@ public class OpenSocialWidgetRenderer im
         }
 
         String widgetScript = getWidgetScript(item);
-        String key = REGISTER_WIDGET_KEY  + (item.getWidget().getId() == null 
? "" :  "-" + item.getWidget().getId());
+        // the key is based off the RegionWidget.id to ensure uniqueness
+        String key = REGISTER_WIDGET_KEY  + (item.getId() == null ? "" :  "-" 
+ item.getId());
         scriptManager.registerScriptBlock(key, widgetScript, 
ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, context);
         logger.debug("Gadget Script Data from OpenSocialWidgetRenderer: " + 
widgetScript);
 

Modified: 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
 Thu Aug  9 21:45:33 2012
@@ -114,7 +114,7 @@ public class OpenSocialWidgetRendererTes
         
expect(securityTokenService.getEncryptedSecurityToken(rw)).andReturn(VALID_SECURITY_TOKEN);
         replay(securityTokenService);
 
-        String key = 
OpenSocialWidgetRenderer.REGISTER_WIDGET_KEY+"-"+w.getId();
+        String key = 
OpenSocialWidgetRenderer.REGISTER_WIDGET_KEY+"-"+rw.getId();
         scriptManager.registerScriptBlock(key, markup, 
ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, renderContext);
         // TODO Renable this test once it's fixed.
         //expectLastCall();

Modified: 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
 Thu Aug  9 21:45:33 2012
@@ -99,7 +99,8 @@ public class W3cWidgetRenderer implement
         }
 
         String widgetScript = getWidgetScript(item);
-        String key = REGISTER_WIDGET_KEY + "-" + widget.getId();
+        // the key is based off the RegionWidget.id to ensure uniqueness
+        String key = REGISTER_WIDGET_KEY + "-" + item.getId();
         scriptManager.registerScriptBlock(key, widgetScript, 
ScriptLocation.AFTER_RAVE, RenderScope.CURRENT_REQUEST, context);
         logger.debug("Gadget Script Data: " + widgetScript);
 

Modified: 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java?rev=1371499&r1=1371498&r2=1371499&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
 Thu Aug  9 21:45:33 2012
@@ -50,6 +50,7 @@ public class W3cWidgetRendererTest {
 
     private static final String VALID_WIDGET_URL = 
"http://example.com/widgets/1";;
     private static final String VALID_WIDGET_INSTANCE_URL = 
"http://example.com/widgetinstances/1";;
+    private static final String REGION_WIDGET_ID = "1";
     private Renderer<RegionWidget> renderer;
     private WidgetProviderService wookieService;
     private UserService userService;
@@ -81,7 +82,7 @@ public class W3cWidgetRendererTest {
         w.setType(Constants.WIDGET_TYPE);
         w.setUrl("http://example.com/widgets/1";);
         Region region = new RegionImpl("1");
-        RegionWidget rw = new RegionWidgetImpl("1");
+        RegionWidget rw = new RegionWidgetImpl(REGION_WIDGET_ID);
         rw.setWidget(w);
         rw.setRegion(region);
 
@@ -92,7 +93,7 @@ public class W3cWidgetRendererTest {
         replay(wookieService);
 
         String placeholder = renderer.render(rw, renderContext);
-        assertEquals("Script block for widget is incorrect", "<!-- 
RegionWidget 1 placeholder -->", placeholder);
+        assertEquals("Script block for widget is incorrect", "<!-- 
RegionWidget " + REGION_WIDGET_ID + " placeholder -->", placeholder);
     }
 
     @Test(expected = NotSupportedException.class)


Reply via email to