Changes for page Home

Last modified by Benjamin Fischer on 2025/06/04 14:20

From version 105.1
edited by Judith Steinfeld
on 2025/03/26 09:30
Change comment: Deleted image "Gewinnspiel Wiki.png"
To version 112.5
edited by Benjamin Fischer
on 2025/05/15 13:16
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.JudithSteinfeld
1 +XWiki.fischer
Content
... ... @@ -24,9 +24,11 @@
24 24  
25 25  ==== ====
26 26  
27 -{{icon name="question-circle"}}{{/icon}}Further information, answers to all questions you may have regarding the ErUM-Data-Hub and more about our aims and work can be found on our [[website>>https://erumdatahub.de/]].
27 +{{icon name="question-circle"}}{{/icon}}Further information, answers to all questions you may have regarding the ErUM-Data-Hub and more about our aims and work can be found on our [[website>>https://erumdatahub.de/]]
28 28  
29 29  
30 +
31 +
30 30  == What is new? ==
31 31  
32 32  Have a look at our new comprehensive material collection, the People in ErUM-Data list and Industry meets ErUM-Data:
Gewinnspiel Wiki(1).jpg
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.JudithSteinfeld
Size
... ... @@ -1,0 +1,1 @@
1 +3.5 MB
Content
XWiki.JavaScriptExtension[1]
Caching policy
... ... @@ -1,0 +1,1 @@
1 +default
Code
... ... @@ -1,0 +1,79 @@
1 +define("xwiki-custom-livetable", [], function () {
2 + const func = (tabName, rowFunc, colTT = {}) => {
3 + let tagCols;
4 +
5 + document.observe('xwiki:livetable:loading', () => {
6 + const tab = document.getElementById(tabName);
7 + if (!tab) return;
8 +
9 + // coulmn data sources
10 + const conf = JSON.parse(tab.dataset.settings);
11 + tagCols = (conf.columnDescriptors.tags ?? { aux: [] }).aux ?? [["Tags", true]];
12 + tagCols.forEach(([name], i) => {
13 + const cn = `tags-${i}`;
14 + conf.columns.splice(conf.columns.indexOf("tags"), 1, cn);
15 + conf.columnDescriptors[cn] = {
16 + displayName: name,
17 + headerClass: "tagsCol",
18 + html: true,
19 + sortable: false,
20 + };
21 + });
22 + tab.dataset.settings = JSON.stringify(conf);
23 +
24 + // column headers
25 + tab.querySelectorAll(".xwiki-livetable-display-header .tagsCol").forEach(
26 + (v, i) => v.textContent = tagCols[i][0]
27 + );
28 +
29 + // column tooltips
30 + tab.querySelectorAll(".xwiki-livetable-display-header-text").forEach(
31 + el => {
32 + const t = el.textContent.trim();
33 + const c = conf.columnDescriptors[t].tooltip ?? colTT[t];
34 + if (c) {
35 + el.title = t;
36 + el.dataset.content = c;
37 + el.dataset.toggle = "popover";
38 + el.dataset.placement = "top";
39 + }
40 + }
41 + )
42 +
43 + // handle clicks for tags
44 + document.getElementById(`${tabName}-display`).addEventListener("click", ev => {
45 + if (ev.button) return; // only left click
46 + if (ev.target.nodeName !== "SPAN") return;
47 + if (!ev.target.classList.contains("ltTag")) return;
48 + const tag = ev.target.textContent;
49 + ev.preventDefault();
50 + const lt = tab.__liveTable;
51 + const st = lt.tagCloud.selectedTags;
52 + if (tag in st) delete st[tag];
53 + else st[tag] = {};
54 + lt.tags = Object.keys(st);
55 + lt.clearCache();
56 + lt.showRows(1, lt.limit);
57 + })
58 + });
59 +
60 + document.observe(`xwiki:livetable:${tabName}:receivedEntries`, ({ memo: { data } }) => {
61 + for (const row of data.rows) {
62 + if (rowFunc) rowFunc(row)
63 +
64 + // tags
65 + const tags = new Set(row.tags_value.slice(1, -1).split(", "));
66 + tagCols.forEach(([name, ...want], i) =>
67 + row[`tags-${i}`] = (
68 + want[0] === true
69 + ? Array.from(tags)
70 + : want.filter(tag => tags.delete(tag))
71 + ).sort().map(tag => `<span class="ltTag" style="cursor:pointer;">${tag}</span>`).join(", ")
72 + );
73 + }
74 + });
75 + };
76 +
77 + func.func = func;
78 + return func;
79 +});
Name
... ... @@ -1,0 +1,1 @@
1 +Livetable - Common Stuff
Parse content
... ... @@ -1,0 +1,1 @@
1 +No
Use this extension
... ... @@ -1,0 +1,1 @@
1 +onDemand