Changes for page Service Navigator

Last modified by Veronika Kocher on Thursday, 03 Sep 2026 14:15

From version 11.1
edited by Veronika Kocher
on Tuesday, 11 Aug 2026 14:01
Change comment: Rollback to version 4.1
To version 22.15
edited by Veronika Kocher
on Thursday, 03 Sep 2026 10:09
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,49 +1,1404 @@
1 -<div class="rh-grid">
1 +{{html}}
2 +<div style="max-width:1400px;margin:0 auto;">
2 2  
3 - <div class="rh-col">
4 - <a class="rh-img" href="#"></a>
5 - <div class="rh-body">
6 - <h3 class="rh-heading"><a href="#"><span class="rh-num">1.</span> Planning &amp; Set-up</a></h3>
7 - <p class="rh-desc">Resources for preparation of your research</p>
8 - <div class="rh-cards">
9 - <a class="rh-card rh-flame1" href="#">Data Management</a>
10 - <a class="rh-card rh-flame2" href="#">Research Strategy and Funding</a>
11 - <a class="rh-card rh-flame3" href="#">Research Strategy and Funding</a>
12 - <a class="rh-card rh-flame4" href="#">Responsible and Compliant Research</a>
4 + <p style="margin:0 0 8px 0;">
5 + Artistic and administrative services at the University support many different needs — from research projects and teaching to employment, IT, rooms, procurement, legal questions, international mobility and library services.
6 + </p>
7 +
8 + <p style="margin:0 0 22px 0;">
9 + The <strong>Service Navigator</strong> is organised around what you need to do, not around the university's organisational chart.
10 + </p>
11 +
12 + <section style="margin:0 0 28px 0;padding:16px 18px;border:1px solid #e3ded6;border-radius:10px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);">
13 + <h2 style="font-size:20px;margin:0 0 6px 0;color:#35312d;">Find a service</h2>
14 + <p style="margin:0 0 12px 0;color:#6a655e;">
15 + Search by task, topic or question — for example <em>room, invoice, disability, DOI, event, employment, data protection</em> or <em>library</em>.
16 + </p>
17 +
18 + <form action="https://xwiki.uni-ak.ac.at/bin/view/Main/SolrSearch" method="get" role="search" style="margin:0;">
19 + <div style="display:flex;gap:10px;align-items:center;flex-wrap:wrap;">
20 + <label for="service-navigator-search" style="position:absolute;left:-10000px;">Search services</label>
21 + <input
22 + id="service-navigator-search"
23 + name="text"
24 + type="search"
25 + placeholder="What do you need help with?"
26 + autocomplete="off"
27 + style="flex:1 1 520px;min-width:260px;padding:11px 13px;border:1px solid #cfc8bd;border-radius:6px;background:#fffdf9;font-size:16px;"
28 + />
29 + <button type="submit" class="btn btn-primary" style="padding:11px 22px;">Search</button>
13 13   </div>
14 - <a class="rh-btn" href="#">Explore Planning &amp; Set-up</a>
15 - </div>
16 - </div>
31 + </form>
32 + </section>
17 17  
18 - <div class="rh-col">
19 - <a class="rh-img" href="#"></a>
20 - <div class="rh-body">
21 - <h3 class="rh-heading"><a href="#"><span class="rh-num">2.</span> Execution</a></h3>
22 - <p class="rh-desc">Daily support resources during your project</p>
23 - <div class="rh-cards">
24 - <a class="rh-card rh-flame5" href="#">Collaboration Tools</a>
25 - <a class="rh-card rh-flame1" href="#">Computing resources</a>
26 - <a class="rh-card rh-flame2" href="#">Daily IT Support</a>
27 - <a class="rh-card rh-flame3" href="#">Graduate School</a>
28 - <a class="rh-card rh-flame4" href="#">TU Delft collections</a>
34 + <h2 style="font-size:24px;margin:0 0 16px 0;color:#35312d;">Find services by what you need to do</h2>
35 +
36 + <div style="
37 + display:grid;
38 + grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
39 + gap:18px;
40 + align-items:stretch;
41 + ">
42 +
43 + <!-- 1. PEOPLE, EQUALITY, HEALTH & WORK -->
44 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #f0aa00;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
45 + <div style="padding:18px 18px 14px 18px;flex:1;">
46 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">PEOPLE &amp; WORK</div>
47 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">People, Equality, Health &amp; Work</h3>
48 + <p style="color:#6a655e;margin:0 0 14px 0;">Employment, equality, diversity, disability, accessibility and health.</p>
49 +
50 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
51 + <ul style="margin:0 0 14px 18px;padding:0;">
52 + <li>ask about employment, working conditions or labour law</li>
53 + <li>get support concerning discrimination, equality or diversity</li>
54 + <li>address disability, accessibility or health at work</li>
55 + </ul>
56 +
57 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
58 + HR · staff development · equal treatment · diversity · disability · accessibility · health · labour law
59 + </div>
29 29   </div>
30 - <a class="rh-btn" href="#">Explore Execution</a>
31 - </div>
32 - </div>
61 + <div style="padding:0 18px 18px 18px;">
62 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore People &amp; Work</span>
63 + </div>
64 + </section>
33 33  
34 - <div class="rh-col">
35 - <a class="rh-img" href="#"></a>
36 - <div class="rh-body">
37 - <h3 class="rh-heading"><a href="#"><span class="rh-num">3.</span> Dissemination</a></h3>
38 - <p class="rh-desc">Sharing, publishing and archiving research</p>
39 - <div class="rh-cards">
40 - <a class="rh-card rh-flame5" href="#">Media Production</a>
41 - <a class="rh-card rh-flame1" href="#">Publishing</a>
42 - <a class="rh-card rh-flame2" href="#">Science Communication</a>
43 - <a class="rh-card rh-flame3" href="#">Tech Transfer</a>
66 + <!-- 2. IT & DIGITAL SERVICES -->
67 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #38b76a;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
68 + <div style="padding:18px 18px 14px 18px;flex:1;">
69 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">IT &amp; DIGITAL</div>
70 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">IT &amp; Digital Services</h3>
71 + <p style="color:#6a655e;margin:0 0 14px 0;">Accounts, systems, software, digital infrastructure and IT support.</p>
72 +
73 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
74 + <ul style="margin:0 0 14px 18px;padding:0;">
75 + <li>access an account, system or digital service</li>
76 + <li>solve an IT problem</li>
77 + <li>plan or coordinate a digital or IT project</li>
78 + </ul>
79 +
80 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
81 + Accounts · IT support · software · digital tools · infrastructure · IT project coordination
82 + </div>
44 44   </div>
45 - <a class="rh-btn" href="#">Explore Dissemination</a>
46 - </div>
84 + <div style="padding:0 18px 18px 18px;">
85 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore IT &amp; Digital Services</span>
86 + </div>
87 + </section>
88 +
89 + <!-- 3. ROOMS, BUILDINGS & CAMPUS -->
90 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #38b76a;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
91 + <div style="padding:18px 18px 14px 18px;flex:1;">
92 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">CAMPUS</div>
93 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Rooms, Buildings &amp; Campus</h3>
94 + <p style="color:#6a655e;margin:0 0 14px 0;">Rooms, buildings, facilities, campus use and operational support.</p>
95 +
96 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
97 + <ul style="margin:0 0 14px 18px;padding:0;">
98 + <li>book or use a room</li>
99 + <li>report a building, equipment or safety issue</li>
100 + <li>find information about campus facilities or house rules</li>
101 + </ul>
102 +
103 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
104 + Facility management · estates · room coordination · building services · safety · house rules · campus operations
105 + </div>
106 + </div>
107 + <div style="padding:0 18px 18px 18px;">
108 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Rooms &amp; Campus</span>
109 + </div>
110 + </section>
111 +
112 + <!-- 4. ART & RESEARCH SERVICES -->
113 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
114 + <div style="padding:18px 18px 14px 18px;flex:1;">
115 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">ART &amp; RESEARCH</div>
116 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Art &amp; Research Services</h3>
117 + <p style="color:#6a655e;margin:0 0 8px 0;">Cross-unit guidance for planning, managing, publishing, sharing and preserving artistic and research projects.</p>
118 + <!-- ARSN_ROOT_SCOPE_ROUTING_V1 -->
119 + <div style="font-size:12px;color:#506168;line-height:1.45;margin:0 0 14px 0;padding:7px 9px;background:#eef7f9;border-radius:5px;"><strong>Central project &amp; funding hub:</strong> Support Kunst und Forschung · specialist responsibilities remain with the relevant service units.</div>
120 +
121 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
122 + <ul style="margin:0 0 14px 18px;padding:0;">
123 + <li>develop or plan an artistic or research project</li>
124 + <li>manage research data, documentation or collaboration</li>
125 + <li>publish, cite, share or preserve outputs</li>
126 + </ul>
127 +
128 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
129 + Research projects · research data management · rights &amp; ethics · repositories · publication · preservation
130 + </div>
131 + </div>
132 + <div style="padding:0 18px 18px 18px;">
133 + <a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/" class="btn btn-primary btn-block">Explore Art &amp; Research Services</a>
134 + </div>
135 + </section>
136 +
137 + <!-- 5. STUDY, TEACHING & CURRICULUM -->
138 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
139 + <div style="padding:18px 18px 14px 18px;flex:1;">
140 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">STUDY &amp; TEACHING</div>
141 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Study, Teaching &amp; Curriculum</h3>
142 + <p style="color:#6a655e;margin:0 0 14px 0;">Support for studying, teaching, curricula and the learning environment.</p>
143 +
144 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
145 + <ul style="margin:0 0 14px 18px;padding:0;">
146 + <li>clarify a study-related question</li>
147 + <li>develop or change teaching or curricula</li>
148 + <li>find support for final projects or accessibility in study</li>
149 + </ul>
150 +
151 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
152 + Student affairs · teaching quality · curriculum development · final projects · student workspace
153 + </div>
154 + </div>
155 + <div style="padding:0 18px 18px 18px;">
156 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Study &amp; Teaching</span>
157 + </div>
158 + </section>
159 +
160 +<!-- 6. RESEARCH & DISCOVERY RESOURCES -->
161 + <section style="display:flex;flex-direction:column;min-height:340px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
162 + <div style="padding:18px 18px 14px 18px;flex:1;">
163 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">FIND · SEARCH · DISCOVER</div>
164 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Research &amp; Discovery Resources</h3>
165 + <p style="color:#6a655e;margin:0 0 14px 0;">Find literature, databases, archives, collections, repositories and specialist research resources across the University.</p>
166 +
167 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
168 + <ul style="margin:0 0 14px 18px;padding:0;">
169 + <li>find literature, media, databases or digital resources</li>
170 + <li>research archival, artistic or institutional collections</li>
171 + <li>discover repositories, specialist archives and research databases</li>
172 + </ul>
173 +
174 + <div style="font-size:12px;color:#6a655e;line-height:1.5;">
175 + University Library &amp; supA · licensed databases · University Archive &amp; Art Collection · online collection databases · Oskar Kokoschka Centre · Viktor J. Papanek Foundation · Venedig Biennale Archiv Austria · Weibel Institute &amp; Peter Weibel Archive · Ursula Blickle Video Archive · Angewandte Repository
176 + </div>
177 + </div>
178 + <div style="padding:0 18px 18px 18px;">
179 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Research &amp; Discovery</span>
180 + </div>
181 + </section>
182 +
183 + <!-- 7. PURCHASING, FINANCE & LOGISTICS -->
184 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #38b76a;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
185 + <div style="padding:18px 18px 14px 18px;flex:1;">
186 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">PURCHASE &amp; MOVE</div>
187 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Purchasing, Finance &amp; Logistics</h3>
188 + <p style="color:#6a655e;margin:0 0 14px 0;">Buy, pay, budget, send, transport and move things.</p>
189 +
190 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
191 + <ul style="margin:0 0 14px 18px;padding:0;">
192 + <li>purchase materials or services</li>
193 + <li>clarify an invoice, budget or financial process</li>
194 + <li>send, transport or move items</li>
195 + </ul>
196 +
197 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
198 + Procurement · controlling · accounting · resource planning · mail &amp; logistics · transport · relocations
199 + </div>
200 + </div>
201 + <div style="padding:0 18px 18px 18px;">
202 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Finance &amp; Logistics</span>
203 + </div>
204 + </section>
205 +
206 + <!-- 8. LEGAL, DATA PROTECTION & GOVERNANCE -->
207 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #f0aa00;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
208 + <div style="padding:18px 18px 14px 18px;flex:1;">
209 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">RIGHTS &amp; RULES</div>
210 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Legal, Data Protection &amp; Governance</h3>
211 + <p style="color:#6a655e;margin:0 0 14px 0;">Legal questions, privacy, information rights and institutional rules.</p>
212 +
213 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
214 + <ul style="margin:0 0 14px 18px;padding:0;">
215 + <li>clarify a legal or contractual question</li>
216 + <li>deal with personal data or privacy</li>
217 + <li>understand an institutional rule or information-access requirement</li>
218 + </ul>
219 +
220 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
221 + Legal affairs · data protection · freedom of information · governance · institutional rules
222 + </div>
223 + </div>
224 + <div style="padding:0 18px 18px 18px;">
225 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Legal &amp; Governance</span>
226 + </div>
227 + </section>
228 +
229 + <!-- 9. COMMUNICATION, MEDIA & EVENTS -->
230 + <section style="display:flex;flex-direction:column;min-height:320px;border:1px solid #e3ded6;border-left:6px solid #e94b13;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
231 + <div style="padding:18px 18px 14px 18px;flex:1;">
232 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">COMMUNICATE &amp; ORGANISE</div>
233 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Communication, Media &amp; Events</h3>
234 + <p style="color:#6a655e;margin:0 0 14px 0;">Communicate, publish, print, promote and organise events.</p>
235 +
236 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
237 + <ul style="margin:0 0 14px 18px;padding:0;">
238 + <li>communicate or publicise something</li>
239 + <li>produce a publication, flyer or printed material</li>
240 + <li>organise or support an event</li>
241 + </ul>
242 +
243 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
244 + Press &amp; communications · publications · print materials · event management · Open House · festival
245 + </div>
246 + </div>
247 + <div style="padding:0 18px 18px 18px;">
248 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore Communication &amp; Events</span>
249 + </div>
250 + </section>
251 +
252 + <!-- 10. INTERNATIONAL OFFICE -->
253 + <section style="display:flex;flex-direction:column;min-height:300px;border:1px solid #e3ded6;border-left:6px solid #21b6d7;border-radius:12px;background:#fcfbf8;box-shadow:0 1px 2px rgba(0,0,0,.035);overflow:hidden;">
254 + <div style="padding:18px 18px 14px 18px;flex:1;">
255 + <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">GO INTERNATIONAL</div>
256 + <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">International Office</h3>
257 + <p style="color:#6a655e;margin:0 0 14px 0;">International mobility, exchange and international support.</p>
258 +
259 + <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
260 + <ul style="margin:0 0 14px 18px;padding:0;">
261 + <li>plan an international stay or exchange</li>
262 + <li>ask about mobility opportunities</li>
263 + <li>find support for an international context</li>
264 + </ul>
265 +
266 + <div style="font-size:12px;color:#6a655e;line-height:1.45;">
267 + Mobility · exchange · international cooperation · international support
268 + </div>
269 + </div>
270 + <div style="padding:0 18px 18px 18px;">
271 + <span class="btn btn-default btn-block disabled" style="background:#f4f0e9;border-color:#d8d1c7;color:#6b655d;" aria-disabled="true">Explore International Office</span>
272 + </div>
273 + </section>
274 +
275 +
47 47   </div>
48 48  
278 + <aside style="margin-top:26px;padding:14px 16px;border:1px solid #cfe8ef;border-left:4px solid #21b6d7;background:#eaf6f9;border-radius:6px;">
279 + <strong>Not sure where to start?</strong>
280 + <div style="margin-top:4px;">
281 + Use the search at the top of the page or choose the card that best matches what you are trying to do. A service may deliberately appear in more than one area when this makes it easier to find.
282 + </div>
283 + </aside>
284 +
49 49  </div>
286 +{{/html}}
287 +
288 +\n\n
289 +\n\n{{html clean="false"}}
290 +<!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
291 +
292 +<style data-sn-horizontal-box-harmonizer="7">
293 +/* ---------- Typography: never justify headings ---------- */
294 +#xwikicontent h1,
295 +#xwikicontent h2,
296 +#xwikicontent h3,
297 +#xwikicontent h4,
298 +#xwikicontent h5,
299 +#xwikicontent h6,
300 +#xwikicontent .box-title,
301 +#xwikicontent [role="heading"],
302 +#xwikicontent h1 a,
303 +#xwikicontent h2 a,
304 +#xwikicontent h3 a,
305 +#xwikicontent h4 a,
306 +#xwikicontent h5 a,
307 +#xwikicontent h6 a,
308 +#xwikicontent .box-title a,
309 +#xwikicontent [role="heading"] a{
310 + text-align:left!important;
311 + text-justify:auto!important;
312 + word-spacing:normal!important;
313 +}
314 +
315 +/* ---------- Native XWiki semantic callouts ---------- */
316 +#xwikicontent .box.infomessage,
317 +#xwikicontent .infomessage,
318 +#xwikicontent .box.warningmessage,
319 +#xwikicontent .warningmessage,
320 +#xwikicontent .box.successmessage,
321 +#xwikicontent .successmessage,
322 +#xwikicontent .box.errormessage,
323 +#xwikicontent .errormessage,
324 +#xwikicontent [data-sn-callout-harmonized="1"]{
325 + box-sizing:border-box!important;
326 + border-radius:8px!important;
327 + border-top:1px solid rgba(0,0,0,.08)!important;
328 + border-right:1px solid rgba(0,0,0,.08)!important;
329 + border-bottom:1px solid rgba(0,0,0,.08)!important;
330 + border-left:4px solid var(--sn-callout-accent,#21b6d7)!important;
331 + padding:14px 16px!important;
332 + text-align:left!important;
333 + text-justify:auto!important;
334 + word-spacing:normal!important;
335 + box-shadow:none!important;
336 +}
337 +
338 +#xwikicontent .box.infomessage,
339 +#xwikicontent .infomessage{
340 + --sn-callout-accent:#21b6d7;
341 + background:#eaf7fb!important;
342 +}
343 +
344 +#xwikicontent .box.warningmessage,
345 +#xwikicontent .warningmessage{
346 + --sn-callout-accent:#f0aa00;
347 + background:#fff8e7!important;
348 +}
349 +
350 +#xwikicontent .box.successmessage,
351 +#xwikicontent .successmessage{
352 + --sn-callout-accent:#38b76a;
353 + background:#edf9f1!important;
354 +}
355 +
356 +#xwikicontent .box.errormessage,
357 +#xwikicontent .errormessage{
358 + --sn-callout-accent:#e94b13;
359 + background:#fff1ec!important;
360 +}
361 +
362 +#xwikicontent [data-sn-callout-harmonized="1"] > :first-child,
363 +#xwikicontent .infomessage > :first-child,
364 +#xwikicontent .warningmessage > :first-child,
365 +#xwikicontent .successmessage > :first-child,
366 +#xwikicontent .errormessage > :first-child{
367 + margin-top:0!important;
368 +}
369 +
370 +#xwikicontent [data-sn-callout-harmonized="1"] > :last-child,
371 +#xwikicontent .infomessage > :last-child,
372 +#xwikicontent .warningmessage > :last-child,
373 +#xwikicontent .successmessage > :last-child,
374 +#xwikicontent .errormessage > :last-child{
375 + margin-bottom:0!important;
376 +}
377 +
378 +#xwikicontent [data-sn-equal-height-managed],
379 +#xwikicontent [data-sn-first-section-aligned],
380 +#xwikicontent [data-sn-first-content-aligned]{
381 + box-sizing:border-box;
382 +}
383 +</style>
384 +
385 +<script data-sn-horizontal-box-harmonizer="7">
386 +(function(){
387 + "use strict";
388 +
389 + var MOBILE_MAX=767;
390 + var ROW_TOLERANCE=6;
391 + var MIN_W=150;
392 + var MIN_H=36;
393 + var MAX_PARENT_CHILDREN=18;
394 + var SEARCH_DEPTH=5;
395 + var RESIZE_DEBOUNCE=220;
396 + var MIN_WIDTH_CHANGE=2;
397 +
398 + var root=
399 + document.getElementById("xwikicontent")||
400 + document.querySelector(".xwiki-rendering-content")||
401 + document.querySelector("main")||
402 + document.body;
403 +
404 + if(!root)return;
405 +
406 + var heightManaged=new Set();
407 + var sectionManaged=new Set();
408 + var contentManaged=new Set();
409 +
410 + var originalMinHeight=new WeakMap();
411 + var originalMarginTop=new WeakMap();
412 +
413 + var resizeTimer=0;
414 + var lastWidth=-1;
415 + var hasApplied=false;
416 + var applying=false;
417 +
418 + function num(v){
419 + var n=parseFloat(v);
420 + return Number.isFinite(n)?n:0;
421 + }
422 +
423 + function visible(el,minW,minH){
424 + if(!el||el.nodeType!==1)return false;
425 +
426 + var s=getComputedStyle(el);
427 +
428 + if(
429 + s.display==="none"||
430 + s.visibility==="hidden"||
431 + Number(s.opacity)===0
432 + ){
433 + return false;
434 + }
435 +
436 + var r=el.getBoundingClientRect();
437 +
438 + return (
439 + r.width>=(minW||1)&&
440 + r.height>=(minH||1)
441 + );
442 + }
443 +
444 + function normalizeText(text){
445 + return String(text||"")
446 + .replace(/\s+/g," ")
447 + .trim()
448 + .toUpperCase();
449 + }
450 +
451 + function excluded(el){
452 + return (
453 + !el.matches||
454 + el.matches(
455 + "button,input,select,textarea,option,label,img,svg,canvas,table,thead,tbody,tfoot,tr,td,th,summary,script,style,noscript,template,.btn,.chip,[role=button]"
456 + )
457 + );
458 + }
459 +
460 + /* ---------- Custom coloured callouts ---------- */
461 +
462 + function nativeCallout(el){
463 + var c=
464 + typeof el.className==="string"
465 + ? el.className.toLowerCase()
466 + : "";
467 +
468 + return (
469 + /(^|\s)(infomessage|warningmessage|successmessage|errormessage)(\s|$)/.test(c)
470 + );
471 + }
472 +
473 + function customCallout(el){
474 + if(!visible(el,220,42)||excluded(el))return false;
475 +
476 + var r=el.getBoundingClientRect();
477 +
478 + if(r.height>520)return false;
479 +
480 + var s=getComputedStyle(el);
481 +
482 + var bg=
483 + s.backgroundColor&&
484 + s.backgroundColor!=="rgba(0, 0, 0, 0)"&&
485 + s.backgroundColor!=="transparent"&&
486 + s.backgroundColor!=="rgb(255, 255, 255)";
487 +
488 + var left=
489 + num(s.borderLeftWidth);
490 +
491 + return (
492 + bg&&
493 + left>=2
494 + );
495 + }
496 +
497 + function harmoniseCustomCallouts(){
498 + Array.from(
499 + root.querySelectorAll(
500 + "div,aside,section"
501 + )
502 + ).forEach(function(el){
503 + if(nativeCallout(el))return;
504 + if(!customCallout(el))return;
505 +
506 + var s=getComputedStyle(el);
507 +
508 + el.setAttribute(
509 + "data-sn-callout-harmonized",
510 + "1"
511 + );
512 +
513 + if(
514 + s.borderLeftColor
515 + ){
516 + el.style.setProperty(
517 + "--sn-callout-accent",
518 + s.borderLeftColor
519 + );
520 + }
521 + });
522 + }
523 +
524 + /* ---------- Restore only values V7 itself changed ---------- */
525 +
526 + function saveOriginal(el,map,property){
527 + if(map.has(el))return;
528 +
529 + map.set(el,{
530 + value:
531 + el.style.getPropertyValue(
532 + property
533 + ),
534 + priority:
535 + el.style.getPropertyPriority(
536 + property
537 + )
538 + });
539 + }
540 +
541 + function restoreOriginal(el,map,property){
542 + var original=map.get(el);
543 +
544 + if(original&&original.value){
545 + el.style.setProperty(
546 + property,
547 + original.value,
548 + original.priority||""
549 + );
550 + }else{
551 + el.style.removeProperty(
552 + property
553 + );
554 + }
555 + }
556 +
557 + function resetRuntime(){
558 + heightManaged.forEach(function(el){
559 + restoreOriginal(
560 + el,
561 + originalMinHeight,
562 + "min-height"
563 + );
564 +
565 + el.removeAttribute(
566 + "data-sn-equal-height-managed"
567 + );
568 + });
569 +
570 + sectionManaged.forEach(function(el){
571 + restoreOriginal(
572 + el,
573 + originalMarginTop,
574 + "margin-top"
575 + );
576 +
577 + el.removeAttribute(
578 + "data-sn-first-section-aligned"
579 + );
580 + });
581 +
582 + contentManaged.forEach(function(el){
583 + restoreOriginal(
584 + el,
585 + originalMarginTop,
586 + "margin-top"
587 + );
588 +
589 + el.removeAttribute(
590 + "data-sn-first-content-aligned"
591 + );
592 + });
593 +
594 + heightManaged.clear();
595 + sectionManaged.clear();
596 + contentManaged.clear();
597 + }
598 +
599 + /* ---------- Card detection ---------- */
600 +
601 + function namedLikeBox(el){
602 + var c=
603 + typeof el.className==="string"
604 + ? el.className
605 + : "";
606 +
607 + return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c);
608 + }
609 +
610 + function boxLike(el){
611 + if(
612 + !visible(el,MIN_W,MIN_H)||
613 + excluded(el)
614 + ){
615 + return false;
616 + }
617 +
618 + var s=getComputedStyle(el);
619 + var r=el.getBoundingClientRect();
620 +
621 + var border=
622 + num(s.borderTopWidth)+
623 + num(s.borderRightWidth)+
624 + num(s.borderBottomWidth)+
625 + num(s.borderLeftWidth);
626 +
627 + var radius=Math.max(
628 + num(s.borderTopLeftRadius),
629 + num(s.borderTopRightRadius),
630 + num(s.borderBottomLeftRadius),
631 + num(s.borderBottomRightRadius)
632 + );
633 +
634 + var bg=
635 + s.backgroundColor&&
636 + s.backgroundColor!=="rgba(0, 0, 0, 0)"&&
637 + s.backgroundColor!=="transparent";
638 +
639 + var shadow=
640 + s.boxShadow&&
641 + s.boxShadow!=="none";
642 +
643 + return (
644 + namedLikeBox(el)||
645 + border>=1||
646 + (bg&&radius>=3)||
647 + (shadow&&r.width>=180)
648 + );
649 + }
650 +
651 + function pickTarget(child){
652 + if(!visible(child,MIN_W,MIN_H))return null;
653 +
654 + if(boxLike(child))return child;
655 +
656 + var cr=child.getBoundingClientRect();
657 + var q=[];
658 +
659 + Array.from(child.children||[]).forEach(function(el){
660 + q.push({el:el,depth:1});
661 + });
662 +
663 + var best=null;
664 + var bestScore=-Infinity;
665 +
666 + while(q.length){
667 + var item=q.shift();
668 + var el=item.el;
669 +
670 + if(!visible(el,MIN_W,MIN_H))continue;
671 +
672 + var r=el.getBoundingClientRect();
673 +
674 + if(
675 + r.width>=cr.width*.68&&
676 + boxLike(el)
677 + ){
678 + var widthFit=
679 + 1-Math.min(
680 + 1,
681 + Math.abs(cr.width-r.width)/
682 + Math.max(1,cr.width)
683 + );
684 +
685 + var topFit=
686 + 1-Math.min(
687 + 1,
688 + Math.abs(cr.top-r.top)/100
689 + );
690 +
691 + var score=
692 + widthFit*6+
693 + topFit*3+
694 + Math.min(r.height,900)/450+
695 + Math.min(r.width*r.height,900000)/900000;
696 +
697 + if(score>bestScore){
698 + best=el;
699 + bestScore=score;
700 + }
701 + }
702 +
703 + if(item.depth<SEARCH_DEPTH){
704 + Array.from(el.children||[]).forEach(function(next){
705 + q.push({
706 + el:next,
707 + depth:item.depth+1
708 + });
709 + });
710 + }
711 + }
712 +
713 + return best;
714 + }
715 +
716 + function groupRows(entries){
717 + var groups=[];
718 +
719 + entries
720 + .slice()
721 + .sort(function(a,b){
722 + return (
723 + a.rect.top-b.rect.top||
724 + a.rect.left-b.rect.left
725 + );
726 + })
727 + .forEach(function(entry){
728 + var group=null;
729 +
730 + for(var i=0;i<groups.length;i++){
731 + if(
732 + Math.abs(
733 + groups[i].top-
734 + entry.rect.top
735 + )<=ROW_TOLERANCE
736 + ){
737 + group=groups[i];
738 + break;
739 + }
740 + }
741 +
742 + if(!group){
743 + group={
744 + top:entry.rect.top,
745 + entries:[]
746 + };
747 + groups.push(group);
748 + }
749 +
750 + group.entries.push(entry);
751 + });
752 +
753 + return groups;
754 + }
755 +
756 + function validRow(group){
757 + if(group.entries.length<2)return false;
758 +
759 + var lefts=
760 + group.entries
761 + .map(function(e){return e.rect.left;})
762 + .sort(function(a,b){return a-b;});
763 +
764 + if(
765 + lefts[lefts.length-1]-
766 + lefts[0]<
767 + 80
768 + ){
769 + return false;
770 + }
771 +
772 + var widths=
773 + group.entries
774 + .map(function(e){return e.rect.width;})
775 + .filter(function(w){return w>0;});
776 +
777 + if(widths.length<2)return false;
778 +
779 + var minW=
780 + Math.min.apply(Math,widths);
781 +
782 + var maxW=
783 + Math.max.apply(Math,widths);
784 +
785 + return (
786 + maxW/
787 + Math.max(1,minW)<=
788 + 1.9
789 + );
790 + }
791 +
792 + /* ---------- Known ARSN first section bars ---------- */
793 +
794 + function knownBar(el){
795 + var text=
796 + normalizeText(
797 + el.textContent
798 + );
799 +
800 + return (
801 + text==="HIER STARTEN"||
802 + text==="ORGANISIEREN & DOKUMENTIEREN"||
803 + text==="ENTSCHEIDEN"||
804 + text==="START HERE"||
805 + text==="GET STARTED"||
806 + text==="ORGANISE & DOCUMENT"||
807 + text==="ORGANIZE & DOCUMENT"||
808 + text==="DECIDE"
809 + );
810 + }
811 +
812 + function findKnownBar(card){
813 + var cardRect=
814 + card.getBoundingClientRect();
815 +
816 + var rows=
817 + Array.from(
818 + card.querySelectorAll(
819 + "div,p,span,strong,h3,h4,h5,h6"
820 + )
821 + )
822 + .filter(function(el){
823 + if(!visible(el,20,6))return false;
824 + if(!knownBar(el))return false;
825 +
826 + var r=el.getBoundingClientRect();
827 +
828 + var rel=
829 + r.top-
830 + cardRect.top;
831 +
832 + return (
833 + rel>=35&&
834 + rel<=
835 + cardRect.height*.75
836 + );
837 + })
838 + .sort(function(a,b){
839 + return (
840 + a.getBoundingClientRect().top-
841 + b.getBoundingClientRect().top
842 + );
843 + });
844 +
845 + return rows[0]||null;
846 + }
847 +
848 + function alignKnownBars(cards){
849 + var rows=
850 + cards.map(function(card){
851 + var bar=
852 + findKnownBar(card);
853 +
854 + if(!bar)return null;
855 +
856 + var cr=
857 + card.getBoundingClientRect();
858 +
859 + var br=
860 + bar.getBoundingClientRect();
861 +
862 + return {
863 + bar:bar,
864 + relativeTop:
865 + br.top-
866 + cr.top
867 + };
868 + });
869 +
870 + if(
871 + rows.some(function(row){
872 + return !row;
873 + })
874 + ){
875 + return false;
876 + }
877 +
878 + var target=
879 + Math.max.apply(
880 + Math,
881 + rows.map(function(row){
882 + return row.relativeTop;
883 + })
884 + );
885 +
886 + rows.forEach(function(row){
887 + var delta=
888 + target-
889 + row.relativeTop;
890 +
891 + if(delta<=1)return;
892 +
893 + saveOriginal(
894 + row.bar,
895 + originalMarginTop,
896 + "margin-top"
897 + );
898 +
899 + var current=
900 + num(
901 + getComputedStyle(
902 + row.bar
903 + ).marginTop
904 + );
905 +
906 + row.bar.style.setProperty(
907 + "margin-top",
908 + (
909 + current+
910 + delta
911 + )+"px"
912 + );
913 +
914 + row.bar.setAttribute(
915 + "data-sn-first-section-aligned",
916 + "7"
917 + );
918 +
919 + sectionManaged.add(
920 + row.bar
921 + );
922 + });
923 +
924 + return true;
925 + }
926 +
927 + /* ---------- Generic first content after heading ---------- */
928 +
929 + function heading(card){
930 + var cr=
931 + card.getBoundingClientRect();
932 +
933 + var rows=
934 + Array.from(
935 + card.querySelectorAll(
936 + "h1,h2,h3,h4,h5,h6,.box-title,[role=heading]"
937 + )
938 + )
939 + .filter(function(el){
940 + if(!visible(el,20,8))return false;
941 +
942 + var r=el.getBoundingClientRect();
943 +
944 + var rel=
945 + r.top-
946 + cr.top;
947 +
948 + return (
949 + rel>=0&&
950 + rel<=
951 + Math.min(
952 + 160,
953 + cr.height*.45
954 + )
955 + );
956 + })
957 + .sort(function(a,b){
958 + return (
959 + a.getBoundingClientRect().top-
960 + b.getBoundingClientRect().top
961 + );
962 + });
963 +
964 + return rows[0]||null;
965 + }
966 +
967 + function firstContent(card,h){
968 + if(!h)return null;
969 +
970 + var cr=
971 + card.getBoundingClientRect();
972 +
973 + var hr=
974 + h.getBoundingClientRect();
975 +
976 + var rows=
977 + Array.from(
978 + card.querySelectorAll(
979 + "p,div,ul,ol,dl,blockquote"
980 + )
981 + )
982 + .filter(function(el){
983 + if(
984 + el===h||
985 + h.contains(el)||
986 + el.contains(h)
987 + ){
988 + return false;
989 + }
990 +
991 + if(!visible(el,30,8))return false;
992 +
993 + var text=
994 + String(el.textContent||"")
995 + .replace(/\s+/g," ")
996 + .trim();
997 +
998 + if(text.length<3)return false;
999 +
1000 + var r=el.getBoundingClientRect();
1001 +
1002 + if(
1003 + r.top<
1004 + hr.bottom-1
1005 + ){
1006 + return false;
1007 + }
1008 +
1009 + if(
1010 + r.top-cr.top>
1011 + Math.min(
1012 + 280,
1013 + cr.height*.65
1014 + )
1015 + ){
1016 + return false;
1017 + }
1018 +
1019 + if(
1020 + r.height>
1021 + cr.height*.58
1022 + ){
1023 + return false;
1024 + }
1025 +
1026 + return true;
1027 + })
1028 + .sort(function(a,b){
1029 + var ar=
1030 + a.getBoundingClientRect();
1031 +
1032 + var br=
1033 + b.getBoundingClientRect();
1034 +
1035 + return (
1036 + ar.top-br.top||
1037 + ar.height-br.height
1038 + );
1039 + });
1040 +
1041 + return rows[0]||null;
1042 + }
1043 +
1044 + function alignGeneric(cards){
1045 + var rows=
1046 + cards.map(function(card){
1047 + var h=
1048 + heading(card);
1049 +
1050 + var c=
1051 + firstContent(
1052 + card,
1053 + h
1054 + );
1055 +
1056 + if(!h||!c)return null;
1057 +
1058 + var cr=
1059 + card.getBoundingClientRect();
1060 +
1061 + var rr=
1062 + c.getBoundingClientRect();
1063 +
1064 + return {
1065 + content:c,
1066 + relativeTop:
1067 + rr.top-cr.top
1068 + };
1069 + });
1070 +
1071 + if(
1072 + rows.some(function(row){
1073 + return !row;
1074 + })
1075 + ){
1076 + return false;
1077 + }
1078 +
1079 + var target=
1080 + Math.max.apply(
1081 + Math,
1082 + rows.map(function(row){
1083 + return row.relativeTop;
1084 + })
1085 + );
1086 +
1087 + rows.forEach(function(row){
1088 + var delta=
1089 + target-
1090 + row.relativeTop;
1091 +
1092 + if(delta<=1)return;
1093 +
1094 + saveOriginal(
1095 + row.content,
1096 + originalMarginTop,
1097 + "margin-top"
1098 + );
1099 +
1100 + var current=
1101 + num(
1102 + getComputedStyle(
1103 + row.content
1104 + ).marginTop
1105 + );
1106 +
1107 + row.content.style.setProperty(
1108 + "margin-top",
1109 + (
1110 + current+
1111 + delta
1112 + )+"px"
1113 + );
1114 +
1115 + row.content.setAttribute(
1116 + "data-sn-first-content-aligned",
1117 + "7"
1118 + );
1119 +
1120 + contentManaged.add(
1121 + row.content
1122 + );
1123 + });
1124 +
1125 + return true;
1126 + }
1127 +
1128 + function applyRow(group){
1129 + if(!validRow(group))return false;
1130 +
1131 + var cards=[];
1132 + var seen=new Set();
1133 +
1134 + group.entries.forEach(function(entry){
1135 + if(!seen.has(entry.target)){
1136 + seen.add(entry.target);
1137 + cards.push(entry.target);
1138 + }
1139 + });
1140 +
1141 + if(cards.length<2)return false;
1142 +
1143 + if(
1144 + !alignKnownBars(cards)
1145 + ){
1146 + alignGeneric(cards);
1147 + }
1148 +
1149 + var maxHeight=0;
1150 +
1151 + cards.forEach(function(card){
1152 + maxHeight=
1153 + Math.max(
1154 + maxHeight,
1155 + card.getBoundingClientRect().height
1156 + );
1157 + });
1158 +
1159 + maxHeight=
1160 + Math.ceil(
1161 + maxHeight
1162 + );
1163 +
1164 + if(maxHeight<MIN_H)return false;
1165 +
1166 + cards.forEach(function(card){
1167 + saveOriginal(
1168 + card,
1169 + originalMinHeight,
1170 + "min-height"
1171 + );
1172 +
1173 + card.style.setProperty(
1174 + "min-height",
1175 + maxHeight+"px"
1176 + );
1177 +
1178 + card.setAttribute(
1179 + "data-sn-equal-height-managed",
1180 + "7"
1181 + );
1182 +
1183 + heightManaged.add(card);
1184 + });
1185 +
1186 + return true;
1187 + }
1188 +
1189 + function calculate(force){
1190 + if(applying)return;
1191 +
1192 + var width=
1193 + Math.round(
1194 + window.innerWidth
1195 + );
1196 +
1197 + var meaningful=
1198 + lastWidth<0||
1199 + Math.abs(
1200 + width-
1201 + lastWidth
1202 + )>=
1203 + MIN_WIDTH_CHANGE;
1204 +
1205 + if(
1206 + hasApplied&&
1207 + !force&&
1208 + !meaningful
1209 + ){
1210 + return;
1211 + }
1212 +
1213 + applying=true;
1214 +
1215 + try{
1216 + harmoniseCustomCallouts();
1217 +
1218 + if(width<=MOBILE_MAX){
1219 + if(hasApplied){
1220 + resetRuntime();
1221 + }
1222 +
1223 + hasApplied=false;
1224 + lastWidth=width;
1225 + return;
1226 + }
1227 +
1228 + if(hasApplied){
1229 + resetRuntime();
1230 + }
1231 +
1232 + var parents=
1233 + Array.from(
1234 + root.querySelectorAll("*")
1235 + )
1236 + .filter(function(parent){
1237 + return (
1238 + visible(
1239 + parent,
1240 + MIN_W,
1241 + MIN_H
1242 + )&&
1243 + parent.children&&
1244 + parent.children.length>=2&&
1245 + parent.children.length<=
1246 + MAX_PARENT_CHILDREN
1247 + );
1248 + });
1249 +
1250 + var touched=
1251 + new Set();
1252 +
1253 + parents.forEach(function(parent){
1254 + var entries=[];
1255 +
1256 + Array.from(
1257 + parent.children
1258 + ).forEach(function(child){
1259 + if(
1260 + !visible(
1261 + child,
1262 + MIN_W,
1263 + MIN_H
1264 + )
1265 + ){
1266 + return;
1267 + }
1268 +
1269 + var target=
1270 + pickTarget(child);
1271 +
1272 + if(!target)return;
1273 +
1274 + entries.push({
1275 + target:target,
1276 + rect:
1277 + target.getBoundingClientRect()
1278 + });
1279 + });
1280 +
1281 + groupRows(
1282 + entries
1283 + ).forEach(function(group){
1284 + if(!validRow(group))return;
1285 +
1286 + var targets=
1287 + group.entries.map(function(entry){
1288 + return entry.target;
1289 + });
1290 +
1291 + if(
1292 + !targets.some(function(el){
1293 + return !touched.has(el);
1294 + })
1295 + ){
1296 + return;
1297 + }
1298 +
1299 + if(applyRow(group)){
1300 + targets.forEach(function(el){
1301 + touched.add(el);
1302 + });
1303 + }
1304 + });
1305 + });
1306 +
1307 + lastWidth=width;
1308 + hasApplied=true;
1309 + }finally{
1310 + applying=false;
1311 + }
1312 + }
1313 +
1314 + function resize(){
1315 + if(resizeTimer){
1316 + clearTimeout(
1317 + resizeTimer
1318 + );
1319 + }
1320 +
1321 + resizeTimer=
1322 + setTimeout(
1323 + function(){
1324 + resizeTimer=0;
1325 + calculate(false);
1326 + },
1327 + RESIZE_DEBOUNCE
1328 + );
1329 + }
1330 +
1331 + function waitImages(){
1332 + var images=
1333 + Array.from(
1334 + root.querySelectorAll("img")
1335 + );
1336 +
1337 + return Promise.all(
1338 + images.map(function(img){
1339 + if(img.complete){
1340 + return Promise.resolve();
1341 + }
1342 +
1343 + return new Promise(function(resolve){
1344 + var done=function(){
1345 + resolve();
1346 + };
1347 +
1348 + img.addEventListener(
1349 + "load",
1350 + done,
1351 + {once:true}
1352 + );
1353 +
1354 + img.addEventListener(
1355 + "error",
1356 + done,
1357 + {once:true}
1358 + );
1359 + });
1360 + })
1361 + );
1362 + }
1363 +
1364 + async function initial(){
1365 + if(
1366 + document.readyState!==
1367 + "complete"
1368 + ){
1369 + await new Promise(function(resolve){
1370 + addEventListener(
1371 + "load",
1372 + resolve,
1373 + {once:true}
1374 + );
1375 + });
1376 + }
1377 +
1378 + if(
1379 + document.fonts&&
1380 + document.fonts.ready
1381 + ){
1382 + try{
1383 + await document.fonts.ready;
1384 + }catch(error){}
1385 + }
1386 +
1387 + await waitImages();
1388 +
1389 + // Exactly one initial layout calculation.
1390 + calculate(true);
1391 + }
1392 +
1393 + addEventListener(
1394 + "resize",
1395 + resize,
1396 + {passive:true}
1397 + );
1398 +
1399 + initial();
1400 +})();
1401 +</script>
1402 +
1403 +<!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
1404 +{{/html}}\n
XWiki.XWikiRights[0]
allow
... ... @@ -1,0 +1,1 @@
1 +Allow
levels
... ... @@ -1,0 +1,1 @@
1 +view
users
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
XWiki.XWikiRights[1]
allow
... ... @@ -1,0 +1,1 @@
1 +Allow
groups
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiAllGroup
levels
... ... @@ -1,0 +1,1 @@
1 +view
XWiki.XWikiRights[2]
allow
... ... @@ -1,0 +1,1 @@
1 +Allow
groups
... ... @@ -1,0 +1,1 @@
1 +XWiki.OE-0000211
levels
... ... @@ -1,0 +1,1 @@
1 +view,comment,edit,script
XWiki.XWikiRights[3]
allow
... ... @@ -1,0 +1,1 @@
1 +Allow
levels
... ... @@ -1,0 +1,1 @@
1 +view,comment,edit,script
users
... ... @@ -1,0 +1,1 @@
1 +XWiki.p0010210