Changes for page People in ErUM-Data

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

From version 28.4
edited by admin
on 2024/10/23 12:58
Change comment: There is no comment for this version
To version 31.1
edited by Benjamin Fischer
on 2024/10/24 10:09
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.admin
1 +XWiki.fischer
Content
... ... @@ -11,6 +11,7 @@
11 11   'URL': {"type": "hidden"},
12 12   "content": {"type": "hidden"},
13 13   "tags": {"sortable": false, "filterable": false, "html": true, "headerClass": "tagsCol"},
14 + "doc.date": {"filterable": false, "displayName": "Last Updated"},
14 14   '_actions': {"actions":["view","edit"]}
15 15  })
16 16  #set ($options = {
... ... @@ -19,9 +19,9 @@
19 19   'tagCloud': true,
20 20   'rowCount': 15,
21 21   'maxPages': 10,
22 - 'selectedColumn': 'affiliation',
23 - 'defaultOrder': 'asc'
23 + 'selectedColumn': 'doc.date',
24 + 'defaultOrder': 'desc'
24 24  })
25 -#set ($columns = ['affiliation', 'URL', "content", "tags", "tags", "tags", '_actions'])
26 -#livetable('research groups' $columns $columnsProperties $options)
26 +#set ($columns = ['affiliation', 'URL', "content", "tags", "tags", "tags", "doc.date", '_actions'])
27 +#livetable('research_groups' $columns $columnsProperties $options)
27 27  {{/velocity}}
XWiki.JavaScriptExtension[0]
Code
... ... @@ -1,7 +1,7 @@
1 -const tabName = "research groups";
1 +const tabName = "research_groups";
2 2  const tagCols = [
3 3   ["Community", "KAT", "KET", "KfB", "KFN", "KFS", "KFSI", "KHuK", "RDS", "beyond ErUM"],
4 - ["Experiment", "CMS", "ATLAS", "Belle2", "CTA", "Auger"],
4 + ["Experiment", "CMS", "ATLAS", "Belle2", "CTA", "Auger", "SKA", "IceCube"],
5 5   ["Tags", true],
6 6  ]
7 7  
... ... @@ -45,35 +45,19 @@
45 45  });
46 46  
47 47  document.observe(`xwiki:livetable:${tabName}:receivedEntries`, ({memo: {data}}) => {
48 - debugger;
49 - return;
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;
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);
49 + const a = new Element("a", { href: row.URL });
50 + a.innerHTML = row.affiliation_value.split("\n").map((a, i) => i ? a : `<b class="wikiexternallink">${a}</b>`).join("<br/>");
51 + a.title = row.doc_title;
52 + if (row.content !== "-") {
53 + a.dataset.content = row.content;
54 + a.dataset.toggle = "popover";
71 71   }
72 - a.setAttribute("class", "wikiexternallink");
73 - a.setAttribute("href", u.href);
74 74  
75 - row.doc_location = ol.outerHTML;
57 + row.affiliation = a.outerHTML;
76 76  
59 + row.doc_date = row.doc_date.split(" ")[0].split("/").slice(0, 2).join("/");
60 +
77 77   // tags
78 78   const tags = new Set(row.tags_value.slice(1, -1).split(", "));
79 79   tagCols.forEach(([name, ...want], i) =>
... ... @@ -86,5 +86,20 @@
86 86   }
87 87  });
88 88  
73 +require(['jquery', 'bootstrap'], function($) {
74 + document.styleSheets[0].insertRule(`#mainContentArea .popover {max-width: 50%;}`)
89 89  
76 + const ttApply = () => {
77 + $(`#${tabName} [data-toggle="popover"]`).popover({
78 + html: true,
79 + container: `#mainContentArea`,
80 + trigger: "hover",
81 + });
82 + };
90 90  
84 + document.observe(`xwiki:livetable:${tabName}:displayComplete`, ttApply);
85 + ttApply();
86 +});
87 +
88 +
89 +