You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ja...@apache.org on 2011/11/23 16:46:04 UTC

svn commit: r1205459 - in /incubator/rave/trunk: rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/ rave-portal-resources/src/main/webapp/WEB-INF/tags/ rave-portal-resources/src/main/webapp/css/ rave-portal-resources/src/main/webapp/script/ rave-...

Author: jasha
Date: Wed Nov 23 15:46:03 2011
New Revision: 1205459

URL: http://svn.apache.org/viewvc?rev=1205459&view=rev
Log:
RAVE-362 flexible layout for the widget store (widget detail is still in progress)
increased area in paging
fixed duplicate ID if same user submits multiple Widget comments
format date if user locale is available

Modified:
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/store.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/widget.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/admin_paging.tag
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_store.js
    incubator/rave/trunk/rave-portal/pom.xml

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=1205459&r1=1205458&r2=1205459&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 Wed Nov 23 15:46:03 2011
@@ -22,7 +22,7 @@
 <%@ 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"%>
+<%@ taglib tagdir="/WEB-INF/tags" prefix="rave" %>
 <fmt:setBundle basename="messages"/>
 
 <fmt:message key="page.store.title" var="pagetitle"/>
@@ -31,12 +31,13 @@
     <nav class="topnav">
         <ul class="horizontal-list">
             <li>
-                <a href="<spring:url value="/app/store/widget/add?referringPageId=${referringPageId}"/>"><fmt:message key="page.addwidget.title"/></a>
+                <a href="<spring:url value="/app/store/widget/add?referringPageId=${referringPageId}"/>"><fmt:message
+                        key="page.addwidget.title"/></a>
             </li>
             <li>
                 <c:choose>
                     <c:when test="${empty referringPageId}">
-                        <spring:url value="/index.html" var="gobackurl" />
+                        <spring:url value="/index.html" var="gobackurl"/>
                     </c:when>
                     <c:otherwise>
                         <spring:url value="/app/page/view/${referringPageId}" var="gobackurl"/>
@@ -45,36 +46,46 @@
                 <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>
+                <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>
+                    <fmt:message key="page.general.logout"/></a>
             </li>
         </ul>
     </nav>
     <h1>${pagetitle}</h1>
 </header>
 
-<div id="content">
+<div id="content" class="pageContent">
 
-    <div class="storeSearch">
+    <section class="storeSearch">
         <form action="<c:url value="/app/store/search"/>" method="GET">
             <fieldset>
                 <input type="hidden" name="referringPageId" value="${referringPageId}">
+
+                <h2>
+                    <label for="searchTerm"><fmt:message key="page.store.search"/></label>
+                </h2>
                 <p>
-                  <label for="searchTerm"><fmt:message key="page.store.search"/></label>
-                  <input type="search" id="searchTerm" name="searchTerm" value="<c:out value="${searchTerm}"/>"/>
-                  <fmt:message key="page.store.search.button" var="searchButtonText"/>
-                  <input type="submit" value="${searchButtonText}"/>
+                    <input type="search" id="searchTerm" name="searchTerm" value="<c:out value="${searchTerm}"/>"/>
+                    <fmt:message key="page.store.search.button" var="searchButtonText"/>
+
+                    <input type="submit" value="${searchButtonText}"/>
+                    <c:if test="${not empty searchTerm}">
+                        <a href="<spring:url value="/app/store?referringPageId=${referringPageId}"/>">
+                            <fmt:message key="admin.clearsearch"/></a>
+                    </c:if>
                 </p>
             </fieldset>
         </form>
-        <div class="clear-float">&nbsp;</div>
+    </section>
+
+    <section class="storeBox">
         <c:choose>
             <c:when test="${empty searchTerm and (empty widgets or widgets.totalResults eq 0)}">
                 <%-- Empty db --%>
@@ -82,8 +93,8 @@
             </c:when>
             <c:when test="${empty searchTerm}">
                 <fmt:message key="page.store.list.result.x.to.y" var="listheader">
-                    <fmt:param value="${offset + 1}"/>
-                    <fmt:param value="${offset + fn:length(widgets.resultSet)}"/>
+                    <fmt:param value="${widgets.offset + 1}"/>
+                    <fmt:param value="${widgets.offset + fn:length(widgets.resultSet)}"/>
                     <fmt:param value="${widgets.totalResults}"/>
                 </fmt:message>
             </c:when>
