Version 9.6 by Veronika Kocher on Thursday, 03 Sep 2026 13:04

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
55
Veronika Kocher 6.1 56 <div class="pp">
Veronika Kocher 2.1 57
Veronika Kocher 6.1 58 <section class="card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;">
59 <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>
60 <div style="padding:18px 21px 20px">
61 <div class="eye" style="color:#8a4d36;margin-bottom:5px">ENABLE · PROJECT PLANNING &amp; ORGANISATION</div>
62 <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>
63 <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>
64 </div></section>
Veronika Kocher 2.1 65
Veronika Kocher 6.1 66 <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 67
Veronika Kocher 6.1 68 <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 69
Veronika Kocher 6.1 70 <section class="sec">
71 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 1 · PROJECT GOVERNANCE</div>
72 <h3>Define the internal project structure before the detailed work plan</h3>
73 <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>
74 <div class="grid">
75 <div class="role"><h4>Project / artistic-research lead</h4><p>Owns the concept, scope, key decisions, quality and external commitments.</p></div>
76 <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>
77 <div class="role"><h4>Project administration</h4><p>Coordinates proposal documents, deadlines, funder communication, contracts, evidence and internal routing.</p></div>
78 <div class="role"><h4>Budget responsibility</h4><p>Maintains the working budget, funding conditions, approvals, cost tracking and change control.</p></div>
79 <div class="role"><h4>People / team responsibility</h4><p>Clarifies staffing, recruitment, workload, contracts, onboarding, external contributors and collaboration.</p></div>
80 <div class="role"><h4>Data / documentation responsibility</h4><p>Coordinates files, storage, backup, access, metadata, consent, documentation and handover.</p></div>
81 <div class="role"><h4>Infrastructure / production responsibility</h4><p>Coordinates rooms, workshops, equipment, IT, procurement, logistics, safety and technical dependencies.</p></div>
82 <div class="role"><h4>Communication / dissemination responsibility</h4><p>Plans public communication, publication, events, documentation, credits, visibility and audiences.</p></div>
83 <div class="role"><h4>Partner contact</h4><p>Coordinates external institutions, deliverables, budget interfaces and agreements.</p></div>
84 </div>
85 </section>
Veronika Kocher 2.1 86
Veronika Kocher 6.1 87 <section class="sec">
88 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 2 · INTERNAL ROUTE</div>
89 <h3>Use this order to navigate the Angewandte</h3>
90 <div class="grid">
91 <div class="check"><strong>1 · Anchor the project</strong><br>Clarify the institute, department, special university facility or organisational unit that hosts it.</div>
92 <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>
93 <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>
94 <div class="check"><strong>4 · Confirm institutional approvals</strong><br>Clarify internal deadlines, budget/HR approval, signing authority, contracts and external submission route.</div>
95 <div class="check"><strong>5 · Freeze the submission baseline</strong><br>Store the final call, approved budget, work plan, roles and submitted documents.</div>
96 <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>
97 </div>
98 </section>
Veronika Kocher 2.1 99
Veronika Kocher 9.1 100
Veronika Kocher 6.1 101 <section class="sec">
Veronika Kocher 9.1 102 <div class="eye" style="color:#8a4d36;margin-bottom:4px">EXAMPLES · HOW RESEARCH IS SITUATED AT THE ANGEWANDTE</div>
103 <h3>Use existing projects to understand possible research profiles and institutional homes</h3>
104 <p>
105 The Angewandte presents research projects through several research-focus perspectives.
106 These pages are useful when you are trying to understand how a project like yours might be framed,
107 where comparable projects are located in the University, which funding programmes have been used,
108 and which institutes or research environments have hosted related work.
109 </p>
110
111 <div class="research-example-grid">
112
113 <div class="research-example" style="border-top:4px solid #e94b13;">
114 <div class="eye" style="font-size:11px;color:#8a4d36;margin-bottom:5px;">ARTISTIC RESEARCH</div>
115 <h4>Fokus Künstlerische Forschung</h4>
116 <p>
117 Examples of artistic and arts-based research projects at the Angewandte, including many projects
118 funded through FWF PEEK and related programmes. Use this page to see how artistic practice,
119 research questions, project leadership and institutional affiliation come together in funded projects.
120 </p>
121 <a href="https://dieangewandte.at/kunst_und_forschung/projekte_fokus_forschung/kuenstlerische_forschung"
122 target="_blank" rel="noopener">
123 View artistic research projects ↗
124 </a>
125 </div>
126
127 <div class="research-example" style="border-top:4px solid #21b6d7;">
128 <div class="eye" style="font-size:11px;color:#3f6871;margin-bottom:5px;">SCIENTIFIC RESEARCH</div>
129 <h4>Fokus Wissenschaftliche Forschung</h4>
130 <p>
131 Examples of scientific research across the University's institutes and fields, including FWF-funded
132 basic research, ESPRIT projects and other externally funded research. Use this page to compare project types,
133 hosts, funding programmes and disciplinary or interdisciplinary research settings.
134 </p>
135 <a href="https://dieangewandte.at/kunst_und_forschung/projekte_fokus_forschung/wissenschaftliche_forschung"
136 target="_blank" rel="noopener">
137 View scientific research projects ↗
138 </a>
139 </div>
140
141 <div class="research-example" style="border-top:4px solid #38b76a;">
142 <div class="eye" style="font-size:11px;color:#4a6c53;margin-bottom:5px;">RELATIONAL / CROSS-CUTTING RESEARCH</div>
143 <h4>Fokus Relationale Forschung</h4>
144 <p>
145 Examples of projects organised through specific calls, thematic relationships and cross-cutting research
146 frameworks, including INTRA, digital and social transformation and research-infrastructure initiatives.
147 Use this page when your project connects disciplines, infrastructures, institutions or thematic programmes.
148 </p>
149 <a href="https://dieangewandte.at/kunst_und_forschung/projekte_fokus_forschung/fokus_relationale_forschung"
150 target="_blank" rel="noopener">
151 View relational research projects ↗
152 </a>
153 </div>
154
155 </div>
156
157 <div class="info" style="margin-top:14px;">
158 <strong>How to use these examples:</strong>
159 do not copy a project's structure simply because the topic looks similar.
160 Compare the <strong>project type, host unit, funding programme, project lead, partners, duration and outputs</strong>.
161 These are the elements that help you judge whether an existing project is a useful planning reference for your own proposal.
162 </div>
163 </section>
164
165 <section class="sec">
Veronika Kocher 6.1 166 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 3 · WHO SHOULD I INVOLVE?</div>
167 <h3>Project-relevant structures of the Angewandte</h3>
168 <p>Not every project needs every unit. Use the trigger descriptions below.</p>
169 <details class="detail" open>
170 <summary>A · Your institute, department, workshop or special university facility — the project home</summary>
171 <div class="body">
172 <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>
173 <p><strong>Current institutes:</strong></p>
Veronika Kocher 8.1 174 <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 175 <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 176 <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 177 <p style="margin-top:12px;"><a href="https://www.dieangewandte.at/universitaet/organisation" target="_blank" rel="noopener">Current university organisation</a></p>
178 </div>
179 </details><details class="detail" open>
180 <summary>B · Support Kunst und Forschung — project and funding coordination</summary>
181 <div class="body">
182 <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>
183 <ul>
184 <li>concept development and feedback</li>
185 <li>funding landscape and call fit</li>
186 <li>administrative and financial project co-design</li>
187 <li>coordination of funded projects and partners</li>
188 <li>support involving FWF, FFG, EU programmes, City of Vienna and other funders</li>
189 </ul>
190 <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>
191 </div>
192 </details><details class="detail">
193 <summary>C · Rektorat — strategy, institutional commitment and university-level responsibility</summary>
194 <div class="body">
195 <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>
196 <ul>
197 <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>
198 <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>
199 <li><strong>Vice-Rector for Finance & Infrastructure:</strong> financial management, third-party funds management, resources, procurement/infrastructure, estates, Facility Management and Event Management.</li>
200 <li><strong>Vice-Rector for Art, Teaching & Learning:</strong> study/examination matters, teaching, teaching quality, curricular/learning issues and teaching resources.</li>
201 <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>
202 </ul>
203 <p><a href="https://www.dieangewandte.at/universitaet/organisation/rektorat" target="_blank" rel="noopener">Current Rektorat and portfolios</a></p>
204 </div>
205 </details><details class="detail">
206 <summary>D · Finances — budget, accounting, controlling and resource planning</summary>
207 <div class="body">
208 <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>
209 <ul>
210 <li><strong>Controlling:</strong> budget planning, monitoring, steering data, financial plans and reporting interfaces.</li>
211 <li><strong>Financial Accounting:</strong> university payments, creditors/debtors, service contracts/guest lectures, bookkeeping, assets, VAT/tax information and financial statements.</li>
212 <li><strong>Resource Planning:</strong> clarify current responsibilities for institutional resource planning and the project's budget route.</li>
213 </ul>
214 <p><a href="https://dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/finanzen" target="_blank" rel="noopener">Finances</a> ·
215 <a href="https://dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/finanzen/controlling" target="_blank" rel="noopener">Controlling</a> ·
216 <a href="https://dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/finanzen/finanzbuchhaltung" target="_blank" rel="noopener">Financial Accounting</a></p>
217 </div>
218 </details><details class="detail">
219 <summary>E · Personnel — staffing, contracts, workload, onboarding and team development</summary>
220 <div class="body">
221 <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>
222 <ul>
223 <li><strong>Personnel Management:</strong> employment and personnel administration; clarify the current route for project staff and contract types.</li>
224 <li><strong>Personnel Development:</strong> onboarding, team coaching, organisational development, conflict support/mediation, leadership coaching and staff development.</li>
225 <li>Clarify personnel lead times before promising start dates in a proposal.</li>
226 <li>Do not assume an external budget line automatically creates an employment route.</li>
227 </ul>
228 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/personal_finanzen_recht" target="_blank" rel="noopener">Personnel</a> ·
229 <a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/personalentwicklung" target="_blank" rel="noopener">Personnel Development</a></p>
230 </div>
231 </details><details class="detail">
232 <summary>F · Legal & Data Protection — contracts, rights, IP, personal data and legal risk</summary>
233 <div class="body">
234 <p><strong>Use when:</strong> agreements, external partners, licences, copyright/IP, personal data, confidentiality, complex terms or institutional legal commitments are involved.</p>
235 <ul>
236 <li><strong>Legal Department:</strong> supports university members with legal questions.</li>
237 <li><strong>Data Protection Officer:</strong> involve where personal-data processing, data-sharing, processors/platforms or other privacy questions require specialist review.</li>
238 <li>Plan legal review before the proposal deadline if funder/partner contracts are part of submission.</li>
239 </ul>
240 <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>
241 </div>
242 </details><details class="detail">
243 <summary>G · IT & Digitalisation — systems, digital services, infrastructure and IT projects</summary>
244 <div class="body">
245 <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>
246 <ul>
247 <li><strong>Base</strong></li>
248 <li><strong>ITD Project Coordination</strong></li>
249 <li><strong>Central IT Services (ZID):</strong> university-wide information and communication infrastructure, service/support, networks, servers and art-university-specific IT systems.</li>
250 </ul>
251 <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>
252 </div>
253 </details><details class="detail">
254 <summary>H · Facility Management — rooms, procurement, material, building services, logistics and safety</summary>
255 <div class="body">
256 <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>
257 <ul>
258 <li><strong>Procurement & Material Management:</strong> procurement advice, quotations, purchasing, orders/invoices, assets/inventory, materials.</li>
259 <li><strong>Building Technology & Safety</strong></li>
260 <li><strong>Estates & Room Coordination:</strong> room and estate coordination, centrally bookable rooms.</li>
261 <li><strong>Post & Logistics</strong></li>
262 <li><strong>Service & Operations</strong></li>
263 </ul>
264 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/facility_management" target="_blank" rel="noopener">Facility Management</a> ·
265 <a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/facility_management/logistik__beschaffung" target="_blank" rel="noopener">Procurement & Material Management</a> ·
266 <a href="https://www.dieangewandte.at/liegenschaften_und_raumkoordination" target="_blank" rel="noopener">Estates & Room Coordination</a></p>
267 </div>
268 </details><details class="detail">
269 <summary>I · Event Management — public events, event rooms and production coordination</summary>
270 <div class="body">
271 <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>
272 <ul>
273 <li>supports employees with planning and implementation of university events</li>
274 <li>supports idea and room finding, preparation, event delivery and follow-up</li>
275 <li>coordinate early with Facility Management for room/building/technical dependencies</li>
276 <li>coordinate public communication with Press & Communication</li>
277 </ul>
278 <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>
279 </div>
280 </details><details class="detail">
281 <summary>J · Press & Communication — public visibility, media, publications, web and cooperation</summary>
282 <div class="body">
283 <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>
284 <ul>
285 <li>Press</li><li>Publications / Edition Angewandte</li><li>Cooperations</li><li>Marketing</li>
286 <li>Website / social media / newsletter</li><li>institutional visual identity / CI considerations</li>
287 </ul>
288 <p><a href="https://www.dieangewandte.at/presse_kommunikation" target="_blank" rel="noopener">Press & Communication</a></p>
289 </div>
290 </details><details class="detail">
291 <summary>K · International Office — mobility and international project context</summary>
292 <div class="body">
293 <p><strong>Use when:</strong> staff/student mobility, exchange routes, international visitors or mobility funding are part of the project.</p>
294 <p>For broader university partnerships and institutional international cooperation, the responsible Vice-Rectorate / Rectorate route may also become relevant.</p>
295 <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>
296 </div>
297 </details><details class="detail">
298 <summary>L · University Library & research/discovery structures</summary>
299 <div class="body">
300 <p><strong>Use when:</strong> the project needs literature, licensed databases, research discovery, publication/repository routes or library expertise.</p>
301 <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>
302 <p><a href="https://www.dieangewandte.at/universitaetsbibliothek" target="_blank" rel="noopener">University Library</a></p>
303 </div>
304 </details><details class="detail">
305 <summary>M · Studies, Teaching, Curricula & Doctoral Centre</summary>
306 <div class="body">
307 <p><strong>Use when:</strong> the project directly affects teaching, courses, curricula, assessment, students, graduation work or doctoral study.</p>
308 <ul>
309 <li><strong>Study Affairs:</strong> student administration and study-law processes from admission to graduation.</li>
310 <li><strong>Vice-Rector for Art, Teaching & Learning:</strong> teaching, studies/exams, teaching quality and teaching resources.</li>
311 <li><strong>Doctoral Centre:</strong> central contact for doctoral candidates; supports networking and project initiation across doctoral programmes.</li>
312 <li><strong>Quality Culture Teaching & Curriculum Workshop:</strong> involve for relevant teaching/curricular/quality-development questions according to current remit.</li>
313 </ul>
314 <p><a href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/studienangelegenheiten" target="_blank" rel="noopener">Study Affairs</a> ·
315 <a href="https://prod.dieangewandte.at/doktoratszentrum" target="_blank" rel="noopener">Doctoral Centre</a></p>
316 </div>
317 </details><details class="detail">
318 <summary>N · Diversity, Equity, Inclusion & Accessibility</summary>
319 <div class="body">
320 <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>
321 <ul>
322 <li>DEI connects diversity, equity/inclusion and accessibility expertise.</li>
323 <li>Team Barrierefrei provides practical accessibility information and contacts for staff/students with disabilities.</li>
324 <li>For events, plan accessibility early enough to budget interpretation, technical support, accessible rooms or other measures.</li>
325 </ul>
326 <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> ·
327 <a href="https://www.dieangewandte.at/barrierefrei" target="_blank" rel="noopener">Accessibility at the Angewandte</a></p>
328 </div>
329 </details><details class="detail">
330 <summary>O · University Development & Quality Culture</summary>
331 <div class="body">
332 <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>
333 <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>
334 <p><a href="mailto:uq@uni-ak.ac.at">uq@uni-ak.ac.at</a></p>
335 </div>
336 </details><details class="detail">
337 <summary>P · Equality / staff / student representation — independent advice and representation</summary>
338 <div class="body">
339 <p>These structures are not project-management offices, but they can be essential when a project raises employment, discrimination, participation or conflict questions.</p>
340 <ul>
341 <li><strong>Arbeitskreis für Gleichbehandlungsfragen (AKG):</strong> confidential contact on equality, discrimination and harassment.</li>
342 <li><strong>Works Councils:</strong> representation of artistic/scientific and general university staff in employment matters.</li>
343 <li><strong>HUFAK / Students' Union:</strong> student representation; relevant where student participation and student interests are central.</li>
344 <li><strong>Arbitration Commission:</strong> part of the University's governance/interest-representation structure; not a routine project-planning service.</li>
345 </ul>
346 <p><a href="https://dieangewandte.at/gleichbehandlung" target="_blank" rel="noopener">AKG</a> ·
347 <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> ·
348 <a href="https://www.dieangewandte.at/hufak" target="_blank" rel="noopener">HUFAK</a></p>
349 </div>
350 </details>
351 </section>
Veronika Kocher 2.1 352
Veronika Kocher 6.1 353 <section class="sec">
354 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 4 · TRIGGER MATRIX</div>
355 <h3>If the project does this, involve these structures early</h3>
356 <table class="tbl">
357 <thead><tr><th>Project trigger</th><th>Start with</th><th>Then check</th></tr></thead>
358 <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>
359 </table>
360 </section>
Veronika Kocher 2.1 361
Veronika Kocher 6.1 362 <section class="sec">
363 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 5 · THE ACTUAL PROJECT PLAN</div>
364 <h3>Your planning file should contain these components</h3>
365 <div class="grid">
366 <div class="check"><strong>Project Charter</strong><br>Purpose, scope, non-scope, project type, host, lead, partners, start/end, outputs.</div>
367 <div class="check"><strong>Role &amp; responsibility matrix</strong><br>Who decides, does, approves, is consulted and must be informed.</div>
368 <div class="check"><strong>Work plan</strong><br>Work packages, milestones, dependencies, decision points, public outputs and closure.</div>
369 <div class="check"><strong>Budget baseline</strong><br>Costs, funding source, co-funding, institutional resources, assumptions and contingencies.</div>
370 <div class="check"><strong>People plan</strong><br>Existing staff, new hires, external contributors, workload, contracts, onboarding and handover.</div>
371 <div class="check"><strong>Procurement / infrastructure plan</strong><br>Purchases, equipment, rooms, workshops, IT, logistics, safety and lead times.</div>
372 <div class="check"><strong>Partner plan</strong><br>Roles, budget interfaces, deliverables, agreements, IP, data, communication and escalation.</div>
373 <div class="check"><strong>Rights / ethics / data plan</strong><br>Third-party material, consent, personal data, licences, confidentiality and ethics review.</div>
374 <div class="check"><strong>Communication / event plan</strong><br>Audiences, media, publication, event needs, CI, accessibility and documentation.</div>
375 <div class="check"><strong>Risk register</strong><br>Funding, people, rights, data, schedule, supplier, technical, venue, partner and reputational risks.</div>
376 <div class="check"><strong>Decision log</strong><br>Important decisions, date, responsible person, reason and impact.</div>
377 <div class="check"><strong>Closure / handover plan</strong><br>Final files, reporting, repository/archive, equipment, accounts, access, retention and responsibilities.</div>
378 </div>
379 </section>
Veronika Kocher 2.1 380
Veronika Kocher 6.1 381 <section class="sec">
382 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STEP 6 · PLAN BACKWARDS</div>
383 <h3>The external deadline is not your first deadline</h3>
384 <table class="tbl">
385 <thead><tr><th>Planning point</th><th>Question</th></tr></thead>
386 <tbody>
387 <tr><td><strong>External submission / public opening</strong></td><td>What must be complete and approved here?</td></tr>
388 <tr><td><strong>Institutional approval / signature</strong></td><td>Who needs final documents and review time?</td></tr>
389 <tr><td><strong>Legal / partner agreements</strong></td><td>What must be reviewed before submission?</td></tr>
390 <tr><td><strong>Budget / personnel / procurement review</strong></td><td>Are rates, hires, purchases and resources realistic and permitted?</td></tr>
391 <tr><td><strong>Project concept freeze</strong></td><td>When must scope, roles, work packages and outputs stop changing?</td></tr>
392 <tr><td><strong>Partner input</strong></td><td>When must partners deliver text, budgets, letters and approvals?</td></tr>
393 <tr><td><strong>Internal start</strong></td><td>When must planning begin to make all of this possible?</td></tr>
394 </tbody></table>
395 </section>
Veronika Kocher 2.1 396
Veronika Kocher 6.1 397 <section class="sec">
398 <div class="eye" style="color:#8a4d36;margin-bottom:4px">STOP &amp; CHECK</div>
399 <h3>Project-planning red flags</h3>
400 <div class="grid">
401 <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>
402 <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>
403 <div class="warn"><strong>People appear only as budget lines.</strong><br>Employment/contract routes and lead times have not been checked.</div>
404 <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>
405 <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>
406 <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>
407 </div>
408 </section>
Veronika Kocher 2.1 409
Veronika Kocher 6.1 410 <section class="sec">
411 <div class="eye" style="color:#8a4d36;margin-bottom:4px">CONTINUE PLANNING</div>
412 <h3>Related Enable topics</h3>
413 <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>
414 </section>
Veronika Kocher 2.1 415
Veronika Kocher 6.1 416 <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 417
Veronika Kocher 4.1 418 <!-- ARSN_SEARCH_TERMS_START -->
Veronika Kocher 6.1 419 <details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6">
420 <summary style="cursor:pointer;color:#6a655e;font-size:13px">Search terms &amp; related topics</summary>
421 <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 422 </details>
423 <!-- ARSN_SEARCH_TERMS_END -->
Veronika Kocher 6.1 424
425 </div>
Veronika Kocher 4.1 426 {{/html}}
Veronika Kocher 8.1 427
Veronika Kocher 9.6 428 {{html clean="false"}}
429 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START -->
Veronika Kocher 9.5 430
Veronika Kocher 9.6 431 <style data-sn-service-navigator-master="1">
432 /* =========================================================
433 MASTER TYPOGRAPHY
434 ========================================================= */
Veronika Kocher 9.5 435 #xwikicontent h1,
436 #xwikicontent h2,
437 #xwikicontent h3,
438 #xwikicontent h4,
439 #xwikicontent h5,
440 #xwikicontent h6,
441 #xwikicontent .box-title,
442 #xwikicontent [role="heading"],
443 #xwikicontent h1 a,
444 #xwikicontent h2 a,
445 #xwikicontent h3 a,
446 #xwikicontent h4 a,
447 #xwikicontent h5 a,
448 #xwikicontent h6 a,
449 #xwikicontent .box-title a,
450 #xwikicontent [role="heading"] a{
451 text-align:left!important;
452 text-justify:auto!important;
453 word-spacing:normal!important;
454 }
455
Veronika Kocher 9.6 456 /* =========================================================
457 COMING SOON / IN VORBEREITUNG
458 ========================================================= */
459 .sn-coming-soon-badge{
460 display:inline-block;
461 vertical-align:middle;
462 margin-left:10px;
463 padding:4px 8px;
464 border-radius:14px;
465 border:1px solid #efd9cc;
466 background:#fff4ee;
467 color:#8a4d36;
468 font-size:11px;
469 font-weight:700;
470 letter-spacing:.055em;
471 line-height:1.2;
472 white-space:nowrap;
473 }
474
475 /* =========================================================
476 NATIVE / DETAIL CALLOUT GEOMETRY
477 Preserve existing backgrounds.
478 ========================================================= */
479 #xwikicontent .arsn-info,
480 #xwikicontent .dmp-info,
481 #xwikicontent .ido-info,
482 #xwikicontent .pp-info,
483 #xwikicontent .infomessage{
Veronika Kocher 9.5 484 box-sizing:border-box!important;
Veronika Kocher 9.6 485 border-left:4px solid #21b6d7!important;
486 border-radius:8px;
Veronika Kocher 9.5 487 text-align:left!important;
488 word-spacing:normal!important;
489 }
490
Veronika Kocher 9.6 491 #xwikicontent .arsn-warn,
492 #xwikicontent .dmp-warn,
493 #xwikicontent .ido-warn,
494 #xwikicontent .pp-warn,
495 #xwikicontent .warn,
496 #xwikicontent .warning,
497 #xwikicontent .warningmessage,
Veronika Kocher 9.5 498 #xwikicontent .errormessage{
Veronika Kocher 9.6 499 box-sizing:border-box!important;
500 border-left:4px solid #e94b13!important;
501 border-radius:8px;
502 text-align:left!important;
503 word-spacing:normal!important;
Veronika Kocher 9.5 504 }
505
Veronika Kocher 9.6 506 [data-sn-master-equal-height],
507 [data-sn-master-first-row]{
Veronika Kocher 9.4 508 box-sizing:border-box;
Veronika Kocher 9.3 509 }
510 </style>
Veronika Kocher 9.5 511
Veronika Kocher 9.6 512 <script data-sn-service-navigator-master="1">
Veronika Kocher 9.3 513 (function(){
514 "use strict";
515
Veronika Kocher 9.6 516 var PAGE_KIND="detail";
517 var PLACEHOLDER=false;
518 var PLACEHOLDER_LABEL="COMING SOON";
519
Veronika Kocher 9.3 520 var MOBILE_MAX=767;
Veronika Kocher 9.4 521 var ROW_TOLERANCE=6;
Veronika Kocher 9.5 522 var RESIZE_DEBOUNCE=220;
Veronika Kocher 9.3 523
524 var root=
525 document.getElementById("xwikicontent")||
526 document.querySelector(".xwiki-rendering-content")||
527 document.querySelector("main")||
528 document.body;
529
530 if(!root)return;
531
Veronika Kocher 9.6 532 var managedHeight=new Set();
533 var managedMargin=new Set();
534 var originalHeight=new WeakMap();
535 var originalMargin=new WeakMap();
Veronika Kocher 9.5 536
537 var resizeTimer=0;
Veronika Kocher 9.6 538 var running=false;
Veronika Kocher 9.5 539
Veronika Kocher 9.6 540 var THEMES=[
541 {
542 name:"BLUE",
543 accent:"#21b6d7",
544 bg:"#eaf7fb",
545 text:"#315d68",
546 labels:[
547 "HIER STARTEN",
548 "ENTSCHEIDEN",
549 "ÜBERPRÜFEN & ANPASSEN",
550 "START HERE",
551 "DECIDE",
552 "REVIEW & ADAPT"
553 ]
554 },
555 {
556 name:"RED",
557 accent:"#e94b13",
558 bg:"#fff1ec",
559 text:"#8a4d36",
560 labels:[
561 "PLANEN & ORGANISIEREN",
562 "ORGANISIEREN & DOKUMENTIEREN",
563 "PUBLIZIEREN & PRÄSENTIEREN",
564 "PLAN & ORGANISE",
565 "PLAN & ORGANIZE",
566 "ORGANISE & DOCUMENT",
567 "ORGANIZE & DOCUMENT",
568 "PUBLISH & PRESENT"
569 ]
570 },
571 {
572 name:"YELLOW",
573 accent:"#f0aa00",
574 bg:"#fff8e7",
575 text:"#785b17",
576 labels:[
577 "SCHÜTZEN & KLÄREN",
578 "STANDARDISIEREN & IDENTIFIZIEREN",
579 "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN",
580 "PROTECT & CLARIFY",
581 "STANDARDISE & IDENTIFY",
582 "STANDARDIZE & IDENTIFY",
583 "OPEN, REUSE & MAKE FINDABLE"
584 ]
585 },
586 {
587 name:"GREEN",
588 accent:"#38b76a",
589 bg:"#edf9f1",
590 text:"#3f7451",
591 labels:[
592 "INFRASTRUKTUR EINRICHTEN",
593 "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN",
594 "SPEICHERN & ZUGRIFF STEUERN",
595 "REPOSITORIUM, ERHALTEN & ÜBERGEBEN",
596 "SET UP INFRASTRUCTURE",
597 "SET UP INFRASTRUCTURE & COLLABORATION",
598 "STORE & CONTROL ACCESS",
599 "REPOSITORY, PRESERVE & HAND OVER"
600 ]
Veronika Kocher 9.4 601 }
Veronika Kocher 9.6 602 ];
Veronika Kocher 9.4 603
Veronika Kocher 9.6 604 function num(value){
605 var n=parseFloat(value);
606 return Number.isFinite(n)?n:0;
Veronika Kocher 9.3 607 }
608
Veronika Kocher 9.6 609 function norm(value){
610 return String(value||"")
Veronika Kocher 9.5 611 .replace(/\s+/g," ")
612 .trim()
613 .toUpperCase();
614 }
615
Veronika Kocher 9.6 616 function visible(el){
617 if(!el||el.nodeType!==1)return false;
Veronika Kocher 9.3 618
Veronika Kocher 9.6 619 var style=getComputedStyle(el);
620 var rect=el.getBoundingClientRect();
Veronika Kocher 9.5 621
622 return (
Veronika Kocher 9.6 623 style.display!=="none"&&
624 style.visibility!=="hidden"&&
625 rect.width>20&&
626 rect.height>4
Veronika Kocher 9.5 627 );
Veronika Kocher 9.3 628 }
629
Veronika Kocher 9.6 630 function saveStyle(el,map,property){
Veronika Kocher 9.4 631 if(map.has(el))return;
632
633 map.set(el,{
Veronika Kocher 9.6 634 value:el.style.getPropertyValue(property),
635 priority:el.style.getPropertyPriority(property)
Veronika Kocher 9.4 636 });
637 }
638
Veronika Kocher 9.6 639 function restoreStyle(el,map,property){
Veronika Kocher 9.4 640 var original=map.get(el);
641
642 if(original&&original.value){
643 el.style.setProperty(
644 property,
645 original.value,
646 original.priority||""
647 );
648 }else{
Veronika Kocher 9.6 649 el.style.removeProperty(property);
Veronika Kocher 9.4 650 }
651 }
652
Veronika Kocher 9.5 653 function resetRuntime(){
Veronika Kocher 9.6 654 managedHeight.forEach(function(el){
655 restoreStyle(
Veronika Kocher 9.4 656 el,
Veronika Kocher 9.6 657 originalHeight,
Veronika Kocher 9.4 658 "min-height"
659 );
660 el.removeAttribute(
Veronika Kocher 9.6 661 "data-sn-master-equal-height"
Veronika Kocher 9.4 662 );
663 });
664
Veronika Kocher 9.6 665 managedMargin.forEach(function(el){
666 restoreStyle(
Veronika Kocher 9.4 667 el,
Veronika Kocher 9.6 668 originalMargin,
Veronika Kocher 9.4 669 "margin-top"
670 );
671 el.removeAttribute(
Veronika Kocher 9.6 672 "data-sn-master-first-row"
Veronika Kocher 9.4 673 );
674 });
675
Veronika Kocher 9.6 676 managedHeight.clear();
677 managedMargin.clear();
678 }
Veronika Kocher 9.5 679
Veronika Kocher 9.6 680 function themeFor(text){
681 var value=norm(text);
Veronika Kocher 9.5 682
Veronika Kocher 9.6 683 for(var i=0;i<THEMES.length;i++){
684 for(var j=0;j<THEMES[i].labels.length;j++){
685 var label=THEMES[i].labels[j];
686
687 if(
688 value===label||
689 value.indexOf(label+" ")===0||
690 value.indexOf(label+" -")===0||
691 value.indexOf(label+" ·")===0
692 ){
693 return THEMES[i];
694 }
695 }
696 }
697
698 return null;
Veronika Kocher 9.4 699 }
700
Veronika Kocher 9.6 701 /* =======================================================
702 PLACEHOLDER BADGE
703 ======================================================= */
Veronika Kocher 9.5 704
Veronika Kocher 9.6 705 function applyPlaceholderBadge(){
706 if(!PLACEHOLDER)return;
Veronika Kocher 9.5 707
708 if(
Veronika Kocher 9.6 709 document.querySelector(
710 ".sn-coming-soon-badge"
711 )
Veronika Kocher 9.5 712 ){
Veronika Kocher 9.6 713 return;
Veronika Kocher 9.5 714 }
715
Veronika Kocher 9.6 716 var title=
717 document.querySelector(
718 "#document-title"
719 )||
720 document.querySelector(
721 "h1"
722 );
Veronika Kocher 9.5 723
Veronika Kocher 9.6 724 if(!title)return;
Veronika Kocher 9.5 725
Veronika Kocher 9.6 726 var badge=
727 document.createElement(
728 "span"
729 );
730
731 badge.className=
732 "sn-coming-soon-badge";
733
734 badge.textContent=
735 PLACEHOLDER_LABEL;
736
737 badge.setAttribute(
738 "aria-label",
739 PLACEHOLDER_LABEL
Veronika Kocher 9.5 740 );
741
Veronika Kocher 9.6 742 title.appendChild(
743 badge
744 );
745 }
Veronika Kocher 9.5 746
Veronika Kocher 9.6 747 /* =======================================================
748 DETAIL PAGE OWN-ACCENT PROPAGATION
749 ======================================================= */
Veronika Kocher 9.5 750
Veronika Kocher 9.6 751 function parseRGB(value){
752 var match=String(value||"").match(
753 /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i
Veronika Kocher 9.5 754 );
Veronika Kocher 9.6 755
756 if(!match)return null;
757
758 return [
759 Number(match[1]),
760 Number(match[2]),
761 Number(match[3])
762 ];
Veronika Kocher 9.5 763 }
764
Veronika Kocher 9.6 765 function distance(a,b){
766 return Math.sqrt(
767 Math.pow(a[0]-b[0],2)+
768 Math.pow(a[1]-b[1],2)+
769 Math.pow(a[2]-b[2],2)
770 );
771 }
Veronika Kocher 9.3 772
Veronika Kocher 9.6 773 function paletteMatch(cssColor){
774 var rgb=parseRGB(cssColor);
Veronika Kocher 9.4 775
Veronika Kocher 9.6 776 if(!rgb)return null;
Veronika Kocher 9.4 777
Veronika Kocher 9.6 778 var palette=[
779 {hex:"#21b6d7",rgb:[33,182,215]},
780 {hex:"#e94b13",rgb:[233,75,19]},
781 {hex:"#f0aa00",rgb:[240,170,0]},
782 {hex:"#38b76a",rgb:[56,183,106]}
783 ];
Veronika Kocher 9.3 784
Veronika Kocher 9.4 785 var best=null;
Veronika Kocher 9.6 786 var bestDistance=Infinity;
Veronika Kocher 9.3 787
Veronika Kocher 9.6 788 palette.forEach(function(item){
789 var d=distance(rgb,item.rgb);
Veronika Kocher 9.3 790
Veronika Kocher 9.6 791 if(d<bestDistance){
792 best=item;
793 bestDistance=d;
794 }
795 });
Veronika Kocher 9.4 796
Veronika Kocher 9.6 797 return bestDistance<=30
798 ?best
799 :null;
800 }
Veronika Kocher 9.3 801
Veronika Kocher 9.6 802 function propagateDetailAccents(){
803 if(PAGE_KIND!=="detail")return;
804
805 Array.from(
806 root.querySelectorAll(
807 ".arsn-call,.dmp-call,.ido-call,.pp-call,"+
808 ".arsn-source,.dmp-source,.ido-source,.pp-source"
809 )
810 ).forEach(function(el){
811 if(!visible(el))return;
812
813 var style=getComputedStyle(el);
814
Veronika Kocher 9.4 815 if(
Veronika Kocher 9.6 816 num(style.borderTopWidth)>=2
Veronika Kocher 9.4 817 ){
Veronika Kocher 9.6 818 var match=
819 paletteMatch(
820 style.borderTopColor
Veronika Kocher 9.4 821 );
822
Veronika Kocher 9.6 823 if(match){
824 el.style.setProperty(
825 "border-left",
826 "4px solid "+match.hex,
827 "important"
Veronika Kocher 9.4 828 );
Veronika Kocher 9.3 829 }
830 }
Veronika Kocher 9.6 831 });
Veronika Kocher 9.3 832
Veronika Kocher 9.6 833 // Warning families: explicit safety override.
834 Array.from(
835 root.querySelectorAll(
836 ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+
837 ".warn,.warning,.warningmessage,.errormessage"
838 )
839 ).forEach(function(el){
840 if(!visible(el))return;
Veronika Kocher 9.3 841
Veronika Kocher 9.6 842 el.style.setProperty(
843 "border-left",
844 "4px solid #e94b13",
845 "important"
846 );
847 });
Veronika Kocher 9.3 848
Veronika Kocher 9.6 849 // Info families: explicit orientation override.
850 Array.from(
851 root.querySelectorAll(
852 ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage"
853 )
854 ).forEach(function(el){
855 if(!visible(el))return;
Veronika Kocher 9.4 856
Veronika Kocher 9.6 857 el.style.setProperty(
858 "border-left",
859 "4px solid #21b6d7",
860 "important"
861 );
862 });
863 }
Veronika Kocher 9.4 864
Veronika Kocher 9.6 865 /* =======================================================
866 OVERVIEW SEMANTIC THEME PALETTE
867 ======================================================= */
Veronika Kocher 9.4 868
Veronika Kocher 9.6 869 function smallestThemeHeaders(){
870 return Array.from(
871 root.querySelectorAll(
872 "div,span,p,strong,h3,h4,h5,h6"
873 )
874 ).filter(function(el){
875 if(!visible(el))return false;
876 if(!themeFor(el.textContent))return false;
Veronika Kocher 9.4 877
Veronika Kocher 9.6 878 return !Array.from(
879 el.children||[]
880 ).some(function(child){
881 return !!themeFor(
882 child.textContent
883 );
Veronika Kocher 9.4 884 });
Veronika Kocher 9.6 885 });
Veronika Kocher 9.3 886 }
887
Veronika Kocher 9.6 888 function findOverviewCard(header){
889 var node=header.parentElement;
890 var candidates=[];
Veronika Kocher 9.4 891
Veronika Kocher 9.6 892 while(node&&node!==root){
893 var rect=node.getBoundingClientRect();
894 var style=getComputedStyle(node);
Veronika Kocher 9.4 895
Veronika Kocher 9.6 896 var border=
897 num(style.borderTopWidth)+
898 num(style.borderRightWidth)+
899 num(style.borderBottomWidth)+
900 num(style.borderLeftWidth);
Veronika Kocher 9.4 901
Veronika Kocher 9.6 902 if(
903 rect.width>=220&&
904 rect.width<=800&&
905 rect.height>=120&&
906 border>=1
907 ){
908 candidates.push(node);
909 }
Veronika Kocher 9.4 910
Veronika Kocher 9.6 911 node=node.parentElement;
912 }
Veronika Kocher 9.4 913
Veronika Kocher 9.6 914 if(!candidates.length)return null;
Veronika Kocher 9.4 915
Veronika Kocher 9.6 916 candidates.sort(function(a,b){
917 return (
918 b.getBoundingClientRect().height-
919 a.getBoundingClientRect().height
Veronika Kocher 9.5 920 );
Veronika Kocher 9.6 921 });
Veronika Kocher 9.4 922
Veronika Kocher 9.6 923 return candidates[0];
Veronika Kocher 9.4 924 }
925
Veronika Kocher 9.6 926 function rowCandidates(link,card){
927 var result=[];
Veronika Kocher 9.5 928 var cardRect=
929 card.getBoundingClientRect();
Veronika Kocher 9.4 930
Veronika Kocher 9.6 931 var node=link;
Veronika Kocher 9.4 932
Veronika Kocher 9.6 933 while(node&&node!==card){
934 if(visible(node)){
935 var rect=
936 node.getBoundingClientRect();
Veronika Kocher 9.4 937
Veronika Kocher 9.6 938 if(
939 rect.height<=105&&
940 rect.width>=
941 cardRect.width*.50&&
942 rect.width<=
943 cardRect.width*1.03
944 ){
945 result.push(node);
946 }
947 }
Veronika Kocher 9.4 948
Veronika Kocher 9.6 949 node=node.parentElement;
950 }
951
952 return result;
953 }
954
955 function chooseOuterRow(
956 candidates,
957 link
958 ){
959 if(!candidates.length){
960 return link;
961 }
962
963 var bordered=
964 candidates.filter(function(el){
Veronika Kocher 9.5 965 return (
Veronika Kocher 9.6 966 num(
967 getComputedStyle(el)
968 .borderLeftWidth
969 )>=1
Veronika Kocher 9.5 970 );
971 });
Veronika Kocher 9.4 972
Veronika Kocher 9.6 973 var pool=
974 bordered.length
975 ?bordered
976 :candidates;
Veronika Kocher 9.4 977
Veronika Kocher 9.6 978 pool.sort(function(a,b){
979 var ar=
980 a.getBoundingClientRect();
Veronika Kocher 9.4 981
Veronika Kocher 9.6 982 var br=
983 b.getBoundingClientRect();
Veronika Kocher 9.4 984
Veronika Kocher 9.6 985 return (
986 ar.left-br.left||
987 br.width-ar.width
988 );
989 });
Veronika Kocher 9.4 990
Veronika Kocher 9.6 991 return pool[0]||link;
992 }
Veronika Kocher 9.4 993
Veronika Kocher 9.6 994 function applyOverviewPalette(){
995 if(PAGE_KIND!=="overview"){
996 return [];
Veronika Kocher 9.5 997 }
Veronika Kocher 9.4 998
Veronika Kocher 9.6 999 var headers=
1000 smallestThemeHeaders()
1001 .map(function(el){
1002 return {
1003 el:el,
1004 theme:
1005 themeFor(
1006 el.textContent
1007 ),
1008 card:
1009 findOverviewCard(
1010 el
1011 )
1012 };
Veronika Kocher 9.5 1013 })
Veronika Kocher 9.6 1014 .filter(function(row){
1015 return !!row.card;
1016 });
Veronika Kocher 9.4 1017
Veronika Kocher 9.6 1018 var unique=[];
1019 var seenHeaders=new Set();
Veronika Kocher 9.4 1020
Veronika Kocher 9.6 1021 headers.forEach(function(row){
1022 var key=
1023 row.theme.name+
1024 "|"+
1025 Math.round(
1026 row.card
1027 .getBoundingClientRect()
1028 .left
1029 )+
1030 "|"+
1031 Math.round(
1032 row.el
1033 .getBoundingClientRect()
1034 .top
1035 );
Veronika Kocher 9.4 1036
Veronika Kocher 9.6 1037 if(!seenHeaders.has(key)){
1038 seenHeaders.add(key);
1039 unique.push(row);
1040 }
1041 });
Veronika Kocher 9.4 1042
Veronika Kocher 9.6 1043 unique.forEach(function(row){
1044 var headerRect=
1045 row.el
1046 .getBoundingClientRect();
Veronika Kocher 9.4 1047
Veronika Kocher 9.6 1048 row.el.style.setProperty(
1049 "background",
1050 row.theme.bg,
1051 "important"
Veronika Kocher 9.5 1052 );
1053
Veronika Kocher 9.6 1054 row.el.style.setProperty(
1055 "color",
1056 row.theme.text,
1057 "important"
Veronika Kocher 9.5 1058 );
1059
Veronika Kocher 9.6 1060 row.el.style.setProperty(
1061 "text-align",
1062 "left",
1063 "important"
Veronika Kocher 9.5 1064 );
Veronika Kocher 9.4 1065
Veronika Kocher 9.6 1066 row.el.style.setProperty(
1067 "word-spacing",
1068 "normal",
1069 "important"
1070 );
Veronika Kocher 9.5 1071
Veronika Kocher 9.6 1072 var later=
1073 unique
1074 .filter(function(other){
1075 return (
1076 other.card===row.card&&
1077 other.el
1078 .getBoundingClientRect()
1079 .top>
1080 headerRect.top+2
1081 );
1082 })
1083 .sort(function(a,b){
1084 return (
1085 a.el
1086 .getBoundingClientRect()
1087 .top-
1088 b.el
1089 .getBoundingClientRect()
1090 .top
1091 );
1092 });
Veronika Kocher 9.5 1093
Veronika Kocher 9.6 1094 var stopTop=
1095 later.length
1096 ?later[0].el
1097 .getBoundingClientRect()
1098 .top
1099 :Infinity;
Veronika Kocher 9.5 1100
1101 Array.from(
Veronika Kocher 9.6 1102 row.card.querySelectorAll("a")
1103 ).forEach(function(link){
1104 if(!visible(link))return;
Veronika Kocher 9.5 1105
Veronika Kocher 9.6 1106 var rect=
1107 link.getBoundingClientRect();
Veronika Kocher 9.5 1108
Veronika Kocher 9.6 1109 if(
1110 rect.top<=
1111 headerRect.bottom-2||
1112 rect.top>=
1113 stopTop-2
1114 ){
1115 return;
1116 }
Veronika Kocher 9.5 1117
Veronika Kocher 9.6 1118 var candidates=
1119 rowCandidates(
1120 link,
1121 row.card
1122 );
1123
1124 var target=
1125 chooseOuterRow(
1126 candidates,
1127 link
1128 );
1129
1130 candidates.forEach(function(el){
1131 el.style.setProperty(
1132 "border-left",
1133 "0 solid transparent",
1134 "important"
1135 );
1136 });
1137
1138 target.style.setProperty(
1139 "border-left",
1140 "3px solid "+
1141 row.theme.accent,
1142 "important"
Veronika Kocher 9.5 1143 );
Veronika Kocher 9.6 1144
1145 target.style.setProperty(
1146 "box-sizing",
1147 "border-box",
1148 "important"
Veronika Kocher 9.5 1149 );
Veronika Kocher 9.4 1150 });
Veronika Kocher 9.6 1151 });
Veronika Kocher 9.4 1152
Veronika Kocher 9.6 1153 return unique;
Veronika Kocher 9.5 1154 }
Veronika Kocher 9.4 1155
Veronika Kocher 9.6 1156 /* =======================================================
1157 OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW
1158 ======================================================= */
Veronika Kocher 9.5 1159
Veronika Kocher 9.6 1160 function alignOverviewCards(headers){
1161 if(
1162 PAGE_KIND!=="overview"||
1163 window.innerWidth<=MOBILE_MAX
1164 ){
1165 return;
1166 }
Veronika Kocher 9.5 1167
Veronika Kocher 9.6 1168 var cards=[];
1169 var seen=new Set();
Veronika Kocher 9.5 1170
Veronika Kocher 9.6 1171 headers.forEach(function(row){
1172 if(!seen.has(row.card)){
1173 seen.add(row.card);
1174 cards.push(row.card);
1175 }
1176 });
Veronika Kocher 9.5 1177
Veronika Kocher 9.6 1178 if(cards.length<2){
1179 return;
1180 }
Veronika Kocher 9.5 1181
Veronika Kocher 9.6 1182 // Group cards by actual top position.
1183 var groups=[];
Veronika Kocher 9.5 1184
Veronika Kocher 9.6 1185 cards.forEach(function(card){
1186 var top=
1187 card.getBoundingClientRect().top;
Veronika Kocher 9.5 1188
Veronika Kocher 9.6 1189 var group=null;
Veronika Kocher 9.5 1190
Veronika Kocher 9.6 1191 for(var i=0;i<groups.length;i++){
Veronika Kocher 9.5 1192 if(
Veronika Kocher 9.6 1193 Math.abs(
1194 groups[i].top-top
1195 )<=ROW_TOLERANCE
Veronika Kocher 9.5 1196 ){
Veronika Kocher 9.6 1197 group=groups[i];
1198 break;
Veronika Kocher 9.5 1199 }
Veronika Kocher 9.6 1200 }
Veronika Kocher 9.5 1201
Veronika Kocher 9.6 1202 if(!group){
1203 group={
1204 top:top,
1205 cards:[]
1206 };
1207 groups.push(group);
1208 }
Veronika Kocher 9.5 1209
Veronika Kocher 9.6 1210 group.cards.push(card);
1211 });
Veronika Kocher 9.5 1212
Veronika Kocher 9.6 1213 groups.forEach(function(group){
1214 if(group.cards.length<2){
1215 return;
1216 }
Veronika Kocher 9.5 1217
Veronika Kocher 9.6 1218 var firstHeaders=
1219 group.cards.map(function(card){
1220 var candidates=
1221 headers
1222 .filter(function(row){
1223 return row.card===card;
1224 })
1225 .sort(function(a,b){
1226 return (
1227 a.el
1228 .getBoundingClientRect()
1229 .top-
1230 b.el
1231 .getBoundingClientRect()
1232 .top
1233 );
1234 });
Veronika Kocher 9.5 1235
Veronika Kocher 9.6 1236 return candidates.length
1237 ?candidates[0]
1238 :null;
1239 });
Veronika Kocher 9.5 1240
Veronika Kocher 9.6 1241 if(
1242 !firstHeaders.some(function(row){
1243 return !row;
1244 })
1245 ){
1246 var targetTop=
1247 Math.max.apply(
1248 Math,
1249 firstHeaders.map(function(row){
1250 return (
1251 row.el
1252 .getBoundingClientRect()
1253 .top-
1254 row.card
1255 .getBoundingClientRect()
1256 .top
1257 );
1258 })
1259 );
Veronika Kocher 9.3 1260
Veronika Kocher 9.6 1261 firstHeaders.forEach(function(row){
1262 var relativeTop=
1263 row.el
1264 .getBoundingClientRect()
1265 .top-
1266 row.card
1267 .getBoundingClientRect()
1268 .top;
Veronika Kocher 9.4 1269
Veronika Kocher 9.6 1270 var delta=
1271 targetTop-relativeTop;
Veronika Kocher 9.4 1272
Veronika Kocher 9.6 1273 if(delta>1){
1274 saveStyle(
1275 row.el,
1276 originalMargin,
1277 "margin-top"
1278 );
Veronika Kocher 9.5 1279
Veronika Kocher 9.6 1280 var current=
1281 num(
1282 getComputedStyle(
1283 row.el
1284 ).marginTop
1285 );
Veronika Kocher 9.4 1286
Veronika Kocher 9.6 1287 row.el.style.setProperty(
1288 "margin-top",
1289 (
1290 current+delta
1291 )+"px"
1292 );
Veronika Kocher 9.4 1293
Veronika Kocher 9.6 1294 row.el.setAttribute(
1295 "data-sn-master-first-row",
1296 "1"
1297 );
Veronika Kocher 9.4 1298
Veronika Kocher 9.6 1299 managedMargin.add(
1300 row.el
1301 );
1302 }
1303 });
1304 }
Veronika Kocher 9.4 1305
Veronika Kocher 9.6 1306 var maxHeight=0;
Veronika Kocher 9.4 1307
Veronika Kocher 9.6 1308 group.cards.forEach(function(card){
1309 maxHeight=
1310 Math.max(
1311 maxHeight,
1312 card
1313 .getBoundingClientRect()
1314 .height
1315 );
1316 });
Veronika Kocher 9.4 1317
Veronika Kocher 9.6 1318 maxHeight=
1319 Math.ceil(maxHeight);
Veronika Kocher 9.4 1320
Veronika Kocher 9.6 1321 group.cards.forEach(function(card){
1322 saveStyle(
1323 card,
1324 originalHeight,
1325 "min-height"
1326 );
Veronika Kocher 9.4 1327
Veronika Kocher 9.6 1328 card.style.setProperty(
1329 "min-height",
1330 maxHeight+"px"
Veronika Kocher 9.4 1331 );
1332
Veronika Kocher 9.6 1333 card.setAttribute(
1334 "data-sn-master-equal-height",
1335 "1"
1336 );
Veronika Kocher 9.4 1337
Veronika Kocher 9.6 1338 managedHeight.add(
1339 card
1340 );
1341 });
Veronika Kocher 9.4 1342 });
1343 }
1344
Veronika Kocher 9.6 1345 /* =======================================================
1346 DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY
1347 ======================================================= */
Veronika Kocher 9.4 1348
Veronika Kocher 9.6 1349 function equaliseDetailGrids(){
Veronika Kocher 9.5 1350 if(
Veronika Kocher 9.6 1351 PAGE_KIND!=="detail"||
1352 window.innerWidth<=MOBILE_MAX
Veronika Kocher 9.5 1353 ){
Veronika Kocher 9.6 1354 return;
Veronika Kocher 9.5 1355 }
Veronika Kocher 9.4 1356
Veronika Kocher 9.6 1357 var selectors=[
1358 ".arsn-grid",
1359 ".arsn-grid-2",
1360 ".arsn-grid-3",
1361 ".dmp-grid",
1362 ".ido-grid",
1363 ".pp-grid"
1364 ];
Veronika Kocher 9.4 1365
Veronika Kocher 9.6 1366 selectors.forEach(function(selector){
1367 Array.from(
1368 root.querySelectorAll(selector)
1369 ).forEach(function(grid){
1370 var children=
1371 Array.from(
1372 grid.children||[]
1373 ).filter(visible);
Veronika Kocher 9.4 1374
Veronika Kocher 9.6 1375 if(children.length<2){
1376 return;
1377 }
Veronika Kocher 9.4 1378
Veronika Kocher 9.6 1379 var groups=[];
Veronika Kocher 9.4 1380
Veronika Kocher 9.6 1381 children.forEach(function(child){
1382 var top=
1383 child
1384 .getBoundingClientRect()
1385 .top;
Veronika Kocher 9.4 1386
Veronika Kocher 9.6 1387 var group=null;
Veronika Kocher 9.4 1388
Veronika Kocher 9.6 1389 for(var i=0;i<groups.length;i++){
1390 if(
1391 Math.abs(
1392 groups[i].top-top
1393 )<=ROW_TOLERANCE
1394 ){
1395 group=groups[i];
1396 break;
1397 }
1398 }
Veronika Kocher 9.4 1399
Veronika Kocher 9.6 1400 if(!group){
1401 group={
1402 top:top,
1403 items:[]
1404 };
1405 groups.push(group);
1406 }
Veronika Kocher 9.4 1407
Veronika Kocher 9.6 1408 group.items.push(child);
1409 });
Veronika Kocher 9.4 1410
Veronika Kocher 9.6 1411 groups.forEach(function(group){
1412 if(group.items.length<2){
1413 return;
1414 }
Veronika Kocher 9.3 1415
Veronika Kocher 9.6 1416 var maxHeight=0;
Veronika Kocher 9.5 1417
Veronika Kocher 9.6 1418 group.items.forEach(function(item){
1419 maxHeight=
1420 Math.max(
1421 maxHeight,
1422 item
1423 .getBoundingClientRect()
1424 .height
1425 );
1426 });
Veronika Kocher 9.5 1427
Veronika Kocher 9.6 1428 maxHeight=
1429 Math.ceil(maxHeight);
Veronika Kocher 9.3 1430
Veronika Kocher 9.6 1431 group.items.forEach(function(item){
1432 saveStyle(
1433 item,
1434 originalHeight,
1435 "min-height"
1436 );
Veronika Kocher 9.3 1437
Veronika Kocher 9.6 1438 item.style.setProperty(
1439 "min-height",
1440 maxHeight+"px"
1441 );
Veronika Kocher 9.4 1442
Veronika Kocher 9.6 1443 item.setAttribute(
1444 "data-sn-master-equal-height",
1445 "1"
1446 );
Veronika Kocher 9.3 1447
Veronika Kocher 9.6 1448 managedHeight.add(item);
1449 });
Veronika Kocher 9.3 1450 });
Veronika Kocher 9.6 1451 });
1452 });
1453 }
Veronika Kocher 9.3 1454
Veronika Kocher 9.6 1455 /* =======================================================
1456 RUN / RESPONSIVE SCHEDULING
1457 ======================================================= */
Veronika Kocher 9.3 1458
Veronika Kocher 9.6 1459 function run(){
1460 if(running)return;
Veronika Kocher 9.3 1461
Veronika Kocher 9.6 1462 running=true;
Veronika Kocher 9.5 1463
Veronika Kocher 9.6 1464 try{
1465 resetRuntime();
1466 applyPlaceholderBadge();
1467 propagateDetailAccents();
Veronika Kocher 9.5 1468
Veronika Kocher 9.6 1469 var headers=
1470 applyOverviewPalette();
Veronika Kocher 9.5 1471
Veronika Kocher 9.6 1472 if(
1473 window.innerWidth>
1474 MOBILE_MAX
1475 ){
1476 alignOverviewCards(
1477 headers
1478 );
Veronika Kocher 9.3 1479
Veronika Kocher 9.6 1480 equaliseDetailGrids();
1481 }
Veronika Kocher 9.5 1482 }finally{
Veronika Kocher 9.6 1483 running=false;
Veronika Kocher 9.5 1484 }
Veronika Kocher 9.3 1485 }
1486
Veronika Kocher 9.6 1487 function onResize(){
Veronika Kocher 9.5 1488 if(resizeTimer){
1489 clearTimeout(
1490 resizeTimer
1491 );
1492 }
Veronika Kocher 9.4 1493
Veronika Kocher 9.5 1494 resizeTimer=
1495 setTimeout(
1496 function(){
1497 resizeTimer=0;
Veronika Kocher 9.6 1498 run();
Veronika Kocher 9.5 1499 },
1500 RESIZE_DEBOUNCE
1501 );
Veronika Kocher 9.3 1502 }
1503
Veronika Kocher 9.6 1504 async function waitForReady(){
1505 if(
1506 document.readyState!=="complete"
1507 ){
1508 await new Promise(function(resolve){
1509 window.addEventListener(
1510 "load",
1511 resolve,
1512 {once:true}
1513 );
1514 });
1515 }
1516
1517 if(
1518 document.fonts&&
1519 document.fonts.ready
1520 ){
1521 try{
1522 await document.fonts.ready;
1523 }catch(error){}
1524 }
1525
Veronika Kocher 9.5 1526 var images=
1527 Array.from(
1528 root.querySelectorAll("img")
1529 );
Veronika Kocher 9.3 1530
Veronika Kocher 9.6 1531 await Promise.all(
Veronika Kocher 9.5 1532 images.map(function(img){
1533 if(img.complete){
1534 return Promise.resolve();
1535 }
Veronika Kocher 9.3 1536
Veronika Kocher 9.5 1537 return new Promise(function(resolve){
1538 var done=function(){
1539 resolve();
1540 };
1541
1542 img.addEventListener(
1543 "load",
1544 done,
1545 {once:true}
1546 );
1547
1548 img.addEventListener(
1549 "error",
1550 done,
1551 {once:true}
1552 );
1553 });
1554 })
1555 );
1556
Veronika Kocher 9.6 1557 run();
Veronika Kocher 9.3 1558 }
1559
Veronika Kocher 9.6 1560 window.addEventListener(
Veronika Kocher 9.5 1561 "resize",
Veronika Kocher 9.6 1562 onResize,
Veronika Kocher 9.5 1563 {passive:true}
1564 );
1565
Veronika Kocher 9.6 1566 waitForReady();
Veronika Kocher 9.3 1567 })();
1568 </script>
Veronika Kocher 9.5 1569
Veronika Kocher 9.6 1570 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END -->
1571 {{/html}}
1572