Changes for page Service Navigator

Last modified by Veronika Kocher on Thursday, 03 Sep 2026 14:15

From version 22.3
edited by ZID Server
on Tuesday, 01 Sep 2026 10:19
Change comment: allow view right for XWiki.XWikiAllGroup
To version 22.13
edited by Veronika Kocher
on Thursday, 03 Sep 2026 9:18
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.server
1 +XWiki.p0009670
Content
... ... @@ -114,7 +114,9 @@
114 114   <div style="padding:18px 18px 14px 18px;flex:1;">
115 115   <div style="display:inline-block;font-size:12px;font-weight:700;letter-spacing:.065em;color:#4f4a44;margin-bottom:8px;padding:4px 7px;background:#f3efe8;border-radius:4px;">ART &amp; RESEARCH</div>
116 116   <h3 style="font-size:21px;line-height:1.25;margin:0 0 8px 0;color:#252321;">Art &amp; Research Services</h3>
117 - <p style="color:#6a655e;margin:0 0 14px 0;">Plan, manage, publish, share and preserve artistic and research projects.</p>
117 + <p style="color:#6a655e;margin:0 0 8px 0;">Cross-unit guidance for planning, managing, publishing, sharing and preserving artistic and research projects.</p>
118 + <!-- ARSN_ROOT_SCOPE_ROUTING_V1 -->
119 + <div style="font-size:12px;color:#506168;line-height:1.45;margin:0 0 14px 0;padding:7px 9px;background:#eef7f9;border-radius:5px;"><strong>Central project &amp; funding hub:</strong> Support Kunst und Forschung · specialist responsibilities remain with the relevant service units.</div>
118 118  
119 119   <div style="font-weight:700;margin-bottom:6px;">I need to…</div>
120 120   <ul style="margin:0 0 14px 18px;padding:0;">
... ... @@ -282,3 +282,238 @@
282 282  
283 283  </div>
284 284  {{/html}}
287 +
288 +{{html clean="false"}}
289 +<!-- SN_HORIZONTAL_BOX_HARMONIZER_START -->
290 +<style data-sn-horizontal-box-harmonizer="1">
291 +[data-sn-equal-height-managed="1"]{box-sizing:border-box}
292 +@media(max-width:767px){
293 + [data-sn-equal-height-managed="1"]{min-height:0!important}
294 +}
295 +</style>
296 +<script data-sn-horizontal-box-harmonizer="1">
297 +(function(){
298 + "use strict";
299 +
300 + var MOBILE_MAX=767;
301 + var ROW_TOLERANCE=4;
302 + var MIN_W=150;
303 + var MIN_H=36;
304 +
305 + var root=
306 + document.getElementById("xwikicontent")||
307 + document.querySelector(".xwiki-rendering-content")||
308 + document.querySelector("main")||
309 + document.body;
310 +
311 + if(!root)return;
312 +
313 + var managed=new Set();
314 + var raf=0;
315 +
316 + function num(v){
317 + var n=parseFloat(v);
318 + return Number.isFinite(n)?n:0;
319 + }
320 +
321 + function visible(el){
322 + if(!el||el.nodeType!==1)return false;
323 + var s=getComputedStyle(el);
324 + if(s.display==="none"||s.visibility==="hidden"||Number(s.opacity)===0)return false;
325 + var r=el.getBoundingClientRect();
326 + return r.width>=MIN_W&&r.height>=MIN_H;
327 + }
328 +
329 + function excluded(el){
330 + return !el.matches||el.matches(
331 + "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]"
332 + );
333 + }
334 +
335 + function namedLikeBox(el){
336 + var c=typeof el.className==="string"?el.className:"";
337 + return /(^|[\s_-])(box|card|tile|panel|role|check|service|source|call|area|detail|resource|topic|warn|info)([\s_-]|$)/i.test(c);
338 + }
339 +
340 + function boxLike(el){
341 + if(!visible(el)||excluded(el))return false;
342 + var s=getComputedStyle(el);
343 + var r=el.getBoundingClientRect();
344 + var border=
345 + num(s.borderTopWidth)+num(s.borderRightWidth)+
346 + num(s.borderBottomWidth)+num(s.borderLeftWidth);
347 + var radius=Math.max(
348 + num(s.borderTopLeftRadius),num(s.borderTopRightRadius),
349 + num(s.borderBottomLeftRadius),num(s.borderBottomRightRadius)
350 + );
351 + var bg=s.backgroundColor&&s.backgroundColor!=="rgba(0, 0, 0, 0)"&&s.backgroundColor!=="transparent";
352 + var shadow=s.boxShadow&&s.boxShadow!=="none";
353 + return namedLikeBox(el)||border>=1||(bg&&radius>=3)||(shadow&&r.width>=180);
354 + }
355 +
356 + function pickTarget(child){
357 + if(!visible(child))return null;
358 + if(boxLike(child))return child;
359 +
360 + var cr=child.getBoundingClientRect();
361 + var q=[];
362 + Array.from(child.children||[]).forEach(function(el){
363 + q.push({el:el,depth:1});
364 + });
365 +
366 + var best=null,bestScore=-1;
367 +
368 + while(q.length){
369 + var item=q.shift();
370 + var el=item.el;
371 + if(!visible(el))continue;
372 +
373 + var r=el.getBoundingClientRect();
374 +
375 + if(r.width>=cr.width*.72&&boxLike(el)){
376 + var widthFit=1-Math.min(1,Math.abs(cr.width-r.width)/Math.max(1,cr.width));
377 + var topFit=1-Math.min(1,Math.abs(cr.top-r.top)/80);
378 + var score=widthFit*5+topFit*2+Math.min(r.height,600)/600;
379 + if(score>bestScore){
380 + best=el;
381 + bestScore=score;
382 + }
383 + }
384 +
385 + if(item.depth<3){
386 + Array.from(el.children||[]).forEach(function(next){
387 + q.push({el:next,depth:item.depth+1});
388 + });
389 + }
390 + }
391 +
392 + return best;
393 + }
394 +
395 + function reset(){
396 + managed.forEach(function(el){
397 + el.style.removeProperty("min-height");
398 + el.removeAttribute("data-sn-equal-height-managed");
399 + });
400 + managed.clear();
401 + }
402 +
403 + function horizontalLayout(parent){
404 + if(!visible(parent))return false;
405 + var s=getComputedStyle(parent);
406 + if(s.display==="grid"||s.display==="inline-grid")return true;
407 + if(s.display==="flex"||s.display==="inline-flex"){
408 + return s.flexDirection==="row"||s.flexDirection==="row-reverse";
409 + }
410 + return false;
411 + }
412 +
413 + function rowGroups(entries){
414 + var groups=[];
415 + entries.slice().sort(function(a,b){
416 + return a.rect.top-b.rect.top||a.rect.left-b.rect.left;
417 + }).forEach(function(entry){
418 + var group=null;
419 + for(var i=0;i<groups.length;i++){
420 + if(Math.abs(groups[i].top-entry.rect.top)<=ROW_TOLERANCE){
421 + group=groups[i];
422 + break;
423 + }
424 + }
425 + if(!group){
426 + group={top:entry.rect.top,entries:[]};
427 + groups.push(group);
428 + }
429 + group.entries.push(entry);
430 + });
431 + return groups;
432 + }
433 +
434 + function run(){
435 + reset();
436 +
437 + if(window.innerWidth<=MOBILE_MAX)return;
438 +
439 + var parents=Array.from(root.querySelectorAll("*")).filter(function(el){
440 + return el.children&&el.children.length>=2&&horizontalLayout(el);
441 + });
442 +
443 + parents.forEach(function(parent){
444 + var entries=[];
445 +
446 + Array.from(parent.children).forEach(function(child){
447 + if(!visible(child))return;
448 + var target=pickTarget(child);
449 + if(!target)return;
450 + entries.push({
451 + target:target,
452 + rect:target.getBoundingClientRect()
453 + });
454 + });
455 +
456 + if(entries.length<2)return;
457 +
458 + rowGroups(entries).forEach(function(group){
459 + if(group.entries.length<2)return;
460 +
461 + var lefts=group.entries.map(function(e){return e.rect.left;}).sort(function(a,b){return a-b;});
462 + if(lefts[lefts.length-1]-lefts[0]<80)return;
463 +
464 + var targets=[];
465 + var seen=new Set();
466 +
467 + group.entries.forEach(function(e){
468 + if(!seen.has(e.target)){
469 + seen.add(e.target);
470 + targets.push(e.target);
471 + }
472 + });
473 +
474 + if(targets.length<2)return;
475 +
476 + var max=0;
477 + targets.forEach(function(el){
478 + max=Math.max(max,el.getBoundingClientRect().height);
479 + });
480 +
481 + max=Math.ceil(max);
482 + if(max<MIN_H)return;
483 +
484 + targets.forEach(function(el){
485 + el.style.setProperty("min-height",max+"px");
486 + el.setAttribute("data-sn-equal-height-managed","1");
487 + managed.add(el);
488 + });
489 + });
490 + });
491 + }
492 +
493 + function schedule(){
494 + if(raf)cancelAnimationFrame(raf);
495 + raf=requestAnimationFrame(function(){
496 + raf=requestAnimationFrame(function(){
497 + raf=0;
498 + run();
499 + });
500 + });
501 + }
502 +
503 + addEventListener("resize",schedule,{passive:true});
504 + addEventListener("load",schedule,{once:true});
505 +
506 + root.addEventListener("click",function(){
507 + setTimeout(schedule,0);
508 + },true);
509 +
510 + if(document.fonts&&document.fonts.ready){
511 + document.fonts.ready.then(schedule);
512 + }
513 +
514 + schedule();
515 + setTimeout(schedule,250);
516 + setTimeout(schedule,900);
517 +})();
518 +</script>
519 +<!-- SN_HORIZONTAL_BOX_HARMONIZER_END -->
520 +{{/html}}
521 +
XWiki.XWikiRights[2]
allow
... ... @@ -1,0 +1,1 @@
1 +Allow
groups
... ... @@ -1,0 +1,1 @@
1 +XWiki.OE-0000211
levels
... ... @@ -1,0 +1,1 @@
1 +view,comment,edit,script
XWiki.XWikiRights[3]
allow
... ... @@ -1,0 +1,1 @@
1 +Allow
levels
... ... @@ -1,0 +1,1 @@
1 +view,comment,edit,script
users
... ... @@ -1,0 +1,1 @@
1 +XWiki.p0010210