@@ -94,78 +105,128 @@
             </c:when>
             <c:otherwise>
                 <fmt:message key="page.store.list.search.result.x.to.y" var="listheader">
-                    <fmt:param value="${offset + 1}"/>
-                    <fmt:param value="${offset + fn:length(widgets.resultSet)}"/>
+                    <fmt:param value="${widgets.offset + 1}"/>
+                    <fmt:param value="${widgets.offset + fn:length(widgets.resultSet)}"/>
                     <fmt:param value="${widgets.totalResults}"/>
                     <fmt:param><c:out value="${searchTerm}"/></fmt:param>
                 </fmt:message>
             </c:otherwise>
         </c:choose>
         <h2>${listheader}</h2>
-    </div>
+            <%--@elvariable id="widgets" type="org.apache.rave.portal.model.util.SearchResult"--%>
+        <c:if test="${widgets.totalResults gt 0}">
+            <c:if test="${widgets.numberOfPages gt 1}">
+
+                <ul class="paging">
+                    <c:forEach var="i" begin="1" end="${widgets.numberOfPages}">
+                        <c:url var="pageUrl" value="">
+                            <c:param name="referringPageId" value="${referringPageId}"/>
+                            <c:param name="searchTerm" value="${searchTerm}"/>
+                            <c:param name="offset" value="${(i - 1) * widgets.pageSize}"/>
+                        </c:url>
+
+                        <li>
+                            <c:choose>
+                                <c:when test="${i eq widgets.currentPage}">
+                                    <span class="currentPage">${i}</span>
+                                </c:when>
+                                <c:otherwise>
+                                    <a href="<c:out value="${pageUrl}"/>">${i}</a>
+                                </c:otherwise>
+                            </c:choose>
+                        </li>
+                    </c:forEach>
+                </ul>
 
-    <%--@elvariable id="widgets" type="org.apache.rave.portal.model.util.SearchResult"--%>
-    <c:if test="${widgets.totalResults gt 0}">
-        <ul class="storeItems">
-        <%--@elvariable id="widget" type="org.apache.rave.portal.model.Widget"--%>
-            <c:forEach var="widget" items="${widgets.resultSet}">
-                <li class="storeItem">
-                    <div class="storeItemLeft">
-                        <c:if test="${not empty widget.thumbnailUrl}">
-                            <img class="storeWidgetThumbnail" src="${widget.thumbnailUrl}"
-                                 title="<c:out value="${widget.title}"/>" alt=""
-                                 width="120" height="60"/>
-                        </c:if>
-                        <div class="widgetType"><c:out value="${widget.type}"/></div>
-
-                        <div class="widgetRating">
-                            <fmt:message key="page.widget.rate"/>
-                            <div id="rating-${widget.entityId}" class="ratingButtons">
-                                <input type="radio" id="like-${widget.entityId}" class="widgetLikeButton" name="rating-${widget.entityId}"${widgetsStatistics[widget.entityId].userRating==10?" checked='true'":""}> <label for="like-${widget.entityId}">${widgetsStatistics[widget.entityId]!=null?widgetsStatistics[widget.entityId].totalLike:"0"}</label>
-                                <input type="radio" id="dislike-${widget.entityId}" class="widgetDislikeButton" name="rating-${widget.entityId}"${widgetsStatistics[widget.entityId].userRating==0?" checked='true'":""}> <label for="dislike-${widget.entityId}">${widgetsStatistics[widget.entityId]!=null?widgetsStatistics[widget.entityId].totalDislike:"0"}</label>
+            </c:if>
+
+            <ul class="storeItems">
+                    <%--@elvariable id="widget" type="org.apache.rave.portal.model.Widget"--%>
+                <c:forEach var="widget"
+                           items="${widgets.resultSet}"><%--@elvariable id="widgetsStatistics" type="org.apache.rave.portal.model.util.WidgetStatistics"--%>
+                    <li class="storeItem">
+
+                        <div class="storeItemLeft">
+                            <c:if test="${not empty widget.thumbnailUrl}">
+                                <img class="storeWidgetThumbnail" src="${widget.thumbnailUrl}"
+                                     title="<c:out value="${widget.title}"/>" alt=""
+                                     width="120" height="60"/>
+                            </c:if>
+
+                            <div id="widgetAdded_${widget.entityId}" class="storeButton">
+                                <button class="storeItemButton"
+                                        id="addWidget_${widget.entityId}"
+                                        onclick="rave.api.rpc.addWidgetToPage({widgetId: ${widget.entityId}, pageId: ${referringPageId}, buttonId: this.id});">
+                                    <fmt:message key="page.widget.addToPage"/>
+                                </button>
                             </div>
