Index: wiki/src/main/resources/XWiki/Ratings =================================================================== --- wiki/src/main/resources/XWiki/Ratings (revision 0) +++ wiki/src/main/resources/XWiki/Ratings (revision 0) @@ -0,0 +1,465 @@ + + + +XWiki +Ratings + +en +0 + +XWiki.Admin +XWiki.Admin + +XWiki.Admin +1223390115000 +1223579538000 +1223579538000 +196.1 + + + + + +false +xwiki/1.0 + +star.gif +1120 +XWiki.Admin +1223392182000 +1.1 + +R0lGODlhGQBLAOYAAPWGNf784eTi49TR0f3ANvu+bf/MmfPy8uPg4filTv7dSvzGcvioT/3guvu0Tuvq6/7xYfq5af7mif3LXP////7w3d/e3vidQfTz9P3ixP/nnP7kUv7ncf/MM/7+9fm1gv7Uaf3GWf76xOvq6tfV1f75sf7WSvmtSv7Zef3v5f7PQ/7vlPaSOv7ngv7emPnAmf748/7tptvY2f7oWf/MZv7fUfzYpv7uw/ilRf7XQ/7vuP70Y/7JPvu3T+fm5vmvU/712PqyTP738v7Xc/73nP72gP7hZff39+/v7/aPOf/elP/fefeUQv7sXfy8U/ioWPq/df3kzv7FO/7UUf70bP756P786v76uv73k/7dh//QO/7yq/7iav3kvf743PvVrP7wzf7uv/7ql/8zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEHAGMALAAAAAAZAEsAAAf/gBSCg4SFhoeHR4qIjIRHSCM+GI2NGAgUlkeUiA8Pgj5Im4ZHFpqCFgemohQPFoRIMg8Ys4uJjzKhhBYyvDIII5ODRwcPCCQyPps+I6ZHxbKrFMvCktGsFsGCDwLRlgeFzgiqjEcy34cH5pQyI43p54i4lCO5iNONSPWHSOKND/DxxoGrNsiHhQeqBAh0hCDYCHaQLAiY5GOhsIlHBEwUhsQHKIuDOn4cVYtcSWsoU6oUdhLlIwEVV2JApREkpU6CSOhbRepIGCBIsKFsVaWDChgIGtp0BAuJBi1alhw55uNBPgzjFB0YYWHAABgmcojVMewAsQcjKTyyYOFjFQli/+Ny4SIhhgdWCAVl1ORFDBcFgAMDrkEYCAVU1DS1CEyY8IbHj1dQEAAQkwAkHjjUECtFCoHPUlRwmLxT0AGJHlB0Xq2i9RQYNRGRurSktYnbt41QGFCaULoRMRQ0rjGjuBUEvakd2FK8SRMI0CGIwElOEhHoVEpcKbJjR4nTNkkdwLIDi4cDoQKUCHA4fCkP7A0KaGuKGTluFE4jUfSoKobkIWHQSWX8LaUWfyslqOCC0SC4kjMC5KUSEqnIk9IRl1AQlIH7+JDCC0LEwqEj2HwAwAflyDILVuRg4AMJMCQhYxQ+DNDLQQINUwwJJBxgABNAPpGCaWZ1ogqE0KTwRb0CF1yAw5M4RABFA2rFpFcuBjAAJQ4ndHlCEGDaMBlAR9j3g5dfngClAw4sAFtpGFxWQQEXyAgAADLKyABsCqEjkRBPsCBok03ikMEIPZLDFgxaPtllED104UM/jCAxAAVsOuCEEyF06sKG7pBAQacTlGrqEBTIkM0hllBQKgg3UACGCxOAIM2qhrhIQRYueABLRR5UgQmuhRyQjCBJjcCVBaGY1cgj1yDEHyRpMbLVCKmA05ItIzLo7beCBAIAOw== + + +smallstar.gif +891 +XWiki.Admin +1223394833000 +1.1 + +R0lGODlhFAA8AOYAAOfm5vTz9OTi4/Py8tvY2ePg4filRevq6v7dSv7fUf3LXPaPOfmtSv7XQ/7xYf7oWf3GWf7489fV1f7kUv7WSvu0TvqyTP7FO/7+9f7PQ/m1gv7tpvidQf/fef7iav756P70Y/3v5f3ANtTR0fWGNf738v7sXfzGcv/nnPilTv/MM/7hZf7uv//Mmf7ngv743P7yq/72gP7wzf7w3f7vlP7UafmvU/ioT/7ql/7ncfvVrP3guvq/df/QO/712P7emP76uv7mifu3T/3kzv70bPzYpv784fy8U/73nN/e3uvq6+/v7/f39////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUADwAAAf/gE2Cg4SFhodMTIeLggEFTQWKjIVKSk0AS5OETEmSSQOSk0pJg0sESgEBiYQDSgUSAJMAkkwFqJqXg0wBuE2jhAK4jgOFAwTEhwQHi8aLBJmLy4cA0ofQhkuRiLGDSUqSAqGbj00HzwdJwbOI4QICvE1MS5jihPNL9au9+/yM+vzywvWr1ETCNU2cmLBYkgSeplEfVEQoUMDhIibPUPTowETCqSVLHHJKgulDkAYoG3jwsAGDL1qKXuBAQLMmggQJfDQhJWiVC5o4E0wYOoFGEwHIBAlYgiEHygsXRIi4kOHowZ5JCnTIkIGCVworRlwdZGzDTZwP0hYY2xMAjLQm2BzIdUBwGxK5RIDEAAFiQCdESTAYuSSApKID9XoG84tPHoAAbAUtqZQ03j9DiRL328x5k+ZJTCp9RvSI4ehC80KUOHUaawANGjCiSqWZCQAJERYsGAJgBAEC3ggpEYAqhI4UHAwoN8Bjh+VSglosN8CgugULRY4SQtzERnUGFpZXOBFhKaEAS2dw0E1Ct+7yAgtxinBDuXUhALRZa1Kh/xEIAJrGTBMAKmCggU0QYNF5TRhYQxMy/KDAJQuSNUgBB6BDygCVbeKLN5ndM1qGoHgGWmudpShIIAA7 + + + +XWiki.JavaScriptExtension + + + + + + + + +0 +select +0 +cache +5 +Caching policy +0 + + ,| +1 +0 +long|short|default|forbid +com.xpn.xwiki.objects.classes.StaticListClass + + +code +2 +Code +20 +50 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +name +1 +Name +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +select +yesno +parse +4 +Parse content +0 +com.xpn.xwiki.objects.classes.BooleanClass + + +0 +select +0 +use +3 +Use this extension +0 + + ,| +1 +0 +onDemand=On demand|always=Always +com.xpn.xwiki.objects.classes.StaticListClass + + +XWiki.Ratings +0 +XWiki.JavaScriptExtension + +long + + +function setVote(ulel, url, i) +{ + return function() + { + url = url + "&vote=" + i; + new Ajax.Request(url, + { + method: 'get', + onSuccess: function(transport) + { + var values = transport.responseText.split("-"); + var avgvote = values[0]; + var uservote = values[1]; + var nbvotes = values[2]; + + if( (avgvote = parseFloat(avgvote)) ) { + var w = avgvote * 20; + ulel.down("li.current-rating").style.width = w + "%"; + } + else alert(transport.responseText); + + if( (uservote = parseInt(uservote)) ) { + var w = uservote * 20; + var id = ulel.up('.rating-container').id; + $(id + "-user").down('.star-rating').down("li.current-rating").style.width = w + "%"; + } + else alert(transport.responseText); + + $(id).down('.rating-message').down('span').innerHTML = nbvotes; + } + }); + } +} + +function showMsg(msgdiv, i) +{ + return function() + { + var msgs = ["$msg.get("rating.one-star")", "$msg.get("rating.two-stars")", "$msg.get("rating.three-stars")", "$msg.get("rating.four-stars")", "$msg.get("rating.five-stars")"]; + msgdiv.update(msgs[i]); + } +} + +function hideMsg(msgdiv, prevmsg) +{ + return function() + { + msgdiv.update(prevmsg); + } +} + +Event.observe(window, 'load', function() +{ + + $$('.star-rating').each(function(el) + { + if(! el.hasClassName('locked')) + { + var url = "$xwiki.getURL("XWiki.Ratings", "view", "xpage=plain")" + "&doc=" + el.up('.rating-wrapper').id.substring(7); + var msgdiv = el.up('.rating-container').down('.rating-message'); + + el.select('a').each(function(astar, i) + { + Event.observe(astar, 'click', setVote(el, url, i + 1)); + var prevmsg = msgdiv.innerHTML; + Event.observe(astar, 'mouseover', showMsg(msgdiv, i)); + Event.observe(astar, 'mouseout', hideMsg(msgdiv, prevmsg)); + }); // container + } + }); +}); + +Ratings Javascript + + +1 + + +onDemand + + + + +XWiki.StyleSheetExtension + + + + + + + + +0 +select +0 +cache +5 +Caching policy +0 + + ,| +1 +0 +long|short|default|forbid +com.xpn.xwiki.objects.classes.StaticListClass + + +code +2 +Code +20 +50 +0 +com.xpn.xwiki.objects.classes.TextAreaClass + + +name +1 +Name +30 +0 +com.xpn.xwiki.objects.classes.StringClass + + +select +yesno +parse +4 +Parse content +0 +com.xpn.xwiki.objects.classes.BooleanClass + + +0 +select +0 +use +3 +Use this extension +0 + + ,| +1 +0 +onDemand=On demand|always=Always +com.xpn.xwiki.objects.classes.StaticListClass + + +XWiki.Ratings +0 +XWiki.StyleSheetExtension + +long + + +.star-rating, +.star-rating a:hover, +.star-rating a:active, +.star-rating a:focus, +.star-rating .current-rating{ +background: url($doc.getAttachmentURL("star.gif")) left -1000px repeat-x; +} +.star-rating{ +position:relative; +width:125px; +height:25px; +overflow:hidden; +list-style:none; +margin:0px !important; +padding:0px !important; +background-position: left top; +} +.star-rating li{ +display: inline; +} +.star-rating a, +.star-rating .current-rating{ +position:absolute; +top:0; +left:0; +text-indent:-1000em; +height:25px; +line-height:25px; +outline:none; +overflow:hidden; +border: none; +} +.star-rating a:hover, +.star-rating a:active, +.star-rating a:focus{ +background-position: left bottom; +} +.star-rating a.one-star{ +width:20%; +z-index:6; +} +.star-rating a.two-stars{ +width:40%; +z-index:5; +} +.star-rating a.three-stars{ +width:60%; +z-index:4; +} +.star-rating a.four-stars{ +width:80%; +z-index:3; +} +.star-rating a.five-stars{ +width:100%; +z-index:2; +} +.star-rating .current-rating{ +z-index:1; +background-position: left center; +} + +.small-star{ +width:100px; +height:20px; +} + +.small-star, +.small-star a:hover, +.small-star a:active, +.small-star a:focus, +.small-star .current-rating{ +background-image: url($doc.getAttachmentURL("smallstar.gif")); +line-height: 20px; +height: 20px; +} + +ul.locked a, +ul.locked a:hover, +ul.locked a:active, +ul.locked a:focus { +background: transparent none; +} + +ul.locked a { +cursor: default !important; +} + +.rating-container { +display: block; +clear: both; +float: none; +height: 25px; +line-height: 25px; +} + +.rating-header, .rating-stars, .rating-message { +display: inline; +float: left; +clear: none; +} + +.rating-header { +font-size: 11px; +font-weight: bold; +margin-right: 2px; +height: 25px; +line-height: 25px; +} + +.rating-message { +font-size: 10px; +color: #333; +font-style: italic; +} + +.login-to-rate { +font-size: 11px; +font-weight: bold; +} + +.small { +height: 20px !important; +line-height: 20px !important; +} + + +Ratings CSS + + +1 + + +onDemand + + + + +XWiki.TagClass + + + + + + + + +0 +input +1 +tags +1 +Tags +1 + + ,| +30 +0 + +com.xpn.xwiki.objects.classes.StaticListClass + + +XWiki.Ratings +0 +XWiki.TagClass + + + + +#if("$!{request.xpage}" == "plain") + #set($rdoc = $xwiki.getDocument($request.doc)) + #set($vote = $xwiki.parseInt($request.vote)) + #if($vote > 0 && $vote <= 5) + #set($ok = $xwiki.ratings.setRating($rdoc, $context.user, $vote)) + #if($ok) + #if("$!{request.method}" != "") + #set($ar = $xwiki.ratings.getAverageRating($rdoc, $request.method)) + #else + #set($ar = $xwiki.ratings.getAverageRating($rdoc)) + #end + #set($avgvote = $ar.averageVote) + #set($uservote = $xwiki.ratings.getRating($rdoc, $context.user)) + #set($nbVotes = $ar.nbVotes) + ${avgvote}-${uservote.vote}-${nbVotes} + #else + $msg.get("rating.saveexception") + #end + #elseif($vote == 0) + $msg.get("rating.votenotvalid") + #else + $msg.get("rating.voteoutofbounds") + #end +#end +