Changes for page Home
Last modified by Benjamin Fischer on 2025/06/04 14:20
From version 72.83
edited by Benjamin Fischer
on 2024/11/07 15:17
on 2024/11/07 15:17
Change comment:
There is no comment for this version
To version 72.55
edited by Benjamin Fischer
on 2024/11/07 12:09
on 2024/11/07 12:09
Change comment:
There is no comment for this version
Summary
-
Objects (2 modified, 0 added, 0 removed)
Details
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -9,10 +9,10 @@ 9 9 const range = num => Array(num).fill().map((_, i) => i); 10 10 FC.defineView('monthCols', { 11 11 class: FC.View.extend({ 12 - Qrender() {12 + render() { 13 13 console.debug("render"); 14 14 }, 15 - QrenderSkeleton() {15 + renderSkeleton() { 16 16 console.debug("renderSkeleton"); 17 17 }, 18 18 renderEvents(events) { ... ... @@ -26,8 +26,8 @@ 26 26 }, 27 27 _renderFun(events) { 28 28 const cf = this.opt("columnFormat") ?? "MMM"; 29 - const rf = this.opt("rowFormat") ?? " D";30 - const df = this.opt("cellFormat") ?? "dd"; 29 + const rf = this.opt("rowFormat") ?? "dd"; 30 + const df = this.opt("cellFormat") ?? "ddd"; 31 31 const wf = this.opt("weekFormat") ?? "w"; 32 32 const colspan = (df || wf) ? (1 + !!df + !!wf) : null; 33 33 ... ... @@ -35,12 +35,10 @@ 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 38 - const cols = []; 39 39 const head = []; 40 40 const days = Array(31).fill().map(_ => []); 41 41 42 42 if (rf) { 43 - cols.push(E("col", {class: "fc-fitCol"})); 44 44 head.push(E("th")); 45 45 days.forEach((arr, day) => arr.push(E("th", {class: "fc-axis"}, ys.clone().add({day}).format(rf)))); 46 46 } ... ... @@ -49,11 +49,8 @@ 49 49 const ms = ys.clone().add({month}) 50 50 const me = ms.clone().add({month: 1}); 51 51 const md = me.diff(ms, "days"); 52 - const mv = yv.filter(t => ms.isBefore(t.end) &&t.start.isBefore(me));50 + const mv = yv.filter(t => ms.isBefore(t.end) || t.start.isBefore(me)); 53 53 54 - if (df) cols.push(E("col", {class: "fc-fitCol fc-fade fc-borderLeft"})); 55 - cols.push(E("col", {class: df ? null : "fc-borderLeft"})); 56 - if (wf) cols.push(E("col", {class: "fc-fitCol fc-fade"})); 57 57 head.push(E("th", {colspan}, ms.format(cf))); 58 58 59 59 const bgc = new Array(md); ... ... @@ -66,28 +66,26 @@ 66 66 const oc = []; 67 67 while(mv[0]?.start.isBefore(de)) { 68 68 const v = mv.shift(); 69 - const d = Math.ceil(v.end.m ax(me).diff(ds, "days", true));70 - if ( v.rendering == "background"){71 - if ( v.color)64 + const d = Math.ceil(v.end.min(me).diff(ds, "days", true)); 65 + if (t.rendering == "background") 66 + if (t.color) 72 72 for (const i of range(d)) 73 - bgc[day + i] = v.color; 74 - } else { 75 - const href = v.html.match(/<span class="wikiexternallink"><a href="([^"]+)">\1</)?.[1] ?? v.url; 76 - const e = E("div", E("a", {href}, v.title)); 68 + bgc[day + i] = t.color; 69 + else { 70 + const e = E("div", t.title); 77 77 e.style.height = `${100 * d}%`; 78 - if ( v.color) e.style.borderColor = e.style.backgroundColor =v.color;79 - if ( v.textColor) e.style.color =v.textColor;72 + if (t.color) e.style.borderColor = e.style.backgroundColor = t.color; 73 + if (t.textColor) e.style.color = t.textColor; 80 80 oc.push(e); 81 81 // TODO: soft-columns 82 82 } 83 83 } 84 84 85 - const style = bgc[day] && `background-color: ${bgc[day]};`; 86 - const dc = this.getDayClasses(ds); 87 - const da = sub => ({class: dc.concat(sub).join(" "), style}); 88 - if (df) days[day].push(E("td", da("fc-dayVal"), ds.format(df))); 89 - days[day].push(E("td", da("fc-mainVal"), oc)); 90 - if (wf) days[day].push(E("td", da("fc-weekVal"), ds.weekday() ? "" : ds.format(wf))); 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", ds.weekday() ? "" : ds.format(wf))); 91 91 } else 92 92 days[day].push(E("td", {colspan})); 93 93 } ... ... @@ -97,7 +97,6 @@ 97 97 this.el.addClass("fc-month-cols-view").html( 98 98 E( 99 99 "table", 100 - E("colgroup", cols), 101 101 E("thead", {class: "fc-head"}, E("tr", head)), 102 102 E("tbody", {class: "fc-body"}, days.map(d => E("tr", d))), 103 103 ) ... ... @@ -117,7 +117,6 @@ 117 117 }, 118 118 monthCols: { 119 119 columnFormat: "MMM", 120 - weekFormat: "W", 121 121 titleFormat: "YYYY", 122 122 buttonText: "year", 123 123 },
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -1,55 +1,5 @@ 1 -#calendarCustom .fc{1 +#calendarCustom { 2 2 td.fc-sat, td.fc-sun { 3 3 background-color: #f5f5f5; 4 - &.fc-dayVal { 5 - background-color: #f5f5f5 !important; 6 - } 7 7 } 8 - .fc-month-cols-view > table { 9 - table-layout: auto; 10 - td, th { 11 - border-width: 0px; 12 - } 13 - col.fc-fitCol { 14 - width: 1px; 15 - } 16 - col.fc-borderLeft { 17 - border-left-width: 1px; 18 - } 19 - .fc-body { 20 - tr:nth-child(4n+3) > * { 21 - border-top: 1px solid #ddd; 22 - } 23 - tr:nth-child(4n+5) > * { 24 - border-top: 1px solid #bbb; 25 - } 26 - td.fc-mainVal { 27 - position: relative; 28 - & > div { 29 - z-index: 5; 30 - position: absolute; 31 - width: 100%; 32 - overflow: hidden; 33 - border-radius: 4px; 34 - &:hover { 35 - width: auto; 36 - max-width: 10vw; 37 - height: auto !important; 38 - z-index: 10; 39 - } 40 - & > a { 41 - display: block; 42 - color: inherit; 43 - background-color: inherit; 44 - } 45 - } 46 - } 47 - td.fc-weekVal { 48 - text-align: right; 49 - } 50 - .fc-fade { 51 - opacity: 0.3; 52 - } 53 - } 54 - } 55 55 }