Changes for page Service Navigator

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

From version 22.14
edited by Veronika Kocher
on Thursday, 03 Sep 2026 9:34
Change comment: There is no comment for this version
To version 3.1
edited by ZID Server
on Tuesday, 14 Jul 2026 15:06
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.p0009670
1 +XWiki.server
Content
... ... @@ -1,982 +1,51 @@
1 1  {{html}}
2 -<div style="max-width:1400px;margin:0 auto;">
2 +<div class="rh-grid">
3 3  
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>
4 + <div class="rh-col">
5 + <a class="rh-img" href="#"></a>
6 + <div class="rh-body">
7 + <h3 class="rh-heading"><a href="#"><span class="rh-num">1.</span> Planning &amp; Set-up</a></h3>
8 + <p class="rh-desc">Resources for preparation of your research</p>
9 + <div class="rh-cards">
10 + <a class="rh-card rh-flame1" href="#">Data Management</a>
11 + <a class="rh-card rh-flame2" href="#">Research Strategy and Funding</a>
12 + <a class="rh-card rh-flame3" href="#">Research Strategy and Funding</a>
13 + <a class="rh-card rh-flame4" href="#">Responsible and Compliant Research</a>
30 30   </div>
31 - </form>
32 - </section>
15 + <a class="rh-btn" href="#">Explore Planning &amp; Set-up</a>
16 + </div>
17 + </div>
33 33  
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>
19 + <div class="rh-col">
20 + <a class="rh-img" href="#"></a>
21 + <div class="rh-body">
22 + <h3 class="rh-heading"><a href="#"><span class="rh-num">2.</span> Execution</a></h3>
23 + <p class="rh-desc">Daily support resources during your project</p>
24 + <div class="rh-cards">
25 + <a class="rh-card rh-flame5" href="#">Collaboration Tools</a>
26 + <a class="rh-card rh-flame1" href="#">Computing resources</a>
27 + <a class="rh-card rh-flame2" href="#">Daily IT Support</a>
28 + <a class="rh-card rh-flame3" href="#">Graduate School</a>
29 + <a class="rh-card rh-flame4" href="#">TU Delft collections</a>
60 60   </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>
31 + <a class="rh-btn" href="#">Explore Execution</a>
32 + </div>
33 + </div>
65 65  
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>
35 + <div class="rh-col">
36 + <a class="rh-img" href="#"></a>
37 + <div class="rh-body">
38 + <h3 class="rh-heading"><a href="#"><span class="rh-num">3.</span> Dissemination</a></h3>
39 + <p class="rh-desc">Sharing, publishing and archiving research</p>
40 + <div class="rh-cards">
41 + <a class="rh-card rh-flame5" href="#">Media Production</a>
42 + <a class="rh-card rh-flame1" href="#">Publishing</a>
43 + <a class="rh-card rh-flame2" href="#">Science Communication</a>
44 + <a class="rh-card rh-flame3" href="#">Tech Transfer</a>
83 83   </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 -
46 + <a class="rh-btn" href="#">Explore Dissemination</a>
47 + </div>
276 276   </div>
277 277  
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 -
285 285  </div>
286 286  {{/html}}
287 -
288 -{{html clean="false"}}
289 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
290 -<style data-sn-horizontal-box-harmonizer="4">
291 -[data-sn-equal-height-managed],
292 -[data-sn-first-section-aligned]{
293 - box-sizing:border-box;
294 -}
295 -</style>
296 -<script data-sn-horizontal-box-harmonizer="4">
297 -(function(){
298 - "use strict";
299 -
300 - var MOBILE_MAX=767;
301 - var ROW_TOLERANCE=6;
302 - var MIN_W=150;
303 - var MIN_H=36;
304 - var MAX_PARENT_CHILDREN=16;
305 - var SEARCH_DEPTH=5;
306 -
307 - var root=
308 - document.getElementById("xwikicontent")||
309 - document.querySelector(".xwiki-rendering-content")||
310 - document.querySelector("main")||
311 - document.body;
312 -
313 - if(!root)return;
314 -
315 - var heightManaged=new Set();
316 - var sectionManaged=new Set();
317 - var originalMinHeight=new WeakMap();
318 - var originalMarginTop=new WeakMap();
319 - var raf=0;
320 -
321 - function num(v){
322 - var n=parseFloat(v);
323 - return Number.isFinite(n)?n:0;
324 - }
325 -
326 - function visible(el,minW,minH){
327 - if(!el||el.nodeType!==1)return false;
328 -
329 - var s=getComputedStyle(el);
330 -
331 - if(
332 - s.display==="none"||
333 - s.visibility==="hidden"||
334 - Number(s.opacity)===0
335 - ){
336 - return false;
337 - }
338 -
339 - var r=el.getBoundingClientRect();
340 -
341 - return (
342 - r.width>=(minW||1)&&
343 - r.height>=(minH||1)
344 - );
345 - }
346 -
347 - function excluded(el){
348 - return (
349 - !el.matches||
350 - el.matches(
351 - "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]"
352 - )
353 - );
354 - }
355 -
356 - function namedLikeBox(el){
357 - var c=
358 - typeof el.className==="string"
359 - ? el.className
360 - : "";
361 -
362 - return /(^|[s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([s_-]|$)/i.test(c);
363 - }
364 -
365 - function boxLike(el){
366 - if(!visible(el,MIN_W,MIN_H)||excluded(el))return false;
367 -
368 - var s=getComputedStyle(el);
369 - var r=el.getBoundingClientRect();
370 -
371 - var border=
372 - num(s.borderTopWidth)+
373 - num(s.borderRightWidth)+
374 - num(s.borderBottomWidth)+
375 - num(s.borderLeftWidth);
376 -
377 - var radius=Math.max(
378 - num(s.borderTopLeftRadius),
379 - num(s.borderTopRightRadius),
380 - num(s.borderBottomLeftRadius),
381 - num(s.borderBottomRightRadius)
382 - );
383 -
384 - var bg=
385 - s.backgroundColor&&
386 - s.backgroundColor!=="rgba(0, 0, 0, 0)"&&
387 - s.backgroundColor!=="transparent";
388 -
389 - var shadow=
390 - s.boxShadow&&
391 - s.boxShadow!=="none";
392 -
393 - return (
394 - namedLikeBox(el)||
395 - border>=1||
396 - (bg&&radius>=3)||
397 - (shadow&&r.width>=180)
398 - );
399 - }
400 -
401 - function saveOriginal(el,map,property){
402 - if(map.has(el))return;
403 -
404 - map.set(el,{
405 - value:el.style.getPropertyValue(property),
406 - priority:el.style.getPropertyPriority(property)
407 - });
408 - }
409 -
410 - function restoreOriginal(el,map,property){
411 - var original=map.get(el);
412 -
413 - if(original&&original.value){
414 - el.style.setProperty(
415 - property,
416 - original.value,
417 - original.priority||""
418 - );
419 - }else{
420 - el.style.removeProperty(property);
421 - }
422 - }
423 -
424 - function reset(){
425 - heightManaged.forEach(function(el){
426 - restoreOriginal(
427 - el,
428 - originalMinHeight,
429 - "min-height"
430 - );
431 -
432 - el.removeAttribute(
433 - "data-sn-equal-height-managed"
434 - );
435 - });
436 -
437 - sectionManaged.forEach(function(el){
438 - restoreOriginal(
439 - el,
440 - originalMarginTop,
441 - "margin-top"
442 - );
443 -
444 - el.removeAttribute(
445 - "data-sn-first-section-aligned"
446 - );
447 - });
448 -
449 - heightManaged.clear();
450 - sectionManaged.clear();
451 - }
452 -
453 - function pickTarget(child){
454 - if(!visible(child,MIN_W,MIN_H))return null;
455 -
456 - if(boxLike(child)){
457 - return child;
458 - }
459 -
460 - var cr=child.getBoundingClientRect();
461 - var q=[];
462 -
463 - Array.from(child.children||[]).forEach(function(el){
464 - q.push({el:el,depth:1});
465 - });
466 -
467 - var best=null;
468 - var bestScore=-Infinity;
469 -
470 - while(q.length){
471 - var item=q.shift();
472 - var el=item.el;
473 -
474 - if(!visible(el,MIN_W,MIN_H))continue;
475 -
476 - var r=el.getBoundingClientRect();
477 -
478 - if(
479 - r.width>=cr.width*.68&&
480 - boxLike(el)
481 - ){
482 - var widthFit=
483 - 1-Math.min(
484 - 1,
485 - Math.abs(cr.width-r.width)/
486 - Math.max(1,cr.width)
487 - );
488 -
489 - var topFit=
490 - 1-Math.min(
491 - 1,
492 - Math.abs(cr.top-r.top)/100
493 - );
494 -
495 - var score=
496 - widthFit*6+
497 - topFit*3+
498 - Math.min(r.height,900)/450+
499 - Math.min(r.width*r.height,900000)/900000;
500 -
501 - if(score>bestScore){
502 - best=el;
503 - bestScore=score;
504 - }
505 - }
506 -
507 - if(item.depth<SEARCH_DEPTH){
508 - Array.from(el.children||[]).forEach(function(next){
509 - q.push({
510 - el:next,
511 - depth:item.depth+1
512 - });
513 - });
514 - }
515 - }
516 -
517 - return best;
518 - }
519 -
520 - function groupsByVisualRow(entries){
521 - var groups=[];
522 -
523 - entries
524 - .slice()
525 - .sort(function(a,b){
526 - return (
527 - a.rect.top-b.rect.top||
528 - a.rect.left-b.rect.left
529 - );
530 - })
531 - .forEach(function(entry){
532 - var group=null;
533 -
534 - for(var i=0;i<groups.length;i++){
535 - if(
536 - Math.abs(
537 - groups[i].top-
538 - entry.rect.top
539 - )<=ROW_TOLERANCE
540 - ){
541 - group=groups[i];
542 - break;
543 - }
544 - }
545 -
546 - if(!group){
547 - group={
548 - top:entry.rect.top,
549 - entries:[]
550 - };
551 - groups.push(group);
552 - }
553 -
554 - group.entries.push(entry);
555 - });
556 -
557 - return groups;
558 - }
559 -
560 - function validHorizontalGroup(group){
561 - if(group.entries.length<2)return false;
562 -
563 - var lefts=
564 - group.entries
565 - .map(function(e){return e.rect.left;})
566 - .sort(function(a,b){return a-b;});
567 -
568 - if(
569 - lefts[lefts.length-1]-
570 - lefts[0]<
571 - 80
572 - ){
573 - return false;
574 - }
575 -
576 - var widths=
577 - group.entries
578 - .map(function(e){return e.rect.width;})
579 - .filter(function(w){return w>0;});
580 -
581 - if(widths.length<2)return false;
582 -
583 - var minWidth=Math.min.apply(Math,widths);
584 - var maxWidth=Math.max.apply(Math,widths);
585 -
586 - return (
587 - maxWidth/
588 - Math.max(1,minWidth)<=
589 - 1.9
590 - );
591 - }
592 -
593 - function normalizeText(text){
594 - return String(text||"")
595 - .replace(/s+/g," ")
596 - .trim()
597 - .toUpperCase();
598 - }
599 -
600 - function exactKnownFirstSection(el){
601 - var text=normalizeText(el.textContent);
602 -
603 - return (
604 - text==="HIER STARTEN"||
605 - text==="ORGANISIEREN & DOKUMENTIEREN"||
606 - text==="ENTSCHEIDEN"||
607 - text==="START HERE"||
608 - text==="GET STARTED"||
609 - text==="ORGANISE & DOCUMENT"||
610 - text==="ORGANIZE & DOCUMENT"||
611 - text==="DECIDE"
612 - );
613 - }
614 -
615 - function visuallyFirstSectionBar(card){
616 - var cardRect=card.getBoundingClientRect();
617 - var candidates=[];
618 -
619 - Array.from(
620 - card.querySelectorAll(
621 - "div,p,span,strong,h3,h4,h5,h6"
622 - )
623 - ).forEach(function(el){
624 - if(!visible(el,20,6))return;
625 - if(excluded(el))return;
626 -
627 - var r=el.getBoundingClientRect();
628 - var relativeTop=r.top-cardRect.top;
629 -
630 - if(
631 - relativeTop<45||
632 - relativeTop>cardRect.height*.72
633 - ){
634 - return;
635 - }
636 -
637 - var widthRatio=
638 - r.width/
639 - Math.max(1,cardRect.width);
640 -
641 - if(
642 - widthRatio<.55||
643 - widthRatio>1.05||
644 - r.height>54
645 - ){
646 - return;
647 - }
648 -
649 - var text=normalizeText(el.textContent);
650 -
651 - if(
652 - text.length<2||
653 - text.length>90
654 - ){
655 - return;
656 - }
657 -
658 - var style=getComputedStyle(el);
659 -
660 - var bg=
661 - style.backgroundColor&&
662 - style.backgroundColor!=="rgba(0, 0, 0, 0)"&&
663 - style.backgroundColor!=="transparent";
664 -
665 - var border=
666 - num(style.borderTopWidth)+
667 - num(style.borderRightWidth)+
668 - num(style.borderBottomWidth)+
669 - num(style.borderLeftWidth);
670 -
671 - var mostlyUpper=
672 - text.length>=3&&
673 - text===text.toUpperCase();
674 -
675 - var exact=exactKnownFirstSection(el);
676 -
677 - var score=
678 - (exact?20:0)+
679 - (bg?6:0)+
680 - (border>=1?2:0)+
681 - (mostlyUpper?4:0)+
682 - (num(style.fontWeight)>=600?1:0);
683 -
684 - if(score>=7){
685 - candidates.push({
686 - el:el,
687 - relativeTop:relativeTop,
688 - width:r.width,
689 - score:score
690 - });
691 - }
692 - });
693 -
694 - if(!candidates.length)return null;
695 -
696 - candidates.sort(function(a,b){
697 - if(a.score!==b.score)return b.score-a.score;
698 - if(Math.abs(a.relativeTop-b.relativeTop)>3){
699 - return a.relativeTop-b.relativeTop;
700 - }
701 - return b.width-a.width;
702 - });
703 -
704 - // For exact known labels always prefer the earliest exact match.
705 - var exacts=candidates.filter(function(c){
706 - return exactKnownFirstSection(c.el);
707 - });
708 -
709 - if(exacts.length){
710 - exacts.sort(function(a,b){
711 - return a.relativeTop-b.relativeTop||b.width-a.width;
712 - });
713 - return exacts[0].el;
714 - }
715 -
716 - // Generic fallback: earliest high-confidence bar.
717 - candidates.sort(function(a,b){
718 - return a.relativeTop-b.relativeTop||b.score-a.score||b.width-a.width;
719 - });
720 -
721 - return candidates[0].el;
722 - }
723 -
724 - function alignFirstSections(cards){
725 - var rows=
726 - cards.map(function(card){
727 - var bar=
728 - visuallyFirstSectionBar(card);
729 -
730 - if(!bar)return null;
731 -
732 - var cardRect=
733 - card.getBoundingClientRect();
734 -
735 - var barRect=
736 - bar.getBoundingClientRect();
737 -
738 - return {
739 - card:card,
740 - bar:bar,
741 - relativeTop:
742 - barRect.top-cardRect.top,
743 - label:
744 - normalizeText(bar.textContent)
745 - };
746 - });
747 -
748 - // Conservative: only align when every card in the horizontal row
749 - // has a reliable first section bar.
750 - if(
751 - rows.some(function(row){
752 - return !row;
753 - })
754 - ){
755 - return null;
756 - }
757 -
758 - var targetTop=
759 - Math.max.apply(
760 - Math,
761 - rows.map(function(row){
762 - return row.relativeTop;
763 - })
764 - );
765 -
766 - rows.forEach(function(row){
767 - var delta=
768 - targetTop-
769 - row.relativeTop;
770 -
771 - if(delta<=1)return;
772 -
773 - saveOriginal(
774 - row.bar,
775 - originalMarginTop,
776 - "margin-top"
777 - );
778 -
779 - var currentMargin=
780 - num(
781 - getComputedStyle(
782 - row.bar
783 - ).marginTop
784 - );
785 -
786 - row.bar.style.setProperty(
787 - "margin-top",
788 - (
789 - currentMargin+
790 - delta
791 - )+"px"
792 - );
793 -
794 - row.bar.setAttribute(
795 - "data-sn-first-section-aligned",
796 - "4"
797 - );
798 -
799 - sectionManaged.add(row.bar);
800 - });
801 -
802 - return {
803 - labels:
804 - rows.map(function(row){
805 - return row.label;
806 - }),
807 - targetRelativeTop:
808 - Math.round(targetTop)
809 - };
810 - }
811 -
812 - function applyGroup(group){
813 - if(!validHorizontalGroup(group)){
814 - return null;
815 - }
816 -
817 - var cards=[];
818 - var seen=new Set();
819 -
820 - group.entries.forEach(function(entry){
821 - if(!seen.has(entry.target)){
822 - seen.add(entry.target);
823 - cards.push(entry.target);
824 - }
825 - });
826 -
827 - if(cards.length<2)return null;
828 -
829 - var firstSection=
830 - alignFirstSections(cards);
831 -
832 - // The section alignment can change natural card heights.
833 - // Measure only afterwards.
834 - var maxHeight=0;
835 -
836 - cards.forEach(function(card){
837 - maxHeight=Math.max(
838 - maxHeight,
839 - card.getBoundingClientRect().height
840 - );
841 - });
842 -
843 - maxHeight=Math.ceil(maxHeight);
844 -
845 - if(maxHeight<MIN_H)return null;
846 -
847 - cards.forEach(function(card){
848 - saveOriginal(
849 - card,
850 - originalMinHeight,
851 - "min-height"
852 - );
853 -
854 - card.style.setProperty(
855 - "min-height",
856 - maxHeight+"px"
857 - );
858 -
859 - card.setAttribute(
860 - "data-sn-equal-height-managed",
861 - "4"
862 - );
863 -
864 - heightManaged.add(card);
865 - });
866 -
867 - return {
868 - cards:cards.length,
869 - height:maxHeight,
870 - firstSection:firstSection
871 - };
872 - }
873 -
874 - function run(){
875 - reset();
876 -
877 - if(
878 - window.innerWidth<=MOBILE_MAX
879 - ){
880 - return;
881 - }
882 -
883 - var parents=
884 - Array.from(
885 - root.querySelectorAll("*")
886 - ).filter(function(parent){
887 - return (
888 - visible(parent,MIN_W,MIN_H)&&
889 - parent.children&&
890 - parent.children.length>=2&&
891 - parent.children.length<=MAX_PARENT_CHILDREN
892 - );
893 - });
894 -
895 - var touched=new Set();
896 -
897 - parents.forEach(function(parent){
898 - var entries=[];
899 -
900 - Array.from(parent.children).forEach(function(child){
901 - if(!visible(child,MIN_W,MIN_H))return;
902 -
903 - var target=pickTarget(child);
904 - if(!target)return;
905 -
906 - entries.push({
907 - target:target,
908 - rect:target.getBoundingClientRect()
909 - });
910 - });
911 -
912 - if(entries.length<2)return;
913 -
914 - groupsByVisualRow(entries).forEach(function(group){
915 - if(!validHorizontalGroup(group))return;
916 -
917 - var signature=
918 - group.entries.map(function(entry){
919 - return entry.target;
920 - });
921 -
922 - if(
923 - !signature.some(function(el){
924 - return !touched.has(el);
925 - })
926 - ){
927 - return;
928 - }
929 -
930 - var applied=
931 - applyGroup(group);
932 -
933 - if(applied){
934 - signature.forEach(function(el){
935 - touched.add(el);
936 - });
937 - }
938 - });
939 - });
940 - }
941 -
942 - function schedule(){
943 - if(raf)cancelAnimationFrame(raf);
944 -
945 - raf=requestAnimationFrame(function(){
946 - raf=requestAnimationFrame(function(){
947 - raf=0;
948 - run();
949 - });
950 - });
951 - }
952 -
953 - addEventListener("resize",schedule,{passive:true});
954 - addEventListener("load",schedule,{once:true});
955 -
956 - root.addEventListener(
957 - "click",
958 - function(){
959 - setTimeout(schedule,0);
960 - },
961 - true
962 - );
963 -
964 - Array.from(root.querySelectorAll("img")).forEach(function(img){
965 - if(!img.complete){
966 - img.addEventListener("load",schedule,{once:true});
967 - }
968 - });
969 -
970 - if(document.fonts&&document.fonts.ready){
971 - document.fonts.ready.then(schedule);
972 - }
973 -
974 - schedule();
975 - setTimeout(schedule,200);
976 - setTimeout(schedule,650);
977 - setTimeout(schedule,1400);
978 -})();
979 -</script>
980 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
981 -{{/html}}
982 -
XWiki.StyleSheetExtension[0]
code
... ... @@ -21,18 +21,11 @@
21 21  .rh-desc{ color:#666; font-size:.95rem; margin:0 0 1.1rem; }
22 22  
23 23  .rh-cards{ display:flex; flex-direction:column; gap:.55rem; margin-bottom:1.3rem; }
24 -.rh-card{
25 - display:block; padding:.8rem 1rem; border-radius:8px;
26 - background:#fbe9e2; /* leichtes Angewandte-Orange statt Grau */
24 +.rh-card{ display:block; padding:.8rem 1rem; border-radius:8px; background:#f7f7f7;
27 27   text-decoration:none; color:#1a1a1a; font-weight:600; font-size:.95rem;
28 28   border-left:4px solid var(--rh-flame,#ccc);
29 - transition:background .15s ease, color .15s ease, transform .15s ease;
30 -}
31 -.rh-card:hover{
32 - background:#dd4814; /* voll Angewandte-Orange */
33 - color:#fff; /* weiße Schrift */
34 - transform:translateX(3px);
35 -}
27 + transition:background .15s ease, transform .15s ease; }
28 +.rh-card:hover{ background:#eee; transform:translateX(3px); }
36 36  .rh-flame1{ --rh-flame:#0ca6d8; }
37 37  .rh-flame2{ --rh-flame:#e2330b; }
38 38  .rh-flame3{ --rh-flame:#f2a900; }
... ... @@ -43,8 +43,8 @@
43 43  .rh-btn{
44 44   margin-top:auto; display:block; text-align:center; text-decoration:none;
45 45   padding:.8rem 1rem; border-radius:8px; font-weight:700;
46 - background:#dd4814; color:#fff;
47 - transition:background .15s ease;
39 + background:#dd4814; color:#fff; /* Orange, weiße Schrift */
40 + transition:filter .15s ease;
48 48  }
49 -.rh-btn:hover{ background:#b23810; color:#fff; } /* dunkleres Orange, Schrift bleibt weiß */
42 +.rh-btn:hover{ filter:brightness(1.08); } /* etwas heller beim Hover, da dunkler Grund */
50 50  
XWiki.XWikiRights[0]
allow
... ... @@ -1,1 +1,0 @@
1 -Allow
levels
... ... @@ -1,1 +1,0 @@
1 -view
users
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiGuest
XWiki.XWikiRights[1]
allow
... ... @@ -1,1 +1,0 @@
1 -Allow
groups
... ... @@ -1,1 +1,0 @@
1 -XWiki.XWikiAllGroup
levels
... ... @@ -1,1 +1,0 @@
1 -view
XWiki.XWikiRights[2]
allow
... ... @@ -1,1 +1,0 @@
1 -Allow
groups
... ... @@ -1,1 +1,0 @@
1 -XWiki.OE-0000211
levels
... ... @@ -1,1 +1,0 @@
1 -view,comment,edit,script
XWiki.XWikiRights[3]
allow
... ... @@ -1,1 +1,0 @@
1 -Allow
levels
... ... @@ -1,1 +1,0 @@
1 -view,comment,edit,script
users
... ... @@ -1,1 +1,0 @@
1 -XWiki.p0010210