+
                         </div>
-                    </div>
-                    <div class="storeItemCenter">
-                        <div id="widgetAdded_${widget.entityId}" class="storeButton">
-                            <button class="storeItemButton"
-                                    id="addWidget_${widget.entityId}"
-                                    onclick="rave.api.rpc.addWidgetToPage({widgetId: ${widget.entityId}, pageId: ${referringPageId}});">
-                                <fmt:message key="page.widget.addToPage"/>
-                            </button>
+
+                        <div class="storeItemCenter">
+
+                            <a class="secondaryPageItemTitle"
+                               href="<spring:url value="/app/store/widget/${widget.entityId}" />?referringPageId=${referringPageId}">
+                                <c:out value="${widget.title}"/>
+                            </a>
+
+                            <c:if test="${not empty widget.author}">
+                                <div class="storeWidgetAuthor"><fmt:message key="widget.author"/>: <c:out
+                                        value="${widget.author}"/></div>
+                            </c:if>
+                            <c:if test="${not empty widget.description}">
+                                <div class="storeWidgetDesc"><c:out
+                                        value="${fn:substring(widget.description, 0, 200)}..."/></div>
+                            </c:if>
+                            <div class="widgetRating">
+                                <fmt:message key="page.widget.rate"/>
+                                <c:set var="totalLikes" value="${widgetsStatistics[widget.entityId].totalLike}"/>
+                                <c:set var="totalDislikes" value="${widgetsStatistics[widget.entityId].totalDislike}"/>
+
+                                <div id="rating-${widget.entityId}" class="ratingButtons">
+                                    <input type="radio" id="like-${widget.entityId}" class="widgetLikeButton"
+                                           name="rating-${widget.entityId}"${widgetsStatistics[widget.entityId].userRating==10?" checked='true'":""}>
+                                    <label for="like-${widget.entityId}">${widgetsStatistics[widget.entityId]!=null?widgetsStatistics[widget.entityId].totalLike:"0"}</label>
+                                    <input type="radio" id="dislike-${widget.entityId}" class="widgetDislikeButton"
+                                           name="rating-${widget.entityId}"${widgetsStatistics[widget.entityId].userRating==0?" checked='true'":""}>
+                                    <label for="dislike-${widget.entityId}">${widgetsStatistics[widget.entityId]!=null?widgetsStatistics[widget.entityId].totalDislike:"0"}</label>
+                                </div>
+                            </div>
                         </div>
-                        <a class="secondaryPageItemTitle"
-                           href="<spring:url value="/app/store/widget/${widget.entityId}" />?referringPageId=${referringPageId}">
-                            <c:out value="${widget.title}"/>
-                        </a>
-
-                        <c:if test="${not empty widget.author}">
-                            <div class="storeWidgetAuthor"><fmt:message key="widget.author"/>: <c:out value="${widget.author}"/></div>
-                        </c:if>
-                        <c:if test="${not empty widget.description}">
-                            <div class="storeWidgetDesc"><c:out value="${widget.description}"/></div>
-                        </c:if>
-                    </div>
-                    <div class="clear-float" >&nbsp;</div>
-                </li>
-            </c:forEach>
-        </ul>
 
-        <c:if test="${widgets.numberOfPages gt 1}">
-            <div class="storeBox">
+                        <div class="clear-float"></div>
+                    </li>
+                </c:forEach>
+            </ul>
+
+            <c:if test="${widgets.numberOfPages gt 1}">
+
                 <ul class="paging">
