Changes for page Nice Display

Last modified by Benjamin Fischer on 2025/03/26 13:19

From version 28.2
edited by admin
on 2024/10/23 12:56
Change comment: There is no comment for this version
To version 28.6
edited by admin
on 2024/10/23 13:06
Change comment: There is no comment for this version

Summary

Details

XWiki.JavaScriptExtension[0]
Code
... ... @@ -1,12 +1,12 @@
1 1  const tabName = "research groups";
2 2  const tagCols = [
3 - ["Community", "KAT", "KET", "KfB", "KFN", "KFS", "KFSI", "KHuK", "RDS", "beyond ErUM"]
3 + ["Community", "KAT", "KET", "KfB", "KFN", "KFS", "KFSI", "KHuK", "RDS", "beyond ErUM"],
4 4   ["Experiment", "CMS", "ATLAS", "Belle2", "CTA", "Auger"],
5 5   ["Tags", true],
6 6  ]
7 7  
8 8  document.observe('xwiki:livetable:loading', () => {
9 - const mats = document.getElementById(tagName);
9 + const mats = document.getElementById(tabName);
10 10  
11 11   // coulmn data sources
12 12   const conf = JSON.parse(mats.dataset.settings);
... ... @@ -28,7 +28,7 @@
28 28   );
29 29  
30 30   // handle clicks for tags
31 - document.getElementById(`${tagName}-display`).addEventListener("click", ev => {
31 + document.getElementById(`${tabName}-display`).addEventListener("click", ev => {
32 32   if (ev.button) return; // only left click
33 33   if (ev.target.nodeName !== "SPAN") return;
34 34   if (!ev.target.classList.contains("ltTag")) return;
... ... @@ -44,36 +44,12 @@
44 44   })
45 45  });
46 46  
47 -document.observe(`xwiki:livetable:${tagName}:receivedEntries`, ({memo: {data}}) => {
48 - debugger;
49 - return;
47 +document.observe(`xwiki:livetable:${tabName}:receivedEntries`, ({memo: {data}}) => {
50 50   for (const row of data.rows) {
51 - const ol = new DOMParser().parseFromString(row.doc_location, "text/xml").documentElement;
52 - const li = ol.children;
49 + row.affiliation = `<a href="${row.URL}" class="wikiexternallink">${
50 + row.affiliation_value.split("\n").map((a, i) => i ? a : `<b>${a}</b>`).join("<br/>");
51 + }</a>`;
53 53  
54 - li[0].remove(); // remove "Event"
55 - for (let i = 1; i < li.length - 1; i++) // intermediate
56 - li[i].textContent = li[i].textContent; // remove link
57 -
58 - const a = li[li.length - 1].children[0];
59 - const u = new URL(row.link_value);
60 - let icon;
61 - if (u.hostname.includes("github")) icon = "github";
62 - if (u.hostname.includes("gitlab")) icon = "gitlab";
63 - if (u.hostname.includes("google")) icon = "google";
64 - if (u.pathname.endsWith(".pdf")) icon = "file-pdf-o";
65 - if (icon) {
66 - const s = a.ownerDocument.createElement("span");
67 - s.textContent = " ";
68 - s.setAttribute("class", `fa fa-${icon}`);
69 - s.setAttribute("style", "padding-right: .3em;");
70 - a.insertBefore(s, a.firstChild);
71 - }
72 - a.setAttribute("class", "wikiexternallink");
73 - a.setAttribute("href", u.href);
74 -
75 - row.doc_location = ol.outerHTML;
76 -
77 77   // tags
78 78   const tags = new Set(row.tags_value.slice(1, -1).split(", "));
79 79   tagCols.forEach(([name, ...want], i) =>