Änderungen von Dokument Sandbox
Zuletzt geändert von Holger Engels am 2024/01/26 15:58
Von Version 38.1
bearbeitet von Holger Engels
am 2024/01/26 15:58
am 2024/01/26 15:58
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf 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
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -1,9 +7,3 @@ 1 -{{groovy}} 2 - xcontext.get("hallo") 3 -{{/groovy}} 4 - 5 -{{qrcode}}[[lala>>Eingangsklasse.BPE_4_6]]{{/qrcode}} 6 - 7 7 Der Sandkasten ist ein Teil dieses Wikis, der frei editierbar ist. Er ist dafür gedacht, das Arbeiten mit dem Wiki zu üben. Sie können herausfinden, wie das Bearbeiten von Seiten funktioniert und wie man neue Seiten erstellt. Klicken Sie einfach auf **Bearbeiten** um zu beginnen! 8 8 9 9 {{info}} ... ... @@ -105,8 +105,36 @@ 105 105 106 106 [[image:XWikiLogo.png]] 107 107 108 -= =Orphaned Pages ==102 += Makros = 109 109 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 + 110 110 {{velocity filter="none"}} 111 111 {{html clean="false" wiki="true"}} 112 112 #set ($query = "where (doc.parent is null or doc.parent='') and doc.fullName != 'Main.WebHome' order by doc.name asc") ... ... @@ -123,40 +123,37 @@ 123 123 {{/velocity}} 124 124 125 125 126 -== Rating Tests == 127 - 128 -{{velocity}} 129 -$services.ratings.aufgaben.setRating("xwiki:Sandbox.WebHome.WebHome^test", 0) 130 -$services.ratings.aufgaben.getCurrentUserRatings(0, 100, true) 131 - 132 -{{html clean="false" wiki="true"}} 133 -<style> 134 -star-rating { display: inline-block; width: 120px } 135 -</style> 136 -<star-rating stars=5 rating="$average.get().averageVote" rid="test" bgcolor="white" nocolor="lightgrey" color="gold" onclick="rated.call(this)"></star-rating> 137 -{{/html}} 138 -{{/velocity}} 139 - 140 140 {{html clean="false"}} 141 141 <script> 142 - function rated() { 143 - console.log(XWiki.currentDocument.space + ".WebHome") 144 - console.log(this.getAttribute("rating")); 145 - sendRate(this.getAttribute("rid"), parseInt(this.getAttribute("rating"))); 146 - } 147 - var sendRate = function (rid, vote) { 148 - fetch(new XWiki.Document('WebHome', 'Macros.Aufgabenbewertung').getURL('get') + "?outputSyntax=plain", { 149 - method: "POST", 150 - headers: { "Content-Type": "application/json"}, 151 - body: JSON.stringify({ 152 - vote: vote, 153 - doc: XWiki.currentDocument.space + ".WebHome", 154 - id: rid, 155 - form_token: document.documentElement.getAttribute("data-xwiki-form-token") 156 - }) 157 - }).then(data => { 158 - console.log(data.json()) 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 + } 159 159 }); 160 - } 161 161 </script> 162 162 {{/html}} 180 + 181 +