Changes for page Nice Display
Last modified by Benjamin Fischer on 2025/03/26 13:19
From version 45.10
edited by Benjamin Fischer
on 2025/03/26 10:32
on 2025/03/26 10:32
Change comment:
There is no comment for this version
To version 45.29
edited by Benjamin Fischer
on 2025/03/26 13:16
on 2025/03/26 13:16
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,17 +4,16 @@ 4 4 #if ( $ntrg_tagCols == $null ) 5 5 #set( $ntrg_tagCols = [["Tags", true]] ) 6 6 #end 7 -#if ( $ntrg_tabName == $null ) 8 -#set( $ntrg_tabName = "research_groups" ) 9 -#end 10 -#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})) 11 11 12 12 #set ($columnsProperties = { 13 13 'affiliation': {"filterable":true, "sortable":true, "html":true}, 14 14 'URL': {"type": "hidden"}, 15 15 "content": {"type": "hidden"}, 16 - "coop": {}, 17 - "tags": {"sortable": false, "filterable": false, "html": true, "headerClass": "tagsCol"}, 14 + "coopDetails": {"type": "hidden"}, 15 + "coop": {"html": true}, 16 + "tags": {"sortable": false, "filterable": false, "html": true, "headerClass": "tagsCol", "aux": $ntrg_tagCols}, 18 18 "doc.date": {"filterable": false, "displayName": "Last Updated"}, 19 19 '_actions': {"actions":["view","edit"]} 20 20 }) ... ... @@ -28,8 +28,11 @@ 28 28 'selectedColumn': 'doc.date', 29 29 'defaultOrder': 'desc' 30 30 }) 31 -#set ($columns = ['affiliation', 'URL', "content", "tags", "coop", "doc.date", '_actions']) 32 -#livetable('research_groups' $columns $columnsProperties $options) 30 +#set ($columns = ['affiliation', 'URL', "content", "coop", "coopDetails", "doc.date", '_actions']) 31 +#foreach ($ntrg_tagCol in $ntrg_tagCols) 32 +#set ($discard = $columns.add(3, "tags")) 33 +#end 34 +#livetable("research_groups" $columns $columnsProperties $options) 33 33 {{/velocity}} 34 34 35 35 (% id="howto" %) ... ... @@ -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,6 +1,20 @@ 1 -/*! 2 -#[[*/ 3 -((tagCols = [["Tags", true]], tabName = "research_groups") => { 1 +(()=>{ 2 + 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; 4 4 5 5 document.observe('xwiki:livetable:loading', () => { 6 6 const mats = document.getElementById(tabName); ... ... @@ -8,6 +8,7 @@ 8 8 9 9 // coulmn data sources 10 10 const conf = JSON.parse(mats.dataset.settings); 25 + tagCols = (conf.columnDescriptors.tags ?? {aux: []}).aux ?? [["Tags", true]]; 11 11 tagCols.forEach(([name], i) => { 12 12 const cn = `tags-${i}`; 13 13 conf.columns.splice(conf.columns.indexOf("tags"), 1, cn); ... ... @@ -25,6 +25,19 @@ 25 25 (v, i) => v.textContent = tagCols[i][0] 26 26 ); 27 27 43 + // column tooltips 44 + mats.querySelectorAll(".xwiki-livetable-display-header-text").forEach( 45 + el => { 46 + const c = colTT[el.textContent] 47 + if (c) { 48 + el.title = el.textContent; 49 + el.dataset.content = c; 50 + el.dataset.toggle = "popover"; 51 + el.dataset.placement = "top"; 52 + } 53 + } 54 + ) 55 + 28 28 // handle clicks for tags 29 29 document.getElementById(`${tabName}-display`).addEventListener("click", ev => { 30 30 if (ev.button) return; // only left click ... ... @@ -48,12 +48,24 @@ 48 48 a.innerHTML = row.affiliation_value.split("\n").map((a, i) => i ? a : `<b class="wikiexternallink">${a}</b>`).join("<br/>"); 49 49 a.title = row.doc_title; 50 50 if (row.content !== "-") { 51 - a.dataset.content = row.content; 79 + let c = row.content; 80 + if (row.coopDetails !== "-") 81 + c = `${c}<br/><b>${coopDetailsLabel}:</b> ${row.coopDetails}`; 82 + a.dataset.content = c; 52 52 a.dataset.toggle = "popover"; 53 53 } 54 - 55 55 row.affiliation = a.outerHTML; 56 56 87 + row.coop = row.coop.replace(/\b \.\.\. \b/g, " ...<br/>"); 88 + if (row.coopDetails !== "-") { 89 + const d = new Element("div"); 90 + d.innerHTML = row.coop; 91 + d.title = coopDetailsLabel; 92 + d.dataset.content = row.coopDetails; 93 + d.dataset.toggle = "popover"; 94 + row.coop = d.outerHTML; 95 + } 96 + 57 57 row.doc_date = row.doc_date.split(" ")[0].split("/").slice(0, 2).join("/"); 58 58 59 59 // tags ... ... @@ -82,5 +82,4 @@ 82 82 document.observe(`xwiki:livetable:${tabName}:displayComplete`, ttApply); 83 83 ttApply(); 84 84 }); 85 -/* ]]# */ 86 -})($jsontool.serialize($ntrg_tagCols), $jsontool.serialize($ntrg_tabName)); 125 +})(); - Parse content
-
... ... @@ -1,1 +1,1 @@ 1 - Yes1 +No