Modifications pour le document RatingWidget
Modifié par Pascale STEIMETZ-LE CACHEUX le 2026/03/25 16:54
Depuis la version 4.1
modifié par Pascale STEIMETZ-LE CACHEUX
sur 2026/03/24 12:50
sur 2026/03/24 12:50
Commentaire de modification :
Il n'y a aucun commentaire pour cette version
À la version 3.1
modifié par Pascale STEIMETZ-LE CACHEUX
sur 2026/03/24 12:46
sur 2026/03/24 12:46
Commentaire de modification :
Il n'y a aucun commentaire pour cette version
Résumé
-
Propriétés de la Page (1 modifications, 0 ajouts, 0 suppressions)
Détails
- Propriétés de la Page
-
- Contenu
-
... ... @@ -1,43 +41,3 @@ 1 -{{velocity}} 2 -#if(!$ratingTarget) 3 - #set($ratingTarget = $doc.fullName) 4 -#end 5 -{{/velocity}} 6 - 7 -{{groovy}} 8 -def currentDoc = "$ratingTarget" 9 - 10 -def store = xwiki.getDocument("Flora.RatingStore3") 11 -def objects = store.getObjects("Flora.RatingVoteClass3") 12 - 13 -def total = 0 14 -def count = 0 15 - 16 -if (objects != null) { 17 - for (o in objects) { 18 - if (o != null) { 19 - def docValue = o.getValue("document") 20 - def noteValue = o.getValue("note") 21 - 22 - if (docValue != null && docValue.toString() == currentDoc && noteValue != null) { 23 - total += Integer.parseInt(noteValue.toString()) 24 - count += 1 25 - } 26 - } 27 - } 28 -} 29 - 30 -def avg = count > 0 ? total / count : 0 31 -def stars = "" 32 -for (int i = 1; i <= 5; i++) { 33 - stars += (i <= Math.round(avg)) ? "★" : "☆" 34 -} 35 - 36 -xcontext.put("floraRatingDoc", currentDoc) 37 -xcontext.put("floraRatingStars", stars) 38 -xcontext.put("floraRatingCount", count) 39 -{{/groovy}} 40 - 41 41 {{html clean="false"}} 42 42 <style> 43 43 .flora-rating-wrap { ... ... @@ -50,14 +50,12 @@ 50 50 flex-wrap: wrap; 51 51 font-size: 14px; 52 52 } 13 + 53 53 .flora-rating-label { 54 54 font-weight: 600; 55 55 color: #2A2B69; 56 56 } 57 -.flora-stars { 58 - display: inline-flex; 59 - gap: 4px; 60 -} 18 + 61 61 .flora-stars button { 62 62 background: none; 63 63 border: none; ... ... @@ -64,29 +64,64 @@ 64 64 font-size: 22px; 65 65 cursor: pointer; 66 66 color: #d4af37; 67 - padding: 0; 68 - margin: 0; 69 69 } 70 - .flora-stars button:hover,71 -.flora-stars button .hovered{26 + 27 +.flora-stars button:hover { 72 72 color: #f2c94c; 73 73 } 30 + 74 74 .flora-rating-result { 75 75 color: #2F2F2F; 76 76 } 77 77 </style> 35 +{{/html}} 78 78 79 -<div class="flora-rating-wrap" data-doc="$escapetool.xml($floraRatingDoc)"> 80 - <span class="flora-rating-label">Noter cette page</span> 37 +{{velocity}} 38 +#set($currentDoc = $doc.fullName) 39 +{{/velocity}} 81 81 82 - <div class="flora-stars"> 83 - <button class="flora-star" data-note="1" type="button">★</button> 84 - <button class="flora-star" data-note="2" type="button">★</button> 85 - <button class="flora-star" data-note="3" type="button">★</button> 86 - <button class="flora-star" data-note="4" type="button">★</button> 87 - <button class="flora-star" data-note="5" type="button">★</button> 88 - </div> 41 +{{groovy}} 42 +def store = xwiki.getDocument("Flora.RatingStore3") 43 +def objects = store.getObjects("Flora.RatingVoteClass3") 89 89 90 - <span class="flora-rating-result">$floraRatingStars ($floraRatingCount votes)</span> 91 -</div> 92 -{{/html}} 45 +def total = 0 46 +def count = 0 47 + 48 +if (objects != null) { 49 + for (o in objects) { 50 + if (o != null) { 51 + def docValue = o.getValue("document") 52 + def noteValue = o.getValue("note") 53 + 54 + if (docValue != null && docValue.toString() == "$currentDoc" && noteValue != null) { 55 + total += Integer.parseInt(noteValue.toString()) 56 + count += 1 57 + } 58 + } 59 + } 60 +} 61 + 62 +def avg = count > 0 ? total / count : 0 63 + 64 +print('<div class="flora-rating-wrap" data-doc="' + "$currentDoc" + '">') 65 +print('<span class="flora-rating-label">Noter cette page</span>') 66 + 67 +print('<div class="flora-stars">') 68 +for (int i = 1; i <= 5; i++) { 69 + print('<button class="flora-star" data-note="' + i + '">★</button>') 70 +} 71 +print('</div>') 72 + 73 +print('<span class="flora-rating-result">') 74 + 75 +for (int i = 1; i <= 5; i++) { 76 + if (i <= Math.round(avg)) { 77 + print('★') 78 + } else { 79 + print('☆') 80 + } 81 +} 82 + 83 +print(' (' + count + ' votes)</span>') 84 +print('</div>') 85 +{{/groovy}}