Changes for page Home
Last modified by Benjamin Fischer on 2025/06/04 14:20
From version 72.58
edited by Benjamin Fischer
on 2024/11/07 12:23
on 2024/11/07 12:23
Change comment:
There is no comment for this version
To version 79.1
edited by Judith Steinfeld
on 2024/11/12 08:29
on 2024/11/12 08:29
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. fischer1 +XWiki.JudithSteinfeld - Content
-
... ... @@ -1,7 +1,10 @@ 1 1 {{box cssClass="floatinginfobox" image="https://wiki.test.erumdatahub.de/bin/download/Main/WebHome/logo_horizontal_23_neu.png?width=200"}} 2 2 {{displayIcon name="application_view_tile"/}} [[Indico>>https://indico.desy.de/category/984/]] 3 -{{displayIcon name="email"/}} [[Mailing Lists]] 3 +{{displayIcon name="email"/}} [[Mailing Lists>>doc:DIG-UM.Mailing Lists.WebHome]] 4 4 {{displayIcon name="world"/}} [[Website>>https://erumdatahub.de/]] 5 + 6 +//{{icon name="info-circle"/}}//ErUM =** Er**forschung von** U**niversum & **M**aterie 7 +(Research on Universe and Matter) 5 5 {{/box}} 6 6 7 7 Welcome to the new ErUM-Data-Hub Wiki - a place for all ErUM-Data communities, to interact and share information with one another. ... ... @@ -9,6 +9,8 @@ 9 9 If you have any ideas for new features or content that you would want to find here, feel free to get in contact with us. 10 10 Otherwise, you can always create an account and contribute improvements or novel content yourself. For now, the registration is not open to the puplic. 11 11 15 += = 16 + 12 12 = What is new? = 13 13 14 14 Have a look at our new comprehensive: ... ... @@ -16,6 +16,8 @@ 16 16 * [[Material collection]] of learning and teaching materials, and 17 17 * [[People in ErUM-Data]] list of research groups and contact information of people who work in ErUM-Data. 18 18 24 += = 25 + 19 19 = ErUM-Data Calendar = 20 20 21 21 {{velocity output="false"}}
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -9,12 +9,6 @@ 9 9 const range = num => Array(num).fill().map((_, i) => i); 10 10 FC.defineView('monthCols', { 11 11 class: FC.View.extend({ 12 - render() { 13 - console.debug("render"); 14 - }, 15 - renderSkeleton() { 16 - console.debug("renderSkeleton"); 17 - }, 18 18 renderEvents(events) { 19 19 console.debug("renderEvents", events); 20 20 debugger; ... ... @@ -35,10 +35,12 @@ 35 35 const ye = this.end; 36 36 const yv = events.slice().sort((a,b) => a.start.diff(b.start) || a.end.diff(b.end)); 37 37 32 + const cols = []; 38 38 const head = []; 39 39 const days = Array(31).fill().map(_ => []); 40 40 41 41 if (rf) { 37 + cols.push(E("col", {class: "fc-fitCol"})); 42 42 head.push(E("th")); 43 43 days.forEach((arr, day) => arr.push(E("th", {class: "fc-axis"}, ys.clone().add({day}).format(rf)))); 44 44 } ... ... @@ -49,9 +49,20 @@ 49 49 const md = me.diff(ms, "days"); 50 50 const mv = yv.filter(t => ms.isBefore(t.end) && t.start.isBefore(me)); 51 51 48 + if (df) cols.push(E("col", {class: "fc-fitCol"})); 49 + cols.push(E("col")); 50 + if (wf) cols.push(E("col", {class: "fc-fitCol"})); 52 52 head.push(E("th", {colspan}, ms.format(cf))); 53 53 54 54 const bgc = new Array(md); 54 + const bgt = new Array(md); 55 + let scc = []; 56 + let scu = []; 57 + const scs = col => el => { 58 + const step = 100 / scc.length; 59 + el.style.left = `${col * step}%`; 60 + el.style.width = `${step}%`; 61 + }; 55 55 56 56 for (const day of range(31)) { 57 57 if (day < md) { ... ... @@ -62,25 +62,42 @@ 62 62 while(mv[0]?.start.isBefore(de)) { 63 63 const v = mv.shift(); 64 64 const d = Math.ceil(v.end.max(me).diff(ds, "days", true)); 65 - if (v.rendering == "background") 72 + if (v.rendering == "background") { 66 66 if (v.color) 67 - for (const i of range(d)) 74 + for (const i of range(d)) { 68 68 bgc[day + i] = v.color; 69 - else { 70 - const e = E("div", v.title); 76 + bgt[day + i] = v.title; 77 + } 78 + } else { 79 + const e = E("div", E("a", {href: v.url}, v.title)); 71 71 e.style.height = `${100 * d}%`; 72 72 if (v.color) e.style.borderColor = e.style.backgroundColor = v.color; 73 73 if (v.textColor) e.style.color = v.textColor; 83 + if (v.start.isBefore(ms)) e.classList.add("fc-cut-start"); 84 + if (me.isBefore(v.end)) e.classList.add("fc-cut-end"); 74 74 oc.push(e); 75 - // TODO: soft-columns 86 + const i = scu.indexOf(0); 87 + if (i < 0) { 88 + scc.push([e]); 89 + scu.push(d); 90 + scc.forEach((els, col) => els.forEach(scs(col))); 91 + } else { 92 + scc[i].push(e); 93 + scu[i] = d; 94 + scs(i)(e); 95 + } 76 76 } 77 77 } 78 78 79 - const da = {class: this.getDayClasses(ds).join(" ")}; 80 - if (df) days[day].push(E("td", da, ds.format(df))); 81 - if (bgc[day]) da.style = `background-color: ${bgc[day]};`; 82 - days[day].push(E("td", da, oc)); 83 - if (wf) days[day].push(E("td", da, ds.weekday() ? "" : ds.format(wf))); 99 + scu = scu.map(u => Math.max(0, u - 1)); 100 + if (!scu.some()) {scc = []; scu = [];} 101 + 102 + const style = bgc[day] && `background-color: ${bgc[day]};`; 103 + const dc = this.getDayClasses(ds); 104 + const da = (sub, title = bgt[day] ?? null) => ({class: dc.concat(sub).join(" "), style, title}); 105 + if (df) days[day].push(E("td", da("fc-dayVal", ds.format("D")), ds.format(df))); 106 + days[day].push(E("td", da("fc-mainVal"), oc)); 107 + if (wf) days[day].push(E("td", da("fc-weekVal"), ds.weekday() ? "" : ds.format(wf))); 84 84 } else 85 85 days[day].push(E("td", {colspan})); 86 86 } ... ... @@ -90,6 +90,7 @@ 90 90 this.el.addClass("fc-month-cols-view").html( 91 91 E( 92 92 "table", 117 + E("colgroup", cols), 93 93 E("thead", {class: "fc-head"}, E("tr", head)), 94 94 E("tbody", {class: "fc-body"}, days.map(d => E("tr", d))), 95 95 ) ... ... @@ -109,6 +109,7 @@ 109 109 }, 110 110 monthCols: { 111 111 columnFormat: "MMM", 137 + weekFormat: "W", 112 112 titleFormat: "YYYY", 113 113 buttonText: "year", 114 114 }, ... ... @@ -125,14 +125,16 @@ 125 125 right: "month,monthCols", 126 126 }, 127 127 timeFormat: "H:mm", 128 - defaultView: "month", 154 + defaultView: "monthCols", 129 129 firstDay: "1", 130 130 minTime: "8:00", 131 131 maxTime: "23:00", 132 - defaultDate: "2024-11-06", 133 133 editable: false, 134 134 eventDataTransform: event => { 135 - if (event.url.split("/")[4] === "Holidays") event.rendering = "background"; 160 + const cal = event.url.split("/")[4]; 161 + if (cal === "Holidays" || cal == "Blocked" || cal.includes("Conference")) event.rendering = "background"; 162 + event.viewUrl = event.url; 163 + event.url = event.html.match(/<span class="wikiexternallink"><a href="([^"]+)">\1</)?.[1] ?? event.url; 136 136 return event; 137 137 }, 138 138 eventRender: function (event, element) {
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -1,5 +1,74 @@ 1 -#calendarCustom { 1 +@weekend-color: #f5f5f5; 2 +#calendarCustom.fc { 2 2 td.fc-sat, td.fc-sun { 3 - background-color: #f5f5f5;4 + background-color: @weekend-color; 4 4 } 6 + .fc-month-cols-view > table { 7 + table-layout: auto; 8 + td, th { 9 + border-width: 0px; 10 + } 11 + col.fc-fitCol { 12 + width: 1px; 13 + } 14 + tbody.fc-body { 15 + td { 16 + &.fc-sat, &.fc-sun { 17 + background-color: @weekend-color; 18 + &.fc-dayVal { 19 + background-color: @weekend-color !important; 20 + } 21 + } 22 + } 23 + tr:nth-child(4n+3) > * { 24 + border-top: 1px solid #ddd; 25 + } 26 + tr:nth-child(4n+5) > * { 27 + border-top: 1px solid #bbb; 28 + } 29 + tr:hover > th { 30 + background-color: #ccc; 31 + } 32 + td.fc-mainVal { 33 + position: relative; 34 + & > div { 35 + z-index: 5; 36 + position: absolute; 37 + width: 100%; 38 + overflow: hidden; 39 + border-radius: 4px; 40 + &.fc-cut-start { 41 + border-top-left-radius: 0px; 42 + border-top-right-radius: 0px; 43 + } 44 + &.fc-cut-end { 45 + border-bottom-left-radius: 0px; 46 + border-bottom-right-radius: 0px; 47 + } 48 + &:hover { 49 + width: auto !important; 50 + max-width: 10vw; 51 + height: auto !important; 52 + z-index: 10; 53 + } 54 + & > a { 55 + display: block; 56 + color: inherit; 57 + background-color: inherit; 58 + } 59 + } 60 + } 61 + td.fc-dayVal, td.fc-weekVal { 62 + color: #7f95aa; 63 + cursor: default; 64 + } 65 + td.fc-dayVal { 66 + font-size: small; 67 + } 68 + td.fc-weekVal { 69 + font-size: smaller; 70 + text-align: right; 71 + } 72 + } 73 + } 5 5 }