Changes for page Home
Last modified by Benjamin Fischer on 2025/06/04 14:20
From version 73.6
edited by Benjamin Fischer
on 2024/11/07 17:02
on 2024/11/07 17:02
Change comment:
There is no comment for this version
To version 73.23
edited by Benjamin Fischer
on 2024/11/08 14:34
on 2024/11/08 14:34
Change comment:
There is no comment for this version
Summary
-
Objects (2 modified, 0 added, 0 removed)
Details
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -45,12 +45,20 @@ 45 45 const md = me.diff(ms, "days"); 46 46 const mv = yv.filter(t => ms.isBefore(t.end) && t.start.isBefore(me)); 47 47 48 - if (df) cols.push(E("col", {class: "fc-fitCol fc-fade fc-borderLeft"}));49 - cols.push(E("col" , {class: df ? null : "fc-borderLeft"}));50 - if (wf) cols.push(E("col", {class: "fc-fitCol fc-fade"}));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"})); 51 51 head.push(E("th", {colspan}, ms.format(cf))); 52 52 53 53 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 + }; 54 54 55 55 for (const day of range(31)) { 56 56 if (day < md) { ... ... @@ -63,11 +63,12 @@ 63 63 const d = Math.ceil(v.end.max(me).diff(ds, "days", true)); 64 64 if (v.rendering == "background") { 65 65 if (v.color) 66 - for (const i of range(d)) 74 + for (const i of range(d)) { 67 67 bgc[day + i] = v.color; 76 + bgt[day + i] = v.title; 77 + } 68 68 } else { 69 - const href = v.html.match(/<span class="wikiexternallink"><a href="([^"]+)">\1</)?.[1] ?? v.url; 70 - const e = E("div", E("a", {href}, v.title)); 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; ... ... @@ -74,14 +74,26 @@ 74 74 if (v.start.isBefore(ms)) e.classList.add("fc-cut-start"); 75 75 if (me.isBefore(v.end)) e.classList.add("fc-cut-end"); 76 76 oc.push(e); 77 - // 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 + } 78 78 } 79 79 } 80 80 99 + scu = scu.map(u => Math.max(0, u - 1)); 100 + if (!scu.some()) {scc = []; scu = [];} 101 + 81 81 const style = bgc[day] && `background-color: ${bgc[day]};`; 82 82 const dc = this.getDayClasses(ds); 83 - const da = sub => ({class: dc.concat(sub).join(" "), style}); 84 - if (df) days[day].push(E("td", da("fc-dayVal"), ds.format(df))); 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))); 85 85 days[day].push(E("td", da("fc-mainVal"), oc)); 86 86 if (wf) days[day].push(E("td", da("fc-weekVal"), ds.weekday() ? "" : ds.format(wf))); 87 87 } else ... ... @@ -134,10 +134,11 @@ 134 134 firstDay: "1", 135 135 minTime: "8:00", 136 136 maxTime: "23:00", 137 - defaultDate: "2024-11-06", 138 138 editable: false, 139 139 eventDataTransform: event => { 140 140 if (event.url.split("/")[4] === "Holidays") event.rendering = "background"; 161 + event.viewUrl = event.url; 162 + event.url = event.html.match(/<span class="wikiexternallink"><a href="([^"]+)">\1</)?.[1] ?? event.url; 141 141 return event; 142 142 }, 143 143 eventRender: function (event, element) {
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -1,9 +1,7 @@ 1 +@weekend-color: #f5f5f5; 1 1 #calendarCustom.fc { 2 2 td.fc-sat, td.fc-sun { 3 - background-color: #f5f5f5; 4 - &.fc-dayVal { 5 - background-color: #f5f5f5 !important; 6 - } 4 + background-color: @weekend-color; 7 7 } 8 8 .fc-month-cols-view > table { 9 9 table-layout: auto; ... ... @@ -15,7 +15,12 @@ 15 15 } 16 16 tbody.fc-body { 17 17 td { 18 - background-color: #fff; 16 + &.fc-sat, &.fc-sun { 17 + background-color: @weekend-color; 18 + &.fc-dayVal { 19 + background-color: @weekend-color !important; 20 + } 21 + } 19 19 } 20 20 tr:nth-child(4n+3) > * { 21 21 border-top: 1px solid #ddd; ... ... @@ -23,8 +23,8 @@ 23 23 tr:nth-child(4n+5) > * { 24 24 border-top: 1px solid #bbb; 25 25 } 26 - tr:hover { 27 - filter:brightness(0.95);29 + tr:hover > th { 30 + background-color: #ccc; 28 28 } 29 29 td.fc-mainVal { 30 30 position: relative; ... ... @@ -43,7 +43,7 @@ 43 43 border-bottom-right-radius: 0px; 44 44 } 45 45 &:hover { 46 - width: auto; 49 + width: auto !important; 47 47 max-width: 10vw; 48 48 height: auto !important; 49 49 z-index: 10; ... ... @@ -56,9 +56,14 @@ 56 56 } 57 57 } 58 58 td.fc-dayVal, td.fc-weekVal { 59 - color: desaturate(lighten(#1D3B58, 50%), 80%); 62 + color: #7f95aa; 63 + cursor: default; 60 60 } 65 + td.fc-dayVal { 66 + font-size: small; 67 + } 61 61 td.fc-weekVal { 69 + font-size: smaller; 62 62 text-align: right; 63 63 } 64 64 }