-                    <c:forEach var="i" begin="0" end="${widgets.numberOfPages - 1}">
+                    <c:forEach var="i" begin="1" end="${widgets.numberOfPages}">
                         <c:url var="pageUrl" value="">
                             <c:param name="referringPageId" value="${referringPageId}"/>
                             <c:param name="searchTerm" value="${searchTerm}"/>
-                            <c:param name="offset" value="${i * widgets.pageSize}"/>
+                            <c:param name="offset" value="${(i - 1) * widgets.pageSize}"/>
                         </c:url>
-                        <li><a href="<c:out value="${pageUrl}"/>">${i + 1}</a></li>
+
+                        <li>
+                            <c:choose>
+                                <c:when test="${i eq widgets.currentPage}">
+                                    <span class="currentPage">${i}</span>
+                                </c:when>
+                                <c:otherwise>
+                                    <a href="<c:out value="${pageUrl}"/>">${i}</a>
+                                </c:otherwise>
+                            </c:choose>
+                        </li>
                     </c:forEach>
                 </ul>
-            </div>
+
+            </c:if>
+
         </c:if>
-    </c:if>
+    </section>
+
 </div>
 
     <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.4.min.js"></script>

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=1205459&r1=1205458&r2=1205459&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 Wed Nov 23 15:46:03 2011
@@ -75,16 +75,21 @@
                          width="120" height="60"/>
                 </c:if>
 
-                <div class="widgetDetailMeta">
-                    <p><fmt:message key="widget.type.${widget.type}" /></p>
-                </div>
-                <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>
+                <c:choose>
+                        <c:when test="${widget.widgetStatus eq 'PUBLISHED'}">
+                            <div id="widgetAdded_${widget.entityId}" class="storeButton">
+                                <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'}">
+                            <p class="warn"><fmt:message key="widget.widgetStatus.PREVIEW"/></p>
+                        </c:when>
+                    </c:choose>
+
             </div>
 
             <div class="widgetDetailCenter">
@@ -100,20 +105,7 @@
                             </c:otherwise>
                         </c:choose>
                     </span>
-                    <c:choose>
-                        <c:when test="${widget.widgetStatus eq 'PUBLISHED'}">
-                            <div id="widgetAdded_${widget.entityId}" class="storeButton">
-                                <button class="storeItemButton"
-                                        id="addWidget_${widget.entityId}"
-                                        onclick="rave.api.rpc.addWidgetToPage({widgetId: ${widget.entityId}, pageId: ${referringPageId}});">
-                                    <fmt:message key="page.widget.addToPage"/>
-                                </button>
-                            </div>
-                        </c:when>
-                        <c:when test="${widget.widgetStatus eq 'PREVIEW'}">
-                            <p class="warn"><fmt:message key="widget.widgetStatus.PREVIEW"/></p>
-                        </c:when>
-                    </c:choose>
+
                 </div>
 
 
@@ -133,24 +125,38 @@
                 <c:if test="${not empty widget.description}">
                     <p class="storeWidgetDesc"><c:out value="${widget.description}"/></p>
                 </c:if>
