Wiki source code of Plan Your Data Management

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

Show last authors
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>
23
24 <div class="dmp">
25
26 <section class="dmp-card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;">
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="Planning research data, materials and outputs across the project lifecycle"></div>
28 <div style="padding:18px 21px 20px">
29 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:5px">ENABLE · DATA MANAGEMENT PLAN</div>
30 <h2 style="font-size:27px;line-height:1.2;margin:0 0 8px;color:#2c2926">Turn data management into a working project routine — not a form you fill in once</h2>
31 <p style="margin:0;color:#5e5953;line-height:1.6;max-width:1160px">A practical Data Management Plan (DMP) records how your project will organise, store, protect, document, share, preserve or dispose of its data and materials. For artistic and arts-based research, this can include physical objects, audiovisual material, software, performances, process documentation and artistic outputs as well as conventional research data.</p>
32 </div>
33 </section>
34
35 <div class="dmp-info" style="margin-bottom:16px"><strong>Treat the DMP as a living working document.</strong> Start with what you know, record unresolved decisions, assign responsibility and update the plan when the project changes.</div>
36
37 <div class="dmp-rights" style="margin-bottom:16px"><strong>A DMP does not mean that everything must become open.</strong> It should make restrictions visible and explain why access, sharing or reuse may need to be limited because of personal data, consent, copyright, confidentiality, cultural sensitivity, contractual obligations, security or other legitimate constraints.</div>
38
39 <div class="dmp-store" style="margin-bottom:28px"><strong>Start from your material inventory.</strong> If you have not yet mapped the data, materials, documentation and outputs your project will create, collect or reuse, begin with <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/">Identify Your Data &amp; Research Outputs</a>.</div>
40
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>
45 <h3 style="font-size:21px;margin:0 0 7px;color:#35312d">Interactive Art &amp; Research DMP Tool</h3>
46 <p style="margin:0 0 11px;color:#625d56;line-height:1.55;max-width:1050px">A local form will connect the eleven core DMP questions with funder-specific requirements and export DMPs as PDF, JSON, YAML and Markdown. Funder profiles are maintained separately from the tool so that FWF, Horizon Europe, ERC or FFG requirements can be updated without reprogramming the form.</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">Open DMP Tool ↗</a>
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
53 <section class="dmp-sec">
54 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 1 · DEFINE THE SCOPE</div>
55 <h3>Decide what your DMP needs to cover</h3>
56 <p>Your DMP should follow the real project, not an abstract template. Begin with the project structure, funding requirements and the material types you have already identified.</p>
57
58 <div class="dmp-grid">
59 <div class="dmp-box" style="border-top:4px solid #21b6d7">
60 <h4>Project &amp; plan identity</h4>
61 <p>Project title, lead, host unit, partners, funding programme, project dates, DMP owner, DMP version and last review date.</p>
62 </div>
63 <div class="dmp-box" style="border-top:4px solid #21b6d7">
64 <h4>Data, materials &amp; outputs</h4>
65 <p>What will be created, collected, commissioned or reused; expected formats, physical carriers, scale, dependencies and master versions.</p>
66 </div>
67 <div class="dmp-box" style="border-top:4px solid #e94b13">
68 <h4>Roles &amp; responsibilities</h4>
69 <p>Who creates, documents, stores, backs up, controls access, approves sharing, deposits outputs and completes handover.</p>
70 </div>
71 <div class="dmp-box" style="border-top:4px solid #38b76a">
72 <h4>Storage, backup &amp; access</h4>
73 <p>Working locations, authoritative copies, backup routine, recovery, access groups, account ownership and security requirements.</p>
74 </div>
75 <div class="dmp-box" style="border-top:4px solid #e94b13">
76 <h4>Organisation &amp; versioning</h4>
77 <p>Folder structure, naming, version conventions, master files, working copies, export formats and change control.</p>
78 </div>
79 <div class="dmp-box" style="border-top:4px solid #21b6d7">
80 <h4>Metadata, provenance &amp; documentation</h4>
81 <p>What information is needed to understand origin, creator, context, method, transformation, relationships, software and versions.</p>
82 </div>
83 <div class="dmp-box" style="border-top:4px solid #f0aa00">
84 <h4>Rights, ethics &amp; protection</h4>
85 <p>Copyright, licences, consent, personal data, confidentiality, contracts, community or cultural protocols and restrictions.</p>
86 </div>
87 <div class="dmp-box" style="border-top:4px solid #f0aa00">
88 <h4>Sharing, publication &amp; reuse</h4>
89 <p>What can be shared, with whom, when, under which licence, through which repository/platform and with what documentation.</p>
90 </div>
91 <div class="dmp-box" style="border-top:4px solid #38b76a">
92 <h4>Retention, preservation &amp; disposal</h4>
93 <p>What should remain after project end, what can be deleted, retention periods, preservation formats, repository/archive and handover.</p>
94 </div>
95 <div class="dmp-box" style="border-top:4px solid #e94b13">
96 <h4>Resources &amp; costs</h4>
97 <p>Storage, specialist software, digitisation, transcription, metadata work, repository fees, preservation, staff time and other data-management costs.</p>
98 </div>
99 </div>
100 </section>
101
102 <section class="dmp-sec">
103 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 2 · CREATE THE MINIMUM WORKING DMP</div>
104 <h3>Record decisions that the team can actually follow</h3>
105 <p>A useful first DMP can be short. The important thing is that it names responsibilities and turns assumptions into explicit decisions.</p>
106
107 <div class="dmp-tablewrap">
108 <table class="dmp-tbl">
109 <thead><tr><th>Question</th><th>Minimum decision to record</th><th>Responsible / review point</th></tr></thead>
110 <tbody>
111 <tr><td><strong>What are we managing?</strong></td><td>Material/data/output types, origin, formats, physical carriers, approximate quantity or expected growth.</td><td>Project lead + person closest to the material.</td></tr>
112 <tr><td><strong>Where is active work stored?</strong></td><td>Approved working location and location of the authoritative/master copy.</td><td>Data/documentation responsibility; review when infrastructure changes.</td></tr>
113 <tr><td><strong>How is it backed up?</strong></td><td>Backup location, frequency, responsibility and how recovery is checked.</td><td>Named owner; test before critical production/publication stages.</td></tr>
114 <tr><td><strong>Who can access what?</strong></td><td>Access groups, account ownership, restrictions and process for adding/removing people.</td><td>Project lead / system owner; review when staff or partners change.</td></tr>
115 <tr><td><strong>How are files and versions organised?</strong></td><td>Folder structure, file naming, version convention, master/working/derivative distinction.</td><td>Team-wide rule; review when workflows become unclear.</td></tr>
116 <tr><td><strong>What documentation is required?</strong></td><td>Minimum metadata, provenance, README/context documentation, technical dependencies and relationships.</td><td>Creator + documentation owner.</td></tr>
117 <tr><td><strong>What is sensitive or restricted?</strong></td><td>Personal/confidential/culturally sensitive material, consent status, legal or contractual restrictions and required protection.</td><td>Project lead with specialist advice where needed.</td></tr>
118 <tr><td><strong>What rights apply?</strong></td><td>Ownership, third-party material, licences, permissions and unresolved rights questions.</td><td>Project lead / rights responsibility; resolve before publication.</td></tr>
119 <tr><td><strong>What will be shared or published?</strong></td><td>Outputs/materials to share, access level, timing, licence, repository/platform and exceptions.</td><td>Project lead + output owner.</td></tr>
120 <tr><td><strong>What happens at project end?</strong></td><td>Keep, deposit, preserve, hand over or delete; final owner; access closure; retention period if applicable.</td><td>Named closure owner; confirm before final reporting.</td></tr>
121 <tr><td><strong>When is the DMP reviewed?</strong></td><td>Planned review dates plus event-based triggers.</td><td>DMP owner.</td></tr>
122 </tbody>
123 </table>
124 </div>
125
126 <div class="dmp-info" style="margin-top:14px"><strong>Simple rule:</strong> every important DMP statement should answer at least one of these: <em>what, where, who, how, when, under which conditions, and what happens at the end?</em></div>
127 </section>
128
129 <section class="dmp-sec">
130 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 3 · PLAN FOR CHANGE</div>
131 <h3>Review the DMP when a decision actually changes</h3>
132 <p>Do not update the plan only because a calendar reminder appears. Use scheduled reviews, but also connect reviews to concrete project events.</p>
133
134 <div class="dmp-grid">
135 <div class="dmp-step"><div class="n">REVIEW 1</div><h4>Proposal / award / project start</h4><p>Align the working plan with the submitted proposal, funder requirements, approved budget, staffing, partners and actual infrastructure.</p></div>
136 <div class="dmp-step"><div class="n">REVIEW 2</div><h4>New material or method</h4><p>Update the DMP when new datasets, media types, software, equipment, participants, collections or documentation workflows are introduced.</p></div>
137 <div class="dmp-step"><div class="n">REVIEW 3</div><h4>People or partner changes</h4><p>Recheck access, account ownership, responsibilities, handover, agreements and where authoritative copies are held.</p></div>
138 <div class="dmp-step"><div class="n">REVIEW 4</div><h4>Before publication / exhibition / sharing</h4><p>Confirm rights, consent, personal-data handling, metadata, file quality, access level, licence and repository/platform route.</p></div>
139 <div class="dmp-step"><div class="n">REVIEW 5</div><h4>Before project closure</h4><p>Decide what is retained, deposited, preserved, deleted or transferred; close obsolete access and document final responsibilities.</p></div>
140 </div>
141 </section>
142
143 <section class="dmp-sec">
144 <!-- ARSN_DMP_FUNDER_LINKS_SPECIFIC_V2 -->
145 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">FUNDER REQUIREMENTS</div>
146 <h3>Work from the actual template, call and binding project conditions</h3>
147 <p>Your internal working DMP can be broader than the formal funder template. For a funded project, however, the current DMP template, the specific call or call guide, the funding agreement or Grant Agreement and the deadlines stated there are decisive. The links below therefore point directly to DMP-relevant documents or document areas.</p>
148
149 <div class="dmp-grid">
150 <div class="dmp-box" style="border-top:4px solid #e94b13">
151 <h4>FWF</h4>
152 <p>For the relevant approved FWF projects, the DMP is required for project start, is submitted with the funding agreement, uses the same language as the proposal, is versioned throughout the project and is submitted in its final version with the final project report.</p>
153 <ul style="margin:10px 0 0 18px;padding:0;line-height:1.55">
154 <li><a href="https://www.fwf.ac.at/fileadmin/Website/Dokumente/Ueber_uns/Aufgaben_und_Aktivitaeten/Open_Science/fwf_dmp_guidelines_template.docx" target="_blank" rel="noopener"><strong>DMP – Guidelines and template (EN, 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 evaluation matrix (PDF) ↗</a></li>
156 <li><a href="https://www.fwf.ac.at/en/about-us/what-we-do/open-science/open-access-policy/open-access-policy-for-research-data" target="_blank" rel="noopener">Open-Access Policy for Research Data ↗</a></li>
157 <li><a href="https://www.fwf.ac.at/en/about-us/what-we-do/open-science/research-data-management" target="_blank" rel="noopener">Research Data Management – workflow, funding &amp; contact ↗</a></li>
158 </ul>
159 </div>
160
161 <div class="dmp-box" style="border-top:4px solid #21b6d7">
162 <h4>Horizon Europe</h4>
163 <p>Research Data Management is a mandatory Open Science practice for projects generating or reusing research data. The detailed DMP is normally a deliverable by month 6 and is maintained as a living document.</p>
164 <ul style="margin:10px 0 0 18px;padding:0;line-height:1.55">
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>Under “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 and Open Science obligations ↗</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, repositories &amp; access restrictions ↗</a></li>
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>
170 </div>
171
172 <div class="dmp-box" style="border-top:4px solid #21b6d7">
173 <h4>ERC · Horizon Europe</h4>
174 <p>Horizon Europe-funded ERC projects include Research Data Management as a work package. The DMP is due no later than the end of project month 6; the ERC guidance also addresses dissemination level, FAIR, resources and data security.</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 deadline &amp; template ↗</strong></a></p>
176 </div>
177
178 <div class="dmp-box" style="border-top:4px solid #f0aa00">
179 <h4>FFG · always check the specific call</h4>
180 <p>For FFG funding, DMP rules are call- and instrument-specific. Record the URL of the actual call, the version/date of the guide and whether a DMP is mandatory at submission, mandatory during the project/reporting, recommended or not required.</p>
181 <p style="margin-top:9px"><a href="https://www.ffg.at/content/ausschreibungsdokumente-der-basisprogramme" target="_blank" rel="noopener"><strong>FFG – current Basisprogramme call documents 2025/26 ↗</strong></a></p>
182 <p style="margin-top:8px;color:#6a655e;font-size:13px">For other FFG programmes, always use the current programme/call page and the guide linked there.</p>
183 </div>
184 </div>
185
186 <div class="dmp-info" style="margin-top:14px"><strong>Other funders / partners:</strong> Do not record only the funder name. Store the <strong>exact URL of the binding requirement or template, its version/date and deadline</strong> in the DMP. For questions about the internal funding route or how funder requirements apply at the Angewandte: <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>
187 <!-- ARSN_DMP_FUNDER_LINKS_SPECIFIC_END -->
188 </section>
189
190 <section class="dmp-sec">
191 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">STEP 4 · CONNECT THE DMP TO REAL WORKFLOWS</div>
192 <h3>A plan is useful only if it points to actual places, rules and people</h3>
193
194 <div class="dmp-grid">
195 <div class="dmp-check"><strong>Storage:</strong> name the actual working environment, not “university server”.</div>
196 <div class="dmp-check"><strong>Backup:</strong> state what is backed up, where, how often and by whom.</div>
197 <div class="dmp-check"><strong>Access:</strong> use named groups/roles and define what happens when someone leaves.</div>
198 <div class="dmp-check"><strong>Files:</strong> document folder, naming and version rules where the team can find them.</div>
199 <div class="dmp-check"><strong>Metadata:</strong> specify the fields or README information required for each important material type.</div>
200 <div class="dmp-check"><strong>Rights:</strong> link permissions, licences and consent records to the material they govern.</div>
201 <div class="dmp-check"><strong>Sharing:</strong> identify the target repository/platform before the final week of the project.</div>
202 <div class="dmp-check"><strong>Preservation:</strong> distinguish active storage, backup, repository deposit and long-term preservation.</div>
203 </div>
204
205 <div class="dmp-warn" style="margin-top:14px"><strong>Red flag:</strong> “We will decide at the end” is not a data-management strategy. Decisions that affect consent, rights, file formats, metadata, storage, documentation or preservation often have to be made while the material is being created.</div>
206 </section>
207
208 <section class="dmp-sec">
209 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">SERVICES &amp; SUPPORT</div>
210 <h3>Who to involve at the Angewandte</h3>
211 <p>Use specialist support where the DMP reveals a real requirement. Not every project needs every service.</p>
212
213 <div class="dmp-grid">
214 <a class="dmp-service" href="https://www.dieangewandte.at/university_library" target="_blank" rel="noopener"><strong>University Library · Research Data Management &amp; Support ↗</strong><span>For research-data management, metadata, repository and preservation-oriented questions. The Library currently lists Research Data Management &amp; Support as part of its team expertise.</span></a>
215
216 <a class="dmp-service" href="mailto:veronika.kocher@uni-ak.ac.at"><strong>Research Data Management &amp; Support</strong><span>Current University Library contact for RDM support: veronika.kocher@uni-ak.ac.at</span></a>
217
218 <a class="dmp-service" href="mailto:repositorium@uni-ak.ac.at"><strong>Angewandte Repository</strong><span>Repository questions and deposit planning: repositorium@uni-ak.ac.at</span></a>
219
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>For funded artistic/scientific research, funder requirements, proposal/project coordination and the administrative funding route.</span></a>
221
222 <a class="dmp-service" href="mailto:projektsupport@uni-ak.ac.at"><strong>Project Support ticket contact</strong><span>projektsupport@uni-ak.ac.at</span></a>
223
224 <a class="dmp-service" href="https://www.dieangewandte.at/en/data_protection" target="_blank" rel="noopener"><strong>Data Protection ↗</strong><span>For specialist review where personal-data processing, data sharing, external processors/platforms or privacy risks require clarification. Data Protection Officer: dsb@uni-ak.ac.at</span></a>
225 </div>
226 </section>
227
228 <section class="dmp-sec">
229 <div class="dmp-eye" style="color:#8a4d36;margin-bottom:4px">RELATED NAVIGATOR TOPICS</div>
230 <h3>Turn each DMP decision into the next practical step</h3>
231
232 <div class="dmp-linkgrid">
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/">Identify Your Data &amp; Research Outputs</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/">File Organisation &amp; Naming</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/">Storage, Backup &amp; Security</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/">Data Protection &amp; Ethics</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/">Copyright, Rights &amp; Licences</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/">Collaboration Setup</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/">Document Processes, Metadata &amp; Provenance</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/">Review Your Data Management</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/">Decide What to Share</a>
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>
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/">Choose a Repository or Publication Platform</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/">Preserve Data &amp; Artistic Outputs</a>
245 </div>
246 </section>
247
248 <div class="dmp-info" style="margin-bottom:14px"><strong>Need help reviewing a DMP?</strong> Bring the current funder template or internal draft, your material/output inventory, planned storage locations, project partners and the main questions that are still unresolved. This makes support much faster and more concrete.</div>
249
250 <!-- ARSN_SEARCH_TERMS_START -->
251 <details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6">
252 <summary style="cursor:pointer;color:#6a655e;font-size:13px">Search terms &amp; related topics</summary>
253 <div style="margin-top:9px;color:#5c5650;font-size:12px;line-height:1.7">data management plan · DMP · research data management · RDM · data lifecycle · data stewardship · data inventory · research materials · artistic research data · data types · file formats · storage · backup · access control · file naming · versioning · metadata · provenance · documentation · personal data · data protection · ethics · consent · copyright · licences · sensitive data · data sharing · open data · FAIR · CARE · repository · preservation · retention · deletion · funder requirements · FWF DMP · Horizon Europe DMP · project closure · handover · Datenmanagementplan · Forschungsdatenmanagement</div>
254 </details>
255 <!-- ARSN_SEARCH_TERMS_END -->
256
257 </div>
258 {{/html}}
259
260 {{html clean="false"}}
261 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START -->
262
263 <style data-sn-service-navigator-master="1">
264 /* =========================================================
265 MASTER TYPOGRAPHY
266 ========================================================= */
267 #xwikicontent h1,
268 #xwikicontent h2,
269 #xwikicontent h3,
270 #xwikicontent h4,
271 #xwikicontent h5,
272 #xwikicontent h6,
273 #xwikicontent .box-title,
274 #xwikicontent [role="heading"],
275 #xwikicontent h1 a,
276 #xwikicontent h2 a,
277 #xwikicontent h3 a,
278 #xwikicontent h4 a,
279 #xwikicontent h5 a,
280 #xwikicontent h6 a,
281 #xwikicontent .box-title a,
282 #xwikicontent [role="heading"] a{
283 text-align:left!important;
284 text-justify:auto!important;
285 word-spacing:normal!important;
286 }
287
288 /* =========================================================
289 COMING SOON / IN VORBEREITUNG
290 ========================================================= */
291 .sn-coming-soon-badge{
292 display:inline-block;
293 vertical-align:middle;
294 margin-left:10px;
295 padding:4px 8px;
296 border-radius:14px;
297 border:1px solid #efd9cc;
298 background:#fff4ee;
299 color:#8a4d36;
300 font-size:11px;
301 font-weight:700;
302 letter-spacing:.055em;
303 line-height:1.2;
304 white-space:nowrap;
305 }
306
307 /* =========================================================
308 NATIVE / DETAIL CALLOUT GEOMETRY
309 Preserve existing backgrounds.
310 ========================================================= */
311 #xwikicontent .arsn-info,
312 #xwikicontent .dmp-info,
313 #xwikicontent .ido-info,
314 #xwikicontent .pp-info,
315 #xwikicontent .infomessage{
316 box-sizing:border-box!important;
317 border-left:4px solid #21b6d7!important;
318 border-radius:8px;
319 text-align:left!important;
320 word-spacing:normal!important;
321 }
322
323 #xwikicontent .arsn-warn,
324 #xwikicontent .dmp-warn,
325 #xwikicontent .ido-warn,
326 #xwikicontent .pp-warn,
327 #xwikicontent .warn,
328 #xwikicontent .warning,
329 #xwikicontent .warningmessage,
330 #xwikicontent .errormessage{
331 box-sizing:border-box!important;
332 border-left:4px solid #e94b13!important;
333 border-radius:8px;
334 text-align:left!important;
335 word-spacing:normal!important;
336 }
337
338 [data-sn-master-equal-height],
339 [data-sn-master-first-row]{
340 box-sizing:border-box;
341 }
342 </style>
343
344 <script data-sn-service-navigator-master="1">
345 (function(){
346 "use strict";
347
348 var PAGE_KIND="detail";
349 var PLACEHOLDER=false;
350 var PLACEHOLDER_LABEL="COMING SOON";
351
352 var MOBILE_MAX=767;
353 var ROW_TOLERANCE=6;
354 var RESIZE_DEBOUNCE=220;
355
356 var root=
357 document.getElementById("xwikicontent")||
358 document.querySelector(".xwiki-rendering-content")||
359 document.querySelector("main")||
360 document.body;
361
362 if(!root)return;
363
364 var managedHeight=new Set();
365 var managedMargin=new Set();
366 var originalHeight=new WeakMap();
367 var originalMargin=new WeakMap();
368
369 var resizeTimer=0;
370 var running=false;
371
372 var THEMES=[
373 {
374 name:"BLUE",
375 accent:"#21b6d7",
376 bg:"#eaf7fb",
377 text:"#315d68",
378 labels:[
379 "HIER STARTEN",
380 "ENTSCHEIDEN",
381 "ÜBERPRÜFEN & ANPASSEN",
382 "START HERE",
383 "DECIDE",
384 "REVIEW & ADAPT"
385 ]
386 },
387 {
388 name:"RED",
389 accent:"#e94b13",
390 bg:"#fff1ec",
391 text:"#8a4d36",
392 labels:[
393 "PLANEN & ORGANISIEREN",
394 "ORGANISIEREN & DOKUMENTIEREN",
395 "PUBLIZIEREN & PRÄSENTIEREN",
396 "PLAN & ORGANISE",
397 "PLAN & ORGANIZE",
398 "ORGANISE & DOCUMENT",
399 "ORGANIZE & DOCUMENT",
400 "PUBLISH & PRESENT"
401 ]
402 },
403 {
404 name:"YELLOW",
405 accent:"#f0aa00",
406 bg:"#fff8e7",
407 text:"#785b17",
408 labels:[
409 "SCHÜTZEN & KLÄREN",
410 "STANDARDISIEREN & IDENTIFIZIEREN",
411 "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN",
412 "PROTECT & CLARIFY",
413 "STANDARDISE & IDENTIFY",
414 "STANDARDIZE & IDENTIFY",
415 "OPEN, REUSE & MAKE FINDABLE"
416 ]
417 },
418 {
419 name:"GREEN",
420 accent:"#38b76a",
421 bg:"#edf9f1",
422 text:"#3f7451",
423 labels:[
424 "INFRASTRUKTUR EINRICHTEN",
425 "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN",
426 "SPEICHERN & ZUGRIFF STEUERN",
427 "REPOSITORIUM, ERHALTEN & ÜBERGEBEN",
428 "SET UP INFRASTRUCTURE",
429 "SET UP INFRASTRUCTURE & COLLABORATION",
430 "STORE & CONTROL ACCESS",
431 "REPOSITORY, PRESERVE & HAND OVER"
432 ]
433 }
434 ];
435
436 function num(value){
437 var n=parseFloat(value);
438 return Number.isFinite(n)?n:0;
439 }
440
441 function norm(value){
442 return String(value||"")
443 .replace(/\s+/g," ")
444 .trim()
445 .toUpperCase();
446 }
447
448 function visible(el){
449 if(!el||el.nodeType!==1)return false;
450
451 var style=getComputedStyle(el);
452 var rect=el.getBoundingClientRect();
453
454 return (
455 style.display!=="none"&&
456 style.visibility!=="hidden"&&
457 rect.width>20&&
458 rect.height>4
459 );
460 }
461
462 function saveStyle(el,map,property){
463 if(map.has(el))return;
464
465 map.set(el,{
466 value:el.style.getPropertyValue(property),
467 priority:el.style.getPropertyPriority(property)
468 });
469 }
470
471 function restoreStyle(el,map,property){
472 var original=map.get(el);
473
474 if(original&&original.value){
475 el.style.setProperty(
476 property,
477 original.value,
478 original.priority||""
479 );
480 }else{
481 el.style.removeProperty(property);
482 }
483 }
484
485 function resetRuntime(){
486 managedHeight.forEach(function(el){
487 restoreStyle(
488 el,
489 originalHeight,
490 "min-height"
491 );
492 el.removeAttribute(
493 "data-sn-master-equal-height"
494 );
495 });
496
497 managedMargin.forEach(function(el){
498 restoreStyle(
499 el,
500 originalMargin,
501 "margin-top"
502 );
503 el.removeAttribute(
504 "data-sn-master-first-row"
505 );
506 });
507
508 managedHeight.clear();
509 managedMargin.clear();
510 }
511
512 function themeFor(text){
513 var value=norm(text);
514
515 for(var i=0;i<THEMES.length;i++){
516 for(var j=0;j<THEMES[i].labels.length;j++){
517 var label=THEMES[i].labels[j];
518
519 if(
520 value===label||
521 value.indexOf(label+" ")===0||
522 value.indexOf(label+" -")===0||
523 value.indexOf(label+" ·")===0
524 ){
525 return THEMES[i];
526 }
527 }
528 }
529
530 return null;
531 }
532
533 /* =======================================================
534 PLACEHOLDER BADGE
535 ======================================================= */
536
537 function applyPlaceholderBadge(){
538 if(!PLACEHOLDER)return;
539
540 if(
541 document.querySelector(
542 ".sn-coming-soon-badge"
543 )
544 ){
545 return;
546 }
547
548 var title=
549 document.querySelector(
550 "#document-title"
551 )||
552 document.querySelector(
553 "h1"
554 );
555
556 if(!title)return;
557
558 var badge=
559 document.createElement(
560 "span"
561 );
562
563 badge.className=
564 "sn-coming-soon-badge";
565
566 badge.textContent=
567 PLACEHOLDER_LABEL;
568
569 badge.setAttribute(
570 "aria-label",
571 PLACEHOLDER_LABEL
572 );
573
574 title.appendChild(
575 badge
576 );
577 }
578
579 /* =======================================================
580 DETAIL PAGE OWN-ACCENT PROPAGATION
581 ======================================================= */
582
583 function parseRGB(value){
584 var match=String(value||"").match(
585 /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i
586 );
587
588 if(!match)return null;
589
590 return [
591 Number(match[1]),
592 Number(match[2]),
593 Number(match[3])
594 ];
595 }
596
597 function distance(a,b){
598 return Math.sqrt(
599 Math.pow(a[0]-b[0],2)+
600 Math.pow(a[1]-b[1],2)+
601 Math.pow(a[2]-b[2],2)
602 );
603 }
604
605 function paletteMatch(cssColor){
606 var rgb=parseRGB(cssColor);
607
608 if(!rgb)return null;
609
610 var palette=[
611 {hex:"#21b6d7",rgb:[33,182,215]},
612 {hex:"#e94b13",rgb:[233,75,19]},
613 {hex:"#f0aa00",rgb:[240,170,0]},
614 {hex:"#38b76a",rgb:[56,183,106]}
615 ];
616
617 var best=null;
618 var bestDistance=Infinity;
619
620 palette.forEach(function(item){
621 var d=distance(rgb,item.rgb);
622
623 if(d<bestDistance){
624 best=item;
625 bestDistance=d;
626 }
627 });
628
629 return bestDistance<=30
630 ?best
631 :null;
632 }
633
634 function propagateDetailAccents(){
635 if(PAGE_KIND!=="detail")return;
636
637 Array.from(
638 root.querySelectorAll(
639 ".arsn-call,.dmp-call,.ido-call,.pp-call,"+
640 ".arsn-source,.dmp-source,.ido-source,.pp-source"
641 )
642 ).forEach(function(el){
643 if(!visible(el))return;
644
645 var style=getComputedStyle(el);
646
647 if(
648 num(style.borderTopWidth)>=2
649 ){
650 var match=
651 paletteMatch(
652 style.borderTopColor
653 );
654
655 if(match){
656 el.style.setProperty(
657 "border-left",
658 "4px solid "+match.hex,
659 "important"
660 );
661 }
662 }
663 });
664
665 // Warning families: explicit safety override.
666 Array.from(
667 root.querySelectorAll(
668 ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+
669 ".warn,.warning,.warningmessage,.errormessage"
670 )
671 ).forEach(function(el){
672 if(!visible(el))return;
673
674 el.style.setProperty(
675 "border-left",
676 "4px solid #e94b13",
677 "important"
678 );
679 });
680
681 // Info families: explicit orientation override.
682 Array.from(
683 root.querySelectorAll(
684 ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage"
685 )
686 ).forEach(function(el){
687 if(!visible(el))return;
688
689 el.style.setProperty(
690 "border-left",
691 "4px solid #21b6d7",
692 "important"
693 );
694 });
695 }
696
697 /* =======================================================
698 OVERVIEW SEMANTIC THEME PALETTE
699 ======================================================= */
700
701 function smallestThemeHeaders(){
702 return Array.from(
703 root.querySelectorAll(
704 "div,span,p,strong,h3,h4,h5,h6"
705 )
706 ).filter(function(el){
707 if(!visible(el))return false;
708 if(!themeFor(el.textContent))return false;
709
710 return !Array.from(
711 el.children||[]
712 ).some(function(child){
713 return !!themeFor(
714 child.textContent
715 );
716 });
717 });
718 }
719
720 function findOverviewCard(header){
721 var node=header.parentElement;
722 var candidates=[];
723
724 while(node&&node!==root){
725 var rect=node.getBoundingClientRect();
726 var style=getComputedStyle(node);
727
728 var border=
729 num(style.borderTopWidth)+
730 num(style.borderRightWidth)+
731 num(style.borderBottomWidth)+
732 num(style.borderLeftWidth);
733
734 if(
735 rect.width>=220&&
736 rect.width<=800&&
737 rect.height>=120&&
738 border>=1
739 ){
740 candidates.push(node);
741 }
742
743 node=node.parentElement;
744 }
745
746 if(!candidates.length)return null;
747
748 candidates.sort(function(a,b){
749 return (
750 b.getBoundingClientRect().height-
751 a.getBoundingClientRect().height
752 );
753 });
754
755 return candidates[0];
756 }
757
758 function rowCandidates(link,card){
759 var result=[];
760 var cardRect=
761 card.getBoundingClientRect();
762
763 var node=link;
764
765 while(node&&node!==card){
766 if(visible(node)){
767 var rect=
768 node.getBoundingClientRect();
769
770 if(
771 rect.height<=105&&
772 rect.width>=
773 cardRect.width*.50&&
774 rect.width<=
775 cardRect.width*1.03
776 ){
777 result.push(node);
778 }
779 }
780
781 node=node.parentElement;
782 }
783
784 return result;
785 }
786
787 function chooseOuterRow(
788 candidates,
789 link
790 ){
791 if(!candidates.length){
792 return link;
793 }
794
795 var bordered=
796 candidates.filter(function(el){
797 return (
798 num(
799 getComputedStyle(el)
800 .borderLeftWidth
801 )>=1
802 );
803 });
804
805 var pool=
806 bordered.length
807 ?bordered
808 :candidates;
809
810 pool.sort(function(a,b){
811 var ar=
812 a.getBoundingClientRect();
813
814 var br=
815 b.getBoundingClientRect();
816
817 return (
818 ar.left-br.left||
819 br.width-ar.width
820 );
821 });
822
823 return pool[0]||link;
824 }
825
826 function applyOverviewPalette(){
827 if(PAGE_KIND!=="overview"){
828 return [];
829 }
830
831 var headers=
832 smallestThemeHeaders()
833 .map(function(el){
834 return {
835 el:el,
836 theme:
837 themeFor(
838 el.textContent
839 ),
840 card:
841 findOverviewCard(
842 el
843 )
844 };
845 })
846 .filter(function(row){
847 return !!row.card;
848 });
849
850 var unique=[];
851 var seenHeaders=new Set();
852
853 headers.forEach(function(row){
854 var key=
855 row.theme.name+
856 "|"+
857 Math.round(
858 row.card
859 .getBoundingClientRect()
860 .left
861 )+
862 "|"+
863 Math.round(
864 row.el
865 .getBoundingClientRect()
866 .top
867 );
868
869 if(!seenHeaders.has(key)){
870 seenHeaders.add(key);
871 unique.push(row);
872 }
873 });
874
875 unique.forEach(function(row){
876 var headerRect=
877 row.el
878 .getBoundingClientRect();
879
880 row.el.style.setProperty(
881 "background",
882 row.theme.bg,
883 "important"
884 );
885
886 row.el.style.setProperty(
887 "color",
888 row.theme.text,
889 "important"
890 );
891
892 row.el.style.setProperty(
893 "text-align",
894 "left",
895 "important"
896 );
897
898 row.el.style.setProperty(
899 "word-spacing",
900 "normal",
901 "important"
902 );
903
904 var later=
905 unique
906 .filter(function(other){
907 return (
908 other.card===row.card&&
909 other.el
910 .getBoundingClientRect()
911 .top>
912 headerRect.top+2
913 );
914 })
915 .sort(function(a,b){
916 return (
917 a.el
918 .getBoundingClientRect()
919 .top-
920 b.el
921 .getBoundingClientRect()
922 .top
923 );
924 });
925
926 var stopTop=
927 later.length
928 ?later[0].el
929 .getBoundingClientRect()
930 .top
931 :Infinity;
932
933 Array.from(
934 row.card.querySelectorAll("a")
935 ).forEach(function(link){
936 if(!visible(link))return;
937
938 var rect=
939 link.getBoundingClientRect();
940
941 if(
942 rect.top<=
943 headerRect.bottom-2||
944 rect.top>=
945 stopTop-2
946 ){
947 return;
948 }
949
950 var candidates=
951 rowCandidates(
952 link,
953 row.card
954 );
955
956 var target=
957 chooseOuterRow(
958 candidates,
959 link
960 );
961
962 candidates.forEach(function(el){
963 el.style.setProperty(
964 "border-left",
965 "0 solid transparent",
966 "important"
967 );
968 });
969
970 target.style.setProperty(
971 "border-left",
972 "3px solid "+
973 row.theme.accent,
974 "important"
975 );
976
977 target.style.setProperty(
978 "box-sizing",
979 "border-box",
980 "important"
981 );
982 });
983 });
984
985 return unique;
986 }
987
988 /* =======================================================
989 OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW
990 ======================================================= */
991
992 function alignOverviewCards(headers){
993 if(
994 PAGE_KIND!=="overview"||
995 window.innerWidth<=MOBILE_MAX
996 ){
997 return;
998 }
999
1000 var cards=[];
1001 var seen=new Set();
1002
1003 headers.forEach(function(row){
1004 if(!seen.has(row.card)){
1005 seen.add(row.card);
1006 cards.push(row.card);
1007 }
1008 });
1009
1010 if(cards.length<2){
1011 return;
1012 }
1013
1014 // Group cards by actual top position.
1015 var groups=[];
1016
1017 cards.forEach(function(card){
1018 var top=
1019 card.getBoundingClientRect().top;
1020
1021 var group=null;
1022
1023 for(var i=0;i<groups.length;i++){
1024 if(
1025 Math.abs(
1026 groups[i].top-top
1027 )<=ROW_TOLERANCE
1028 ){
1029 group=groups[i];
1030 break;
1031 }
1032 }
1033
1034 if(!group){
1035 group={
1036 top:top,
1037 cards:[]
1038 };
1039 groups.push(group);
1040 }
1041
1042 group.cards.push(card);
1043 });
1044
1045 groups.forEach(function(group){
1046 if(group.cards.length<2){
1047 return;
1048 }
1049
1050 var firstHeaders=
1051 group.cards.map(function(card){
1052 var candidates=
1053 headers
1054 .filter(function(row){
1055 return row.card===card;
1056 })
1057 .sort(function(a,b){
1058 return (
1059 a.el
1060 .getBoundingClientRect()
1061 .top-
1062 b.el
1063 .getBoundingClientRect()
1064 .top
1065 );
1066 });
1067
1068 return candidates.length
1069 ?candidates[0]
1070 :null;
1071 });
1072
1073 if(
1074 !firstHeaders.some(function(row){
1075 return !row;
1076 })
1077 ){
1078 var targetTop=
1079 Math.max.apply(
1080 Math,
1081 firstHeaders.map(function(row){
1082 return (
1083 row.el
1084 .getBoundingClientRect()
1085 .top-
1086 row.card
1087 .getBoundingClientRect()
1088 .top
1089 );
1090 })
1091 );
1092
1093 firstHeaders.forEach(function(row){
1094 var relativeTop=
1095 row.el
1096 .getBoundingClientRect()
1097 .top-
1098 row.card
1099 .getBoundingClientRect()
1100 .top;
1101
1102 var delta=
1103 targetTop-relativeTop;
1104
1105 if(delta>1){
1106 saveStyle(
1107 row.el,
1108 originalMargin,
1109 "margin-top"
1110 );
1111
1112 var current=
1113 num(
1114 getComputedStyle(
1115 row.el
1116 ).marginTop
1117 );
1118
1119 row.el.style.setProperty(
1120 "margin-top",
1121 (
1122 current+delta
1123 )+"px"
1124 );
1125
1126 row.el.setAttribute(
1127 "data-sn-master-first-row",
1128 "1"
1129 );
1130
1131 managedMargin.add(
1132 row.el
1133 );
1134 }
1135 });
1136 }
1137
1138 var maxHeight=0;
1139
1140 group.cards.forEach(function(card){
1141 maxHeight=
1142 Math.max(
1143 maxHeight,
1144 card
1145 .getBoundingClientRect()
1146 .height
1147 );
1148 });
1149
1150 maxHeight=
1151 Math.ceil(maxHeight);
1152
1153 group.cards.forEach(function(card){
1154 saveStyle(
1155 card,
1156 originalHeight,
1157 "min-height"
1158 );
1159
1160 card.style.setProperty(
1161 "min-height",
1162 maxHeight+"px"
1163 );
1164
1165 card.setAttribute(
1166 "data-sn-master-equal-height",
1167 "1"
1168 );
1169
1170 managedHeight.add(
1171 card
1172 );
1173 });
1174 });
1175 }
1176
1177 /* =======================================================
1178 DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY
1179 ======================================================= */
1180
1181 function equaliseDetailGrids(){
1182 if(
1183 PAGE_KIND!=="detail"||
1184 window.innerWidth<=MOBILE_MAX
1185 ){
1186 return;
1187 }
1188
1189 var selectors=[
1190 ".arsn-grid",
1191 ".arsn-grid-2",
1192 ".arsn-grid-3",
1193 ".dmp-grid",
1194 ".ido-grid",
1195 ".pp-grid"
1196 ];
1197
1198 selectors.forEach(function(selector){
1199 Array.from(
1200 root.querySelectorAll(selector)
1201 ).forEach(function(grid){
1202 var children=
1203 Array.from(
1204 grid.children||[]
1205 ).filter(visible);
1206
1207 if(children.length<2){
1208 return;
1209 }
1210
1211 var groups=[];
1212
1213 children.forEach(function(child){
1214 var top=
1215 child
1216 .getBoundingClientRect()
1217 .top;
1218
1219 var group=null;
1220
1221 for(var i=0;i<groups.length;i++){
1222 if(
1223 Math.abs(
1224 groups[i].top-top
1225 )<=ROW_TOLERANCE
1226 ){
1227 group=groups[i];
1228 break;
1229 }
1230 }
1231
1232 if(!group){
1233 group={
1234 top:top,
1235 items:[]
1236 };
1237 groups.push(group);
1238 }
1239
1240 group.items.push(child);
1241 });
1242
1243 groups.forEach(function(group){
1244 if(group.items.length<2){
1245 return;
1246 }
1247
1248 var maxHeight=0;
1249
1250 group.items.forEach(function(item){
1251 maxHeight=
1252 Math.max(
1253 maxHeight,
1254 item
1255 .getBoundingClientRect()
1256 .height
1257 );
1258 });
1259
1260 maxHeight=
1261 Math.ceil(maxHeight);
1262
1263 group.items.forEach(function(item){
1264 saveStyle(
1265 item,
1266 originalHeight,
1267 "min-height"
1268 );
1269
1270 item.style.setProperty(
1271 "min-height",
1272 maxHeight+"px"
1273 );
1274
1275 item.setAttribute(
1276 "data-sn-master-equal-height",
1277 "1"
1278 );
1279
1280 managedHeight.add(item);
1281 });
1282 });
1283 });
1284 });
1285 }
1286
1287 /* =======================================================
1288 RUN / RESPONSIVE SCHEDULING
1289 ======================================================= */
1290
1291 function run(){
1292 if(running)return;
1293
1294 running=true;
1295
1296 try{
1297 resetRuntime();
1298 applyPlaceholderBadge();
1299 propagateDetailAccents();
1300
1301 var headers=
1302 applyOverviewPalette();
1303
1304 if(
1305 window.innerWidth>
1306 MOBILE_MAX
1307 ){
1308 alignOverviewCards(
1309 headers
1310 );
1311
1312 equaliseDetailGrids();
1313 }
1314 }finally{
1315 running=false;
1316 }
1317 }
1318
1319 function onResize(){
1320 if(resizeTimer){
1321 clearTimeout(
1322 resizeTimer
1323 );
1324 }
1325
1326 resizeTimer=
1327 setTimeout(
1328 function(){
1329 resizeTimer=0;
1330 run();
1331 },
1332 RESIZE_DEBOUNCE
1333 );
1334 }
1335
1336 async function waitForReady(){
1337 if(
1338 document.readyState!=="complete"
1339 ){
1340 await new Promise(function(resolve){
1341 window.addEventListener(
1342 "load",
1343 resolve,
1344 {once:true}
1345 );
1346 });
1347 }
1348
1349 if(
1350 document.fonts&&
1351 document.fonts.ready
1352 ){
1353 try{
1354 await document.fonts.ready;
1355 }catch(error){}
1356 }
1357
1358 var images=
1359 Array.from(
1360 root.querySelectorAll("img")
1361 );
1362
1363 await Promise.all(
1364 images.map(function(img){
1365 if(img.complete){
1366 return Promise.resolve();
1367 }
1368
1369 return new Promise(function(resolve){
1370 var done=function(){
1371 resolve();
1372 };
1373
1374 img.addEventListener(
1375 "load",
1376 done,
1377 {once:true}
1378 );
1379
1380 img.addEventListener(
1381 "error",
1382 done,
1383 {once:true}
1384 );
1385 });
1386 })
1387 );
1388
1389 run();
1390 }
1391
1392 window.addEventListener(
1393 "resize",
1394 onResize,
1395 {passive:true}
1396 );
1397
1398 waitForReady();
1399 })();
1400 </script>
1401
1402 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END -->
1403 {{/html}}