Author: cziegeler
Date: Wed Aug 10 19:09:49 2016
New Revision: 1755802

URL: http://svn.apache.org/viewvc?rev=1755802&view=rev
Log:
Fix ratings handling

Added:
    
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/css/star-rating.min.css
   (with props)
    
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/js/jquery-3.1.0.min.js
      - copied, changed from r1755734, 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/js/jquery-2.2.0.min.js
    
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/js/star-rating.min.js
   (with props)
Removed:
    
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/js/jquery-2.2.0.min.js
Modified:
    
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/RatingsService.java
    
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java
    
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java
    
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/bottom.html.jsp
    
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/head.html.jsp
    
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Streamentry/html.jsp

Modified: 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/RatingsService.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/RatingsService.java?rev=1755802&r1=1755801&r2=1755802&view=diff
==============================================================================
--- 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/RatingsService.java
 (original)
+++ 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/RatingsService.java
 Wed Aug 10 19:09:49 2016
@@ -31,7 +31,7 @@ public interface RatingsService {
      *         the passed in content resource is not part of
      *         Slingshot.
      */
-    String getRatingsResourcePath(final Resource resource);
+    String getRatingsResourcePath(Resource resource);
 
 
     /**
@@ -41,7 +41,7 @@ public interface RatingsService {
      *         the passed in content resource is not part of
      *         Slingshot.
      */
-    int getRating(final Resource resource);
+    double getRating(Resource resource);
 
     /**
      * Get the rating of a user for a resource.
@@ -51,7 +51,7 @@ public interface RatingsService {
      *         the passed in content resource is not part of
      *         Slingshot.
      */
-    int getRating(final Resource resource, final String userId);
+    double getRating(Resource resource, String userId);
 
     /**
      * Set the rating of a user for a resource.
@@ -61,6 +61,6 @@ public interface RatingsService {
      *         the passed in content resource is not part of
      *         Slingshot.
      */
-    void setRating(final Resource resource, final String userId, final int 
rating)
+    void setRating(Resource resource, String userId, double rating)
     throws PersistenceException;
 }

Modified: 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java?rev=1755802&r1=1755801&r2=1755802&view=diff
==============================================================================
--- 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java
 (original)
+++ 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingPostServlet.java
 Wed Aug 10 19:09:49 2016
@@ -75,7 +75,7 @@ public class RatingPostServlet extends S
 
             final Resource reqResource = 
resolver.getResource(request.getResource().getPath());
 
