Änderungen von Dokument Sandbox
Zuletzt geändert von Holger Engels am 2024/01/26 15:58
Von Version 8.1
bearbeitet von Holger Engels
am 2023/11/08 06:51
am 2023/11/08 06:51
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 20.1
bearbeitet von Holger Engels
am 2023/11/13 21:38
am 2023/11/13 21:38
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -99,36 +99,8 @@ 99 99 100 100 [[image:XWikiLogo.png]] 101 101 102 -= Makros =102 +== Orphaned Pages == 103 103 104 -Makros bieten die Möglichkeit, das Aussehen von Wiki-Seiten zu verbessern und stellen zusätzliche Funktionalitäten in der Seite zur Verfügung. Hier sind zwei Beispiele, wie Makros die Inhalte verbessern können: 105 - 106 -== Makro: Warnmeldung == 107 - 108 -Dieses Makro bietet die Möglichkeit, die Aufmerksamkeit der Leser auf einen bestimmten Text zu lenken: 109 - 110 -{{warning}} 111 -Dies ist ein wichtiger Hinweis! 112 -{{/warning}} 113 - 114 -=== Ausrichten am === 115 - 116 - ~=== 117 - 118 -{{formula}} 119 -\begin{align*} 120 -f(x) &= x^2\! +3x\! +2 \\ 121 -f(x) &= x^2+3x+2 \\ 122 -f(x) &= x^2\, +3x\, +2 \\ 123 -f(x) &= x^2\: +3x\: +2 \\ 124 -f(x) &= x^2\; +3x\; +2 \\ 125 -f(x) &= x^2\ +3x\ +2 \\ 126 -f(x) &= x^2\quad +3x\quad +2 \\ 127 -f(x) &= x^2\qquad +3x\qquad +2 128 -\end{align*} 129 -{{/formula}} 130 - 131 - 132 132 {{velocity filter="none"}} 133 133 {{html clean="false" wiki="true"}} 134 134 #set ($query = "where (doc.parent is null or doc.parent='') and doc.fullName != 'Main.WebHome' order by doc.name asc") ... ... @@ -145,37 +145,38 @@ 145 145 {{/velocity}} 146 146 147 147 120 +== Rating Tests == 121 + 122 +{{velocity}} 123 +#set($average = $services.ratings.aufgaben.getAverageRating($doc.space + "^" + "test")) 124 + 125 +{{html clean="false" wiki="true"}} 126 +<style> 127 +star-rating { display: inline-block; width: 120px } 128 +</style> 129 +<star-rating stars=5 rating="$average.get().averageVote" bgcolor="white" nocolor="lightgrey" color="gold" onclick="rated.call(this)"></star-rating> 130 +{{/html}} 131 +{{/velocity}} 132 + 148 148 {{html clean="false"}} 149 149 <script> 150 - customElements.define("star-rating", class extends HTMLElement { 151 - set rating(rate) { 152 - if (!String(rate).includes("%")) rate = Number(rate) / this.stars * 100 + "%"; 153 - this.querySelector(":nth-child(2)").setAttribute("width", rate); //2nd rect 154 - } 155 - set value(v) { 156 - this.setAttribute("rating", v); 157 - } 158 - connectedCallback() { 159 - let {bgcolor,stars,nocolor,color,rating} = this.attributes; 160 - let repeat = (count, func) => Array(count).fill().map(func); 161 - this.stars = ~~stars.value || 5; 162 - this.innerHTML = `<svg viewBox="0 0 ${this.stars*100} 100" style=cursor:pointer>` + 163 - `<rect height=100 fill=${nocolor.value} width=100% />` + 164 - `<rect height=100 fill=${color.value} />` + 165 - repeat(this.stars , (i, n) => `<path fill=${bgcolor.value} d="m${ n*100 } 0h102v100h-102v-100m91 42a6 6 90 00-4-10l-22-1a1 1 90 01-1 0l-8-21a6 6 90 00-11 0l-8 21a1 1 90 01-1 1l-22 1a6 6 90 00-4 10l18 14a1 1 90 010 1l-6 22a6 6 90 008 6l19-13a1 1 90 011 0l19 13a6 6 90 006 0a6 6 90 002-6l-6-22a1 1 90 010-1z"/>`) + 166 - repeat(this.stars * 2, (i, n) => `<rect x=${ n*50 } n=${n} opacity=0 width=50 height=100 ` + 167 - ` onclick="this.closest('star-rating').value=${(n+1)/2}; this.closest('star-rating').dispatchEvent(new Event('click'))" ` + 168 - ` onmouseover="this.closest('star-rating').rating=${(n+1)/2}"/>`) + 169 - "</svg>"; 170 - this.rating = rating.value; 171 - this.addEventListener('mouseleave', (e) => { 172 - if (e.target.tagName === 'STAR-RATING') { 173 - e.target.rating = e.target.getAttribute("rating") 174 - } 175 - }) 176 - } 135 + function rated() { 136 + console.log(this.getAttribute("rating")); 137 + sendRate(parseInt(this.getAttribute("rating"))); 138 + } 139 + var sendRate = function (vote) { 140 + fetch(new XWiki.Document('WebHome', 'Macros.Aufgabenbewertung').getURL('get') + "?outputSyntax=plain", { 141 + method: "POST", 142 + headers: { "Content-Type": "application/json"}, 143 + body: JSON.stringify({ 144 + vote: vote, 145 + doc: XWiki.currentDocument.space, 146 + id: "test", 147 + form_token: document.documentElement.getAttribute("data-xwiki-form-token") 148 + }) 149 + }).then(data => { 150 + console.log(data.json()) 177 177 }); 152 + } 178 178 </script> 179 179 {{/html}} 180 - 181 -