Wiki-Quellcode von Plan Your Data Management

Zuletzt geändert von Veronika Kocher am Freitag, 04 Sep. 2026 14:45

Verstecke letzte Bearbeiter
Veronika Kocher 4.6 1 {{html clean="false"}}
2 <!-- ARSN_FULL_PAGE_PLAN_DATA_MANAGEMENT_V1 -->
3 <style>
4 .dmp{max-width:1400px;margin:0 auto;color:#322f2b}.dmp *{box-sizing:border-box}
5 .dmp-card{border:1px solid #e3ded6;border-radius:11px;background:#fcfbf8;box-shadow:0 1px 3px rgba(0,0,0,.035)}
6 .dmp-eye{font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase}
7 .dmp-hero{height:125px;overflow:hidden;background:#f1eee9}.dmp-hero img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}
8 .dmp-sec{margin:0 0 30px}.dmp-sec h3{font-size:22px;margin:0 0 7px;color:#35312d}.dmp-sec>p{color:#6a655e;line-height:1.58;max-width:1180px}
9 .dmp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
10 .dmp-box{padding:15px 16px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8}.dmp-box h4{font-size:17px;margin:0 0 6px;color:#35312d}.dmp-box p{margin:0;color:#625d56;line-height:1.5}.dmp-box ul{margin:8px 0 0 19px;padding:0;color:#625d56;line-height:1.5}
11 .dmp-check{position:relative;padding:12px 13px 12px 37px;border:1px solid #e3ded6;border-radius:8px;background:#fffdf9;color:#504a44;line-height:1.5}.dmp-check:before{content:"✓";position:absolute;left:13px;top:10px;color:#e94b13;font-weight:800}
12 .dmp-info{padding:15px 17px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#eaf6f9;border-radius:8px;color:#365e68;line-height:1.55}.dmp-info strong{color:#2d5661}
13 .dmp-warn{padding:15px 17px;border:1px solid #efd9cc;border-left:5px solid #e94b13;background:#fff6f1;border-radius:8px;color:#67564e;line-height:1.55}.dmp-warn strong{color:#744531}
14 .dmp-rights{padding:15px 17px;border:1px solid #efdca7;border-left:5px solid #f0aa00;background:#fff9e9;border-radius:8px;color:#665a38;line-height:1.55}.dmp-rights strong{color:#6d571c}
15 .dmp-store{padding:15px 17px;border:1px solid #cfe8d8;border-left:5px solid #38b76a;background:#eff9f2;border-radius:8px;color:#45614e;line-height:1.55}.dmp-store strong{color:#35543f}
16 .dmp-tablewrap{overflow-x:auto;border-radius:9px}.dmp-tbl{width:100%;border-collapse:collapse;background:#fffdf9;min-width:820px}.dmp-tbl th,.dmp-tbl td{border:1px solid #e3ded6;padding:10px 11px;vertical-align:top;text-align:left;line-height:1.45}.dmp-tbl th{background:#f3efe8;color:#403b36}.dmp-tbl td{color:#56504a}
17 .dmp-step{padding:15px 16px;border:1px solid #e3ded6;border-top:4px solid #e94b13;border-radius:9px;background:#fcfbf8}.dmp-step .n{font-size:12px;font-weight:800;color:#8a4d36;letter-spacing:.06em}.dmp-step h4{font-size:17px;margin:3px 0 6px;color:#35312d}.dmp-step p{margin:0;color:#625d56;line-height:1.5}
18 .dmp-service{display:block;padding:14px 15px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8;color:#322f2b;text-decoration:none}.dmp-service:hover,.dmp-service:focus{background:#fffdf9;text-decoration:none}.dmp-service strong{display:block;margin-bottom:4px}.dmp-service span{display:block;color:#625d56;line-height:1.45;font-weight:400}
19 .dmp-linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.dmp-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;line-height:1.35}.dmp-navlink:hover,.dmp-navlink:focus{background:#fff7f1;text-decoration:none}
20 .dmp-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}
21 @media(max-width:680px){.dmp-hero{height:105px}.dmp-sec h3{font-size:20px}}
22 </style>
Veronika Kocher 2.1 23
Veronika Kocher 4.6 24 <div class="dmp">
Veronika Kocher 2.1 25
Veronika Kocher 4.6 26 <section class="dmp-card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;">
Veronika Kocher 4.15 27 <div class="dmp-hero"><img src="https://xwiki.uni-ak.ac.at/bin/download/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/WebHome/enable.png" alt="Forschungsdaten, Materialien und Outputs über den Projektlebenszyklus planen"></div>
Veronika Kocher 4.6 28 <div style="padding:18px 21px 20px">
Veronika Kocher 4.15 29 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:5px">VORBEREITEN · DATENMANAGEMENTPLAN</div>
30 <h2 style="font-size:27px;line-height:1.2;margin:0 0 8px;color:#2c2926">Mach Datenmanagement zur laufenden Projektroutine – nicht zu einem Formular, das einmal ausgefüllt wird</h2>
31 <p style="margin:0;color:#5e5953;line-height:1.6;max-width:1160px">Ein praktikabler Datenmanagementplan (DMP) hält fest, wie dein Projekt Daten und Materialien organisiert, speichert, schützt, dokumentiert, teilt, erhält oder löscht. In künstlerischer und kunstbasierter Forschung gehören dazu oft auch physische Objekte, audiovisuelle Materialien, Software, Performances, Prozessdokumentation und künstlerische Outputs – nicht nur klassische Forschungsdaten.</p>
Veronika Kocher 4.6 32 </div>
33 </section>
Veronika Kocher 2.1 34
Veronika Kocher 4.15 35 <div class="dmp-info" style="margin-bottom:16px"><strong>Behandle den DMP als lebendes Arbeitsdokument.</strong> Beginne mit dem, was bereits feststeht, dokumentiere offene Entscheidungen, weise Zuständigkeiten zu und aktualisiere den Plan, wenn sich das Projekt verändert.</div>
Veronika Kocher 2.1 36
Veronika Kocher 4.15 37 <div class="dmp-rights" style="margin-bottom:16px"><strong>Ein DMP bedeutet nicht, dass alles offen zugänglich werden muss.</strong> Er sollte Einschränkungen sichtbar machen und begründen, warum Zugang, Teilen oder Nachnutzung etwa wegen personenbezogener Daten, Einwilligungen, Urheberrecht, Vertraulichkeit, kultureller Sensibilität, vertraglicher Verpflichtungen, Sicherheit oder anderer legitimer Gründe begrenzt sein können.</div>
Veronika Kocher 2.1 38
Veronika Kocher 4.15 39 <div class="dmp-store" style="margin-bottom:28px"><strong>Beginne mit deinem Materialinventar.</strong> Wenn du noch nicht erfasst hast, welche Daten, Materialien, Dokumentationen und Outputs dein Projekt erzeugt, sammelt oder nachnutzt, starte mit <a 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/">Daten &amp; Forschungsoutputs identifizieren</a>.</div>
Veronika Kocher 2.1 40
Veronika Kocher 4.7 41 <!-- ARSN_DMP_TOOL_COMING_SOON_V1 -->
42 <section id="dmp-tool-coming-soon" class="dmp-card" style="margin-bottom:28px;overflow:hidden;border-left:6px solid #21b6d7;">
43 <div style="padding:17px 20px 18px">
44 <div class="dmp-eye" style="color:#3f6871;margin-bottom:5px">DMP TOOL <span style="display:inline-block;margin-left:6px;padding:3px 7px;border-radius:12px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:10px;letter-spacing:.06em;vertical-align:1px">COMING SOON</span></div>
Veronika Kocher 4.15 45 <h3 style="font-size:21px;margin:0 0 7px;color:#35312d">Interaktives Art &amp; Research DMP-Tool</h3>
46 <p style="margin:0 0 11px;color:#625d56;line-height:1.55;max-width:1050px">Ein lokales Formular soll die elf DMP-Kernfragen mit fördergeberspezifischen Vorgaben verbinden und DMPs als PDF, JSON, YAML und Markdown exportieren. Die Förderprofile werden getrennt vom Tool gepflegt, damit FWF-, Horizon-Europe-, ERC- oder FFG-Vorgaben aktualisiert werden können, ohne das Formular neu zu programmieren.</p>
47 <a href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Plan%20Your%20Data%20Management/DMP%20Tool/" aria-disabled="true" onclick="return false;" style="display:inline-block;padding:8px 11px;border:1px solid #c7e5ed;border-radius:6px;background:#f4fbfc;color:#3f6871;text-decoration:none;font-weight:700;cursor:not-allowed">DMP-Tool öffnen ↗</a>
Veronika Kocher 4.7 48 <span style="display:inline-block;margin-left:8px;color:#8a4d36;font-size:12px;font-weight:700">COMING SOON</span>
49 </div>
50 </section>
51 <!-- ARSN_DMP_TOOL_COMING_SOON_END -->
52
Veronika Kocher 4.6 53 <section class="dmp-sec">
Veronika Kocher 4.15 54 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">SCHRITT 1 · UMFANG FESTLEGEN</div>
55 <h3>Entscheide, was dein DMP abdecken muss</h3>
56 <p>Der DMP sollte das reale Projekt abbilden und nicht nur eine abstrakte Vorlage ausfüllen. Ausgangspunkt sind Projektstruktur, Förderbedingungen und die bereits identifizierten Materialtypen.</p>
Veronika Kocher 2.1 57
Veronika Kocher 4.6 58 <div class="dmp-grid">
59 <div class="dmp-box" style="border-top:4px solid #21b6d7">
Veronika Kocher 4.15 60 <h4>Projekt- &amp; Planidentität</h4>
61 <p>Projekttitel, Projektleitung, verankernde Organisationseinheit, Partner, Förderprogramm, Laufzeit, DMP-Verantwortung, DMP-Version und letztes Prüfdatum.</p>
Veronika Kocher 4.6 62 </div>
63 <div class="dmp-box" style="border-top:4px solid #21b6d7">
Veronika Kocher 4.15 64 <h4>Daten, Materialien &amp; Outputs</h4>
65 <p>Was erzeugt, gesammelt, beauftragt oder nachgenutzt wird; erwartete Formate, physische Träger, Umfang, Abhängigkeiten und Masterversionen.</p>
Veronika Kocher 4.6 66 </div>
67 <div class="dmp-box" style="border-top:4px solid #e94b13">
Veronika Kocher 4.15 68 <h4>Rollen &amp; Zuständigkeiten</h4>
69 <p>Wer erzeugt, dokumentiert, speichert, sichert, Zugriffe steuert, Freigaben erteilt, Outputs ablegt und die Übergabe abschließt.</p>
Veronika Kocher 4.6 70 </div>
71 <div class="dmp-box" style="border-top:4px solid #38b76a">
Veronika Kocher 4.15 72 <h4>Speicherung, Backup &amp; Zugriff</h4>
73 <p>Arbeitsorte, maßgebliche Kopien, Backup-Routine, Wiederherstellung, Zugriffsgruppen, Kontoverantwortung und Sicherheitsanforderungen.</p>
Veronika Kocher 4.6 74 </div>
75 <div class="dmp-box" style="border-top:4px solid #e94b13">
Veronika Kocher 4.15 76 <h4>Organisation &amp; Versionierung</h4>
77 <p>Ordnerstruktur, Benennung, Versionsregeln, Masterdateien, Arbeitskopien, Exportformate und Änderungskontrolle.</p>
Veronika Kocher 4.6 78 </div>
79 <div class="dmp-box" style="border-top:4px solid #21b6d7">
Veronika Kocher 4.15 80 <h4>Metadaten, Provenienz &amp; Dokumentation</h4>
81 <p>Welche Informationen zu Herkunft, Urheber:innenschaft, Kontext, Methode, Transformation, Beziehungen, Software und Versionen benötigt werden.</p>
Veronika Kocher 4.6 82 </div>
83 <div class="dmp-box" style="border-top:4px solid #f0aa00">
Veronika Kocher 4.15 84 <h4>Rechte, Ethik &amp; Schutz</h4>
85 <p>Urheberrecht, Lizenzen, Einwilligungen, personenbezogene Daten, Vertraulichkeit, Verträge, gemeinschafts- oder kulturspezifische Protokolle und Einschränkungen.</p>
Veronika Kocher 4.6 86 </div>
87 <div class="dmp-box" style="border-top:4px solid #f0aa00">
Veronika Kocher 4.15 88 <h4>Teilen, Publizieren &amp; Nachnutzen</h4>
89 <p>Was mit wem, wann und unter welcher Lizenz geteilt werden kann, über welches Repositorium bzw. welche Plattform und mit welcher Dokumentation.</p>
Veronika Kocher 4.6 90 </div>
91 <div class="dmp-box" style="border-top:4px solid #38b76a">
Veronika Kocher 4.15 92 <h4>Aufbewahrung, Erhaltung &amp; Löschung</h4>
93 <p>Was nach Projektende bleiben soll, was gelöscht werden kann, Aufbewahrungsfristen, Erhaltungsformate, Repositorium/Archiv und Übergabe.</p>
Veronika Kocher 4.6 94 </div>
95 <div class="dmp-box" style="border-top:4px solid #e94b13">
Veronika Kocher 4.15 96 <h4>Ressourcen &amp; Kosten</h4>
97 <p>Speicher, Spezialsoftware, Digitalisierung, Transkription, Metadatenarbeit, Repositoriumskosten, Erhaltung, Personalzeit und andere Datenmanagementkosten.</p>
Veronika Kocher 4.6 98 </div>
99 </div>
100 </section>
Veronika Kocher 2.1 101
Veronika Kocher 4.6 102 <section class="dmp-sec">
Veronika Kocher 4.15 103 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">SCHRITT 2 · MINIMALEN ARBEITS-DMP ERSTELLEN</div>
104 <h3>Dokumentiere Entscheidungen, die das Team tatsächlich umsetzen kann</h3>
105 <p>Eine erste DMP-Version darf kurz sein. Entscheidend ist, dass Zuständigkeiten benannt und Annahmen in nachvollziehbare Entscheidungen übersetzt werden.</p>
Veronika Kocher 2.1 106
Veronika Kocher 4.6 107 <div class="dmp-tablewrap">
108 <table class="dmp-tbl">
Veronika Kocher 4.15 109 <thead><tr><th>Frage</th><th>Mindestens festhalten</th><th>Zuständig / Prüfpunkt</th></tr></thead>
Veronika Kocher 4.6 110 <tbody>
Veronika Kocher 4.15 111 <tr><td><strong>Was verwalten wir?</strong></td><td>Material-/Daten-/Outputtypen, Herkunft, Formate, physische Träger, ungefähre Menge oder erwartetes Wachstum.</td><td>Projektleitung + Person, die am nächsten mit dem Material arbeitet.</td></tr>
112 <tr><td><strong>Wo wird aktiv gearbeitet?</strong></td><td>Freigegebener Arbeitsort und Speicherort der maßgeblichen bzw. Masterkopie.</td><td>Daten-/Dokumentationsverantwortung; prüfen, wenn sich Infrastruktur ändert.</td></tr>
113 <tr><td><strong>Wie wird gesichert?</strong></td><td>Backup-Ort, Häufigkeit, Zuständigkeit und wie die Wiederherstellung geprüft wird.</td><td>Benannte Person; vor kritischen Produktions-/Publikationsphasen testen.</td></tr>
114 <tr><td><strong>Wer darf worauf zugreifen?</strong></td><td>Zugriffsgruppen, Kontoverantwortung, Einschränkungen und Verfahren zum Hinzufügen/Entfernen von Personen.</td><td>Projektleitung / Systemverantwortung; bei Personal- oder Partnerwechsel prüfen.</td></tr>
115 <tr><td><strong>Wie sind Dateien und Versionen organisiert?</strong></td><td>Ordnerstruktur, Dateibenennung, Versionskonvention, Unterschied zwischen Master-, Arbeits- und Derivatdateien.</td><td>Teamweite Regel; prüfen, sobald Workflows unklar werden.</td></tr>
116 <tr><td><strong>Welche Dokumentation ist nötig?</strong></td><td>Minimale Metadaten, Provenienz, README-/Kontextinformationen, technische Abhängigkeiten und Beziehungen.</td><td>Ersteller:in + Dokumentationsverantwortung.</td></tr>
117 <tr><td><strong>Was ist sensibel oder eingeschränkt?</strong></td><td>Personenbezogene, vertrauliche oder kulturell sensible Materialien, Einwilligungsstatus, rechtliche/vertragliche Einschränkungen und erforderlicher Schutz.</td><td>Projektleitung mit Fachberatung, wenn nötig.</td></tr>
118 <tr><td><strong>Welche Rechte gelten?</strong></td><td>Rechteinhaber:innen, Drittmaterial, Lizenzen, Genehmigungen und noch offene Rechtsfragen.</td><td>Projektleitung / Rechteverantwortung; vor Publikation klären.</td></tr>
119 <tr><td><strong>Was wird geteilt oder publiziert?</strong></td><td>Outputs/Materialien, Zugriffsniveau, Zeitpunkt, Lizenz, Repositorium/Plattform und begründete Ausnahmen.</td><td>Projektleitung + Outputverantwortung.</td></tr>
120 <tr><td><strong>Was passiert am Projektende?</strong></td><td>Aufbewahren, ablegen, erhalten, übergeben oder löschen; endgültige Verantwortung; Zugriffe schließen; ggf. Aufbewahrungsfrist.</td><td>Benannte Abschlussverantwortung; vor Endbericht bestätigen.</td></tr>
121 <tr><td><strong>Wann wird der DMP geprüft?</strong></td><td>Geplante Prüftermine plus ereignisbezogene Auslöser.</td><td>DMP-Verantwortung.</td></tr>
Veronika Kocher 4.6 122 </tbody>
123 </table>
124 </div>
Veronika Kocher 2.1 125
Veronika Kocher 4.15 126 <div class="dmp-info" style="margin-top:14px"><strong>Einfache Regel:</strong> Jede wichtige DMP-Aussage sollte mindestens eine dieser Fragen beantworten: <em>was, wo, wer, wie, wann, unter welchen Bedingungen und was passiert am Ende?</em></div>
Veronika Kocher 4.6 127 </section>
Veronika Kocher 2.1 128
Veronika Kocher 4.6 129 <section class="dmp-sec">
Veronika Kocher 4.15 130 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">SCHRITT 3 · VERÄNDERUNGEN EINPLANEN</div>
131 <h3>Prüfe den DMP, wenn sich eine relevante Entscheidung ändert</h3>
132 <p>Aktualisiere den Plan nicht nur wegen eines Kalendereintrags. Nutze geplante Reviews, verknüpfe sie aber auch mit konkreten Projektveränderungen.</p>
Veronika Kocher 2.1 133
Veronika Kocher 4.6 134 <div class="dmp-grid">
Veronika Kocher 4.15 135 <div class="dmp-step"><div class="n">REVIEW 1</div><h4>Antrag / Bewilligung / Projektstart</h4><p>Gleiche den Arbeits-DMP mit Antrag, Förderbedingungen, bewilligtem Budget, Personal, Partnern und tatsächlich verfügbarer Infrastruktur ab.</p></div>
136 <div class="dmp-step"><div class="n">REVIEW 2</div><h4>Neue Materialien oder Methoden</h4><p>Aktualisiere den DMP bei neuen Datensätzen, Medientypen, Software, Geräten, Teilnehmenden, Sammlungen oder Dokumentationsworkflows.</p></div>
137 <div class="dmp-step"><div class="n">REVIEW 3</div><h4>Personal- oder Partnerwechsel</h4><p>Prüfe Zugriffe, Kontoverantwortung, Zuständigkeiten, Übergabe, Vereinbarungen und den Ort maßgeblicher Kopien neu.</p></div>
138 <div class="dmp-step"><div class="n">REVIEW 4</div><h4>Vor Publikation / Ausstellung / Teilen</h4><p>Bestätige Rechte, Einwilligungen, Umgang mit personenbezogenen Daten, Metadaten, Dateiqualität, Zugriffsniveau, Lizenz und Repositoriums-/Plattformroute.</p></div>
139 <div class="dmp-step"><div class="n">REVIEW 5</div><h4>Vor Projektabschluss</h4><p>Entscheide, was aufbewahrt, abgelegt, erhalten, gelöscht oder übergeben wird; schließe nicht mehr benötigte Zugriffe und dokumentiere finale Zuständigkeiten.</p></div>
Veronika Kocher 4.6 140 </div>
141 </section>
Veronika Kocher 2.1 142
Veronika Kocher 4.6 143 <section class="dmp-sec">
Veronika Kocher 4.7 144 <!-- ARSN_DMP_FUNDER_LINKS_SPECIFIC_V2 -->
Veronika Kocher 4.15 145 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">FÖRDERBEDINGUNGEN</div>
146 <h3>Arbeite mit der konkreten Vorlage, dem konkreten Call und den verbindlichen Projektbedingungen</h3>
147 <p>Ein interner Arbeits-DMP darf breiter sein als die formale Fördervorlage. Für ein gefördertes Projekt sind aber die aktuell gültige DMP-Vorlage, der konkrete Call bzw. Ausschreibungsleitfaden, der Fördervertrag oder das Grant Agreement und die dort genannten Fristen maßgeblich. Die Links unten führen deshalb direkt zu den für den DMP relevanten Dokumenten oder Dokumentbereichen.</p>
Veronika Kocher 2.1 148
Veronika Kocher 4.6 149 <div class="dmp-grid">
150 <div class="dmp-box" style="border-top:4px solid #e94b13">
151 <h4>FWF</h4>
Veronika Kocher 4.15 152 <p>Für entsprechend bewilligte FWF-Projekte ist der DMP Voraussetzung für den Projektstart, wird mit dem Fördervertrag eingereicht, in der Sprache des Förderantrags geführt, während des Projekts versioniert und in finaler Fassung mit dem Projektendbericht eingereicht.</p>
Veronika Kocher 4.7 153 <ul style="margin:10px 0 0 18px;padding:0;line-height:1.55">
Veronika Kocher 4.15 154 <li><a href="https://www.fwf.ac.at/fileadmin/Website/Dokumente/Ueber_uns/Aufgaben_und_Aktivitaeten/Open_Science/fwf_dmp_leitfaden_vorlage.docx" target="_blank" rel="noopener"><strong>DMP – Leitfaden und Vorlage (DE, DOCX) ↗</strong></a></li>
155 <li><a href="https://www.fwf.ac.at/fileadmin/Website/Dokumente/Ueber_uns/Aufgaben_und_Aktivitaeten/Open_Science/fwf_dmp_evaluierungsmatrix.pdf" target="_blank" rel="noopener">DMP – Evaluierungsmatrix (DE, PDF) ↗</a></li>
156 <li><a href="https://www.fwf.ac.at/ueber-uns/aufgaben-und-aktivitaeten/open-science/open-access-policy/open-access-policy-fuer-forschungsdaten" target="_blank" rel="noopener">Open-Access-Policy für Forschungsdaten ↗</a></li>
157 <li><a href="https://www.fwf.ac.at/ueber-uns/aufgaben-und-aktivitaeten/open-science/forschungsdatenmanagement" target="_blank" rel="noopener">Forschungsdatenmanagement – Ablauf, Finanzierung &amp; Kontakt ↗</a></li>
Veronika Kocher 4.7 158 </ul>
Veronika Kocher 4.6 159 </div>
Veronika Kocher 4.5 160
Veronika Kocher 4.6 161 <div class="dmp-box" style="border-top:4px solid #21b6d7">
162 <h4>Horizon Europe</h4>
Veronika Kocher 4.15 163 <p>Research Data Management ist für Projekte, die Forschungsdaten erzeugen oder nachnutzen, eine verpflichtende Open-Science-Praxis. Der detaillierte DMP ist normalerweise ein Deliverable bis Monat 6 und wird als lebendes Dokument aktualisiert.</p>
Veronika Kocher 4.7 164 <ul style="margin:10px 0 0 18px;padding:0;line-height:1.55">
Veronika Kocher 4.15 165 <li><a href="https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/how-to-participate/reference-documents;programCode=HORIZON" target="_blank" rel="noopener"><strong>DMP Reporting Template – Funding &amp; Tenders Reference Documents ↗</strong></a><br><small>Unter „Templates &amp; Forms“ → „Project reporting templates“.</small></li>
166 <li><a href="https://ec.europa.eu/info/funding-tenders/opportunities/docs/2021-2027/common/guidance/aga_en.pdf" target="_blank" rel="noopener">Annotated Grant Agreement – DMP- und Open-Science-Pflichten ↗</a></li>
167 <li><a href="https://rea.ec.europa.eu/open-science_en" target="_blank" rel="noopener">REA Open Science Q&amp;A – DMP, Repositorien &amp; Zugriffsbeschränkungen ↗</a></li>
Veronika Kocher 4.7 168 <li><a href="https://ec.europa.eu/info/funding-tenders/opportunities/docs/2021-2027/horizon/guidance/programme-guide_horizon_en.pdf" target="_blank" rel="noopener">Horizon Europe Programme Guide – Open Science / RDM ↗</a></li>
169 </ul>
Veronika Kocher 4.6 170 </div>
Veronika Kocher 2.1 171
Veronika Kocher 4.7 172 <div class="dmp-box" style="border-top:4px solid #21b6d7">
173 <h4>ERC · Horizon Europe</h4>
Veronika Kocher 4.15 174 <p>Für Horizon-Europe-finanzierte ERC-Projekte ist Research Data Management als Work Package vorgesehen. Der DMP ist spätestens am Ende von Projektmonat 6 einzureichen; zusätzlich werden Dissemination Level, FAIR, Ressourcen und Datensicherheit adressiert.</p>
175 <p style="margin-top:9px"><a href="https://erc.europa.eu/manage-your-project/open-science" target="_blank" rel="noopener"><strong>ERC – Open Science in ERC Projects: RDM Work Package, DMP-Frist &amp; Template ↗</strong></a></p>
Veronika Kocher 4.7 176 </div>
177
Veronika Kocher 4.6 178 <div class="dmp-box" style="border-top:4px solid #f0aa00">
Veronika Kocher 4.15 179 <h4>FFG · immer den konkreten Call prüfen</h4>
180 <p>Bei der FFG ist die DMP-Regel ausschreibungs- und instrumentenspezifisch. Dokumentiere deshalb im DMP die URL des konkreten Calls, die Version bzw. das Datum des Leitfadens und ob der DMP verpflichtend, projektbezogen verpflichtend, empfohlen oder nicht verlangt ist.</p>
181 <p style="margin-top:9px"><a href="https://www.ffg.at/content/ausschreibungsdokumente-der-basisprogramme" target="_blank" rel="noopener"><strong>FFG – aktuelle Ausschreibungsdokumente Basisprogramme 2025/26 ↗</strong></a></p>
182 <p style="margin-top:8px;color:#6a655e;font-size:13px">Für andere FFG-Programme immer die jeweilige aktuelle Ausschreibungsseite und den dort verlinkten Leitfaden verwenden.</p>
Veronika Kocher 4.6 183 </div>
184 </div>
Veronika Kocher 4.7 185
Veronika Kocher 4.15 186 <div class="dmp-info" style="margin-top:14px"><strong>Andere Fördergeber / Partner:</strong> Hinterlege im DMP nicht nur den Namen des Fördergebers, sondern die <strong>exakte URL der verbindlichen Vorgabe oder Vorlage, Versions-/Datumsstand und Frist</strong>. Bei Unsicherheit über den internen Förderweg oder die Zuordnung der Vorgaben: <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>.</div>
Veronika Kocher 4.7 187 <!-- ARSN_DMP_FUNDER_LINKS_SPECIFIC_END -->
Veronika Kocher 4.6 188 </section>
Veronika Kocher 2.1 189
Veronika Kocher 4.6 190 <section class="dmp-sec">
Veronika Kocher 4.15 191 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">SCHRITT 4 · DMP MIT REALEN WORKFLOWS VERBINDEN</div>
192 <h3>Ein Plan ist nur nützlich, wenn er auf konkrete Orte, Regeln und Personen verweist</h3>
Veronika Kocher 2.1 193
Veronika Kocher 4.6 194 <div class="dmp-grid">
Veronika Kocher 4.15 195 <div class="dmp-check"><strong>Speicherung:</strong> Benenne die tatsächliche Arbeitsumgebung statt nur „Universitätsserver“.</div>
196 <div class="dmp-check"><strong>Backup:</strong> Halte fest, was wo, wie oft und durch wen gesichert wird.</div>
197 <div class="dmp-check"><strong>Zugriff:</strong> Verwende benannte Gruppen/Rollen und definiere, was beim Ausscheiden einer Person passiert.</div>
198 <div class="dmp-check"><strong>Dateien:</strong> Dokumentiere Ordner-, Benennungs- und Versionsregeln dort, wo das Team sie findet.</div>
199 <div class="dmp-check"><strong>Metadaten:</strong> Lege Pflichtfelder oder README-Informationen für wichtige Materialtypen fest.</div>
200 <div class="dmp-check"><strong>Rechte:</strong> Verknüpfe Genehmigungen, Lizenzen und Einwilligungen mit den Materialien, für die sie gelten.</div>
201 <div class="dmp-check"><strong>Teilen:</strong> Bestimme Ziel-Repositorium oder Plattform nicht erst in der letzten Projektwoche.</div>
202 <div class="dmp-check"><strong>Erhaltung:</strong> Unterscheide aktive Speicherung, Backup, Repositoriumsablage und Langzeiterhaltung.</div>
Veronika Kocher 4.6 203 </div>
Veronika Kocher 2.1 204
Veronika Kocher 4.15 205 <div class="dmp-warn" style="margin-top:14px"><strong>Warnsignal:</strong> „Das entscheiden wir am Ende“ ist keine Datenmanagementstrategie. Entscheidungen zu Einwilligungen, Rechten, Dateiformaten, Metadaten, Speicherung, Dokumentation oder Erhaltung müssen häufig schon getroffen werden, während das Material entsteht.</div>
Veronika Kocher 4.6 206 </section>
Veronika Kocher 2.1 207
Veronika Kocher 4.6 208 <section class="dmp-sec">
Veronika Kocher 4.15 209 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">SERVICES &amp; UNTERSTÜTZUNG</div>
210 <h3>Wen du an der Angewandten einbeziehen kannst</h3>
211 <p>Nutze Fachsupport dort, wo der DMP einen konkreten Bedarf sichtbar macht. Nicht jedes Projekt braucht jeden Service.</p>
Veronika Kocher 4.1 212
Veronika Kocher 4.6 213 <div class="dmp-grid">
Veronika Kocher 4.15 214 <a class="dmp-service" href="https://www.dieangewandte.at/university_library" target="_blank" rel="noopener"><strong>Universitätsbibliothek · Forschungsdatenmanagement &amp; Support ↗</strong><span>Für Fragen zu Forschungsdatenmanagement, Metadaten, Repositorium und erhaltungsorientierter Planung. Die Bibliothek weist Forschungsdatenmanagement &amp; Support aktuell als Teil ihrer Teamexpertise aus.</span></a>
Veronika Kocher 4.6 215
Veronika Kocher 4.15 216 <a class="dmp-service" href="mailto:veronika.kocher@uni-ak.ac.at"><strong>Forschungsdatenmanagement &amp; Support</strong><span>Aktueller FDM-Kontakt der Universitätsbibliothek: veronika.kocher@uni-ak.ac.at</span></a>
Veronika Kocher 4.6 217
Veronika Kocher 4.15 218 <a class="dmp-service" href="mailto:repositorium@uni-ak.ac.at"><strong>Angewandte Repository</strong><span>Fragen zu Repositorium und Ablageplanung: repositorium@uni-ak.ac.at</span></a>
Veronika Kocher 4.6 219
Veronika Kocher 4.15 220 <a class="dmp-service" href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/support_kunst_und_forschung" target="_blank" rel="noopener"><strong>Support Kunst und Forschung ↗</strong><span>Für geförderte künstlerische/wissenschaftliche Forschung, Förderbedingungen, Antrags-/Projektkoordination und den administrativen Förderweg.</span></a>
Veronika Kocher 4.6 221
Veronika Kocher 4.15 222 <a class="dmp-service" href="mailto:projektsupport@uni-ak.ac.at"><strong>Projektsupport-Ticketkontakt</strong><span>projektsupport@uni-ak.ac.at</span></a>
Veronika Kocher 4.6 223
Veronika Kocher 4.15 224 <a class="dmp-service" href="https://www.dieangewandte.at/en/data_protection" target="_blank" rel="noopener"><strong>Datenschutz ↗</strong><span>Für fachliche Klärung bei Verarbeitung personenbezogener Daten, Datenaustausch, externen Auftragsverarbeitern/Plattformen oder Datenschutzrisiken. Datenschutzbeauftragter: dsb@uni-ak.ac.at</span></a>
Veronika Kocher 4.6 225 </div>
226 </section>
227
228 <section class="dmp-sec">
Veronika Kocher 4.15 229 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">VERWANDTE NAVIGATOR-THEMEN</div>
230 <h3>Übersetze jede DMP-Entscheidung in den nächsten praktischen Schritt</h3>
Veronika Kocher 4.6 231
232 <div class="dmp-linkgrid">
Veronika Kocher 4.15 233 <a class="dmp-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/">Daten &amp; Forschungsoutputs identifizieren</a>
234 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/File%20Organisation%20%26%20Naming/">Dateiorganisation &amp; Benennung</a>
235 <a class="dmp-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/">Speicherung, Backup &amp; Sicherheit</a>
236 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Data%20Protection%20%26%20Ethics/">Datenschutz &amp; Ethik</a>
237 <a class="dmp-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/">Urheberrecht, Rechte &amp; Lizenzen</a>
238 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Collaboration%20Setup/">Zusammenarbeit einrichten</a>
239 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Document%20Metadata%20%26%20Provenance/">Prozesse, Metadaten &amp; Provenienz dokumentieren</a>
240 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Review%20Your%20Data%20Management/">Datenmanagement überprüfen</a>
241 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Decide%20What%20to%20Share/">Entscheiden, was geteilt wird</a>
Veronika Kocher 4.6 242 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/FAIR%2C%20CARE%20%26%20Open%20Science/">FAIR, CARE &amp; Open Science</a>
Veronika Kocher 4.15 243 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Choose%20a%20Repository%20or%20Publication%20Platform/">Repositorium oder Publikationsplattform auswählen</a>
244 <a class="dmp-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Preserve%20Data%20%26%20Artistic%20Outputs/">Daten &amp; künstlerische Outputs erhalten</a>
Veronika Kocher 4.6 245 </div>
246 </section>
247
Veronika Kocher 4.15 248 <div class="dmp-info" style="margin-bottom:14px"><strong>Brauchst du Hilfe bei der DMP-Prüfung?</strong> Bring die aktuelle Fördervorlage oder den internen Entwurf, dein Material-/Output-Inventar, geplante Speicherorte, Projektpartner und die wichtigsten offenen Fragen mit. So kann Unterstützung wesentlich schneller und konkreter ansetzen.</div>
Veronika Kocher 4.6 249
Veronika Kocher 4.15 250 <!-- ARSN_TRAINING_WORKSHOPS_V2_START -->
251 <section class="arsn-training-workshops" data-arsn-training-workshops="v2" style="margin:27px 0 22px 0;">
252 <div style="padding:16px 18px;background:#eef8fa;border:1px solid #cfe8ef;border-left:5px solid #21b6d7;border-radius:9px;">
253 <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#3f6871;margin-bottom:5px;">SCHULUNGEN &amp; WORKSHOPS</div>
254 <h3 style="font-size:20px;line-height:1.3;margin:0 0 7px;color:#35312d;text-align:left;">Schulungen, Workshops &amp; Sprechstunden</h3>
255 <p style="margin:0 0 10px;color:#5e5953;line-height:1.55;">Passende Angebote zu diesem Thema werden hier künftig automatisch aus dem zentralen Kalender angezeigt.</p>
256 <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;">IN VORBEREITUNG</span>
257 </div>
258 </section>
259 <!-- ARSN_TRAINING_WORKSHOPS_V2_END -->
Veronika Kocher 4.14 260
Veronika Kocher 4.15 261 <!-- ARSN_PRACTICAL_RESOURCES_V2_START -->
262 <section class="arsn-practical-resources" data-arsn-practical-resources="v2" style="margin:0 0 27px;">
263 <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#8a4d36;margin-bottom:4px;">NÜTZLICHE MATERIALIEN</div>
264 <h3 style="font-size:22px;line-height:1.25;margin:0 0 8px;color:#35312d;text-align:left;">Praktische Ressourcen</h3>
265 <p style="margin:0 0 12px;color:#5e5953;line-height:1.55;">Nutze praktische Ressourcen, wenn du einen kompakten Überblick, eine Schritt-für-Schritt-Anleitung oder eine direkt einsetzbare Arbeitshilfe brauchst.</p>
266 <div class="arsn-resource-grid" style="display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;">
267 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong>Info-Blätter</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;">IN VORBEREITUNG</span><div style="color:#625d56;line-height:1.45;">Kurze Orientierungshilfen für häufige Fragen und Entscheidungen.</div></div>
268 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong>Anleitungen</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;">IN VORBEREITUNG</span><div style="color:#625d56;line-height:1.45;">Schritt-für-Schritt-Anleitungen für konkrete Aufgaben und Abläufe.</div></div>
269 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong>Checklisten &amp; Vorlagen</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;">IN VORBEREITUNG</span><div style="color:#625d56;line-height:1.45;">Direkt einsetzbare Checklisten und Vorlagen zum Planen, Durchführen und Abschließen von Projekten.</div></div>
270 </div>
271 <style>@media(max-width:767px){.arsn-resource-grid{grid-template-columns:1fr!important}}</style>
272 </section>
273 <!-- ARSN_PRACTICAL_RESOURCES_V2_END -->
Veronika Kocher 4.14 274
Veronika Kocher 4.1 275 <!-- ARSN_SEARCH_TERMS_START -->
Veronika Kocher 4.6 276 <details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6">
Veronika Kocher 4.15 277 <summary style="cursor:pointer;color:#6a655e;font-size:13px">Suchbegriffe &amp; verwandte Themen</summary>
278 <div style="margin-top:9px;color:#5c5650;font-size:12px;line-height:1.7">Datenmanagementplan · DMP · Forschungsdatenmanagement · FDM · RDM · Datenlebenszyklus · Data Stewardship · Dateninventar · Forschungsmaterialien · künstlerische Forschungsdaten · Datentypen · Dateiformate · Speicherung · Backup · Zugriffskontrolle · Dateibenennung · Versionierung · Metadaten · Provenienz · Dokumentation · personenbezogene Daten · Datenschutz · Ethik · Einwilligung · Urheberrecht · Lizenzen · sensible Daten · Datenaustausch · Open Data · FAIR · CARE · Repositorium · Erhaltung · Aufbewahrung · Löschung · Förderbedingungen · FWF DMP · Horizon Europe DMP · Projektabschluss · Übergabe</div>
Veronika Kocher 4.1 279 </details>
280 <!-- ARSN_SEARCH_TERMS_END -->
Veronika Kocher 4.6 281
282 </div>
Veronika Kocher 4.1 283 {{/html}}
Veronika Kocher 4.6 284
Veronika Kocher 4.11 285 {{html clean="false"}}
286 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START -->
Veronika Kocher 4.10 287
Veronika Kocher 4.11 288 <style data-sn-service-navigator-master="1">
289 /* =========================================================
290 MASTER TYPOGRAPHY
291 ========================================================= */
Veronika Kocher 4.10 292 #xwikicontent h1,
293 #xwikicontent h2,
294 #xwikicontent h3,
295 #xwikicontent h4,
296 #xwikicontent h5,
297 #xwikicontent h6,
298 #xwikicontent .box-title,
299 #xwikicontent [role="heading"],
300 #xwikicontent h1 a,
301 #xwikicontent h2 a,
302 #xwikicontent h3 a,
303 #xwikicontent h4 a,
304 #xwikicontent h5 a,
305 #xwikicontent h6 a,
306 #xwikicontent .box-title a,
307 #xwikicontent [role="heading"] a{
308 text-align:left!important;
309 text-justify:auto!important;
310 word-spacing:normal!important;
311 }
312
Veronika Kocher 4.11 313 /* =========================================================
314 COMING SOON / IN VORBEREITUNG
315 ========================================================= */
316 .sn-coming-soon-badge{
317 display:inline-block;
318 vertical-align:middle;
319 margin-left:10px;
320 padding:4px 8px;
321 border-radius:14px;
322 border:1px solid #efd9cc;
323 background:#fff4ee;
324 color:#8a4d36;
325 font-size:11px;
326 font-weight:700;
327 letter-spacing:.055em;
328 line-height:1.2;
329 white-space:nowrap;
330 }
331
332 /* =========================================================
333 NATIVE / DETAIL CALLOUT GEOMETRY
334 Preserve existing backgrounds.
335 ========================================================= */
336 #xwikicontent .arsn-info,
337 #xwikicontent .dmp-info,
338 #xwikicontent .ido-info,
339 #xwikicontent .pp-info,
340 #xwikicontent .infomessage{
Veronika Kocher 4.10 341 box-sizing:border-box!important;
Veronika Kocher 4.11 342 border-left:4px solid #21b6d7!important;
343 border-radius:8px;
Veronika Kocher 4.10 344 text-align:left!important;
345 word-spacing:normal!important;
346 }
347
Veronika Kocher 4.11 348 #xwikicontent .arsn-warn,
349 #xwikicontent .dmp-warn,
350 #xwikicontent .ido-warn,
351 #xwikicontent .pp-warn,
352 #xwikicontent .warn,
353 #xwikicontent .warning,
354 #xwikicontent .warningmessage,
Veronika Kocher 4.10 355 #xwikicontent .errormessage{
Veronika Kocher 4.11 356 box-sizing:border-box!important;
357 border-left:4px solid #e94b13!important;
358 border-radius:8px;
359 text-align:left!important;
360 word-spacing:normal!important;
Veronika Kocher 4.10 361 }
362
Veronika Kocher 4.11 363 [data-sn-master-equal-height],
364 [data-sn-master-first-row]{
Veronika Kocher 4.9 365 box-sizing:border-box;
Veronika Kocher 4.8 366 }
Veronika Kocher 4.12 367
368 /* =========================================================
369 FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS
370 ========================================================= */
371 #xwikicontent .arsn-area-label[data-sn-three-line="1"]{
372 display:grid!important;
373 grid-template-columns:minmax(0,1fr)!important;
374 grid-auto-rows:auto!important;
375 width:100%!important;
376 max-width:none!important;
377 box-sizing:border-box!important;
378 justify-items:start!important;
379 align-items:start!important;
380 gap:2px!important;
381 text-align:left!important;
382 text-align-last:left!important;
383 text-justify:auto!important;
384 word-spacing:normal!important;
385 white-space:normal!important;
386 }
387 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number,
388 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title,
389 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{
390 display:block!important;
391 width:100%!important;
392 margin:0!important;
393 text-align:left!important;
394 text-align-last:left!important;
395 text-justify:auto!important;
396 word-spacing:normal!important;
397 white-space:normal!important;
398 }
Veronika Kocher 4.8 399 </style>
Veronika Kocher 4.10 400
Veronika Kocher 4.11 401 <script data-sn-service-navigator-master="1">
Veronika Kocher 4.8 402 (function(){
403 "use strict";
404
Veronika Kocher 4.11 405 var PAGE_KIND="detail";
406 var PLACEHOLDER=false;
Veronika Kocher 4.15 407 var PLACEHOLDER_LABEL="IN VORBEREITUNG";
Veronika Kocher 4.11 408
Veronika Kocher 4.8 409 var MOBILE_MAX=767;
Veronika Kocher 4.9 410 var ROW_TOLERANCE=6;
Veronika Kocher 4.10 411 var RESIZE_DEBOUNCE=220;
Veronika Kocher 4.8 412
413 var root=
414 document.getElementById("xwikicontent")||
415 document.querySelector(".xwiki-rendering-content")||
416 document.querySelector("main")||
417 document.body;
418
419 if(!root)return;
420
Veronika Kocher 4.11 421 var managedHeight=new Set();
422 var managedMargin=new Set();
423 var originalHeight=new WeakMap();
424 var originalMargin=new WeakMap();
Veronika Kocher 4.10 425
426 var resizeTimer=0;
Veronika Kocher 4.11 427 var running=false;
Veronika Kocher 4.10 428
Veronika Kocher 4.11 429 var THEMES=[
430 {
431 name:"BLUE",
432 accent:"#21b6d7",
433 bg:"#eaf7fb",
434 text:"#315d68",
435 labels:[
436 "HIER STARTEN",
437 "ENTSCHEIDEN",
438 "ÜBERPRÜFEN & ANPASSEN",
439 "START HERE",
440 "DECIDE",
441 "REVIEW & ADAPT"
442 ]
443 },
444 {
445 name:"RED",
446 accent:"#e94b13",
447 bg:"#fff1ec",
448 text:"#8a4d36",
449 labels:[
450 "PLANEN & ORGANISIEREN",
451 "ORGANISIEREN & DOKUMENTIEREN",
452 "PUBLIZIEREN & PRÄSENTIEREN",
453 "PLAN & ORGANISE",
454 "PLAN & ORGANIZE",
455 "ORGANISE & DOCUMENT",
456 "ORGANIZE & DOCUMENT",
457 "PUBLISH & PRESENT"
458 ]
459 },
460 {
461 name:"YELLOW",
462 accent:"#f0aa00",
463 bg:"#fff8e7",
464 text:"#785b17",
465 labels:[
466 "SCHÜTZEN & KLÄREN",
467 "STANDARDISIEREN & IDENTIFIZIEREN",
468 "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN",
469 "PROTECT & CLARIFY",
470 "STANDARDISE & IDENTIFY",
471 "STANDARDIZE & IDENTIFY",
472 "OPEN, REUSE & MAKE FINDABLE"
473 ]
474 },
475 {
476 name:"GREEN",
477 accent:"#38b76a",
478 bg:"#edf9f1",
479 text:"#3f7451",
480 labels:[
481 "INFRASTRUKTUR EINRICHTEN",
482 "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN",
483 "SPEICHERN & ZUGRIFF STEUERN",
484 "REPOSITORIUM, ERHALTEN & ÜBERGEBEN",
485 "SET UP INFRASTRUCTURE",
486 "SET UP INFRASTRUCTURE & COLLABORATION",
487 "STORE & CONTROL ACCESS",
488 "REPOSITORY, PRESERVE & HAND OVER"
489 ]
Veronika Kocher 4.9 490 }
Veronika Kocher 4.11 491 ];
Veronika Kocher 4.9 492
Veronika Kocher 4.11 493 function num(value){
494 var n=parseFloat(value);
495 return Number.isFinite(n)?n:0;
Veronika Kocher 4.8 496 }
497
Veronika Kocher 4.11 498 function norm(value){
499 return String(value||"")
Veronika Kocher 4.10 500 .replace(/\s+/g," ")
501 .trim()
502 .toUpperCase();
503 }
504
Veronika Kocher 4.11 505 function visible(el){
506 if(!el||el.nodeType!==1)return false;
Veronika Kocher 4.8 507
Veronika Kocher 4.11 508 var style=getComputedStyle(el);
509 var rect=el.getBoundingClientRect();
Veronika Kocher 4.10 510
511 return (
Veronika Kocher 4.11 512 style.display!=="none"&&
513 style.visibility!=="hidden"&&
514 rect.width>20&&
515 rect.height>4
Veronika Kocher 4.10 516 );
Veronika Kocher 4.8 517 }
518
Veronika Kocher 4.11 519 function saveStyle(el,map,property){
Veronika Kocher 4.9 520 if(map.has(el))return;
521
522 map.set(el,{
Veronika Kocher 4.11 523 value:el.style.getPropertyValue(property),
524 priority:el.style.getPropertyPriority(property)
Veronika Kocher 4.9 525 });
526 }
527
Veronika Kocher 4.11 528 function restoreStyle(el,map,property){
Veronika Kocher 4.9 529 var original=map.get(el);
530
531 if(original&&original.value){
532 el.style.setProperty(
533 property,
534 original.value,
535 original.priority||""
536 );
537 }else{
Veronika Kocher 4.11 538 el.style.removeProperty(property);
Veronika Kocher 4.9 539 }
540 }
541
Veronika Kocher 4.10 542 function resetRuntime(){
Veronika Kocher 4.11 543 managedHeight.forEach(function(el){
544 restoreStyle(
Veronika Kocher 4.9 545 el,
Veronika Kocher 4.11 546 originalHeight,
Veronika Kocher 4.9 547 "min-height"
548 );
549 el.removeAttribute(
Veronika Kocher 4.11 550 "data-sn-master-equal-height"
Veronika Kocher 4.9 551 );
552 });
553
Veronika Kocher 4.11 554 managedMargin.forEach(function(el){
555 restoreStyle(
Veronika Kocher 4.9 556 el,
Veronika Kocher 4.11 557 originalMargin,
Veronika Kocher 4.9 558 "margin-top"
559 );
560 el.removeAttribute(
Veronika Kocher 4.11 561 "data-sn-master-first-row"
Veronika Kocher 4.9 562 );
563 });
564
Veronika Kocher 4.11 565 managedHeight.clear();
566 managedMargin.clear();
567 }
Veronika Kocher 4.10 568
Veronika Kocher 4.11 569 function themeFor(text){
570 var value=norm(text);
Veronika Kocher 4.10 571
Veronika Kocher 4.11 572 for(var i=0;i<THEMES.length;i++){
573 for(var j=0;j<THEMES[i].labels.length;j++){
574 var label=THEMES[i].labels[j];
575
576 if(
577 value===label||
578 value.indexOf(label+" ")===0||
579 value.indexOf(label+" -")===0||
580 value.indexOf(label+" ·")===0
581 ){
582 return THEMES[i];
583 }
584 }
585 }
586
587 return null;
Veronika Kocher 4.9 588 }
589
Veronika Kocher 4.11 590 /* =======================================================
Veronika Kocher 4.12 591 BORDERLESS FILLED RED/ORANGE CTA BUTTONS
592 ======================================================= */
593
594 function colourDistance(a,b){
595 return Math.sqrt(
596 Math.pow(a[0]-b[0],2)+
597 Math.pow(a[1]-b[1],2)+
598 Math.pow(a[2]-b[2],2)
599 );
600 }
601
602 function makeFilledRedOrangeCTAsBorderless(){
603 var RED_ORANGE=[233,75,19];
604
605 Array.from(
606 root.querySelectorAll(
607 'a,button,[role="button"],input[type="submit"],input[type="button"]'
608 )
609 ).forEach(function(el){
610 if(!visible(el))return;
611
612 var style=getComputedStyle(el);
613 var rgb=parseRGB(style.backgroundColor);
614
615 if(!rgb)return;
616
617 if(
618 colourDistance(
619 rgb,
620 RED_ORANGE
621 )>55
622 ){
623 return;
624 }
625
626 var rect=el.getBoundingClientRect();
627
628 if(
629 rect.width<80||
630 rect.height<24
631 ){
632 return;
633 }
634
635 el.style.setProperty(
636 "border",
637 "none",
638 "important"
639 );
640
641 el.style.setProperty(
642 "border-left",
643 "none",
644 "important"
645 );
646
647 el.style.setProperty(
648 "border-top",
649 "none",
650 "important"
651 );
652
653 el.style.setProperty(
654 "border-right",
655 "none",
656 "important"
657 );
658
659 el.style.setProperty(
660 "border-bottom",
661 "none",
662 "important"
663 );
664
665 el.style.setProperty(
666 "box-shadow",
667 "none",
668 "important"
669 );
670 });
671 }
672
673 /* =======================================================
674 FULL-WIDTH THREE-LINE AREA LABELS
675 ======================================================= */
676
677 function compactText(value){
678 return String(value||"")
679 .replace(/\s+/g," ")
680 .trim();
681 }
682
683 function makeThreeLineAreaLabels(){
684 Array.from(
685 root.querySelectorAll(
686 ".arsn-area-label"
687 )
688 ).forEach(function(label){
689 if(
690 label.getAttribute(
691 "data-sn-three-line"
692 )==="1"
693 ){
694 return;
695 }
696
697 var number=
698 label.querySelector(
699 ":scope > .arsn-area-number"
700 );
701
702 var action=
703 label.querySelector(
704 ":scope > .arsn-area-action"
705 );
706
707 if(
708 !number||
709 !action
710 ){
711 return;
712 }
713
714 var clone=
715 label.cloneNode(true);
716
717 var cloneNumber=
718 clone.querySelector(
719 ":scope > .arsn-area-number"
720 );
721
722 var cloneAction=
723 clone.querySelector(
724 ":scope > .arsn-area-action"
725 );
726
727 if(cloneNumber){
728 cloneNumber.remove();
729 }
730
731 if(cloneAction){
732 cloneAction.remove();
733 }
734
735 var titleText=
736 compactText(
737 clone.textContent
738 );
739
740 if(!titleText){
741 return;
742 }
743
744 var numberNode=
745 number.cloneNode(true);
746
747 var actionNode=
748 action.cloneNode(true);
749
750 var titleNode=
751 document.createElement(
752 "span"
753 );
754
755 titleNode.className=
756 "sn-area-label-title";
757
758 titleNode.textContent=
759 titleText;
760
761 while(label.firstChild){
762 label.removeChild(
763 label.firstChild
764 );
765 }
766
767 label.appendChild(
768 numberNode
769 );
770
771 label.appendChild(
772 titleNode
773 );
774
775 label.appendChild(
776 actionNode
777 );
778
779 label.setAttribute(
780 "data-sn-three-line",
781 "1"
782 );
783
784 var head=
785 label.closest(
786 ".arsn-area-head"
787 );
788
789 if(head){
790 head.style.setProperty(
791 "width",
792 "100%",
793 "important"
794 );
795
796 head.style.setProperty(
797 "max-width",
798 "100%",
799 "important"
800 );
801
802 head.style.setProperty(
803 "box-sizing",
804 "border-box",
805 "important"
806 );
807 }
808 });
809 }
810
811 /* =======================================================
Veronika Kocher 4.11 812 PLACEHOLDER BADGE
813 ======================================================= */
Veronika Kocher 4.10 814
Veronika Kocher 4.11 815 function applyPlaceholderBadge(){
816 if(!PLACEHOLDER)return;
Veronika Kocher 4.10 817
818 if(
Veronika Kocher 4.11 819 document.querySelector(
820 ".sn-coming-soon-badge"
821 )
Veronika Kocher 4.10 822 ){
Veronika Kocher 4.11 823 return;
Veronika Kocher 4.10 824 }
825
Veronika Kocher 4.11 826 var title=
827 document.querySelector(
828 "#document-title"
829 )||
830 document.querySelector(
831 "h1"
832 );
Veronika Kocher 4.10 833
Veronika Kocher 4.11 834 if(!title)return;
Veronika Kocher 4.10 835
Veronika Kocher 4.11 836 var badge=
837 document.createElement(
838 "span"
839 );
840
841 badge.className=
842 "sn-coming-soon-badge";
843
844 badge.textContent=
845 PLACEHOLDER_LABEL;
846
847 badge.setAttribute(
848 "aria-label",
849 PLACEHOLDER_LABEL
Veronika Kocher 4.10 850 );
851
Veronika Kocher 4.11 852 title.appendChild(
853 badge
854 );
855 }
Veronika Kocher 4.10 856
Veronika Kocher 4.11 857 /* =======================================================
858 DETAIL PAGE OWN-ACCENT PROPAGATION
859 ======================================================= */
Veronika Kocher 4.10 860
Veronika Kocher 4.11 861 function parseRGB(value){
862 var match=String(value||"").match(
863 /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i
Veronika Kocher 4.10 864 );
Veronika Kocher 4.11 865
866 if(!match)return null;
867
868 return [
869 Number(match[1]),
870 Number(match[2]),
871 Number(match[3])
872 ];
Veronika Kocher 4.10 873 }
874
Veronika Kocher 4.11 875 function distance(a,b){
876 return Math.sqrt(
877 Math.pow(a[0]-b[0],2)+
878 Math.pow(a[1]-b[1],2)+
879 Math.pow(a[2]-b[2],2)
880 );
881 }
Veronika Kocher 4.8 882
Veronika Kocher 4.11 883 function paletteMatch(cssColor){
884 var rgb=parseRGB(cssColor);
Veronika Kocher 4.9 885
Veronika Kocher 4.11 886 if(!rgb)return null;
Veronika Kocher 4.9 887
Veronika Kocher 4.11 888 var palette=[
889 {hex:"#21b6d7",rgb:[33,182,215]},
890 {hex:"#e94b13",rgb:[233,75,19]},
891 {hex:"#f0aa00",rgb:[240,170,0]},
892 {hex:"#38b76a",rgb:[56,183,106]}
893 ];
Veronika Kocher 4.8 894
Veronika Kocher 4.9 895 var best=null;
Veronika Kocher 4.11 896 var bestDistance=Infinity;
Veronika Kocher 4.8 897
Veronika Kocher 4.11 898 palette.forEach(function(item){
899 var d=distance(rgb,item.rgb);
Veronika Kocher 4.8 900
Veronika Kocher 4.11 901 if(d<bestDistance){
902 best=item;
903 bestDistance=d;
904 }
905 });
Veronika Kocher 4.9 906
Veronika Kocher 4.11 907 return bestDistance<=30
908 ?best
909 :null;
910 }
Veronika Kocher 4.8 911
Veronika Kocher 4.11 912 function propagateDetailAccents(){
913 if(PAGE_KIND!=="detail")return;
914
915 Array.from(
916 root.querySelectorAll(
917 ".arsn-call,.dmp-call,.ido-call,.pp-call,"+
918 ".arsn-source,.dmp-source,.ido-source,.pp-source"
919 )
920 ).forEach(function(el){
921 if(!visible(el))return;
922
923 var style=getComputedStyle(el);
924
Veronika Kocher 4.9 925 if(
Veronika Kocher 4.11 926 num(style.borderTopWidth)>=2
Veronika Kocher 4.9 927 ){
Veronika Kocher 4.11 928 var match=
929 paletteMatch(
930 style.borderTopColor
Veronika Kocher 4.9 931 );
932
Veronika Kocher 4.11 933 if(match){
934 el.style.setProperty(
935 "border-left",
936 "4px solid "+match.hex,
937 "important"
Veronika Kocher 4.9 938 );
Veronika Kocher 4.8 939 }
940 }
Veronika Kocher 4.11 941 });
Veronika Kocher 4.8 942
Veronika Kocher 4.11 943 // Warning families: explicit safety override.
944 Array.from(
945 root.querySelectorAll(
946 ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+
947 ".warn,.warning,.warningmessage,.errormessage"
948 )
949 ).forEach(function(el){
950 if(!visible(el))return;
Veronika Kocher 4.8 951
Veronika Kocher 4.11 952 el.style.setProperty(
953 "border-left",
954 "4px solid #e94b13",
955 "important"
956 );
957 });
Veronika Kocher 4.8 958
Veronika Kocher 4.11 959 // Info families: explicit orientation override.
960 Array.from(
961 root.querySelectorAll(
962 ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage"
963 )
964 ).forEach(function(el){
965 if(!visible(el))return;
Veronika Kocher 4.9 966
Veronika Kocher 4.11 967 el.style.setProperty(
968 "border-left",
969 "4px solid #21b6d7",
970 "important"
971 );
972 });
973 }
Veronika Kocher 4.9 974
Veronika Kocher 4.11 975 /* =======================================================
976 OVERVIEW SEMANTIC THEME PALETTE
977 ======================================================= */
Veronika Kocher 4.9 978
Veronika Kocher 4.11 979 function smallestThemeHeaders(){
980 return Array.from(
981 root.querySelectorAll(
982 "div,span,p,strong,h3,h4,h5,h6"
983 )
984 ).filter(function(el){
985 if(!visible(el))return false;
986 if(!themeFor(el.textContent))return false;
Veronika Kocher 4.9 987
Veronika Kocher 4.11 988 return !Array.from(
989 el.children||[]
990 ).some(function(child){
991 return !!themeFor(
992 child.textContent
993 );
Veronika Kocher 4.9 994 });
Veronika Kocher 4.11 995 });
Veronika Kocher 4.8 996 }
997
Veronika Kocher 4.11 998 function findOverviewCard(header){
999 var node=header.parentElement;
1000 var candidates=[];
Veronika Kocher 4.9 1001
Veronika Kocher 4.11 1002 while(node&&node!==root){
1003 var rect=node.getBoundingClientRect();
1004 var style=getComputedStyle(node);
Veronika Kocher 4.9 1005
Veronika Kocher 4.11 1006 var border=
1007 num(style.borderTopWidth)+
1008 num(style.borderRightWidth)+
1009 num(style.borderBottomWidth)+
1010 num(style.borderLeftWidth);
Veronika Kocher 4.9 1011
Veronika Kocher 4.11 1012 if(
1013 rect.width>=220&&
1014 rect.width<=800&&
1015 rect.height>=120&&
1016 border>=1
1017 ){
1018 candidates.push(node);
1019 }
Veronika Kocher 4.9 1020
Veronika Kocher 4.11 1021 node=node.parentElement;
1022 }
Veronika Kocher 4.9 1023
Veronika Kocher 4.11 1024 if(!candidates.length)return null;
Veronika Kocher 4.9 1025
Veronika Kocher 4.11 1026 candidates.sort(function(a,b){
1027 return (
1028 b.getBoundingClientRect().height-
1029 a.getBoundingClientRect().height
Veronika Kocher 4.10 1030 );
Veronika Kocher 4.11 1031 });
Veronika Kocher 4.9 1032
Veronika Kocher 4.11 1033 return candidates[0];
Veronika Kocher 4.9 1034 }
1035
Veronika Kocher 4.11 1036 function rowCandidates(link,card){
1037 var result=[];
Veronika Kocher 4.10 1038 var cardRect=
1039 card.getBoundingClientRect();
Veronika Kocher 4.9 1040
Veronika Kocher 4.11 1041 var node=link;
Veronika Kocher 4.9 1042
Veronika Kocher 4.11 1043 while(node&&node!==card){
1044 if(visible(node)){
1045 var rect=
1046 node.getBoundingClientRect();
Veronika Kocher 4.9 1047
Veronika Kocher 4.11 1048 if(
1049 rect.height<=105&&
1050 rect.width>=
1051 cardRect.width*.50&&
1052 rect.width<=
1053 cardRect.width*1.03
1054 ){
1055 result.push(node);
1056 }
1057 }
Veronika Kocher 4.9 1058
Veronika Kocher 4.11 1059 node=node.parentElement;
1060 }
1061
1062 return result;
1063 }
1064
1065 function chooseOuterRow(
1066 candidates,
1067 link
1068 ){
1069 if(!candidates.length){
1070 return link;
1071 }
1072
1073 var bordered=
1074 candidates.filter(function(el){
Veronika Kocher 4.10 1075 return (
Veronika Kocher 4.11 1076 num(
1077 getComputedStyle(el)
1078 .borderLeftWidth
1079 )>=1
Veronika Kocher 4.10 1080 );
1081 });
Veronika Kocher 4.9 1082
Veronika Kocher 4.11 1083 var pool=
1084 bordered.length
1085 ?bordered
1086 :candidates;
Veronika Kocher 4.9 1087
Veronika Kocher 4.11 1088 pool.sort(function(a,b){
1089 var ar=
1090 a.getBoundingClientRect();
Veronika Kocher 4.9 1091
Veronika Kocher 4.11 1092 var br=
1093 b.getBoundingClientRect();
Veronika Kocher 4.9 1094
Veronika Kocher 4.11 1095 return (
1096 ar.left-br.left||
1097 br.width-ar.width
1098 );
1099 });
Veronika Kocher 4.9 1100
Veronika Kocher 4.11 1101 return pool[0]||link;
1102 }
Veronika Kocher 4.9 1103
Veronika Kocher 4.11 1104 function applyOverviewPalette(){
1105 if(PAGE_KIND!=="overview"){
1106 return [];
Veronika Kocher 4.10 1107 }
Veronika Kocher 4.9 1108
Veronika Kocher 4.11 1109 var headers=
1110 smallestThemeHeaders()
1111 .map(function(el){
1112 return {
1113 el:el,
1114 theme:
1115 themeFor(
1116 el.textContent
1117 ),
1118 card:
1119 findOverviewCard(
1120 el
1121 )
1122 };
Veronika Kocher 4.10 1123 })
Veronika Kocher 4.11 1124 .filter(function(row){
1125 return !!row.card;
1126 });
Veronika Kocher 4.9 1127
Veronika Kocher 4.11 1128 var unique=[];
1129 var seenHeaders=new Set();
Veronika Kocher 4.9 1130
Veronika Kocher 4.11 1131 headers.forEach(function(row){
1132 var key=
1133 row.theme.name+
1134 "|"+
1135 Math.round(
1136 row.card
1137 .getBoundingClientRect()
1138 .left
1139 )+
1140 "|"+
1141 Math.round(
1142 row.el
1143 .getBoundingClientRect()
1144 .top
1145 );
Veronika Kocher 4.9 1146
Veronika Kocher 4.11 1147 if(!seenHeaders.has(key)){
1148 seenHeaders.add(key);
1149 unique.push(row);
1150 }
1151 });
Veronika Kocher 4.9 1152
Veronika Kocher 4.11 1153 unique.forEach(function(row){
1154 var headerRect=
1155 row.el
1156 .getBoundingClientRect();
Veronika Kocher 4.9 1157
Veronika Kocher 4.11 1158 row.el.style.setProperty(
1159 "background",
1160 row.theme.bg,
1161 "important"
Veronika Kocher 4.10 1162 );
1163
Veronika Kocher 4.11 1164 row.el.style.setProperty(
1165 "color",
1166 row.theme.text,
1167 "important"
Veronika Kocher 4.10 1168 );
1169
Veronika Kocher 4.11 1170 row.el.style.setProperty(
1171 "text-align",
1172 "left",
1173 "important"
Veronika Kocher 4.10 1174 );
Veronika Kocher 4.9 1175
Veronika Kocher 4.11 1176 row.el.style.setProperty(
1177 "word-spacing",
1178 "normal",
1179 "important"
1180 );
Veronika Kocher 4.10 1181
Veronika Kocher 4.11 1182 var later=
1183 unique
1184 .filter(function(other){
1185 return (
1186 other.card===row.card&&
1187 other.el
1188 .getBoundingClientRect()
1189 .top>
1190 headerRect.top+2
1191 );
1192 })
1193 .sort(function(a,b){
1194 return (
1195 a.el
1196 .getBoundingClientRect()
1197 .top-
1198 b.el
1199 .getBoundingClientRect()
1200 .top
1201 );
1202 });
Veronika Kocher 4.10 1203
Veronika Kocher 4.11 1204 var stopTop=
1205 later.length
1206 ?later[0].el
1207 .getBoundingClientRect()
1208 .top
1209 :Infinity;
Veronika Kocher 4.10 1210
1211 Array.from(
Veronika Kocher 4.11 1212 row.card.querySelectorAll("a")
1213 ).forEach(function(link){
1214 if(!visible(link))return;
Veronika Kocher 4.10 1215
Veronika Kocher 4.11 1216 var rect=
1217 link.getBoundingClientRect();
Veronika Kocher 4.10 1218
Veronika Kocher 4.11 1219 if(
1220 rect.top<=
1221 headerRect.bottom-2||
1222 rect.top>=
1223 stopTop-2
1224 ){
1225 return;
1226 }
Veronika Kocher 4.10 1227
Veronika Kocher 4.11 1228 var candidates=
1229 rowCandidates(
1230 link,
1231 row.card
1232 );
1233
1234 var target=
1235 chooseOuterRow(
1236 candidates,
1237 link
1238 );
1239
1240 candidates.forEach(function(el){
1241 el.style.setProperty(
1242 "border-left",
1243 "0 solid transparent",
1244 "important"
1245 );
1246 });
1247
1248 target.style.setProperty(
1249 "border-left",
1250 "3px solid "+
1251 row.theme.accent,
1252 "important"
Veronika Kocher 4.10 1253 );
Veronika Kocher 4.11 1254
1255 target.style.setProperty(
1256 "box-sizing",
1257 "border-box",
1258 "important"
Veronika Kocher 4.10 1259 );
Veronika Kocher 4.9 1260 });
Veronika Kocher 4.11 1261 });
Veronika Kocher 4.9 1262
Veronika Kocher 4.11 1263 return unique;
Veronika Kocher 4.10 1264 }
Veronika Kocher 4.9 1265
Veronika Kocher 4.11 1266 /* =======================================================
1267 OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW
1268 ======================================================= */
Veronika Kocher 4.10 1269
Veronika Kocher 4.11 1270 function alignOverviewCards(headers){
1271 if(
1272 PAGE_KIND!=="overview"||
1273 window.innerWidth<=MOBILE_MAX
1274 ){
1275 return;
1276 }
Veronika Kocher 4.10 1277
Veronika Kocher 4.11 1278 var cards=[];
1279 var seen=new Set();
Veronika Kocher 4.10 1280
Veronika Kocher 4.11 1281 headers.forEach(function(row){
1282 if(!seen.has(row.card)){
1283 seen.add(row.card);
1284 cards.push(row.card);
1285 }
1286 });
Veronika Kocher 4.10 1287
Veronika Kocher 4.11 1288 if(cards.length<2){
1289 return;
1290 }
Veronika Kocher 4.10 1291
Veronika Kocher 4.11 1292 // Group cards by actual top position.
1293 var groups=[];
Veronika Kocher 4.10 1294
Veronika Kocher 4.11 1295 cards.forEach(function(card){
1296 var top=
1297 card.getBoundingClientRect().top;
Veronika Kocher 4.10 1298
Veronika Kocher 4.11 1299 var group=null;
Veronika Kocher 4.10 1300
Veronika Kocher 4.11 1301 for(var i=0;i<groups.length;i++){
Veronika Kocher 4.10 1302 if(
Veronika Kocher 4.11 1303 Math.abs(
1304 groups[i].top-top
1305 )<=ROW_TOLERANCE
Veronika Kocher 4.10 1306 ){
Veronika Kocher 4.11 1307 group=groups[i];
1308 break;
Veronika Kocher 4.10 1309 }
Veronika Kocher 4.11 1310 }
Veronika Kocher 4.10 1311
Veronika Kocher 4.11 1312 if(!group){
1313 group={
1314 top:top,
1315 cards:[]
1316 };
1317 groups.push(group);
1318 }
Veronika Kocher 4.10 1319
Veronika Kocher 4.11 1320 group.cards.push(card);
1321 });
Veronika Kocher 4.10 1322
Veronika Kocher 4.11 1323 groups.forEach(function(group){
1324 if(group.cards.length<2){
1325 return;
1326 }
Veronika Kocher 4.10 1327
Veronika Kocher 4.11 1328 var firstHeaders=
1329 group.cards.map(function(card){
1330 var candidates=
1331 headers
1332 .filter(function(row){
1333 return row.card===card;
1334 })
1335 .sort(function(a,b){
1336 return (
1337 a.el
1338 .getBoundingClientRect()
1339 .top-
1340 b.el
1341 .getBoundingClientRect()
1342 .top
1343 );
1344 });
Veronika Kocher 4.10 1345
Veronika Kocher 4.11 1346 return candidates.length
1347 ?candidates[0]
1348 :null;
1349 });
Veronika Kocher 4.10 1350
Veronika Kocher 4.11 1351 if(
1352 !firstHeaders.some(function(row){
1353 return !row;
1354 })
1355 ){
1356 var targetTop=
1357 Math.max.apply(
1358 Math,
1359 firstHeaders.map(function(row){
1360 return (
1361 row.el
1362 .getBoundingClientRect()
1363 .top-
1364 row.card
1365 .getBoundingClientRect()
1366 .top
1367 );
1368 })
1369 );
Veronika Kocher 4.8 1370
Veronika Kocher 4.11 1371 firstHeaders.forEach(function(row){
1372 var relativeTop=
1373 row.el
1374 .getBoundingClientRect()
1375 .top-
1376 row.card
1377 .getBoundingClientRect()
1378 .top;
Veronika Kocher 4.9 1379
Veronika Kocher 4.11 1380 var delta=
1381 targetTop-relativeTop;
Veronika Kocher 4.9 1382
Veronika Kocher 4.11 1383 if(delta>1){
1384 saveStyle(
1385 row.el,
1386 originalMargin,
1387 "margin-top"
1388 );
Veronika Kocher 4.10 1389
Veronika Kocher 4.11 1390 var current=
1391 num(
1392 getComputedStyle(
1393 row.el
1394 ).marginTop
1395 );
Veronika Kocher 4.9 1396
Veronika Kocher 4.11 1397 row.el.style.setProperty(
1398 "margin-top",
1399 (
1400 current+delta
1401 )+"px"
1402 );
Veronika Kocher 4.9 1403
Veronika Kocher 4.11 1404 row.el.setAttribute(
1405 "data-sn-master-first-row",
1406 "1"
1407 );
Veronika Kocher 4.9 1408
Veronika Kocher 4.11 1409 managedMargin.add(
1410 row.el
1411 );
1412 }
1413 });
1414 }
Veronika Kocher 4.9 1415
Veronika Kocher 4.11 1416 var maxHeight=0;
Veronika Kocher 4.9 1417
Veronika Kocher 4.11 1418 group.cards.forEach(function(card){
1419 maxHeight=
1420 Math.max(
1421 maxHeight,
1422 card
1423 .getBoundingClientRect()
1424 .height
1425 );
1426 });
Veronika Kocher 4.9 1427
Veronika Kocher 4.11 1428 maxHeight=
1429 Math.ceil(maxHeight);
Veronika Kocher 4.9 1430
Veronika Kocher 4.11 1431 group.cards.forEach(function(card){
1432 saveStyle(
1433 card,
1434 originalHeight,
1435 "min-height"
1436 );
Veronika Kocher 4.9 1437
Veronika Kocher 4.11 1438 card.style.setProperty(
1439 "min-height",
1440 maxHeight+"px"
Veronika Kocher 4.9 1441 );
1442
Veronika Kocher 4.11 1443 card.setAttribute(
1444 "data-sn-master-equal-height",
1445 "1"
1446 );
Veronika Kocher 4.9 1447
Veronika Kocher 4.11 1448 managedHeight.add(
1449 card
1450 );
1451 });
Veronika Kocher 4.9 1452 });
1453 }
1454
Veronika Kocher 4.11 1455 /* =======================================================
1456 DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY
1457 ======================================================= */
Veronika Kocher 4.9 1458
Veronika Kocher 4.11 1459 function equaliseDetailGrids(){
Veronika Kocher 4.10 1460 if(
Veronika Kocher 4.11 1461 PAGE_KIND!=="detail"||
1462 window.innerWidth<=MOBILE_MAX
Veronika Kocher 4.10 1463 ){
Veronika Kocher 4.11 1464 return;
Veronika Kocher 4.10 1465 }
Veronika Kocher 4.9 1466
Veronika Kocher 4.11 1467 var selectors=[
1468 ".arsn-grid",
1469 ".arsn-grid-2",
1470 ".arsn-grid-3",
1471 ".dmp-grid",
1472 ".ido-grid",
1473 ".pp-grid"
1474 ];
Veronika Kocher 4.9 1475
Veronika Kocher 4.11 1476 selectors.forEach(function(selector){
1477 Array.from(
1478 root.querySelectorAll(selector)
1479 ).forEach(function(grid){
1480 var children=
1481 Array.from(
1482 grid.children||[]
1483 ).filter(visible);
Veronika Kocher 4.9 1484
Veronika Kocher 4.11 1485 if(children.length<2){
1486 return;
1487 }
Veronika Kocher 4.9 1488
Veronika Kocher 4.11 1489 var groups=[];
Veronika Kocher 4.9 1490
Veronika Kocher 4.11 1491 children.forEach(function(child){
1492 var top=
1493 child
1494 .getBoundingClientRect()
1495 .top;
Veronika Kocher 4.9 1496
Veronika Kocher 4.11 1497 var group=null;
Veronika Kocher 4.9 1498
Veronika Kocher 4.11 1499 for(var i=0;i<groups.length;i++){
1500 if(
1501 Math.abs(
1502 groups[i].top-top
1503 )<=ROW_TOLERANCE
1504 ){
1505 group=groups[i];
1506 break;
1507 }
1508 }
Veronika Kocher 4.9 1509
Veronika Kocher 4.11 1510 if(!group){
1511 group={
1512 top:top,
1513 items:[]
1514 };
1515 groups.push(group);
1516 }
Veronika Kocher 4.9 1517
Veronika Kocher 4.11 1518 group.items.push(child);
1519 });
Veronika Kocher 4.9 1520
Veronika Kocher 4.11 1521 groups.forEach(function(group){
1522 if(group.items.length<2){
1523 return;
1524 }
Veronika Kocher 4.8 1525
Veronika Kocher 4.11 1526 var maxHeight=0;
Veronika Kocher 4.10 1527
Veronika Kocher 4.11 1528 group.items.forEach(function(item){
1529 maxHeight=
1530 Math.max(
1531 maxHeight,
1532 item
1533 .getBoundingClientRect()
1534 .height
1535 );
1536 });
Veronika Kocher 4.10 1537
Veronika Kocher 4.11 1538 maxHeight=
1539 Math.ceil(maxHeight);
Veronika Kocher 4.8 1540
Veronika Kocher 4.11 1541 group.items.forEach(function(item){
1542 saveStyle(
1543 item,
1544 originalHeight,
1545 "min-height"
1546 );
Veronika Kocher 4.8 1547
Veronika Kocher 4.11 1548 item.style.setProperty(
1549 "min-height",
1550 maxHeight+"px"
1551 );
Veronika Kocher 4.9 1552
Veronika Kocher 4.11 1553 item.setAttribute(
1554 "data-sn-master-equal-height",
1555 "1"
1556 );
Veronika Kocher 4.8 1557
Veronika Kocher 4.11 1558 managedHeight.add(item);
1559 });
Veronika Kocher 4.8 1560 });
Veronika Kocher 4.11 1561 });
1562 });
1563 }
Veronika Kocher 4.8 1564
Veronika Kocher 4.11 1565 /* =======================================================
1566 RUN / RESPONSIVE SCHEDULING
1567 ======================================================= */
Veronika Kocher 4.8 1568
Veronika Kocher 4.11 1569 function run(){
1570 if(running)return;
Veronika Kocher 4.8 1571
Veronika Kocher 4.11 1572 running=true;
Veronika Kocher 4.10 1573
Veronika Kocher 4.11 1574 try{
1575 resetRuntime();
1576 applyPlaceholderBadge();
1577 propagateDetailAccents();
Veronika Kocher 4.10 1578
Veronika Kocher 4.11 1579 var headers=
1580 applyOverviewPalette();
Veronika Kocher 4.10 1581
Veronika Kocher 4.12 1582 makeThreeLineAreaLabels();
1583 makeFilledRedOrangeCTAsBorderless();
1584
Veronika Kocher 4.11 1585 if(
1586 window.innerWidth>
1587 MOBILE_MAX
1588 ){
1589 alignOverviewCards(
1590 headers
1591 );
Veronika Kocher 4.8 1592
Veronika Kocher 4.11 1593 equaliseDetailGrids();
1594 }
Veronika Kocher 4.10 1595 }finally{
Veronika Kocher 4.11 1596 running=false;
Veronika Kocher 4.10 1597 }
Veronika Kocher 4.8 1598 }
1599
Veronika Kocher 4.11 1600 function onResize(){
Veronika Kocher 4.10 1601 if(resizeTimer){
1602 clearTimeout(
1603 resizeTimer
1604 );
1605 }
Veronika Kocher 4.9 1606
Veronika Kocher 4.10 1607 resizeTimer=
1608 setTimeout(
1609 function(){
1610 resizeTimer=0;
Veronika Kocher 4.11 1611 run();
Veronika Kocher 4.10 1612 },
1613 RESIZE_DEBOUNCE
1614 );
Veronika Kocher 4.8 1615 }
1616
Veronika Kocher 4.11 1617 async function waitForReady(){
1618 if(
1619 document.readyState!=="complete"
1620 ){
1621 await new Promise(function(resolve){
1622 window.addEventListener(
1623 "load",
1624 resolve,
1625 {once:true}
1626 );
1627 });
1628 }
1629
1630 if(
1631 document.fonts&&
1632 document.fonts.ready
1633 ){
1634 try{
1635 await document.fonts.ready;
1636 }catch(error){}
1637 }
1638
Veronika Kocher 4.10 1639 var images=
1640 Array.from(
1641 root.querySelectorAll("img")
1642 );
Veronika Kocher 4.8 1643
Veronika Kocher 4.11 1644 await Promise.all(
Veronika Kocher 4.10 1645 images.map(function(img){
1646 if(img.complete){
1647 return Promise.resolve();
1648 }
Veronika Kocher 4.8 1649
Veronika Kocher 4.10 1650 return new Promise(function(resolve){
1651 var done=function(){
1652 resolve();
1653 };
1654
1655 img.addEventListener(
1656 "load",
1657 done,
1658 {once:true}
1659 );
1660
1661 img.addEventListener(
1662 "error",
1663 done,
1664 {once:true}
1665 );
1666 });
1667 })
1668 );
1669
Veronika Kocher 4.11 1670 run();
Veronika Kocher 4.8 1671 }
1672
Veronika Kocher 4.11 1673 window.addEventListener(
Veronika Kocher 4.10 1674 "resize",
Veronika Kocher 4.11 1675 onResize,
Veronika Kocher 4.10 1676 {passive:true}
1677 );
1678
Veronika Kocher 4.11 1679 waitForReady();
Veronika Kocher 4.8 1680 })();
1681 </script>
Veronika Kocher 4.10 1682
Veronika Kocher 4.11 1683 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END -->
1684 {{/html}}
1685