Changes for page Material Collection
Last modified by Judith Steinfeld on 2025/06/03 11:13
From version 55.8
edited by admin
on 2024/10/23 14:51
on 2024/10/23 14:51
Change comment:
There is no comment for this version
To version 57.1
edited by Judith Steinfeld
on 2024/11/06 12:06
on 2024/11/06 12:06
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. admin1 +XWiki.JudithSteinfeld - Content
-
... ... @@ -5,7 +5,7 @@ 5 5 6 6 With our material collection we want to provide an overview of existing materials and contacts by outlining where to find what. 7 7 8 -The collection of existing materials is complemented by our own materials which include for example videos and slides from various workshops and schools organized by the ErUM-Data-Hub in collaboration with DIG-UM with which we reached over 800 participants so far. 8 +The collection of existing materials thrives on being filled and is complemented by our own materials which include for example videos and slides from various workshops and schools organized by the ErUM-Data-Hub in collaboration with DIG-UM with which we reached over 800 participants so far. 9 9 10 10 11 11 If you want to be subscribed or unsubscribed from this list please contact [[judith.steinfeld@erumdatahub.de>>mailto:judith.steinfeld@erumdatahub.de]] ... ... @@ -12,7 +12,7 @@ 12 12 {{/info}} 13 13 14 14 {{success}} 15 -Our collection of materials covers many different topics. You can click on one or more tags to filter the list. ..15 +Our collection of materials covers many different topics. You can click on one or more tags to filter the list or search for titles and authors. 16 16 {{/success}} 17 17 18 18 {{velocity}}
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -1,10 +1,11 @@ 1 +const tabName = "materials"; 1 1 const tagCols = [ 2 - ["Type", "lecture", "exercise", "hands-on", "solution", "tutorial"], 3 + ["Type", "lecture", "exercise", "hands-on", "solution", "tutorial", "talk", "course", "video", "paper"], 3 3 ["Tags", true], 4 4 ] 5 5 6 6 document.observe('xwiki:livetable:loading', () => { 7 - const mats = document.getElementById( "materials");8 + const mats = document.getElementById(tabName); 8 8 9 9 // coulmn data sources 10 10 const conf = JSON.parse(mats.dataset.settings); ... ... @@ -26,7 +26,7 @@ 26 26 ); 27 27 28 28 // handle clicks for tags 29 - document.getElementById( "materials-display").addEventListener("click", ev => {30 + document.getElementById(`${tabName}-display`).addEventListener("click", ev => { 30 30 if (ev.button) return; // only left click 31 31 if (ev.target.nodeName !== "SPAN") return; 32 32 if (!ev.target.classList.contains("ltTag")) return; ... ... @@ -42,7 +42,7 @@ 42 42 }) 43 43 }); 44 44 45 -document.observe( "xwiki:livetable:materials:receivedEntries", ({memo: {data}}) => {46 +document.observe(`xwiki:livetable:${tabName}:receivedEntries`, ({memo: {data}}) => { 46 46 for (const row of data.rows) { 47 47 const ol = new DOMParser().parseFromString(row.doc_location, "text/xml").documentElement; 48 48 const li = ol.children; ... ... @@ -52,15 +52,24 @@ 52 52 li[i].textContent = li[i].textContent; // remove link 53 53 54 54 const a = li[li.length - 1].children[0]; 56 + const b = a.ownerDocument.createElement("b"); 57 + a.replaceWith(b); 58 + b.appendChild(a); 59 + a.textContent = row.doc_title; 60 + 55 55 const u = new URL(row.link_value); 56 56 let icon; 57 57 if (u.hostname.includes("github")) icon = "github"; 64 + if (u.hostname.includes("github.io")) icon = "book"; 58 58 if (u.hostname.includes("gitlab")) icon = "gitlab"; 59 59 if (u.hostname.includes("google")) icon = "google"; 67 + if (u.hostname.includes("colab")) icon = "code"; 68 + if (u.hostname.includes("youtube")) icon = "youtube-play"; 60 60 if (u.pathname.endsWith(".pdf")) icon = "file-pdf-o"; 70 + if (u.pathname.endsWith(".pptx")) icon = "file-powerpoint-o"; 61 61 if (icon) { 62 62 const s = a.ownerDocument.createElement("span"); 63 - s. textContent="73 + s.appendChild(a.ownerDocument.createElement("wbr")); 64 64 s.setAttribute("class", `fa fa-${icon}`); 65 65 s.setAttribute("style", "padding-right: .3em;"); 66 66 a.insertBefore(s, a.firstChild); ... ... @@ -77,7 +77,7 @@ 77 77 want[0] === true 78 78 ? Array.from(tags) 79 79 : want.filter(tag => tags.delete(tag)) 80 - ).sort().map(tag => `<span class="ltTag" style="cursor:pointer;">${tag}</span>`).join(", ") 90 + ).sort().map(tag => `<span class="ltTag" style="cursor:pointer;white-space:nowrap;">${tag}</span>`).join(", ") 81 81 ); 82 82 } 83 83 });