-            ratingsService.setRating(reqResource, userId, 
Integer.valueOf(rating));
+            ratingsService.setRating(reqResource, userId, 
Double.valueOf(rating));
 
         } catch ( final LoginException le ) {
             throw new ServletException("Unable to login", le);

Modified: 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java?rev=1755802&r1=1755801&r2=1755802&view=diff
==============================================================================
--- 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java
 (original)
+++ 
sling/trunk/samples/slingshot/src/main/java/org/apache/sling/sample/slingshot/ratings/impl/RatingsServiceImpl.java
 Wed Aug 10 19:09:49 2016
@@ -59,16 +59,16 @@ public class RatingsServiceImpl implemen
      * @see 
org.apache.sling.sample.slingshot.ratings.RatingsService#getRating(org.apache.sling.api.resource.Resource)
      */
     @Override
-    public int getRating(final Resource resource) {
+    public double getRating(final Resource resource) {
         final String fullPath = getRatingsResourcePath(resource);
-        int rating = 0;
+        float rating = 0;
         if ( fullPath != null ) {
             final Resource ratingsResource = resource.getChild(fullPath);
             if ( ratingsResource != null ) {
                 int count = 0;
                 for(final Resource r : ratingsResource.getChildren()) {
                     final ValueMap vm = r.getValueMap();
-                    final int current = vm.get(RatingsUtil.PROPERTY_RATING, 0);
+                    final double current = vm.get(RatingsUtil.PROPERTY_RATING, 
0.0);
                     rating += current;
                     count++;
                 }
@@ -84,14 +84,14 @@ public class RatingsServiceImpl implemen
      * @see 
org.apache.sling.sample.slingshot.ratings.RatingsService#getRating(org.apache.sling.api.resource.Resource,
 java.lang.String)
      */
     @Override
-    public int getRating(final Resource resource, final String userId) {
+    public double getRating(final Resource resource, final String userId) {
         final String fullPath = getRatingsResourcePath(resource);
-        int rating = 0;
+        double rating = 0;
 
         final Resource r = resource.getResourceResolver().getResource(fullPath 
+ "/" + userId);
         if ( r != null ) {
             final ValueMap vm = r.getValueMap();
-            rating = vm.get(RatingsUtil.PROPERTY_RATING, 0);
+            rating = vm.get(RatingsUtil.PROPERTY_RATING, 0.0);
         }
         return rating;
     }
@@ -100,7 +100,7 @@ public class RatingsServiceImpl implemen
      * @see 
org.apache.sling.sample.slingshot.ratings.RatingsService#setRating(org.apache.sling.api.resource.Resource,
 java.lang.String, int)
      */
     @Override
-    public void setRating(final Resource resource, final String userId, final 
int rating)
+    public void setRating(final Resource resource, final String userId, final 
double rating)
     throws PersistenceException {
         final String ratingsPath = getRatingsResourcePath(resource) ;
 
@@ -113,12 +113,12 @@ public class RatingsServiceImpl implemen
         if ( ratingRsrc == null ) {
             props.clear();
             props.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, 
RatingsUtil.RESOURCETYPE_RATING);
-            props.put(RatingsUtil.PROPERTY_RATING, rating);
+            props.put(RatingsUtil.PROPERTY_RATING, String.valueOf(rating));
 
             resource.getResourceResolver().create(ratingsResource, userId, 
props);
         } else {
             final ModifiableValueMap mvm = 
ratingRsrc.adaptTo(ModifiableValueMap.class);
-            mvm.put(RatingsUtil.PROPERTY_RATING, rating);
+            mvm.put(RatingsUtil.PROPERTY_RATING, String.valueOf(rating));
         }
         resource.getResourceResolver().commit();
     }

Modified: 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/bottom.html.jsp
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/bottom.html.jsp?rev=1755802&r1=1755801&r2=1755802&view=diff
==============================================================================
--- 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/bottom.html.jsp
 (original)
+++ 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/bottom.html.jsp
 Wed Aug 10 19:09:49 2016
@@ -17,7 +17,8 @@
     under the License.
 --%><%@page session="false" %><%
 %><%@page import="org.apache.sling.sample.slingshot.SlingshotConstants" %><%
-%><script src="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/js/jquery-2.2.0.min.js"></script>
+%><script src="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/js/jquery-3.1.0.min.js"></script>
 <script src="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/js/bootstrap.min.js"></script>
 <script src="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH 
%>/resources/js/ie10-viewport-bug-workaround.js"></script>
+<script src="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/js/star-rating.min.js"></script>
 <script src="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/js/slingshot.js"></script>
\ No newline at end of file

Modified: 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/head.html.jsp
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/head.html.jsp?rev=1755802&r1=1755801&r2=1755802&view=diff
==============================================================================
--- 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/head.html.jsp
 (original)
+++ 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Component/head.html.jsp
 Wed Aug 10 19:09:49 2016
@@ -22,4 +22,5 @@
   <meta name="viewport" content="width=device-width, initial-scale=1">
   <link href="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/css/bootstrap.min.css" 
rel="stylesheet">
   <link href="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH 
%>/resources/css/ie10-viewport-bug-workaround.css" rel="stylesheet">
+  <link href="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/css/star-rating.min.css" 
rel="stylesheet">
   <link href="<%= request.getContextPath() %><%= 
SlingshotConstants.APP_ROOT_PATH %>/resources/css/slingshot.css" 
rel="stylesheet">

Modified: 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Streamentry/html.jsp
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Streamentry/html.jsp?rev=1755802&r1=1755801&r2=1755802&view=diff
==============================================================================
--- 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Streamentry/html.jsp
 (original)
+++ 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/libs/slingshot/Streamentry/html.jsp
 Wed Aug 10 19:09:49 2016
@@ -55,55 +55,46 @@
       <h1><%= ResponseUtil.escapeXml(entry.getTitle()) %></h1>
       <div class="row">
         <div class="col-xs-12 col-md-8">
-           <img class="img-responsive center-block" src="<%= 
request.getContextPath() %><%= imagePath %>"/>
+          <img class="img-responsive center-block" src="<%= 
request.getContextPath() %><%= imagePath %>"/>
+          <div class="well">
+            <% if ( entry.getLocation() != null ) { %>
+              <p>Location: <%=ResponseUtil.escapeXml(entry.getLocation())%></p>
+            <% } %>
+            <p><%=ResponseUtil.escapeXml(entry.getDescription())%></p>
+            <% if ( slingRequest.getRemoteUser() != null && 
slingRequest.getRemoteUser().equals(SlingshotUtil.getUserId(resource)) )  { %>
+              <button class="ui-button ui-form-button ui-slingshot-clickable" 
+                data-link="<%= request.getContextPath() 
%><%=resource.getName() %>.edit.html" type="button">Edit</button>
+            <% } %>
+          </div>
         </div>
         <div class="col-xs-6 col-md-4">
-          <div id="rating" 
-               data-score-hint="Rating: " 
-               data-show-score="true" 
-               data-role="rating" 
-               data-stars="5" 
-               data-score="<%= ratingsService.getRating(resource) %>" 
-               data-static="false" 
-               class="rating large" style="height: auto;">
-               <ul><li></li><li></li><li></li><li></li><li></li></ul>
-               <span class="score-hint">Rating: <%= 
ratingsService.getRating(resource) %></span>
-          </div>
-          <div class="fg-green rating active" id="own_rating" style="height: 
auto;">
-            <ul><li title="bad" class="rated"></li><li title="poor"></li><li 
title="regular"></li><li title="good"></li><li title="gorgeous"></li></ul><span 
class="score-hint">Current score: <%= ratingsService.getRating(resource, 
request.getRemoteUser()) %></span>
-          </div>
-          <script>
-                        $(function(){
-                            $("#own_rating").rating({
-                                static: false,
-                                score: <%= ratingsService.getRating(resource, 
request.getRemoteUser()) %>,
-                                stars: 5,
-                                showHint: true,
-                                showScore: true,
-                                click: function(value, rating) {
-                                    rating.rate(value);
-                                    $.post( "<%= resource.getName() 
%>.ratings", { <%= RatingsUtil.PROPERTY_RATING %> : value }, function( data ) {
-                                          $("#rating").rating("rate", 
data.rating);
-                                        }, "json");
-                                }
-                            });
-                        });
-          </script>
+          <h2>Rating</h2>
+          <input id="rating" name="rating" type="number" class="rating" 
data-howerenabled="false" data-disabled="false" data-show-clear="false" 
data-show-caption="false" data-readonly="true" value="<%= 
ratingsService.getRating(resource) %>"/>
+          <h2>Your Rating</h2>
+          <input id="own_rating" name="own_rating" type="number" 
class="rating" data-show-caption="false" value="<%= 
ratingsService.getRating(resource, request.getRemoteUser()) %>"/>
         </div>
       </div>
-      <div class="row">
-          <p><%=ResponseUtil.escapeXml(entry.getDescription())%></p>
-          <% if ( entry.getLocation() != null ) { %>
-            <p>Location</p>
-            <p><%=ResponseUtil.escapeXml(entry.getLocation())%></p>
-          <% } %>
-          <% if ( slingRequest.getRemoteUser() != null && 
slingRequest.getRemoteUser().equals(SlingshotUtil.getUserId(resource)) )  { %>
-          <button class="ui-button ui-form-button ui-slingshot-clickable" 
-                data-link="<%= request.getContextPath() 
%><%=resource.getName() %>.edit.html" type="button">Edit</button>
-          <% } %>
-      </div>
       <sling:include resource="<%= resource %>" replaceSelectors="comments"/>
     </div>
     <sling:include resource="<%= resource %>" replaceSelectors="bottom"/>
+          <script>
+            $(function(){
+              $("#own_rating").on('rating.clear', function(event) {
+                  $.post( "<%= resource.getName() %>.ratings", { <%= 
RatingsUtil.PROPERTY_RATING %> : 0 }, function( data ) {
+                      $("#rating").rating('update', data.rating);
+                    }, "json");
+              });
+              $("#own_rating").on('rating.reset', function(event) {
+                  $.post( "<%= resource.getName() %>.ratings", { <%= 
RatingsUtil.PROPERTY_RATING %> : 0 }, function( data ) {
+                      $("#rating").rating('update', data.rating);
+                    }, "json");
+              });
+              $("#own_rating").on('rating.change', function(event, value) {
+                  $.post( "<%= resource.getName() %>.ratings", { <%= 
RatingsUtil.PROPERTY_RATING %> : value }, function( data ) {
+                      $("#rating").rating('update', data.rating);
+                    }, "json");
+              });
+            });
+          </script>
   </body>
 </html>
\ No newline at end of file

Added: 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/css/star-rating.min.css
URL: 
http://svn.apache.org/viewvc/sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/css/star-rating.min.css?rev=1755802&view=auto
==============================================================================
--- 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/css/star-rating.min.css
 (added)
+++ 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/css/star-rating.min.css
 Wed Aug 10 19:09:49 2016
@@ -0,0 +1,10 @@
+/*!
+ * @copyright &copy; Kartik Visweswaran, Krajee.com, 2013 - 2016
+ * @version 4.0.1
+ *
+ * A simple yet powerful JQuery star rating plugin that allows rendering 
fractional star ratings and supports
+ * Right to Left (RTL) input.
+ *
+ * For more JQuery/Bootstrap plugins and demos visit http://plugins.krajee.com
+ * For more Yii related demos visit http://demos.krajee.com
+ */.rating-container .caption,.rating-container 
.clear-rating,.rating-container 
.rating{display:inline-block;vertical-align:middle}.rating-loading{width:25px;height:25px;font-size:0;color:#fff;background:url(../img/loading.gif)
 top left no-repeat;border:none}.rating-container 
.rating{cursor:default;position:relative;overflow:hidden;white-space:nowrap}.rating-disabled
 .rating{cursor:not-allowed}.rating-container 
.star{display:inline-block;margin:0 3px;text-align:center}.rating-container 
.empty-stars{color:#aaa}.rating-container 
.filled-stars{position:absolute;left:0;top:0;margin:auto;color:#fde16d;white-space:nowrap;overflow:hidden;-webkit-text-stroke:1px
 #777;text-shadow:1px 1px #999}.rating-rtl{float:right}.rating-animate 
.filled-stars{transition:width .25s ease;-o-transition:width .25s 
ease;-moz-transition:width .25s ease;-webkit-transition:width .25s 
ease}.rating-rtl 
.filled-stars{left:auto;right:0;-moz-transform:matrix(-1,0,0,1,0,0) 
translate3d(0,0,0);-webkit-transform:matrix(-1
 ,0,0,1,0,0) translate3d(0,0,0);-o-transform:matrix(-1,0,0,1,0,0) 
translate3d(0,0,0);transform:matrix(-1,0,0,1,0,0) 
translate3d(0,0,0)}.rating-rtl.is-star 
.filled-stars{right:.06em}.rating-rtl.is-heart 
.empty-stars{margin-right:.07em}.rating-lg{font-size:3.91em}.rating-md{font-size:3.13em}.rating-sm{font-size:2.5em}.rating-xs{font-size:2em}.rating-xl{font-size:4.89em}.rating-container
 
.clear-rating{color:#aaa;cursor:not-allowed;font-size:60%;padding-right:5px}.clear-rating-active{cursor:pointer!important}.clear-rating-active:hover{color:#843534}.rating-container
 
.caption{color:#999;font-size:60%;margin-top:-.6em;margin-left:5px;margin-right:0}.rating-rtl
 .caption{margin-right:5px;margin-left:0}@media print{.rating-container 
.clear-rating{display:none}}
\ No newline at end of file

Propchange: 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/css/star-rating.min.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: 
sling/trunk/samples/slingshot/src/main/resources/SLING-INF/content/slingshot/resources/css/star-rating.min.css
------------------------------------------------------------------------------
    svn:keywords = Id


Reply via email to