-                
-                <div class="new-comment">
-                    <h3>Comment</h3>
-                    <textarea id="newComment-${widget.entityId}" rows="3" cols="50"> </textarea>
-                    
-                    <button id="comment-new-${widget.entityId}" class="commentNewButton"> </button>
+
+                <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>
-                <c:if test="${not empty widget.comments}">
-                    <c:forEach var="comment" items="${widget.comments}">
-                        <div id="comment-widget-${comment.widgetId}" class="comment">
-                            <c:if test="${userProfile.entityId == comment.user.entityId}">
-                                <button id="comment-delete-${comment.entityId}" class="commentDeleteButton" value="Delete"> </button>
-                                <button id="comment-edit-${comment.entityId}" class="commentEditButton" value="Edit"> </button>
-                            </c:if>
-                            <c:out value="${comment.user.username}"/> - <c:out value="${comment.text}"/> .. <c:out value="${comment.createdDate}"/>
-                        </div>
-                    </c:forEach>
-                </c:if>
+
+                <div class="widgetComments">
+                    <div class="new-comment">
+                        <h3>Comment</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}">
+                        <c:forEach var="comment" items="${widget.comments}">
+                                <div class="comment" data-widgetid="<c:out value="${comment.widgetId}"/>">
+                                    <c:if test="${userProfile.entityId == comment.user.entityId}">
+                                        <button id="comment-delete-${comment.entityId}" class="commentDeleteButton" value="Delete"> </button>
+                                        <button id="comment-edit-${comment.entityId}" class="commentEditButton" value="Edit"> </button>
+                                    </c:if>
+                                    <fmt:formatDate value="${comment.createdDate}" type="both" var="commentDate"/>
+                                    <p><c:out value="${comment.user.username} (${commentDate})"/></p>
+                                    <p><c:out value="${comment.text}"/></p>
+
+                                </div>
+                        </c:forEach>
+                    </c:if>
+                </div>
+
             </div>
             
             <div class="widgetDetailRight">

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/admin_paging.tag
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/admin_paging.tag?rev=1205459&r1=1205458&r2=1205459&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/admin_paging.tag (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/tags/admin_paging.tag Wed Nov 23 15:46:03 2011
@@ -36,7 +36,7 @@ under the License.
         <c:forEach var="i" begin="1" end="${searchResult.numberOfPages}">
             <c:choose>
                 <c:when test="${i eq searchResult.currentPage}">
-                    <li>${i}</li>
+                    <li><span class="currentPage">${i}</span></li>
                 </c:when>
                 <c:otherwise>
                     <c:url var="pageUrl" value="">

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css?rev=1205459&r1=1205458&r2=1205459&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/css/default.css Wed Nov 23 15:46:03 2011
@@ -79,6 +79,7 @@ a img {
     list-style: none;
     padding:0 10px;
 }
+
 .horizontal-list li:last-child, .paging li:last-child {
     padding-right: 0;
 }
@@ -88,7 +89,6 @@ a img {
 }
 
 .paging li:after {
-    margin: 0 10px;
     content: "|";
 }
 
@@ -99,19 +99,20 @@ a img {
 
 .paging li a, .paging li a:visited {
     text-decoration: none;
+    padding: 0 10px;
 }
 
 .paging li a:hover {
     text-decoration: underline;
 }
 
-#banner {
-    padding: 0 0 10px 10px;
+.paging li .currentPage {
+    padding: 0 10px;
 }
 
 /* Header */
 header {
-    height:50px;
+    height: 3em;
     color: #F2F2F2;
     background-color: #222222;
 }
@@ -135,6 +136,7 @@ header h1 {
     text-transform: lowercase;
     font-size: 1.5em;
     margin: 0 auto;
+    vertical-align: middle;
     width: 80%;
     color: #F2F2F2;
 }
@@ -150,11 +152,9 @@ header h1 {
 /* content */
 #content {
     background-color: transparent;
-    padding: 0;
+    padding: 0 20px;
     width: 90%;
-    margin-left:auto;
-    margin-right:auto;
-    margin-top: 10px;
+    margin: 1em auto 0;
     min-height: 800px;
 }
 
@@ -228,7 +228,6 @@ header h1 {
 
 .widget-title-bar {
     color: #FFFFFF;
-    background-color: #666666;
     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#999999", endColorstr="#666666");
     background: -moz-linear-gradient(center top , #999 0%, #666 25%) repeat scroll 0 0 transparent;
     background: -webkit-gradient(linear, left top, left bottom, from(#999), to(#666));
@@ -379,14 +378,17 @@ header h1 {
     margin-right: 0;
 }
 
-.storeSearch, .storeBox {
-    margin: 5px auto;
-    width: 60%
-}
-.storeSearch form {
-    margin: 0;
+.storeSearch {
     float: right;
+    width: 225px;
+    padding: 1em;
 }
+
+.storeBox {
+    margin-right: 275px;
+    padding: 1em;
+}
+
 .storeSearch form p {
     margin: 0;
 }
@@ -397,13 +399,12 @@ header h1 {
 
 .storeItem {
     border: 1px solid #B3C4CF;
-    margin: 5px auto 5px auto;
+    margin: 1em auto;
     padding: 10px;
     background-color: #F2F2F2;
     color: black;
     border-radius: 5px;
     box-shadow: 2px 2px 2px black;
-    width: 60%;
 }
 
 #widget-content {
@@ -443,33 +444,43 @@ header h1 {
 .widgetScreenshot img {
   max-width: 280px;
 }
+
 ul.storeItems {
     padding: 0;
+    margin: 1em auto;
 }
 
 ul.storeItems li{
     list-style: none;
 }
 
-.storeItemLeft {
-   padding-left: 10px;
-   padding-right: 10px;
-   vertical-align: top;
-   width: 150px;
-   float: left;
+.storeItemLeft, .storeItemCenter {
+    vertical-align: top;
+}
 
+.storeItemLeft {
+    float: left;
+    width: 120px;
 }
 
 .storeItemCenter {
-    padding-left: 10px;
-    padding-right: 10px;
-    vertical-align: top;
-    float: left;
-    width: 50%;
+    margin-left: 140px;
 }
 
-.storeButton {
-    float: right;
+.storeWidgetThumbnail {
+    margin-bottom: 1em;
+}
+
+.storeWidgetDesc{
+    margin: 1em 0;
+}
+
+.widgetRating {
+    margin: 1em 0;
+}
+
+.secondaryPageItemTitle {
+    font-size: 1.2em;
 }
 
 .ui-sortable-placeholder {
@@ -505,10 +516,12 @@ button.widget-toolbar-btn-min {
 
 /* Form fields */
 
-fieldset{
+fieldset {
     margin: 0;
-    border:none
+    padding: 0;
+    border: none;
 }
+
 p label, span.label {
     width: 120px;
     float: left;
@@ -966,9 +979,21 @@ span.error, label.error {
     border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
 }
 
-@media all and (max-width: 500px) {
+@media all and (max-width: 900px) {
+    .storeSearch {
+        width: 100%;
+        float: none;
+    }
+
+    .storeBox {
+        margin: 0;
+    }
+}
+
+@media all and (max-width: 550px) {
+
     body {
-        font-size: 0.8em;
+        font-size: 0.75em;
     }
 
     header {
@@ -994,8 +1019,22 @@ span.error, label.error {
         width: auto;
     }
 
-    .storeSearch, .storeBox, .storeItem {
+    .storeSearch, .storeBox {
+        float: none;
         width: 95%;
+        padding: 1em 10px;
+    }
+
+    .storeItem {
+        box-shadow: none;
+        padding: 0 10px;
+    }
+
+
+    .storeItemLeft, .storeItemCenter {
+        width: 100%;
+        float: none;
+        margin: 1em 0;
     }
 
     .widgetDetailLeft, .widgetDetailCenter, .widgetDetailRight {

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_store.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_store.js?rev=1205459&r1=1205458&r2=1205459&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_store.js (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_store.js Wed Nov 23 15:46:03 2011
@@ -87,7 +87,7 @@ rave.store = rave.store || (function() {
             text: false
         }).click(function() {
             var commentId = this.id.substring("comment-delete-".length);
-            var widgetId = this.parentNode.id.substring("comment-widget-".length);
+            var widgetId = this.parentNode.getAttribute('data-widgetid');
             rave.api.rest.deleteWidgetComment({widgetId: widgetId, 
                                                 commentId: commentId,
                                                 successCallback: function() { window.location.reload(); }});
@@ -98,7 +98,7 @@ rave.store = rave.store || (function() {
             text: false
         }).click(function() {
             var commentId = this.id.substring("comment-edit-".length);
-            var widgetId = this.parentNode.id.substring("comment-widget-".length);
+            var widgetId = this.parentNode.getAttribute('data-widgetid');
             $("#editComment-dialog").dialog({
                autoOpen: true,
                height: 150,

Modified: incubator/rave/trunk/rave-portal/pom.xml
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal/pom.xml?rev=1205459&r1=1205458&r2=1205459&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal/pom.xml (original)
+++ incubator/rave/trunk/rave-portal/pom.xml Wed Nov 23 15:46:03 2011
@@ -166,6 +166,7 @@
                             </url>
                         </zipUrlInstaller>
                         <systemProperties>
+                            <net.sf.ehcache.skipUpdateCheck>true</net.sf.ehcache.skipUpdateCheck>
                             <!-- Documentation: http://incubator.apache.org/rave/documentation/host-configuration.html -->
                             <!--
                                 <portal.override.properties>/path/to/custom.portal.properties</portal.override.properties>