Last modified by Veronika Kocher on Friday, 18 Sep 2026 16:47

From version 5.8
edited by Veronika Kocher
on Thursday, 03 Sep 2026 9:18
Change comment: There is no comment for this version
To version 5.4
edited by Veronika Kocher
on Friday, 28 Aug 2026 17:00
Change comment: Removed tag [permissions]

Summary

Details

Page properties
tags
... ... @@ -1,1 +1,0 @@
1 -copyright|rights|licensing|permissions|creative commons
Content
... ... @@ -34,8 +34,6 @@
34 34  
35 35  == Tutorials ==
36 36  
37 -
38 -{{html}}<span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px 0;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">COMING SOON</span>{{/html}}
39 39  Add links to step-by-step tutorials for this topic.
40 40  
41 41  == Related Topics ==
... ... @@ -42,17 +42,12 @@
42 42  
43 43  Add links to related pages in Enable, Work & Manage, and Publish & Share.
44 44  
45 -== Who is responsible? ==
43 +== Need help? ==
46 46  
47 -{{html}}<!-- ARSN_TOPIC_ROUTING_V1 -->{{/html}}
48 -{{info title="Service routing"}}
49 -**Primary specialist service(s):** Legal Department for binding legal questions and contracts; Publications and/or University Library for publication and licensing practice where relevant.
45 +Not sure what applies to your project? Contact Art & Research Services for support.
50 50  
51 -**Role of Support Kunst und Forschung (SKF):** Coordinates funder and project requirements and routes legal questions; it is not the legal authority.
52 -{{/info}}
47 +TODO: Replace this line with the central contact-form link once the form is available.
53 53  
54 -If you are unsure which route applies, start with the service named above. For funded or project-based research where several units are involved, SKF can coordinate the project route.
55 -
56 56  {{html}}
57 57  <!-- ARSN_SEARCH_TERMS_START -->
58 58  <details class="arsn-search-terms" style="margin-top:28px;padding-top:10px;border-top:1px solid #eee;">
... ... @@ -67,238 +67,3 @@
67 67  </details>
68 68  <!-- ARSN_SEARCH_TERMS_END -->
69 69  {{/html}}
70 -
71 -{{html clean="false"}}
72 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
73 -<style data-sn-horizontal-box-harmonizer="1">
74 -[data-sn-equal-height-managed="1"]{box-sizing:border-box}
75 -@media(max-width:767px){
76 - [data-sn-equal-height-managed="1"]{min-height:0!important}
77 -}
78 -</style>
79 -<script data-sn-horizontal-box-harmonizer="1">
80 -(function(){
81 - "use strict";
82 -
83 - var MOBILE_MAX=767;
84 - var ROW_TOLERANCE=4;
85 - var MIN_W=150;
86 - var MIN_H=36;
87 -
88 - var root=
89 - document.getElementById("xwikicontent")||
90 - document.querySelector(".xwiki-rendering-content")||
91 - document.querySelector("main")||
92 - document.body;
93 -
94 - if(!root)return;
95 -
96 - var managed=new Set();
97 - var raf=0;
98 -
99 - function num(v){
100 - var n=parseFloat(v);
101 - return Number.isFinite(n)?n:0;
102 - }
103 -
104 - function visible(el){
105 - if(!el||el.nodeType!==1)return false;
106 - var s=getComputedStyle(el);
107 - if(s.display==="none"||s.visibility==="hidden"||Number(s.opacity)===0)return false;
108 - var r=el.getBoundingClientRect();
109 - return r.width>=MIN_W&&r.height>=MIN_H;
110 - }
111 -
112 - function excluded(el){
113 - return !el.matches||el.matches(
114 - "button,input,select,textarea,option,label,img,svg,canvas,table,thead,tbody,tfoot,tr,td,th,summary,script,style,noscript,template,.btn,.chip,[role=button]"
115 - );
116 - }
117 -
118 - function namedLikeBox(el){
119 - var c=typeof el.className==="string"?el.className:"";
120 - return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c);
121 - }
122 -
123 - function boxLike(el){
124 - if(!visible(el)||excluded(el))return false;
125 - var s=getComputedStyle(el);
126 - var r=el.getBoundingClientRect();
127 - var border=
128 - num(s.borderTopWidth)+num(s.borderRightWidth)+
129 - num(s.borderBottomWidth)+num(s.borderLeftWidth);
130 - var radius=Math.max(
131 - num(s.borderTopLeftRadius),num(s.borderTopRightRadius),
132 - num(s.borderBottomLeftRadius),num(s.borderBottomRightRadius)
133 - );
134 - var bg=s.backgroundColor&&s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor!=="transparent";
135 - var shadow=s.boxShadow&&s.boxShadow!=="none";
136 - return namedLikeBox(el)||border>=1||(bg&&radius>=3)||(shadow&&r.width>=180);
137 - }
138 -
139 - function pickTarget(child){
140 - if(!visible(child))return null;
141 - if(boxLike(child))return child;
142 -
143 - var cr=child.getBoundingClientRect();
144 - var q=[];
145 - Array.from(child.children||[]).forEach(function(el){
146 - q.push({el:el,depth:1});
147 - });
148 -
149 - var best=null,bestScore=-1;
150 -
151 - while(q.length){
152 - var item=q.shift();
153 - var el=item.el;
154 - if(!visible(el))continue;
155 -
156 - var r=el.getBoundingClientRect();
157 -
158 - if(r.width>=cr.width*.72&&boxLike(el)){
159 - var widthFit=1-Math.min(1,Math.abs(cr.width-r.width)/Math.max(1,cr.width));
160 - var topFit=1-Math.min(1,Math.abs(cr.top-r.top)/80);
161 - var score=widthFit*5+topFit*2+Math.min(r.height,600)/600;
162 - if(score>bestScore){
163 - best=el;
164 - bestScore=score;
165 - }
166 - }
167 -
168 - if(item.depth<3){
169 - Array.from(el.children||[]).forEach(function(next){
170 - q.push({el:next,depth:item.depth+1});
171 - });
172 - }
173 - }
174 -
175 - return best;
176 - }
177 -
178 - function reset(){
179 - managed.forEach(function(el){
180 - el.style.removeProperty("min-height");
181 - el.removeAttribute("data-sn-equal-height-managed");
182 - });
183 - managed.clear();
184 - }
185 -
186 - function horizontalLayout(parent){
187 - if(!visible(parent))return false;
188 - var s=getComputedStyle(parent);
189 - if(s.display==="grid"||s.display==="inline-grid")return true;
190 - if(s.display==="flex"||s.display==="inline-flex"){
191 - return s.flexDirection==="row"||s.flexDirection==="row-reverse";
192 - }
193 - return false;
194 - }
195 -
196 - function rowGroups(entries){
197 - var groups=[];
198 - entries.slice().sort(function(a,b){
199 - return a.rect.top-b.rect.top||a.rect.left-b.rect.left;
200 - }).forEach(function(entry){
201 - var group=null;
202 - for(var i=0;i<groups.length;i++){
203 - if(Math.abs(groups[i].top-entry.rect.top)<=ROW_TOLERANCE){
204 - group=groups[i];
205 - break;
206 - }
207 - }
208 - if(!group){
209 - group={top:entry.rect.top,entries:[]};
210 - groups.push(group);
211 - }
212 - group.entries.push(entry);
213 - });
214 - return groups;
215 - }
216 -
217 - function run(){
218 - reset();
219 -
220 - if(window.innerWidth<=MOBILE_MAX)return;
221 -
222 - var parents=Array.from(root.querySelectorAll("*")).filter(function(el){
223 - return el.children&&el.children.length>=2&&horizontalLayout(el);
224 - });
225 -
226 - parents.forEach(function(parent){
227 - var entries=[];
228 -
229 - Array.from(parent.children).forEach(function(child){
230 - if(!visible(child))return;
231 - var target=pickTarget(child);
232 - if(!target)return;
233 - entries.push({
234 - target:target,
235 - rect:target.getBoundingClientRect()
236 - });
237 - });
238 -
239 - if(entries.length<2)return;
240 -
241 - rowGroups(entries).forEach(function(group){
242 - if(group.entries.length<2)return;
243 -
244 - var lefts=group.entries.map(function(e){return e.rect.left;}).sort(function(a,b){return a-b;});
245 - if(lefts[lefts.length-1]-lefts[0]<80)return;
246 -
247 - var targets=[];
248 - var seen=new Set();
249 -
250 - group.entries.forEach(function(e){
251 - if(!seen.has(e.target)){
252 - seen.add(e.target);
253 - targets.push(e.target);
254 - }
255 - });
256 -
257 - if(targets.length<2)return;
258 -
259 - var max=0;
260 - targets.forEach(function(el){
261 - max=Math.max(max,el.getBoundingClientRect().height);
262 - });
263 -
264 - max=Math.ceil(max);
265 - if(max<MIN_H)return;
266 -
267 - targets.forEach(function(el){
268 - el.style.setProperty("min-height",max+"px");
269 - el.setAttribute("data-sn-equal-height-managed","1");
270 - managed.add(el);
271 - });
272 - });
273 - });
274 - }
275 -
276 - function schedule(){
277 - if(raf)cancelAnimationFrame(raf);
278 - raf=requestAnimationFrame(function(){
279 - raf=requestAnimationFrame(function(){
280 - raf=0;
281 - run();
282 - });
283 - });
284 - }
285 -
286 - addEventListener("resize",schedule,{passive:true});
287 - addEventListener("load",schedule,{once:true});
288 -
289 - root.addEventListener("click",function(){
290 - setTimeout(schedule,0);
291 - },true);
292 -
293 - if(document.fonts&&document.fonts.ready){
294 - document.fonts.ready.then(schedule);
295 - }
296 -
297 - schedule();
298 - setTimeout(schedule,250);
299 - setTimeout(schedule,900);
300 -})();
301 -</script>
302 -<!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
303 -{{/html}}
304 -