Changes for page Helpers

Last modified by Benjamin Fischer on 2025/06/17 11:57

From version 2.5
edited by Benjamin Fischer
on 2025/05/27 12:25
Change comment: There is no comment for this version
To version 2.22
edited by Benjamin Fischer
on 2025/06/16 10:34
Change comment: There is no comment for this version

Summary

Details

XWiki.JavaScriptExtension[0]
Code
... ... @@ -21,6 +21,8 @@
21 21   sortable: false,
22 22   };
23 23   });
24 + //if (tableId === "jobs")
25 + // conf.url += `&valid=${Date.now() - 30*24*3600e3}-`;
24 24   tab.dataset.settings = JSON.stringify(conf);
25 25  
26 26   // column headers
... ... @@ -33,13 +33,16 @@
33 33   );
34 34  
35 35   // filter fileds for tags
38 + const tagFilterHelp = document.querySelector(".xwiki-livetable-tagcloud-container > h2")?.textContent ?? "Click on tag(s) to filter.";
36 36   const filterCells = tab.querySelectorAll(".xwiki-livetable-display-header-filter");
37 37   for (let pos; (pos = tagIdxs.length - 1) >= 0;) {
38 38   while (tagIdxs[pos] === tagIdxs[pos - 1] + 1)
39 - filterCells[pos--].remove();
40 - const e = filterCells[pos];
42 + filterCells[tagIdxs[pos--]].remove();
43 + const e = filterCells[tagIdxs[pos]];
41 41   e.colSpan = span = tagIdxs.length - pos;
42 - e.textContent = "Click on tag(s) to filter."
45 + e.textContent = tagFilterHelp;
46 + e.style.verticalAlign = "middle";
47 + e.style.textAlign = "center";
43 43   tagIdxs.splice(pos);
44 44   }
45 45  
... ... @@ -103,8 +103,17 @@
103 103   a.innerHTML = `<b class="wikiexternallink">${row.doc_title}</b>`;
104 104   row.doc_title = a.outerHTML;
105 105  
111 + const tgWords = row.topicGroup.split(" ");
112 + let o = 0;
113 + const tgItems = []
114 + for (const abbr in row.topicGroup_value.slice(1, -1).split(", ")) {
115 + tgItems.push(`<span title="${tgWords.slice(o, abbr.length).join(" ")}">${abbr}</span>`);
116 + o += abbr.length;
117 + }
118 + row.topicGroup = tgItems.join(" ");
119 +
106 106   row.doc_date = new Date(row.doc_date)?.toLocaleDateString() ?? row.doc_date.split(" ")[0];
107 - row.valid = new Date(row.valid_value)?.toLocaleDateString() ?? row.valid;
121 + row.valid = row.valid_value ? new Date(row.valid_value)?.toLocaleDateString() ?? row.valid : "N/A";
108 108   };
109 109  
110 110   livetableRowHook.materials = row => {
... ... @@ -148,6 +148,7 @@
148 148   a.setAttribute("href", u.href);
149 149  
150 150   row.doc_location = ol.outerHTML;
165 + row.date = new Date(row.date_value)?.toLocaleDateString(undefined, {year: "numeric", month: "numeric"}) ?? row.date;
151 151   };
152 152  
153 153   const coopDetailsLabel = "Cooperation Details";
... ... @@ -193,5 +193,25 @@
193 193   for (const tab of document.querySelectorAll(".xwiki-livetable"))
194 194   ttApply({ memo: { tableId: tab.id }});
195 195   });
211 +
212 + document.observe('xwiki:dom:loaded', () => {
213 + for (
214 + let e = document.querySelector(`#leftPanels a[href="${location.pathname.replace(/^(\/bin\/)[^\/]+(\/.+)/, "$1view$2")}"]`);
215 + e;
216 + e = e.parentElement
217 + ) switch(e.tagName) {
218 + case "UL":
219 + e = e.previousElementSibling;
220 + if (!e) return;
221 + case "SPAN":
222 + e.style.textDecoration = "underline";
223 + break;
224 + case "LI":
225 + e.classList.add("open");
226 + break;
227 + case "DIV":
228 + return;
229 + }
230 + });
196 196  })());
197 197  
XWiki.StyleSheetExtension[0]
Caching policy
... ... @@ -1,0 +1,1 @@
1 +default
Code
... ... @@ -1,0 +1,5 @@
1 +.xwiki-livetable-display-body > tr > td {
2 + &.date, &.doc_date, &.valid {
3 + word-break: normal;
4 + }
5 +}
Content Type
... ... @@ -1,0 +1,1 @@
1 +LESS
Name
... ... @@ -1,0 +1,1 @@
1 +Globale Styles
Parse content
... ... @@ -1,0 +1,1 @@
1 +No
Use this extension
... ... @@ -1,0 +1,1 @@
1 +always