Changes for page Nice Display
Last modified by Benjamin Fischer on 2025/03/26 13:19
From version 45.15
edited by Benjamin Fischer
on 2025/03/26 10:50
on 2025/03/26 10:50
Change comment:
There is no comment for this version
To version 45.30
edited by Benjamin Fischer
on 2025/03/26 13:18
on 2025/03/26 13:18
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -4,13 +4,15 @@ 4 4 #if ( $ntrg_tagCols == $null ) 5 5 #set( $ntrg_tagCols = [["Tags", true]] ) 6 6 #end 7 -#set ($discard = $xwiki.jsx.use('Research Groups.Nice Display.WebHome')) 7 +#set ($shouldMinify = !$hasProgramming ) 8 +#set ($discard = $xwiki.jsx.use('Research Groups.Nice Display.WebHome', {"minify": $shouldMinify})) 8 8 9 9 #set ($columnsProperties = { 10 10 'affiliation': {"filterable":true, "sortable":true, "html":true}, 11 11 'URL': {"type": "hidden"}, 12 12 "content": {"type": "hidden"}, 13 - "coop": {}, 14 + "coopDetails": {"type": "hidden"}, 15 + "coop": {"html": true}, 14 14 "tags": {"sortable": false, "filterable": false, "html": true, "headerClass": "tagsCol", "aux": $ntrg_tagCols}, 15 15 "doc.date": {"filterable": false, "displayName": "Last Updated"}, 16 16 '_actions': {"actions":["view","edit"]} ... ... @@ -25,7 +25,7 @@ 25 25 'selectedColumn': 'doc.date', 26 26 'defaultOrder': 'desc' 27 27 }) 28 -#set ($columns = ['affiliation', 'URL', "content", "coop", "doc.date", '_actions']) 30 +#set ($columns = ['affiliation', 'URL', "content", "coop", "coopDetails", "doc.date", '_actions']) 29 29 #foreach ($ntrg_tagCol in $ntrg_tagCols) 30 30 #set ($discard = $columns.add(3, "tags")) 31 31 #end ... ... @@ -53,4 +53,3 @@ 53 53 1. click {{html}}<button class="btn btn-primary">Save & View</button>{{/html}} (bottom left) 54 54 1. update the Tags (bottom left) 55 55 56 -=== Demo Video - Coming Soon ===
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -1,10 +1,20 @@ 1 1 (()=>{ 2 - const tagCols = [ 3 - ["Community", "KAT", "KET", "KfB", "KFN", "KFS", "KFSI", "KHuK", "RDS", "beyond ErUM"], 4 - ["Experiment", "CMS", "ATLAS", "Belle2", "CTA", "Pierre Auger Observatory", "SKA", "IceCube", "KATRIN", "KASCADE", "GREGOR", "STELLA", "LOFAR", "LHCb", "LHC", "PETRA III", "PETRA IV", "PANDA", "Gaia", "Euclid", "BESSY II", "ANTARES", "H.E.S.S.", "KM3NeT", "FLASH", "Einstein Telescope"], 5 - ["Tags", true], 6 - ]; 7 7 const tabName = "research_groups"; 3 + const coopDetailsLabel = "Cooperation Details"; 4 + const colTT = { 5 + "Community": [ 6 + "KAT - Astroparticle Physics", 7 + "KET - Elementary Particles Physics", 8 + "KfB - Accelerator Physics", 9 + "KFN - Research with neutrons", 10 + "KFN - Research with synchrotron radiation", 11 + "KFSI - Research with nuclear probes and ion beams", 12 + "KHuK - Hadron and nuclear physics", 13 + "RDS - German Observatory Council" 14 + ].join("\n"), 15 + "Cooperation": "...", 16 + }; 17 + let tagCols; 8 8 9 9 document.observe('xwiki:livetable:loading', () => { 10 10 const mats = document.getElementById(tabName); ... ... @@ -12,6 +12,7 @@ 12 12 13 13 // coulmn data sources 14 14 const conf = JSON.parse(mats.dataset.settings); 25 + tagCols = (conf.columnDescriptors.tags ?? {aux: []}).aux ?? [["Tags", true]]; 15 15 tagCols.forEach(([name], i) => { 16 16 const cn = `tags-${i}`; 17 17 conf.columns.splice(conf.columns.indexOf("tags"), 1, cn); ... ... @@ -29,6 +29,20 @@ 29 29 (v, i) => v.textContent = tagCols[i][0] 30 30 ); 31 31 43 + // column tooltips 44 + mats.querySelectorAll(".xwiki-livetable-display-header-text").forEach( 45 + el => { 46 + const t = el.textContent.trim(); 47 + const c = colTT[t] 48 + if (c) { 49 + el.title = t; 50 + el.dataset.content = c; 51 + el.dataset.toggle = "popover"; 52 + el.dataset.placement = "top"; 53 + } 54 + } 55 + ) 56 + 32 32 // handle clicks for tags 33 33 document.getElementById(`${tabName}-display`).addEventListener("click", ev => { 34 34 if (ev.button) return; // only left click ... ... @@ -52,12 +52,24 @@ 52 52 a.innerHTML = row.affiliation_value.split("\n").map((a, i) => i ? a : `<b class="wikiexternallink">${a}</b>`).join("<br/>"); 53 53 a.title = row.doc_title; 54 54 if (row.content !== "-") { 55 - a.dataset.content = row.content; 80 + let c = row.content; 81 + if (row.coopDetails !== "-") 82 + c = `${c}<br/><b>${coopDetailsLabel}:</b> ${row.coopDetails}`; 83 + a.dataset.content = c; 56 56 a.dataset.toggle = "popover"; 57 57 } 58 - 59 59 row.affiliation = a.outerHTML; 60 60 88 + row.coop = row.coop.replace(/\b \.\.\. \b/g, " ...<br/>"); 89 + if (row.coopDetails !== "-") { 90 + const d = new Element("div"); 91 + d.innerHTML = row.coop; 92 + d.title = coopDetailsLabel; 93 + d.dataset.content = row.coopDetails; 94 + d.dataset.toggle = "popover"; 95 + row.coop = d.outerHTML; 96 + } 97 + 61 61 row.doc_date = row.doc_date.split(" ")[0].split("/").slice(0, 2).join("/"); 62 62 63 63 // tags