Last modified by Veronika Kocher on Friday, 04 Sep 2026 14:45

Hide last authors
Veronika Kocher 6.1 1 {{html clean="false"}}
2 <style>
3 .pp{max-width:1400px;margin:0 auto;color:#322f2b} .pp *{box-sizing:border-box}
4 .card{border:1px solid #e3ded6;border-radius:11px;background:#fcfbf8;box-shadow:0 1px 3px rgba(0,0,0,.035)}
5 .eye{font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase}
6 .hero{height:125px;overflow:hidden;background:#f1eee9} .hero img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}
7 .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:14px}
8 .check{position:relative;padding:12px 13px 12px 37px;border:1px solid #e3ded6;border-radius:8px;background:#fffdf9;color:#504a44;line-height:1.5}
9 .check:before{content:"✓";position:absolute;left:13px;top:10px;color:#e94b13;font-weight:800}
10 .info{padding:15px 17px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#eaf6f9;border-radius:8px;color:#365e68}
11 .info strong{color:#2d5661} .warn{padding:15px 17px;border:1px solid #efd9cc;border-left:5px solid #e94b13;background:#fff6f1;border-radius:8px;color:#67564e} .warn strong{color:#744531}
12 .sec{margin:0 0 28px 0} .sec h3{font-size:22px;margin:0 0 6px;color:#35312d} .sec>p{color:#6a655e;line-height:1.55}
13 .role{padding:15px 16px;border:1px solid #e3ded6;border-top:4px solid #e94b13;border-radius:9px;background:#fcfbf8} .role h4{font-size:17px;margin:0 0 6px;color:#35312d} .role p{margin:0;color:#625d56;line-height:1.5}
14 .detail{margin:8px 0;border:1px solid #e3ded6;border-radius:8px;background:#fcfbf8;overflow:hidden} .detail summary{cursor:pointer;padding:12px 14px;font-weight:700;color:#403b36;background:#f3efe8} .detail[open] summary{border-bottom:1px solid #e3ded6} .detail .body{padding:14px 16px;color:#514c46;line-height:1.55}
Veronika Kocher 8.1 15 .chip{display:inline-block;padding:4px 8px;margin:3px 4px 3px 0;border-radius:14px;background:#f3efe8;border:1px solid #e3ded6;color:#5c5650;font-size:12px;text-decoration:none}.chip:hover,.chip:focus{background:#fff7f1;border-color:#e7c8b8;color:#6f3f2e;text-decoration:none}
Veronika Kocher 6.1 16 .tbl{width:100%;border-collapse:collapse;background:#fffdf9} .tbl th,.tbl td{border:1px solid #e3ded6;padding:10px 11px;vertical-align:top;text-align:left} .tbl th{background:#f3efe8;color:#403b36}
17 .linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px} .navlink{display:block;padding:10px 11px;border:1px solid #e9e4dc;border-left:3px solid #e94b13;border-radius:6px;background:#fffdf9;color:#252321;text-decoration:none;font-weight:600} .navlink:hover{background:#fff7f1;text-decoration:none}
18 </style>
Veronika Kocher 2.1 19
Veronika Kocher 9.1 20 <style>
21 .research-example-grid{
22 display:grid;
23 grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
24 gap:14px;
25 margin-top:12px;
26 }
27 .research-example{
28 padding:16px 17px;
29 border:1px solid #e3ded6;
30 border-radius:9px;
31 background:#fcfbf8;
32 box-shadow:0 1px 3px rgba(0,0,0,.03);
33 }
34 .research-example h4{
35 font-size:18px;
36 margin:0 0 7px 0;
37 color:#35312d;
38 }
39 .research-example p{
40 margin:0 0 10px 0;
41 color:#625d56;
42 line-height:1.5;
43 }
44 .research-example a{
45 display:inline-block;
46 font-weight:700;
47 text-decoration:none;
48 }
49 .research-example a:hover,
50 .research-example a:focus{
51 text-decoration:underline;
52 }
53 </style>
54
Veronika Kocher 6.1 55 <div class="pp">
Veronika Kocher 2.1 56
Veronika Kocher 6.1 57 <section class="card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;">
58 <div class="hero"><img src="https://xwiki.uni-ak.ac.at/bin/download/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/WebHome/enable.png" alt="Planning and organising an artistic or research project"></div>
59 <div style="padding:18px 21px 20px">
Veronika Kocher 9.8 60 <div class="eye" style="color:#8a4d36;margin-bottom:5px">PREPARE · PROJECT PLANNING &amp; ORGANISATION</div>
Veronika Kocher 6.1 61 <h2 style="font-size:27px;line-height:1.2;margin:0 0 8px;color:#2c2926">Build a project that can actually be hosted, funded, staffed and delivered</h2>
62 <p style="margin:0;color:#5e5953;line-height:1.6;max-width:1120px">Project planning at the Angewandte is not only a timeline and a budget. A workable project needs an artistic or research home, clear responsibilities, an appropriate funding and administrative route, and early coordination with the university structures triggered by your project.</p>
63 </div></section>
Veronika Kocher 2.1 64
Veronika Kocher 6.1 65 <div class="info" style="margin-bottom:20px"><strong>Do not contact every unit at once.</strong> Start with your <strong>academic/artistic home</strong> and, for funded or project-based art/research, <strong>Support Kunst und Forschung</strong>. Then involve other structures only when a project trigger makes them relevant: staff, money, contracts, IT, rooms, events, data, students, accessibility, international partners, etc.</div>
Veronika Kocher 2.1 66
Veronika Kocher 6.1 67 <div class="warn" style="margin-bottom:28px"><strong>Current structures can change.</strong> This page follows the current 2026 organisational structure and links to live university pages. For approvals, signatures, internal deadlines and binding procedures, confirm the current route with the responsible unit.</div>
Veronika Kocher 2.1 68
Veronika Kocher 6.1 69 <section class="sec">
70 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 1 · PROJECT GOVERNANCE</div>
71 <h3>Define the internal project structure before the detailed work plan</h3>
72 <p>Write down names, not just functions. One person can hold several roles in a small project, but the responsibility should still be explicit.</p>
73 <div class="grid">
74 <div class="role"><h4>Project / artistic-research lead</h4><p>Owns the concept, scope, key decisions, quality and external commitments.</p></div>
75 <div class="role"><h4>Institutional / academic home</h4><p>The institute, department, special university facility or organisational unit in which the project is anchored.</p></div>
76 <div class="role"><h4>Project administration</h4><p>Coordinates proposal documents, deadlines, funder communication, contracts, evidence and internal routing.</p></div>
77 <div class="role"><h4>Budget responsibility</h4><p>Maintains the working budget, funding conditions, approvals, cost tracking and change control.</p></div>
78 <div class="role"><h4>People / team responsibility</h4><p>Clarifies staffing, recruitment, workload, contracts, onboarding, external contributors and collaboration.</p></div>
79 <div class="role"><h4>Data / documentation responsibility</h4><p>Coordinates files, storage, backup, access, metadata, consent, documentation and handover.</p></div>
80 <div class="role"><h4>Infrastructure / production responsibility</h4><p>Coordinates rooms, workshops, equipment, IT, procurement, logistics, safety and technical dependencies.</p></div>
81 <div class="role"><h4>Communication / dissemination responsibility</h4><p>Plans public communication, publication, events, documentation, credits, visibility and audiences.</p></div>
82 <div class="role"><h4>Partner contact</h4><p>Coordinates external institutions, deliverables, budget interfaces and agreements.</p></div>
83 </div>
84 </section>
Veronika Kocher 2.1 85
Veronika Kocher 6.1 86 <section class="sec">
87 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 2 · INTERNAL ROUTE</div>
88 <h3>Use this order to navigate the Angewandte</h3>
89 <div class="grid">
90 <div class="check"><strong>1 · Anchor the project</strong><br>Clarify the institute, department, special university facility or organisational unit that hosts it.</div>
91 <div class="check"><strong>2 · Clarify funding / project route</strong><br>For art, research and externally funded projects, involve Support Kunst und Forschung early.</div>
92 <div class="check"><strong>3 · Trigger specialist services</strong><br>Finance, HR, Legal, IT, Facility, Events, Communication, International, Library, Studies, DEI, etc. only where needed.</div>
93 <div class="check"><strong>4 · Confirm institutional approvals</strong><br>Clarify internal deadlines, budget/HR approval, signing authority, contracts and external submission route.</div>
94 <div class="check"><strong>5 · Freeze the submission baseline</strong><br>Store the final call, approved budget, work plan, roles and submitted documents.</div>
95 <div class="check"><strong>6 · Plan change control</strong><br>Decide who must approve changes to scope, staff, budget, partners, timeline or public outputs.</div>
96 </div>
97 </section>
Veronika Kocher 2.1 98
Veronika Kocher 6.1 99 <section class="sec">
Veronika Kocher 9.1 100 <div class="eye" style="color:#8a4d36;margin-bottom:4px">EXAMPLES · HOW RESEARCH IS SITUATED AT THE ANGEWANDTE</div>
101 <h3>Use existing projects to understand possible research profiles and institutional homes</h3>
102 <p>
103 The Angewandte presents research projects through several research-focus perspectives.
104 These pages are useful when you are trying to understand how a project like yours might be framed,
105 where comparable projects are located in the University, which funding programmes have been used,
106 and which institutes or research environments have hosted related work.
107 </p>
108
109 <div class="research-example-grid">
110
111 <div class="research-example" style="border-top:4px solid #e94b13;">
112 <div class="eye" style="font-size:11px;color:#8a4d36;margin-bottom:5px;">ARTISTIC RESEARCH</div>
113 <h4>Fokus Künstlerische Forschung</h4>
114 <p>
115 Examples of artistic and arts-based research projects at the Angewandte, including many projects
116 funded through FWF PEEK and related programmes. Use this page to see how artistic practice,
117 research questions, project leadership and institutional affiliation come together in funded projects.
118 </p>
119 <a href="https://dieangewandte.at/kunst_und_forschung/projekte_fokus_forschung/kuenstlerische_forschung"
120 target="_blank" rel="noopener">
121 View artistic research projects ↗
122 </a>
123 </div>
124
125 <div class="research-example" style="border-top:4px solid #21b6d7;">
126 <div class="eye" style="font-size:11px;color:#3f6871;margin-bottom:5px;">SCIENTIFIC RESEARCH</div>
127 <h4>Fokus Wissenschaftliche Forschung</h4>
128 <p>
129 Examples of scientific research across the University's institutes and fields, including FWF-funded
130 basic research, ESPRIT projects and other externally funded research. Use this page to compare project types,
131 hosts, funding programmes and disciplinary or interdisciplinary research settings.
132 </p>
133 <a href="https://dieangewandte.at/kunst_und_forschung/projekte_fokus_forschung/wissenschaftliche_forschung"
134 target="_blank" rel="noopener">
135 View scientific research projects ↗
136 </a>
137 </div>
138
139 <div class="research-example" style="border-top:4px solid #38b76a;">
140 <div class="eye" style="font-size:11px;color:#4a6c53;margin-bottom:5px;">RELATIONAL / CROSS-CUTTING RESEARCH</div>
141 <h4>Fokus Relationale Forschung</h4>
142 <p>
143 Examples of projects organised through specific calls, thematic relationships and cross-cutting research
144 frameworks, including INTRA, digital and social transformation and research-infrastructure initiatives.
145 Use this page when your project connects disciplines, infrastructures, institutions or thematic programmes.
146 </p>
147 <a href="https://dieangewandte.at/kunst_und_forschung/projekte_fokus_forschung/fokus_relationale_forschung"
148 target="_blank" rel="noopener">
149 View relational research projects ↗
150 </a>
151 </div>
152
153 </div>
154
155 <div class="info" style="margin-top:14px;">
156 <strong>How to use these examples:</strong>
157 do not copy a project's structure simply because the topic looks similar.
158 Compare the <strong>project type, host unit, funding programme, project lead, partners, duration and outputs</strong>.
159 These are the elements that help you judge whether an existing project is a useful planning reference for your own proposal.
160 </div>
161 </section>
162
163 <section class="sec">
Veronika Kocher 6.1 164 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 3 · WHO SHOULD I INVOLVE?</div>
165 <h3>Project-relevant structures of the Angewandte</h3>
166 <p>Not every project needs every unit. Use the trigger descriptions below.</p>
167 <details class="detail" open>
168 <summary>A · Your institute, department, workshop or special university facility — the project home</summary>
169 <div class="body">
170 <p><strong>Involve early when:</strong> the project uses the unit's name, staff time, rooms, workshops, equipment, teaching, budget, infrastructure or institutional commitments.</p>
171 <p><strong>Current institutes:</strong></p>
Veronika Kocher 8.1 172 <div><a class="chip" href="https://www.dieangewandte.at/en/institutes/architecture/institute_of_architecture" target="_blank" rel="noopener" title="Open Institute of Architecture on dieAngewandte">Institute of Architecture</a><a class="chip" href="https://www.dieangewandte.at/en/institutes/fine_arts_and_media_art" target="_blank" rel="noopener" title="Open Institute of Fine Arts & Media Art on dieAngewandte">Institute of Fine Arts &amp; Media Art</a><a class="chip" href="https://www.dieangewandte.at/en/institutes/design" target="_blank" rel="noopener" title="Open Institute of Design on dieAngewandte">Institute of Design</a><a class="chip" href="https://www.dieangewandte.at/en/ikr_institut" target="_blank" rel="noopener" title="Open Institute of Conservation and Restoration on dieAngewandte">Institute of Conservation and Restoration</a><a class="chip" href="https://www.dieangewandte.at/en/institutes/arts_and_society/institute_of_arts_and_society" target="_blank" rel="noopener" title="Open Institute of Art and Society on dieAngewandte">Institute of Art and Society</a><a class="chip" href="https://www.dieangewandte.at/en/institutes/art_and_technology" target="_blank" rel="noopener" title="Open Institute of Art and Technology on dieAngewandte">Institute of Art and Technology</a><a class="chip" href="https://www.dieangewandte.at/en/institutes/studies_in_art_and_art_education" target="_blank" rel="noopener" title="Open Institute of Art Sciences, Art Education and Art Mediation on dieAngewandte">Institute of Art Sciences, Art Education and Art Mediation</a><a class="chip" href="https://www.dieangewandte.at/languagearts" target="_blank" rel="noopener" title="Open Institute of Language Arts on dieAngewandte">Institute of Language Arts</a></div>
Veronika Kocher 6.1 173 <p style="margin-top:12px;"><strong>Special university facilities that can become project homes, partners, infrastructures or research resources:</strong></p>
Veronika Kocher 8.1 174 <div><a class="chip" href="https://www.dieangewandte.at/en/university/organisation/special_university_facilities/angewandte_interdisciplinary_laboratory" target="_blank" rel="noopener" title="Open Angewandte Interdisciplinary Lab on dieAngewandte">Angewandte Interdisciplinary Lab</a><a class="chip" href="https://www.dieangewandte.at/en/institutes/angewandte_performance_laboratory_apl" target="_blank" rel="noopener" title="Open Angewandte Performance Lab on dieAngewandte">Angewandte Performance Lab</a><a class="chip" href="https://www.dieangewandte.at/art_science_school_transformation" target="_blank" rel="noopener" title="Open Art x Science School for Transformation on dieAngewandte">Art x Science School for Transformation</a><a class="chip" href="https://www.dieangewandte.at/doctoral_centre" target="_blank" rel="noopener" title="Open Doctoral Centre on dieAngewandte">Doctoral Centre</a><a class="chip" href="https://www.dieangewandte.at/universitaet/organisation/rektorat/vizerektorin_studium_lehre_diversitaet/diversitaet_und_gleichstellung" target="_blank" rel="noopener" title="Open Diversity, Equity, Inclusion on dieAngewandte">Diversity, Equity, Inclusion</a><a class="chip" href="https://www.dieangewandte.at/en/institutes/collection_and_archive" target="_blank" rel="noopener" title="Open Art Collection and Archive on dieAngewandte">Art Collection and Archive</a><a class="chip" href="https://www.dieangewandte.at/en/university/university_gallery" target="_blank" rel="noopener" title="Open University Gallery on dieAngewandte">University Gallery</a><a class="chip" href="https://www.dieangewandte.at/institute/peterweibel" target="_blank" rel="noopener" title="Open Weibel Institute for Digital Cultures on dieAngewandte">Weibel Institute for Digital Cultures</a></div>
Veronika Kocher 6.1 175 <p style="margin-top:12px;"><a href="https://www.dieangewandte.at/universitaet/organisation" target="_blank" rel="noopener">Current university organisation</a></p>
176 </div>
177 </details><details class="detail" open>
178 <summary>B · Support Kunst und Forschung — project and funding coordination</summary>
179 <div class="body">
180 <p><strong>Use when:</strong> developing artistic, scientific or arts-based research projects; looking for funding; preparing external proposals; coordinating third-party funded projects.</p>
181 <ul>
182 <li>concept development and feedback</li>
183 <li>funding landscape and call fit</li>
184 <li>administrative and financial project co-design</li>
185 <li>coordination of funded projects and partners</li>
186 <li>support involving FWF, FFG, EU programmes, City of Vienna and other funders</li>
187 </ul>
188 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/support_kunst_und_forschung" target="_blank" rel="noopener">Support Kunst und Forschung</a> · <a href="mailto:support_kf@uni-ak.ac.at">support_kf@uni-ak.ac.at</a></p>
189 </div>
190 </details><details class="detail">
191 <summary>C · Rektorat — strategy, institutional commitment and university-level responsibility</summary>
192 <div class="body">
193 <p>Most projects do <strong>not</strong> begin by contacting the Rektorat directly. It becomes relevant when a project requires university-level decisions, commitments, strategy, resources, partnerships or signing authority. Route questions through your host unit and responsible service wherever possible.</p>
194 <ul>
195 <li><strong>Rector:</strong> overall strategy, budget/personnel allocation to organisational units, institutional representation, international university partnerships, employment/service contracts and powers of attorney.</li>
196 <li><strong>Vice-Rector for Science, Research & Digitality:</strong> research strategy, artistic/scientific research support, digital development, IT & Digitalisation, Support Art & Research, University Library and doctoral admissions.</li>
197 <li><strong>Vice-Rector for Finance & Infrastructure:</strong> financial management, third-party funds management, resources, procurement/infrastructure, estates, Facility Management and Event Management.</li>
198 <li><strong>Vice-Rector for Art, Teaching & Learning:</strong> study/examination matters, teaching, teaching quality, curricular/learning issues and teaching resources.</li>
199 <li><strong>Vice-Rector for Cooperative Disciplinarity, Engagement & Innovation:</strong> international relations and partnerships, Diversity/Equity/Inclusion, International Office, AIL and Art x Science School for Transformation.</li>
200 </ul>
201 <p><a href="https://www.dieangewandte.at/universitaet/organisation/rektorat" target="_blank" rel="noopener">Current Rektorat and portfolios</a></p>
202 </div>
203 </details><details class="detail">
204 <summary>D · Finances — budget, accounting, controlling and resource planning</summary>
205 <div class="body">
206 <p><strong>Use when:</strong> the project has a budget, third-party funds, invoices, income, cost planning, co-funding, financial reporting or institutional resources.</p>
207 <ul>
208 <li><strong>Controlling:</strong> budget planning, monitoring, steering data, financial plans and reporting interfaces.</li>
209 <li><strong>Financial Accounting:</strong> university payments, creditors/debtors, service contracts/guest lectures, bookkeeping, assets, VAT/tax information and financial statements.</li>
210 <li><strong>Resource Planning:</strong> clarify current responsibilities for institutional resource planning and the project's budget route.</li>
211 </ul>
212 <p><a href="https://dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/finanzen" target="_blank" rel="noopener">Finances</a> ·
213 <a href="https://dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/finanzen/controlling" target="_blank" rel="noopener">Controlling</a> ·
214 <a href="https://dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/finanzen/finanzbuchhaltung" target="_blank" rel="noopener">Financial Accounting</a></p>
215 </div>
216 </details><details class="detail">
217 <summary>E · Personnel — staffing, contracts, workload, onboarding and team development</summary>
218 <div class="body">
219 <p><strong>Use when:</strong> the project creates or changes employment, recruits project staff, uses existing staff time, requires onboarding or needs help with team collaboration.</p>
220 <ul>
221 <li><strong>Personnel Management:</strong> employment and personnel administration; clarify the current route for project staff and contract types.</li>
222 <li><strong>Personnel Development:</strong> onboarding, team coaching, organisational development, conflict support/mediation, leadership coaching and staff development.</li>
223 <li>Clarify personnel lead times before promising start dates in a proposal.</li>
224 <li>Do not assume an external budget line automatically creates an employment route.</li>
225 </ul>
226 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/personal_finanzen_recht" target="_blank" rel="noopener">Personnel</a> ·
227 <a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/personalentwicklung" target="_blank" rel="noopener">Personnel Development</a></p>
228 </div>
229 </details><details class="detail">
230 <summary>F · Legal & Data Protection — contracts, rights, IP, personal data and legal risk</summary>
231 <div class="body">
232 <p><strong>Use when:</strong> agreements, external partners, licences, copyright/IP, personal data, confidentiality, complex terms or institutional legal commitments are involved.</p>
233 <ul>
234 <li><strong>Legal Department:</strong> supports university members with legal questions.</li>
235 <li><strong>Data Protection Officer:</strong> involve where personal-data processing, data-sharing, processors/platforms or other privacy questions require specialist review.</li>
236 <li>Plan legal review before the proposal deadline if funder/partner contracts are part of submission.</li>
237 </ul>
238 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/recht" target="_blank" rel="noopener">Legal</a> · <a href="mailto:rechtsabteilung@uni-ak.ac.at">rechtsabteilung@uni-ak.ac.at</a></p>
239 </div>
240 </details><details class="detail">
241 <summary>G · IT & Digitalisation — systems, digital services, infrastructure and IT projects</summary>
242 <div class="body">
243 <p><strong>Use when:</strong> the project needs accounts, university IT, servers/storage, networking, specialist digital systems, integration, new software/services or a digital institutional process.</p>
244 <ul>
245 <li><strong>Base</strong></li>
246 <li><strong>ITD Project Coordination</strong></li>
247 <li><strong>Central IT Services (ZID):</strong> university-wide information and communication infrastructure, service/support, networks, servers and art-university-specific IT systems.</li>
248 </ul>
249 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/it_digitalisierung" target="_blank" rel="noopener">IT & Digitalisation</a> · <a href="mailto:helpdesk@uni-ak.ac.at">helpdesk@uni-ak.ac.at</a></p>
250 </div>
251 </details><details class="detail">
252 <summary>H · Facility Management — rooms, procurement, material, building services, logistics and safety</summary>
253 <div class="body">
254 <p><strong>Use when:</strong> the project needs space, temporary rooms, equipment/material procurement, technical building requirements, logistics, deliveries, storage, access or safety coordination.</p>
255 <ul>
256 <li><strong>Procurement & Material Management:</strong> procurement advice, quotations, purchasing, orders/invoices, assets/inventory, materials.</li>
257 <li><strong>Building Technology & Safety</strong></li>
258 <li><strong>Estates & Room Coordination:</strong> room and estate coordination, centrally bookable rooms.</li>
259 <li><strong>Post & Logistics</strong></li>
260 <li><strong>Service & Operations</strong></li>
261 </ul>
262 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/facility_management" target="_blank" rel="noopener">Facility Management</a> ·
263 <a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/facility_management/logistik__beschaffung" target="_blank" rel="noopener">Procurement & Material Management</a> ·
264 <a href="https://www.dieangewandte.at/liegenschaften_und_raumkoordination" target="_blank" rel="noopener">Estates & Room Coordination</a></p>
265 </div>
266 </details><details class="detail">
267 <summary>I · Event Management — public events, event rooms and production coordination</summary>
268 <div class="body">
269 <p><strong>Use when:</strong> the project contains a symposium, screening, performance, public presentation, conference, major exhibition event or requires centrally managed event rooms/services.</p>
270 <ul>
271 <li>supports employees with planning and implementation of university events</li>
272 <li>supports idea and room finding, preparation, event delivery and follow-up</li>
273 <li>coordinate early with Facility Management for room/building/technical dependencies</li>
274 <li>coordinate public communication with Press & Communication</li>
275 </ul>
276 <p><a href="https://dieangewandte.at/veranstaltungsmanagement" target="_blank" rel="noopener">Event Management</a> · <a href="mailto:veranstaltungen@uni-ak.ac.at">veranstaltungen@uni-ak.ac.at</a></p>
277 </div>
278 </details><details class="detail">
279 <summary>J · Press & Communication — public visibility, media, publications, web and cooperation</summary>
280 <div class="body">
281 <p><strong>Use when:</strong> the project will represent the University publicly, needs press/media work, web/social communication, marketing, institutional publications, graphical/CI support or public cooperation communication.</p>
282 <ul>
283 <li>Press</li><li>Publications / Edition Angewandte</li><li>Cooperations</li><li>Marketing</li>
284 <li>Website / social media / newsletter</li><li>institutional visual identity / CI considerations</li>
285 </ul>
286 <p><a href="https://www.dieangewandte.at/presse_kommunikation" target="_blank" rel="noopener">Press & Communication</a></p>
287 </div>
288 </details><details class="detail">
289 <summary>K · International Office — mobility and international project context</summary>
290 <div class="body">
291 <p><strong>Use when:</strong> staff/student mobility, exchange routes, international visitors or mobility funding are part of the project.</p>
292 <p>For broader university partnerships and institutional international cooperation, the responsible Vice-Rectorate / Rectorate route may also become relevant.</p>
293 <p><a href="https://www.dieangewandte.at/studium/auslandsaufenthalte/personalmobilitaet" target="_blank" rel="noopener">International Office · staff mobility</a> · <a href="mailto:international.office@uni-ak.ac.at">international.office@uni-ak.ac.at</a></p>
294 </div>
295 </details><details class="detail">
296 <summary>L · University Library & research/discovery structures</summary>
297 <div class="body">
298 <p><strong>Use when:</strong> the project needs literature, licensed databases, research discovery, publication/repository routes or library expertise.</p>
299 <p>Also think beyond the Library where your project uses institutional collections, archives or specialist research resources: Art Collection and Archive, Weibel Institute and other special university facilities can be relevant depending on the topic.</p>
300 <p><a href="https://www.dieangewandte.at/universitaetsbibliothek" target="_blank" rel="noopener">University Library</a></p>
301 </div>
302 </details><details class="detail">
303 <summary>M · Studies, Teaching, Curricula & Doctoral Centre</summary>
304 <div class="body">
305 <p><strong>Use when:</strong> the project directly affects teaching, courses, curricula, assessment, students, graduation work or doctoral study.</p>
306 <ul>
307 <li><strong>Study Affairs:</strong> student administration and study-law processes from admission to graduation.</li>
308 <li><strong>Vice-Rector for Art, Teaching & Learning:</strong> teaching, studies/exams, teaching quality and teaching resources.</li>
309 <li><strong>Doctoral Centre:</strong> central contact for doctoral candidates; supports networking and project initiation across doctoral programmes.</li>
310 <li><strong>Quality Culture Teaching & Curriculum Workshop:</strong> involve for relevant teaching/curricular/quality-development questions according to current remit.</li>
311 </ul>
312 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/studienangelegenheiten" target="_blank" rel="noopener">Study Affairs</a> ·
313 <a href="https://prod.dieangewandte.at/doktoratszentrum" target="_blank" rel="noopener">Doctoral Centre</a></p>
314 </div>
315 </details><details class="detail">
316 <summary>N · Diversity, Equity, Inclusion & Accessibility</summary>
317 <div class="body">
318 <p><strong>Use when:</strong> accessibility, inclusion, participation design, equal opportunity, diversity, disability, structural barriers or inclusive communication need to be planned into the project.</p>
319 <ul>
320 <li>DEI connects diversity, equity/inclusion and accessibility expertise.</li>
321 <li>Team Barrierefrei provides practical accessibility information and contacts for staff/students with disabilities.</li>
322 <li>For events, plan accessibility early enough to budget interpretation, technical support, accessible rooms or other measures.</li>
323 </ul>
324 <p><a href="https://www.dieangewandte.at/universitaet/organisation/rektorat/vizerektorin_studium_lehre_diversitaet/diversitaet_und_gleichstellung" target="_blank" rel="noopener">Diversity, Equity, Inclusion</a> ·
325 <a href="https://www.dieangewandte.at/barrierefrei" target="_blank" rel="noopener">Accessibility at the Angewandte</a></p>
326 </div>
327 </details><details class="detail">
328 <summary>O · University Development & Quality Culture</summary>
329 <div class="body">
330 <p><strong>Use when:</strong> the project is institution-wide, strategically relevant, develops organisational/quality processes, creates new cross-unit structures or needs connection to university development and quality culture.</p>
331 <p>For ordinary project delivery this is not a default project-administration unit. Involve it where the project's purpose genuinely touches institutional development or quality processes.</p>
332 <p><a href="mailto:uq@uni-ak.ac.at">uq@uni-ak.ac.at</a></p>
333 </div>
334 </details><details class="detail">
335 <summary>P · Equality / staff / student representation — independent advice and representation</summary>
336 <div class="body">
337 <p>These structures are not project-management offices, but they can be essential when a project raises employment, discrimination, participation or conflict questions.</p>
338 <ul>
339 <li><strong>Arbeitskreis für Gleichbehandlungsfragen (AKG):</strong> confidential contact on equality, discrimination and harassment.</li>
340 <li><strong>Works Councils:</strong> representation of artistic/scientific and general university staff in employment matters.</li>
341 <li><strong>HUFAK / Students' Union:</strong> student representation; relevant where student participation and student interests are central.</li>
342 <li><strong>Arbitration Commission:</strong> part of the University's governance/interest-representation structure; not a routine project-planning service.</li>
343 </ul>
344 <p><a href="https://dieangewandte.at/gleichbehandlung" target="_blank" rel="noopener">AKG</a> ·
345 <a href="https://www.dieangewandte.at/universitaet/organisation/interessensvertretung/betriebsrat_fuer_das_kuenstlerische_und_wissenschaftliche_personal" target="_blank" rel="noopener">Works Council artistic/scientific staff</a> ·
346 <a href="https://www.dieangewandte.at/hufak" target="_blank" rel="noopener">HUFAK</a></p>
347 </div>
348 </details>
349 </section>
Veronika Kocher 2.1 350
Veronika Kocher 6.1 351 <section class="sec">
352 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 4 · TRIGGER MATRIX</div>
353 <h3>If the project does this, involve these structures early</h3>
354 <table class="tbl">
355 <thead><tr><th>Project trigger</th><th>Start with</th><th>Then check</th></tr></thead>
356 <tbody><tr><td>External research / arts-based research funding</td><td>Host unit + Support Kunst und Forschung</td><td>Finances, Personnel, Legal, Rectorate route as required</td></tr><tr><td>New staff / project employment / changed workload</td><td>Host unit + Personnel</td><td>Finances, Support Kunst und Forschung, Works Council if representation advice is needed</td></tr><tr><td>Large purchase / equipment / external service</td><td>Procurement &amp; Material Management</td><td>Finances, host unit, IT or Facility depending on item</td></tr><tr><td>New software, server, database, digital platform or integration</td><td>IT &amp; Digitalisation / ZID</td><td>Data Protection, Legal, procurement, research-data planning</td></tr><tr><td>Rooms, workshop, exhibition build, building intervention</td><td>Host unit + Facility / Room Coordination</td><td>Safety, procurement, Event Management, accessibility</td></tr><tr><td>Public event / symposium / screening / performance</td><td>Event Management</td><td>Facility, Press &amp; Communication, rights, accessibility, safety</td></tr><tr><td>External contract / cooperation agreement / IP / confidentiality</td><td>Legal</td><td>Support Kunst und Forschung, Rectorate route, Finance, Data Protection</td></tr><tr><td>Personal data / participant data / interviews / recordings</td><td>Data Protection + project lead</td><td>Ethics/consent, IT/storage, Legal, funder requirements</td></tr><tr><td>Publication, media campaign, university web/social media</td><td>Press &amp; Communication</td><td>Rights/licensing, Support Kunst und Forschung, repository/library</td></tr><tr><td>International mobility</td><td>International Office</td><td>Host unit, Support Kunst und Forschung, Personnel/Finance depending on funding</td></tr><tr><td>Formal international university partnership</td><td>Host unit + responsible Rectorate route</td><td>International Office, Legal, Support Kunst und Forschung</td></tr><tr><td>Teaching / curriculum / study-law component</td><td>Host institute/department</td><td>Vice-Rector Art/Teaching/Learning, Study Affairs, quality/curriculum structures</td></tr><tr><td>Doctoral project / doctoral candidate structure</td><td>Doctoral Centre + relevant programme</td><td>Research Vice-Rectorate/admission route, Support Kunst und Forschung</td></tr><tr><td>Accessibility / inclusion / disability requirements</td><td>DEI / Team Barrierefrei</td><td>Facility, Event Management, Communication, Personnel or Study Affairs</td></tr><tr><td>Discrimination / equality / harassment concern</td><td>AKG</td><td>Independent/confidential route; other units only as appropriate</td></tr></tbody>
357 </table>
358 </section>
Veronika Kocher 2.1 359
Veronika Kocher 6.1 360 <section class="sec">
361 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 5 · THE ACTUAL PROJECT PLAN</div>
362 <h3>Your planning file should contain these components</h3>
363 <div class="grid">
364 <div class="check"><strong>Project Charter</strong><br>Purpose, scope, non-scope, project type, host, lead, partners, start/end, outputs.</div>
365 <div class="check"><strong>Role &amp; responsibility matrix</strong><br>Who decides, does, approves, is consulted and must be informed.</div>
366 <div class="check"><strong>Work plan</strong><br>Work packages, milestones, dependencies, decision points, public outputs and closure.</div>
367 <div class="check"><strong>Budget baseline</strong><br>Costs, funding source, co-funding, institutional resources, assumptions and contingencies.</div>
368 <div class="check"><strong>People plan</strong><br>Existing staff, new hires, external contributors, workload, contracts, onboarding and handover.</div>
369 <div class="check"><strong>Procurement / infrastructure plan</strong><br>Purchases, equipment, rooms, workshops, IT, logistics, safety and lead times.</div>
370 <div class="check"><strong>Partner plan</strong><br>Roles, budget interfaces, deliverables, agreements, IP, data, communication and escalation.</div>
371 <div class="check"><strong>Rights / ethics / data plan</strong><br>Third-party material, consent, personal data, licences, confidentiality and ethics review.</div>
372 <div class="check"><strong>Communication / event plan</strong><br>Audiences, media, publication, event needs, CI, accessibility and documentation.</div>
373 <div class="check"><strong>Risk register</strong><br>Funding, people, rights, data, schedule, supplier, technical, venue, partner and reputational risks.</div>
374 <div class="check"><strong>Decision log</strong><br>Important decisions, date, responsible person, reason and impact.</div>
375 <div class="check"><strong>Closure / handover plan</strong><br>Final files, reporting, repository/archive, equipment, accounts, access, retention and responsibilities.</div>
376 </div>
377 </section>
Veronika Kocher 2.1 378
Veronika Kocher 6.1 379 <section class="sec">
380 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 6 · PLAN BACKWARDS</div>
381 <h3>The external deadline is not your first deadline</h3>
382 <table class="tbl">
383 <thead><tr><th>Planning point</th><th>Question</th></tr></thead>
384 <tbody>
385 <tr><td><strong>External submission / public opening</strong></td><td>What must be complete and approved here?</td></tr>
386 <tr><td><strong>Institutional approval / signature</strong></td><td>Who needs final documents and review time?</td></tr>
387 <tr><td><strong>Legal / partner agreements</strong></td><td>What must be reviewed before submission?</td></tr>
388 <tr><td><strong>Budget / personnel / procurement review</strong></td><td>Are rates, hires, purchases and resources realistic and permitted?</td></tr>
389 <tr><td><strong>Project concept freeze</strong></td><td>When must scope, roles, work packages and outputs stop changing?</td></tr>
390 <tr><td><strong>Partner input</strong></td><td>When must partners deliver text, budgets, letters and approvals?</td></tr>
391 <tr><td><strong>Internal start</strong></td><td>When must planning begin to make all of this possible?</td></tr>
392 </tbody></table>
393 </section>
Veronika Kocher 2.1 394
Veronika Kocher 6.1 395 <section class="sec">
396 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STOP &amp; CHECK</div>
397 <h3>Project-planning red flags</h3>
398 <div class="grid">
399 <div class="warn"><strong>No institutional home.</strong><br>The project uses the University's name/resources but no host unit has accepted responsibility.</div>
400 <div class="warn"><strong>External commitment without approval.</strong><br>A partner, funder, venue or supplier has been promised something before the internal route is clear.</div>
401 <div class="warn"><strong>People appear only as budget lines.</strong><br>Employment/contract routes and lead times have not been checked.</div>
402 <div class="warn"><strong>Equipment appears only as a price.</strong><br>Procurement, ownership, installation, IT, safety, maintenance and storage have not been planned.</div>
403 <div class="warn"><strong>Public output planned, rights unresolved.</strong><br>Publication/exhibition/streaming has been promised without confirming rights, consent or data protection.</div>
404 <div class="warn"><strong>No owner for project end.</strong><br>No one is responsible for final reporting, master files, repository/archive, equipment, accounts and access closure.</div>
405 </div>
406 </section>
Veronika Kocher 2.1 407
Veronika Kocher 6.1 408 <section class="sec">
409 <div class="eye" style="color:#8a4d36;margin-bottom:4px">CONTINUE PLANNING</div>
410 <h3>Related Enable topics</h3>
411 <div class="linkgrid"><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Funding%20%26%20Funder%20Requirements/">Funding & Funder Requirements</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Identify%20Your%20Data%20%26%20Research%20Outputs/">Identify Your Data & Research Outputs</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Plan%20Your%20Data%20Management/">Plan Your Data Management</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Copyright%2C%20Rights%20%26%20Licences/">Copyright, Rights & Licences</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Data%20Protection%20%26%20Ethics/">Data Protection & Ethics</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/File%20Organisation%20%26%20Naming/">File Organisation & Naming</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Storage%2C%20Backup%20%26%20Security/">Storage, Backup & Security</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Infrastructure%2C%20Services%20%26%20Tools/">Infrastructure, Services & Tools</a><a class="navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Collaboration%20Setup/">Collaboration Setup</a></div>
412 </section>
Veronika Kocher 2.1 413
Veronika Kocher 6.1 414 <div class="info" style="margin-bottom:14px"><strong>Need help structuring the project?</strong> For funded, artistic, scientific and arts-based research projects, Support Kunst und Forschung is a central coordination point. Bring a short project description, host unit, likely applicant, partners, duration, rough budget and the main things you need from the University.</div>
Veronika Kocher 2.1 415
Veronika Kocher 9.10 416 <!-- ARSN_TRAINING_WORKSHOPS_V2_START -->
417 <section class="arsn-training-workshops" data-arsn-training-workshops="v2" style="margin:27px 0 22px 0;">
418 <div style="padding:16px 18px;background:#eef8fa;border:1px solid #cfe8ef;border-left:5px solid #21b6d7;border-radius:9px;">
419 <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#3f6871;margin-bottom:5px;">TRAINING &amp; WORKSHOPS</div>
420 <h3 style="font-size:20px;line-height:1.3;margin:0 0 7px;color:#35312d;text-align:left;">Training, workshops &amp; consultation sessions</h3>
421 <p style="margin:0 0 10px;color:#5e5953;line-height:1.55;">Relevant opportunities for this topic will be shown here automatically from the central calendar.</p>
422 <span data-arsn-coming-soon="true" style="display:inline-block;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">COMING SOON</span>
423 </div>
424 </section>
425 <!-- ARSN_TRAINING_WORKSHOPS_V2_END -->
Veronika Kocher 9.9 426
Veronika Kocher 9.10 427 <!-- ARSN_PRACTICAL_RESOURCES_V2_START -->
428 <section class="arsn-practical-resources" data-arsn-practical-resources="v2" style="margin:0 0 27px;">
429 <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#8a4d36;margin-bottom:4px;">USEFUL MATERIALS</div>
430 <h3 style="font-size:22px;line-height:1.25;margin:0 0 8px;color:#35312d;text-align:left;">Practical Resources</h3>
431 <p style="margin:0 0 12px;color:#5e5953;line-height:1.55;">Use practical resources when you need a concise overview, a step-by-step procedure or a ready-to-use project aid.</p>
432 <div class="arsn-resource-grid" style="display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;">
433 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong>Info Sheets</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Short reference guides for common questions and decisions.</div></div>
434 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong>Tutorials</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Step-by-step guidance for specific tasks and workflows.</div></div>
435 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong>Checklists &amp; Templates</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Ready-to-use checklists and templates for planning, managing and closing projects.</div></div>
436 </div>
437 <style>@media(max-width:767px){.arsn-resource-grid{grid-template-columns:1fr!important}}</style>
438 </section>
439 <!-- ARSN_PRACTICAL_RESOURCES_V2_END -->
Veronika Kocher 9.9 440
Veronika Kocher 4.1 441 <!-- ARSN_SEARCH_TERMS_START -->
Veronika Kocher 6.1 442 <details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6">
443 <summary style="cursor:pointer;color:#6a655e;font-size:13px">Search terms &amp; related topics</summary>
444 <div style="margin-top:9px;color:#5c5650;font-size:12px;line-height:1.7">project planning · project organisation · project management · project governance · roles and responsibilities · RACI · work packages · timeline · milestones · dependencies · budget planning · risk management · project host · institute · department · Rektorat · Support Kunst und Forschung · third-party funding · finance · controlling · accounting · personnel · HR · contracts · legal · data protection · IT · digital services · procurement · room planning · facility management · event management · press and communication · international cooperation · mobility · library · doctoral project · teaching · curriculum · accessibility · diversity · equality · inclusion · AKG · works council · project partners · institutional approval · signing authority · decision log · handover</div>
Veronika Kocher 4.1 445 </details>
446 <!-- ARSN_SEARCH_TERMS_END -->
Veronika Kocher 6.1 447
448 </div>
Veronika Kocher 4.1 449 {{/html}}
Veronika Kocher 8.1 450
Veronika Kocher 9.6 451 {{html clean="false"}}
452 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START -->
Veronika Kocher 9.5 453
Veronika Kocher 9.6 454 <style data-sn-service-navigator-master="1">
455 /* =========================================================
456 MASTER TYPOGRAPHY
457 ========================================================= */
Veronika Kocher 9.5 458 #xwikicontent h1,
459 #xwikicontent h2,
460 #xwikicontent h3,
461 #xwikicontent h4,
462 #xwikicontent h5,
463 #xwikicontent h6,
464 #xwikicontent .box-title,
465 #xwikicontent [role="heading"],
466 #xwikicontent h1 a,
467 #xwikicontent h2 a,
468 #xwikicontent h3 a,
469 #xwikicontent h4 a,
470 #xwikicontent h5 a,
471 #xwikicontent h6 a,
472 #xwikicontent .box-title a,
473 #xwikicontent [role="heading"] a{
474 text-align:left!important;
475 text-justify:auto!important;
476 word-spacing:normal!important;
477 }
478
Veronika Kocher 9.6 479 /* =========================================================
480 COMING SOON / IN VORBEREITUNG
481 ========================================================= */
482 .sn-coming-soon-badge{
483 display:inline-block;
484 vertical-align:middle;
485 margin-left:10px;
486 padding:4px 8px;
487 border-radius:14px;
488 border:1px solid #efd9cc;
489 background:#fff4ee;
490 color:#8a4d36;
491 font-size:11px;
492 font-weight:700;
493 letter-spacing:.055em;
494 line-height:1.2;
495 white-space:nowrap;
496 }
497
498 /* =========================================================
499 NATIVE / DETAIL CALLOUT GEOMETRY
500 Preserve existing backgrounds.
501 ========================================================= */
502 #xwikicontent .arsn-info,
503 #xwikicontent .dmp-info,
504 #xwikicontent .ido-info,
505 #xwikicontent .pp-info,
506 #xwikicontent .infomessage{
Veronika Kocher 9.5 507 box-sizing:border-box!important;
Veronika Kocher 9.6 508 border-left:4px solid #21b6d7!important;
509 border-radius:8px;
Veronika Kocher 9.5 510 text-align:left!important;
511 word-spacing:normal!important;
512 }
513
Veronika Kocher 9.6 514 #xwikicontent .arsn-warn,
515 #xwikicontent .dmp-warn,
516 #xwikicontent .ido-warn,
517 #xwikicontent .pp-warn,
518 #xwikicontent .warn,
519 #xwikicontent .warning,
520 #xwikicontent .warningmessage,
Veronika Kocher 9.5 521 #xwikicontent .errormessage{
Veronika Kocher 9.6 522 box-sizing:border-box!important;
523 border-left:4px solid #e94b13!important;
524 border-radius:8px;
525 text-align:left!important;
526 word-spacing:normal!important;
Veronika Kocher 9.5 527 }
528
Veronika Kocher 9.6 529 [data-sn-master-equal-height],
530 [data-sn-master-first-row]{
Veronika Kocher 9.4 531 box-sizing:border-box;
Veronika Kocher 9.3 532 }
Veronika Kocher 9.7 533
534 /* =========================================================
535 FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS
536 ========================================================= */
537 #xwikicontent .arsn-area-label[data-sn-three-line="1"]{
538 display:grid!important;
539 grid-template-columns:minmax(0,1fr)!important;
540 grid-auto-rows:auto!important;
541 width:100%!important;
542 max-width:none!important;
543 box-sizing:border-box!important;
544 justify-items:start!important;
545 align-items:start!important;
546 gap:2px!important;
547 text-align:left!important;
548 text-align-last:left!important;
549 text-justify:auto!important;
550 word-spacing:normal!important;
551 white-space:normal!important;
552 }
553 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number,
554 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title,
555 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{
556 display:block!important;
557 width:100%!important;
558 margin:0!important;
559 text-align:left!important;
560 text-align-last:left!important;
561 text-justify:auto!important;
562 word-spacing:normal!important;
563 white-space:normal!important;
564 }
Veronika Kocher 9.3 565 </style>
Veronika Kocher 9.5 566
Veronika Kocher 9.6 567 <script data-sn-service-navigator-master="1">
Veronika Kocher 9.3 568 (function(){
569 "use strict";
570
Veronika Kocher 9.6 571 var PAGE_KIND="detail";
572 var PLACEHOLDER=false;
573 var PLACEHOLDER_LABEL="COMING SOON";
574
Veronika Kocher 9.3 575 var MOBILE_MAX=767;
Veronika Kocher 9.4 576 var ROW_TOLERANCE=6;
Veronika Kocher 9.5 577 var RESIZE_DEBOUNCE=220;
Veronika Kocher 9.3 578
579 var root=
580 document.getElementById("xwikicontent")||
581 document.querySelector(".xwiki-rendering-content")||
582 document.querySelector("main")||
583 document.body;
584
585 if(!root)return;
586
Veronika Kocher 9.6 587 var managedHeight=new Set();
588 var managedMargin=new Set();
589 var originalHeight=new WeakMap();
590 var originalMargin=new WeakMap();
Veronika Kocher 9.5 591
592 var resizeTimer=0;
Veronika Kocher 9.6 593 var running=false;
Veronika Kocher 9.5 594
Veronika Kocher 9.6 595 var THEMES=[
596 {
597 name:"BLUE",
598 accent:"#21b6d7",
599 bg:"#eaf7fb",
600 text:"#315d68",
601 labels:[
602 "HIER STARTEN",
603 "ENTSCHEIDEN",
604 "ÜBERPRÜFEN & ANPASSEN",
605 "START HERE",
606 "DECIDE",
607 "REVIEW & ADAPT"
608 ]
609 },
610 {
611 name:"RED",
612 accent:"#e94b13",
613 bg:"#fff1ec",
614 text:"#8a4d36",
615 labels:[
616 "PLANEN & ORGANISIEREN",
617 "ORGANISIEREN & DOKUMENTIEREN",
618 "PUBLIZIEREN & PRÄSENTIEREN",
619 "PLAN & ORGANISE",
620 "PLAN & ORGANIZE",
621 "ORGANISE & DOCUMENT",
622 "ORGANIZE & DOCUMENT",
623 "PUBLISH & PRESENT"
624 ]
625 },
626 {
627 name:"YELLOW",
628 accent:"#f0aa00",
629 bg:"#fff8e7",
630 text:"#785b17",
631 labels:[
632 "SCHÜTZEN & KLÄREN",
633 "STANDARDISIEREN & IDENTIFIZIEREN",
634 "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN",
635 "PROTECT & CLARIFY",
636 "STANDARDISE & IDENTIFY",
637 "STANDARDIZE & IDENTIFY",
638 "OPEN, REUSE & MAKE FINDABLE"
639 ]
640 },
641 {
642 name:"GREEN",
643 accent:"#38b76a",
644 bg:"#edf9f1",
645 text:"#3f7451",
646 labels:[
647 "INFRASTRUKTUR EINRICHTEN",
648 "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN",
649 "SPEICHERN & ZUGRIFF STEUERN",
650 "REPOSITORIUM, ERHALTEN & ÜBERGEBEN",
651 "SET UP INFRASTRUCTURE",
652 "SET UP INFRASTRUCTURE & COLLABORATION",
653 "STORE & CONTROL ACCESS",
654 "REPOSITORY, PRESERVE & HAND OVER"
655 ]
Veronika Kocher 9.4 656 }
Veronika Kocher 9.6 657 ];
Veronika Kocher 9.4 658
Veronika Kocher 9.6 659 function num(value){
660 var n=parseFloat(value);
661 return Number.isFinite(n)?n:0;
Veronika Kocher 9.3 662 }
663
Veronika Kocher 9.6 664 function norm(value){
665 return String(value||"")
Veronika Kocher 9.5 666 .replace(/\s+/g," ")
667 .trim()
668 .toUpperCase();
669 }
670
Veronika Kocher 9.6 671 function visible(el){
672 if(!el||el.nodeType!==1)return false;
Veronika Kocher 9.3 673
Veronika Kocher 9.6 674 var style=getComputedStyle(el);
675 var rect=el.getBoundingClientRect();
Veronika Kocher 9.5 676
677 return (
Veronika Kocher 9.6 678 style.display!=="none"&&
679 style.visibility!=="hidden"&&
680 rect.width>20&&
681 rect.height>4
Veronika Kocher 9.5 682 );
Veronika Kocher 9.3 683 }
684
Veronika Kocher 9.6 685 function saveStyle(el,map,property){
Veronika Kocher 9.4 686 if(map.has(el))return;
687
688 map.set(el,{
Veronika Kocher 9.6 689 value:el.style.getPropertyValue(property),
690 priority:el.style.getPropertyPriority(property)
Veronika Kocher 9.4 691 });
692 }
693
Veronika Kocher 9.6 694 function restoreStyle(el,map,property){
Veronika Kocher 9.4 695 var original=map.get(el);
696
697 if(original&&original.value){
698 el.style.setProperty(
699 property,
700 original.value,
701 original.priority||""
702 );
703 }else{
Veronika Kocher 9.6 704 el.style.removeProperty(property);
Veronika Kocher 9.4 705 }
706 }
707
Veronika Kocher 9.5 708 function resetRuntime(){
Veronika Kocher 9.6 709 managedHeight.forEach(function(el){
710 restoreStyle(
Veronika Kocher 9.4 711 el,
Veronika Kocher 9.6 712 originalHeight,
Veronika Kocher 9.4 713 "min-height"
714 );
715 el.removeAttribute(
Veronika Kocher 9.6 716 "data-sn-master-equal-height"
Veronika Kocher 9.4 717 );
718 });
719
Veronika Kocher 9.6 720 managedMargin.forEach(function(el){
721 restoreStyle(
Veronika Kocher 9.4 722 el,
Veronika Kocher 9.6 723 originalMargin,
Veronika Kocher 9.4 724 "margin-top"
725 );
726 el.removeAttribute(
Veronika Kocher 9.6 727 "data-sn-master-first-row"
Veronika Kocher 9.4 728 );
729 });
730
Veronika Kocher 9.6 731 managedHeight.clear();
732 managedMargin.clear();
733 }
Veronika Kocher 9.5 734
Veronika Kocher 9.6 735 function themeFor(text){
736 var value=norm(text);
Veronika Kocher 9.5 737
Veronika Kocher 9.6 738 for(var i=0;i<THEMES.length;i++){
739 for(var j=0;j<THEMES[i].labels.length;j++){
740 var label=THEMES[i].labels[j];
741
742 if(
743 value===label||
744 value.indexOf(label+" ")===0||
745 value.indexOf(label+" -")===0||
746 value.indexOf(label+" ·")===0
747 ){
748 return THEMES[i];
749 }
750 }
751 }
752
753 return null;
Veronika Kocher 9.4 754 }
755
Veronika Kocher 9.6 756 /* =======================================================
Veronika Kocher 9.7 757 BORDERLESS FILLED RED/ORANGE CTA BUTTONS
758 ======================================================= */
759
760 function colourDistance(a,b){
761 return Math.sqrt(
762 Math.pow(a[0]-b[0],2)+
763 Math.pow(a[1]-b[1],2)+
764 Math.pow(a[2]-b[2],2)
765 );
766 }
767
768 function makeFilledRedOrangeCTAsBorderless(){
769 var RED_ORANGE=[233,75,19];
770
771 Array.from(
772 root.querySelectorAll(
773 'a,button,[role="button"],input[type="submit"],input[type="button"]'
774 )
775 ).forEach(function(el){
776 if(!visible(el))return;
777
778 var style=getComputedStyle(el);
779 var rgb=parseRGB(style.backgroundColor);
780
781 if(!rgb)return;
782
783 if(
784 colourDistance(
785 rgb,
786 RED_ORANGE
787 )>55
788 ){
789 return;
790 }
791
792 var rect=el.getBoundingClientRect();
793
794 if(
795 rect.width<80||
796 rect.height<24
797 ){
798 return;
799 }
800
801 el.style.setProperty(
802 "border",
803 "none",
804 "important"
805 );
806
807 el.style.setProperty(
808 "border-left",
809 "none",
810 "important"
811 );
812
813 el.style.setProperty(
814 "border-top",
815 "none",
816 "important"
817 );
818
819 el.style.setProperty(
820 "border-right",
821 "none",
822 "important"
823 );
824
825 el.style.setProperty(
826 "border-bottom",
827 "none",
828 "important"
829 );
830
831 el.style.setProperty(
832 "box-shadow",
833 "none",
834 "important"
835 );
836 });
837 }
838
839 /* =======================================================
840 FULL-WIDTH THREE-LINE AREA LABELS
841 ======================================================= */
842
843 function compactText(value){
844 return String(value||"")
845 .replace(/\s+/g," ")
846 .trim();
847 }
848
849 function makeThreeLineAreaLabels(){
850 Array.from(
851 root.querySelectorAll(
852 ".arsn-area-label"
853 )
854 ).forEach(function(label){
855 if(
856 label.getAttribute(
857 "data-sn-three-line"
858 )==="1"
859 ){
860 return;
861 }
862
863 var number=
864 label.querySelector(
865 ":scope > .arsn-area-number"
866 );
867
868 var action=
869 label.querySelector(
870 ":scope > .arsn-area-action"
871 );
872
873 if(
874 !number||
875 !action
876 ){
877 return;
878 }
879
880 var clone=
881 label.cloneNode(true);
882
883 var cloneNumber=
884 clone.querySelector(
885 ":scope > .arsn-area-number"
886 );
887
888 var cloneAction=
889 clone.querySelector(
890 ":scope > .arsn-area-action"
891 );
892
893 if(cloneNumber){
894 cloneNumber.remove();
895 }
896
897 if(cloneAction){
898 cloneAction.remove();
899 }
900
901 var titleText=
902 compactText(
903 clone.textContent
904 );
905
906 if(!titleText){
907 return;
908 }
909
910 var numberNode=
911 number.cloneNode(true);
912
913 var actionNode=
914 action.cloneNode(true);
915
916 var titleNode=
917 document.createElement(
918 "span"
919 );
920
921 titleNode.className=
922 "sn-area-label-title";
923
924 titleNode.textContent=
925 titleText;
926
927 while(label.firstChild){
928 label.removeChild(
929 label.firstChild
930 );
931 }
932
933 label.appendChild(
934 numberNode
935 );
936
937 label.appendChild(
938 titleNode
939 );
940
941 label.appendChild(
942 actionNode
943 );
944
945 label.setAttribute(
946 "data-sn-three-line",
947 "1"
948 );
949
950 var head=
951 label.closest(
952 ".arsn-area-head"
953 );
954
955 if(head){
956 head.style.setProperty(
957 "width",
958 "100%",
959 "important"
960 );
961
962 head.style.setProperty(
963 "max-width",
964 "100%",
965 "important"
966 );
967
968 head.style.setProperty(
969 "box-sizing",
970 "border-box",
971 "important"
972 );
973 }
974 });
975 }
976
977 /* =======================================================
Veronika Kocher 9.6 978 PLACEHOLDER BADGE
979 ======================================================= */
Veronika Kocher 9.5 980
Veronika Kocher 9.6 981 function applyPlaceholderBadge(){
982 if(!PLACEHOLDER)return;
Veronika Kocher 9.5 983
984 if(
Veronika Kocher 9.6 985 document.querySelector(
986 ".sn-coming-soon-badge"
987 )
Veronika Kocher 9.5 988 ){
Veronika Kocher 9.6 989 return;
Veronika Kocher 9.5 990 }
991
Veronika Kocher 9.6 992 var title=
993 document.querySelector(
994 "#document-title"
995 )||
996 document.querySelector(
997 "h1"
998 );
Veronika Kocher 9.5 999
Veronika Kocher 9.6 1000 if(!title)return;
Veronika Kocher 9.5 1001
Veronika Kocher 9.6 1002 var badge=
1003 document.createElement(
1004 "span"
1005 );
1006
1007 badge.className=
1008 "sn-coming-soon-badge";
1009
1010 badge.textContent=
1011 PLACEHOLDER_LABEL;
1012
1013 badge.setAttribute(
1014 "aria-label",
1015 PLACEHOLDER_LABEL
Veronika Kocher 9.5 1016 );
1017
Veronika Kocher 9.6 1018 title.appendChild(
1019 badge
1020 );
1021 }
Veronika Kocher 9.5 1022
Veronika Kocher 9.6 1023 /* =======================================================
1024 DETAIL PAGE OWN-ACCENT PROPAGATION
1025 ======================================================= */
Veronika Kocher 9.5 1026
Veronika Kocher 9.6 1027 function parseRGB(value){
1028 var match=String(value||"").match(
1029 /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i
Veronika Kocher 9.5 1030 );
Veronika Kocher 9.6 1031
1032 if(!match)return null;
1033
1034 return [
1035 Number(match[1]),
1036 Number(match[2]),
1037 Number(match[3])
1038 ];
Veronika Kocher 9.5 1039 }
1040
Veronika Kocher 9.6 1041 function distance(a,b){
1042 return Math.sqrt(
1043 Math.pow(a[0]-b[0],2)+
1044 Math.pow(a[1]-b[1],2)+
1045 Math.pow(a[2]-b[2],2)
1046 );
1047 }
Veronika Kocher 9.3 1048
Veronika Kocher 9.6 1049 function paletteMatch(cssColor){
1050 var rgb=parseRGB(cssColor);
Veronika Kocher 9.4 1051
Veronika Kocher 9.6 1052 if(!rgb)return null;
Veronika Kocher 9.4 1053
Veronika Kocher 9.6 1054 var palette=[
1055 {hex:"#21b6d7",rgb:[33,182,215]},
1056 {hex:"#e94b13",rgb:[233,75,19]},
1057 {hex:"#f0aa00",rgb:[240,170,0]},
1058 {hex:"#38b76a",rgb:[56,183,106]}
1059 ];
Veronika Kocher 9.3 1060
Veronika Kocher 9.4 1061 var best=null;
Veronika Kocher 9.6 1062 var bestDistance=Infinity;
Veronika Kocher 9.3 1063
Veronika Kocher 9.6 1064 palette.forEach(function(item){
1065 var d=distance(rgb,item.rgb);
Veronika Kocher 9.3 1066
Veronika Kocher 9.6 1067 if(d<bestDistance){
1068 best=item;
1069 bestDistance=d;
1070 }
1071 });
Veronika Kocher 9.4 1072
Veronika Kocher 9.6 1073 return bestDistance<=30
1074 ?best
1075 :null;
1076 }
Veronika Kocher 9.3 1077
Veronika Kocher 9.6 1078 function propagateDetailAccents(){
1079 if(PAGE_KIND!=="detail")return;
1080
1081 Array.from(
1082 root.querySelectorAll(
1083 ".arsn-call,.dmp-call,.ido-call,.pp-call,"+
1084 ".arsn-source,.dmp-source,.ido-source,.pp-source"
1085 )
1086 ).forEach(function(el){
1087 if(!visible(el))return;
1088
1089 var style=getComputedStyle(el);
1090
Veronika Kocher 9.4 1091 if(
Veronika Kocher 9.6 1092 num(style.borderTopWidth)>=2
Veronika Kocher 9.4 1093 ){
Veronika Kocher 9.6 1094 var match=
1095 paletteMatch(
1096 style.borderTopColor
Veronika Kocher 9.4 1097 );
1098
Veronika Kocher 9.6 1099 if(match){
1100 el.style.setProperty(
1101 "border-left",
1102 "4px solid "+match.hex,
1103 "important"
Veronika Kocher 9.4 1104 );
Veronika Kocher 9.3 1105 }
1106 }
Veronika Kocher 9.6 1107 });
Veronika Kocher 9.3 1108
Veronika Kocher 9.6 1109 // Warning families: explicit safety override.
1110 Array.from(
1111 root.querySelectorAll(
1112 ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+
1113 ".warn,.warning,.warningmessage,.errormessage"
1114 )
1115 ).forEach(function(el){
1116 if(!visible(el))return;
Veronika Kocher 9.3 1117
Veronika Kocher 9.6 1118 el.style.setProperty(
1119 "border-left",
1120 "4px solid #e94b13",
1121 "important"
1122 );
1123 });
Veronika Kocher 9.3 1124
Veronika Kocher 9.6 1125 // Info families: explicit orientation override.
1126 Array.from(
1127 root.querySelectorAll(
1128 ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage"
1129 )
1130 ).forEach(function(el){
1131 if(!visible(el))return;
Veronika Kocher 9.4 1132
Veronika Kocher 9.6 1133 el.style.setProperty(
1134 "border-left",
1135 "4px solid #21b6d7",
1136 "important"
1137 );
1138 });
1139 }
Veronika Kocher 9.4 1140
Veronika Kocher 9.6 1141 /* =======================================================
1142 OVERVIEW SEMANTIC THEME PALETTE
1143 ======================================================= */
Veronika Kocher 9.4 1144
Veronika Kocher 9.6 1145 function smallestThemeHeaders(){
1146 return Array.from(
1147 root.querySelectorAll(
1148 "div,span,p,strong,h3,h4,h5,h6"
1149 )
1150 ).filter(function(el){
1151 if(!visible(el))return false;
1152 if(!themeFor(el.textContent))return false;
Veronika Kocher 9.4 1153
Veronika Kocher 9.6 1154 return !Array.from(
1155 el.children||[]
1156 ).some(function(child){
1157 return !!themeFor(
1158 child.textContent
1159 );
Veronika Kocher 9.4 1160 });
Veronika Kocher 9.6 1161 });
Veronika Kocher 9.3 1162 }
1163
Veronika Kocher 9.6 1164 function findOverviewCard(header){
1165 var node=header.parentElement;
1166 var candidates=[];
Veronika Kocher 9.4 1167
Veronika Kocher 9.6 1168 while(node&&node!==root){
1169 var rect=node.getBoundingClientRect();
1170 var style=getComputedStyle(node);
Veronika Kocher 9.4 1171
Veronika Kocher 9.6 1172 var border=
1173 num(style.borderTopWidth)+
1174 num(style.borderRightWidth)+
1175 num(style.borderBottomWidth)+
1176 num(style.borderLeftWidth);
Veronika Kocher 9.4 1177
Veronika Kocher 9.6 1178 if(
1179 rect.width>=220&&
1180 rect.width<=800&&
1181 rect.height>=120&&
1182 border>=1
1183 ){
1184 candidates.push(node);
1185 }
Veronika Kocher 9.4 1186
Veronika Kocher 9.6 1187 node=node.parentElement;
1188 }
Veronika Kocher 9.4 1189
Veronika Kocher 9.6 1190 if(!candidates.length)return null;
Veronika Kocher 9.4 1191
Veronika Kocher 9.6 1192 candidates.sort(function(a,b){
1193 return (
1194 b.getBoundingClientRect().height-
1195 a.getBoundingClientRect().height
Veronika Kocher 9.5 1196 );
Veronika Kocher 9.6 1197 });
Veronika Kocher 9.4 1198
Veronika Kocher 9.6 1199 return candidates[0];
Veronika Kocher 9.4 1200 }
1201
Veronika Kocher 9.6 1202 function rowCandidates(link,card){
1203 var result=[];
Veronika Kocher 9.5 1204 var cardRect=
1205 card.getBoundingClientRect();
Veronika Kocher 9.4 1206
Veronika Kocher 9.6 1207 var node=link;
Veronika Kocher 9.4 1208
Veronika Kocher 9.6 1209 while(node&&node!==card){
1210 if(visible(node)){
1211 var rect=
1212 node.getBoundingClientRect();
Veronika Kocher 9.4 1213
Veronika Kocher 9.6 1214 if(
1215 rect.height<=105&&
1216 rect.width>=
1217 cardRect.width*.50&&
1218 rect.width<=
1219 cardRect.width*1.03
1220 ){
1221 result.push(node);
1222 }
1223 }
Veronika Kocher 9.4 1224
Veronika Kocher 9.6 1225 node=node.parentElement;
1226 }
1227
1228 return result;
1229 }
1230
1231 function chooseOuterRow(
1232 candidates,
1233 link
1234 ){
1235 if(!candidates.length){
1236 return link;
1237 }
1238
1239 var bordered=
1240 candidates.filter(function(el){
Veronika Kocher 9.5 1241 return (
Veronika Kocher 9.6 1242 num(
1243 getComputedStyle(el)
1244 .borderLeftWidth
1245 )>=1
Veronika Kocher 9.5 1246 );
1247 });
Veronika Kocher 9.4 1248
Veronika Kocher 9.6 1249 var pool=
1250 bordered.length
1251 ?bordered
1252 :candidates;
Veronika Kocher 9.4 1253
Veronika Kocher 9.6 1254 pool.sort(function(a,b){
1255 var ar=
1256 a.getBoundingClientRect();
Veronika Kocher 9.4 1257
Veronika Kocher 9.6 1258 var br=
1259 b.getBoundingClientRect();
Veronika Kocher 9.4 1260
Veronika Kocher 9.6 1261 return (
1262 ar.left-br.left||
1263 br.width-ar.width
1264 );
1265 });
Veronika Kocher 9.4 1266
Veronika Kocher 9.6 1267 return pool[0]||link;
1268 }
Veronika Kocher 9.4 1269
Veronika Kocher 9.6 1270 function applyOverviewPalette(){
1271 if(PAGE_KIND!=="overview"){
1272 return [];
Veronika Kocher 9.5 1273 }
Veronika Kocher 9.4 1274
Veronika Kocher 9.6 1275 var headers=
1276 smallestThemeHeaders()
1277 .map(function(el){
1278 return {
1279 el:el,
1280 theme:
1281 themeFor(
1282 el.textContent
1283 ),
1284 card:
1285 findOverviewCard(
1286 el
1287 )
1288 };
Veronika Kocher 9.5 1289 })
Veronika Kocher 9.6 1290 .filter(function(row){
1291 return !!row.card;
1292 });
Veronika Kocher 9.4 1293
Veronika Kocher 9.6 1294 var unique=[];
1295 var seenHeaders=new Set();
Veronika Kocher 9.4 1296
Veronika Kocher 9.6 1297 headers.forEach(function(row){
1298 var key=
1299 row.theme.name+
1300 "|"+
1301 Math.round(
1302 row.card
1303 .getBoundingClientRect()
1304 .left
1305 )+
1306 "|"+
1307 Math.round(
1308 row.el
1309 .getBoundingClientRect()
1310 .top
1311 );
Veronika Kocher 9.4 1312
Veronika Kocher 9.6 1313 if(!seenHeaders.has(key)){
1314 seenHeaders.add(key);
1315 unique.push(row);
1316 }
1317 });
Veronika Kocher 9.4 1318
Veronika Kocher 9.6 1319 unique.forEach(function(row){
1320 var headerRect=
1321 row.el
1322 .getBoundingClientRect();
Veronika Kocher 9.4 1323
Veronika Kocher 9.6 1324 row.el.style.setProperty(
1325 "background",
1326 row.theme.bg,
1327 "important"
Veronika Kocher 9.5 1328 );
1329
Veronika Kocher 9.6 1330 row.el.style.setProperty(
1331 "color",
1332 row.theme.text,
1333 "important"
Veronika Kocher 9.5 1334 );
1335
Veronika Kocher 9.6 1336 row.el.style.setProperty(
1337 "text-align",
1338 "left",
1339 "important"
Veronika Kocher 9.5 1340 );
Veronika Kocher 9.4 1341
Veronika Kocher 9.6 1342 row.el.style.setProperty(
1343 "word-spacing",
1344 "normal",
1345 "important"
1346 );
Veronika Kocher 9.5 1347
Veronika Kocher 9.6 1348 var later=
1349 unique
1350 .filter(function(other){
1351 return (
1352 other.card===row.card&&
1353 other.el
1354 .getBoundingClientRect()
1355 .top>
1356 headerRect.top+2
1357 );
1358 })
1359 .sort(function(a,b){
1360 return (
1361 a.el
1362 .getBoundingClientRect()
1363 .top-
1364 b.el
1365 .getBoundingClientRect()
1366 .top
1367 );
1368 });
Veronika Kocher 9.5 1369
Veronika Kocher 9.6 1370 var stopTop=
1371 later.length
1372 ?later[0].el
1373 .getBoundingClientRect()
1374 .top
1375 :Infinity;
Veronika Kocher 9.5 1376
1377 Array.from(
Veronika Kocher 9.6 1378 row.card.querySelectorAll("a")
1379 ).forEach(function(link){
1380 if(!visible(link))return;
Veronika Kocher 9.5 1381
Veronika Kocher 9.6 1382 var rect=
1383 link.getBoundingClientRect();
Veronika Kocher 9.5 1384
Veronika Kocher 9.6 1385 if(
1386 rect.top<=
1387 headerRect.bottom-2||
1388 rect.top>=
1389 stopTop-2
1390 ){
1391 return;
1392 }
Veronika Kocher 9.5 1393
Veronika Kocher 9.6 1394 var candidates=
1395 rowCandidates(
1396 link,
1397 row.card
1398 );
1399
1400 var target=
1401 chooseOuterRow(
1402 candidates,
1403 link
1404 );
1405
1406 candidates.forEach(function(el){
1407 el.style.setProperty(
1408 "border-left",
1409 "0 solid transparent",
1410 "important"
1411 );
1412 });
1413
1414 target.style.setProperty(
1415 "border-left",
1416 "3px solid "+
1417 row.theme.accent,
1418 "important"
Veronika Kocher 9.5 1419 );
Veronika Kocher 9.6 1420
1421 target.style.setProperty(
1422 "box-sizing",
1423 "border-box",
1424 "important"
Veronika Kocher 9.5 1425 );
Veronika Kocher 9.4 1426 });
Veronika Kocher 9.6 1427 });
Veronika Kocher 9.4 1428
Veronika Kocher 9.6 1429 return unique;
Veronika Kocher 9.5 1430 }
Veronika Kocher 9.4 1431
Veronika Kocher 9.6 1432 /* =======================================================
1433 OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW
1434 ======================================================= */
Veronika Kocher 9.5 1435
Veronika Kocher 9.6 1436 function alignOverviewCards(headers){
1437 if(
1438 PAGE_KIND!=="overview"||
1439 window.innerWidth<=MOBILE_MAX
1440 ){
1441 return;
1442 }
Veronika Kocher 9.5 1443
Veronika Kocher 9.6 1444 var cards=[];
1445 var seen=new Set();
Veronika Kocher 9.5 1446
Veronika Kocher 9.6 1447 headers.forEach(function(row){
1448 if(!seen.has(row.card)){
1449 seen.add(row.card);
1450 cards.push(row.card);
1451 }
1452 });
Veronika Kocher 9.5 1453
Veronika Kocher 9.6 1454 if(cards.length<2){
1455 return;
1456 }
Veronika Kocher 9.5 1457
Veronika Kocher 9.6 1458 // Group cards by actual top position.
1459 var groups=[];
Veronika Kocher 9.5 1460
Veronika Kocher 9.6 1461 cards.forEach(function(card){
1462 var top=
1463 card.getBoundingClientRect().top;
Veronika Kocher 9.5 1464
Veronika Kocher 9.6 1465 var group=null;
Veronika Kocher 9.5 1466
Veronika Kocher 9.6 1467 for(var i=0;i<groups.length;i++){
Veronika Kocher 9.5 1468 if(
Veronika Kocher 9.6 1469 Math.abs(
1470 groups[i].top-top
1471 )<=ROW_TOLERANCE
Veronika Kocher 9.5 1472 ){
Veronika Kocher 9.6 1473 group=groups[i];
1474 break;
Veronika Kocher 9.5 1475 }
Veronika Kocher 9.6 1476 }
Veronika Kocher 9.5 1477
Veronika Kocher 9.6 1478 if(!group){
1479 group={
1480 top:top,
1481 cards:[]
1482 };
1483 groups.push(group);
1484 }
Veronika Kocher 9.5 1485
Veronika Kocher 9.6 1486 group.cards.push(card);
1487 });
Veronika Kocher 9.5 1488
Veronika Kocher 9.6 1489 groups.forEach(function(group){
1490 if(group.cards.length<2){
1491 return;
1492 }
Veronika Kocher 9.5 1493
Veronika Kocher 9.6 1494 var firstHeaders=
1495 group.cards.map(function(card){
1496 var candidates=
1497 headers
1498 .filter(function(row){
1499 return row.card===card;
1500 })
1501 .sort(function(a,b){
1502 return (
1503 a.el
1504 .getBoundingClientRect()
1505 .top-
1506 b.el
1507 .getBoundingClientRect()
1508 .top
1509 );
1510 });
Veronika Kocher 9.5 1511
Veronika Kocher 9.6 1512 return candidates.length
1513 ?candidates[0]
1514 :null;
1515 });
Veronika Kocher 9.5 1516
Veronika Kocher 9.6 1517 if(
1518 !firstHeaders.some(function(row){
1519 return !row;
1520 })
1521 ){
1522 var targetTop=
1523 Math.max.apply(
1524 Math,
1525 firstHeaders.map(function(row){
1526 return (
1527 row.el
1528 .getBoundingClientRect()
1529 .top-
1530 row.card
1531 .getBoundingClientRect()
1532 .top
1533 );
1534 })
1535 );
Veronika Kocher 9.3 1536
Veronika Kocher 9.6 1537 firstHeaders.forEach(function(row){
1538 var relativeTop=
1539 row.el
1540 .getBoundingClientRect()
1541 .top-
1542 row.card
1543 .getBoundingClientRect()
1544 .top;
Veronika Kocher 9.4 1545
Veronika Kocher 9.6 1546 var delta=
1547 targetTop-relativeTop;
Veronika Kocher 9.4 1548
Veronika Kocher 9.6 1549 if(delta>1){
1550 saveStyle(
1551 row.el,
1552 originalMargin,
1553 "margin-top"
1554 );
Veronika Kocher 9.5 1555
Veronika Kocher 9.6 1556 var current=
1557 num(
1558 getComputedStyle(
1559 row.el
1560 ).marginTop
1561 );
Veronika Kocher 9.4 1562
Veronika Kocher 9.6 1563 row.el.style.setProperty(
1564 "margin-top",
1565 (
1566 current+delta
1567 )+"px"
1568 );
Veronika Kocher 9.4 1569
Veronika Kocher 9.6 1570 row.el.setAttribute(
1571 "data-sn-master-first-row",
1572 "1"
1573 );
Veronika Kocher 9.4 1574
Veronika Kocher 9.6 1575 managedMargin.add(
1576 row.el
1577 );
1578 }
1579 });
1580 }
Veronika Kocher 9.4 1581
Veronika Kocher 9.6 1582 var maxHeight=0;
Veronika Kocher 9.4 1583
Veronika Kocher 9.6 1584 group.cards.forEach(function(card){
1585 maxHeight=
1586 Math.max(
1587 maxHeight,
1588 card
1589 .getBoundingClientRect()
1590 .height
1591 );
1592 });
Veronika Kocher 9.4 1593
Veronika Kocher 9.6 1594 maxHeight=
1595 Math.ceil(maxHeight);
Veronika Kocher 9.4 1596
Veronika Kocher 9.6 1597 group.cards.forEach(function(card){
1598 saveStyle(
1599 card,
1600 originalHeight,
1601 "min-height"
1602 );
Veronika Kocher 9.4 1603
Veronika Kocher 9.6 1604 card.style.setProperty(
1605 "min-height",
1606 maxHeight+"px"
Veronika Kocher 9.4 1607 );
1608
Veronika Kocher 9.6 1609 card.setAttribute(
1610 "data-sn-master-equal-height",
1611 "1"
1612 );
Veronika Kocher 9.4 1613
Veronika Kocher 9.6 1614 managedHeight.add(
1615 card
1616 );
1617 });
Veronika Kocher 9.4 1618 });
1619 }
1620
Veronika Kocher 9.6 1621 /* =======================================================
1622 DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY
1623 ======================================================= */
Veronika Kocher 9.4 1624
Veronika Kocher 9.6 1625 function equaliseDetailGrids(){
Veronika Kocher 9.5 1626 if(
Veronika Kocher 9.6 1627 PAGE_KIND!=="detail"||
1628 window.innerWidth<=MOBILE_MAX
Veronika Kocher 9.5 1629 ){
Veronika Kocher 9.6 1630 return;
Veronika Kocher 9.5 1631 }
Veronika Kocher 9.4 1632
Veronika Kocher 9.6 1633 var selectors=[
1634 ".arsn-grid",
1635 ".arsn-grid-2",
1636 ".arsn-grid-3",
1637 ".dmp-grid",
1638 ".ido-grid",
1639 ".pp-grid"
1640 ];
Veronika Kocher 9.4 1641
Veronika Kocher 9.6 1642 selectors.forEach(function(selector){
1643 Array.from(
1644 root.querySelectorAll(selector)
1645 ).forEach(function(grid){
1646 var children=
1647 Array.from(
1648 grid.children||[]
1649 ).filter(visible);
Veronika Kocher 9.4 1650
Veronika Kocher 9.6 1651 if(children.length<2){
1652 return;
1653 }
Veronika Kocher 9.4 1654
Veronika Kocher 9.6 1655 var groups=[];
Veronika Kocher 9.4 1656
Veronika Kocher 9.6 1657 children.forEach(function(child){
1658 var top=
1659 child
1660 .getBoundingClientRect()
1661 .top;
Veronika Kocher 9.4 1662
Veronika Kocher 9.6 1663 var group=null;
Veronika Kocher 9.4 1664
Veronika Kocher 9.6 1665 for(var i=0;i<groups.length;i++){
1666 if(
1667 Math.abs(
1668 groups[i].top-top
1669 )<=ROW_TOLERANCE
1670 ){
1671 group=groups[i];
1672 break;
1673 }
1674 }
Veronika Kocher 9.4 1675
Veronika Kocher 9.6 1676 if(!group){
1677 group={
1678 top:top,
1679 items:[]
1680 };
1681 groups.push(group);
1682 }
Veronika Kocher 9.4 1683
Veronika Kocher 9.6 1684 group.items.push(child);
1685 });
Veronika Kocher 9.4 1686
Veronika Kocher 9.6 1687 groups.forEach(function(group){
1688 if(group.items.length<2){
1689 return;
1690 }
Veronika Kocher 9.3 1691
Veronika Kocher 9.6 1692 var maxHeight=0;
Veronika Kocher 9.5 1693
Veronika Kocher 9.6 1694 group.items.forEach(function(item){
1695 maxHeight=
1696 Math.max(
1697 maxHeight,
1698 item
1699 .getBoundingClientRect()
1700 .height
1701 );
1702 });
Veronika Kocher 9.5 1703
Veronika Kocher 9.6 1704 maxHeight=
1705 Math.ceil(maxHeight);
Veronika Kocher 9.3 1706
Veronika Kocher 9.6 1707 group.items.forEach(function(item){
1708 saveStyle(
1709 item,
1710 originalHeight,
1711 "min-height"
1712 );
Veronika Kocher 9.3 1713
Veronika Kocher 9.6 1714 item.style.setProperty(
1715 "min-height",
1716 maxHeight+"px"
1717 );
Veronika Kocher 9.4 1718
Veronika Kocher 9.6 1719 item.setAttribute(
1720 "data-sn-master-equal-height",
1721 "1"
1722 );
Veronika Kocher 9.3 1723
Veronika Kocher 9.6 1724 managedHeight.add(item);
1725 });
Veronika Kocher 9.3 1726 });
Veronika Kocher 9.6 1727 });
1728 });
1729 }
Veronika Kocher 9.3 1730
Veronika Kocher 9.6 1731 /* =======================================================
1732 RUN / RESPONSIVE SCHEDULING
1733 ======================================================= */
Veronika Kocher 9.3 1734
Veronika Kocher 9.6 1735 function run(){
1736 if(running)return;
Veronika Kocher 9.3 1737
Veronika Kocher 9.6 1738 running=true;
Veronika Kocher 9.5 1739
Veronika Kocher 9.6 1740 try{
1741 resetRuntime();
1742 applyPlaceholderBadge();
1743 propagateDetailAccents();
Veronika Kocher 9.5 1744
Veronika Kocher 9.6 1745 var headers=
1746 applyOverviewPalette();
Veronika Kocher 9.5 1747
Veronika Kocher 9.7 1748 makeThreeLineAreaLabels();
1749 makeFilledRedOrangeCTAsBorderless();
1750
Veronika Kocher 9.6 1751 if(
1752 window.innerWidth>
1753 MOBILE_MAX
1754 ){
1755 alignOverviewCards(
1756 headers
1757 );
Veronika Kocher 9.3 1758
Veronika Kocher 9.6 1759 equaliseDetailGrids();
1760 }
Veronika Kocher 9.5 1761 }finally{
Veronika Kocher 9.6 1762 running=false;
Veronika Kocher 9.5 1763 }
Veronika Kocher 9.3 1764 }
1765
Veronika Kocher 9.6 1766 function onResize(){
Veronika Kocher 9.5 1767 if(resizeTimer){
1768 clearTimeout(
1769 resizeTimer
1770 );
1771 }
Veronika Kocher 9.4 1772
Veronika Kocher 9.5 1773 resizeTimer=
1774 setTimeout(
1775 function(){
1776 resizeTimer=0;
Veronika Kocher 9.6 1777 run();
Veronika Kocher 9.5 1778 },
1779 RESIZE_DEBOUNCE
1780 );
Veronika Kocher 9.3 1781 }
1782
Veronika Kocher 9.6 1783 async function waitForReady(){
1784 if(
1785 document.readyState!=="complete"
1786 ){
1787 await new Promise(function(resolve){
1788 window.addEventListener(
1789 "load",
1790 resolve,
1791 {once:true}
1792 );
1793 });
1794 }
1795
1796 if(
1797 document.fonts&&
1798 document.fonts.ready
1799 ){
1800 try{
1801 await document.fonts.ready;
1802 }catch(error){}
1803 }
1804
Veronika Kocher 9.5 1805 var images=
1806 Array.from(
1807 root.querySelectorAll("img")
1808 );
Veronika Kocher 9.3 1809
Veronika Kocher 9.6 1810 await Promise.all(
Veronika Kocher 9.5 1811 images.map(function(img){
1812 if(img.complete){
1813 return Promise.resolve();
1814 }
Veronika Kocher 9.3 1815
Veronika Kocher 9.5 1816 return new Promise(function(resolve){
1817 var done=function(){
1818 resolve();
1819 };
1820
1821 img.addEventListener(
1822 "load",
1823 done,
1824 {once:true}
1825 );
1826
1827 img.addEventListener(
1828 "error",
1829 done,
1830 {once:true}
1831 );
1832 });
1833 })
1834 );
1835
Veronika Kocher 9.6 1836 run();
Veronika Kocher 9.3 1837 }
1838
Veronika Kocher 9.6 1839 window.addEventListener(
Veronika Kocher 9.5 1840 "resize",
Veronika Kocher 9.6 1841 onResize,
Veronika Kocher 9.5 1842 {passive:true}
1843 );
1844
Veronika Kocher 9.6 1845 waitForReady();
Veronika Kocher 9.3 1846 })();
1847 </script>
Veronika Kocher 9.5 1848
Veronika Kocher 9.6 1849 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END -->
1850 {{/html}}
1851