Changes for page Home
Last modified by Benjamin Fischer on 2025/06/04 14:20
From version 72.75
edited by Benjamin Fischer
on 2024/11/07 13:40
on 2024/11/07 13:40
Change comment:
There is no comment for this version
To version 72.48
edited by Benjamin Fischer
on 2024/11/07 11:58
on 2024/11/07 11:58
Change comment:
There is no comment for this version
Summary
-
Objects (2 modified, 0 added, 0 removed)
Details
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -17,17 +17,9 @@ 17 17 }, 18 18 renderEvents(events) { 19 19 console.debug("renderEvents", events); 20 - debugger; 21 - try { 22 - this._renderFun(events); 23 - } catch (e) { 24 - console.exception(e); 25 - } 26 - }, 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"; 21 + const rf = this.opt("rowFormat") ?? "dd"; 22 + 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,61 +35,54 @@ 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 - 39 - const cols = []; 40 40 const head = []; 41 41 const days = Array(31).fill().map(_ => []); 42 42 43 43 if (rf) { 44 - cols.push(E("col", {class: "fc-fitCol"})); 45 45 head.push(E("th")); 46 46 days.forEach((arr, day) => arr.push(E("th", {class: "fc-axis"}, ys.clone().add({day}).format(rf)))); 47 47 } 48 48 49 - for (const month ofrange(12)) {38 + for (const month in Array(12).fill()) { 50 50 const ms = ys.clone().add({month}) 51 51 const me = ms.clone().add({month: 1}); 52 52 const md = me.diff(ms, "days"); 53 - const mv = yv.filter(t => ms.isBefore(t.end) &&t.start.isBefore(me));42 + const mv = yv.filter(t => ms.isBefore(t.end) || t.start.isBefore(me)); 54 54 55 - if (df) cols.push(E("col", {class: "fc-fitCol fc-fade fc-borderLeft"})); 56 - cols.push(E("col", {class: df ? null : "fc-borderLeft"})); 57 - if (wf) cols.push(E("col", {class: "fc-fitCol fc-fade"})); 58 58 head.push(E("th", {colspan}, ms.format(cf))); 59 59 60 60 const bgc = new Array(md); 61 61 62 - for ( const dayofrange(31)){63 - if ( day< md) {48 + for (let day = 0; i < 31; i++) { 49 + if (i < md) { 64 64 const ds = ms.clone().add({day}); 65 65 const de = ds.clone().add({day: 1}); 66 66 67 67 const oc = []; 68 - while(mv[0]?. start.isBefore(de)) {54 + while(mv[0]?.isBefore(de)) { 69 69 const v = mv.shift(); 70 - const d = Math.ceil(v.end.m ax(me).diff(ds, "days", true));71 - if ( v.rendering == "background"){72 - if ( v.color)73 - for ( const iof range(d))74 - bgc[day + i] = v.color;75 - }else {76 - const e = E("div", v.title);56 + const d = Math.ceil(v.end.min(me).diff(ds, "days", true)); 57 + if (t.rendering == "background") 58 + if (t.color) 59 + for (let i=0; i<d; i++) 60 + bgc[day + i] = t.color; 61 + else { 62 + 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;64 + if (t.color) e.style.borderColor = e.style.backgroundColor = t.color; 65 + 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 ds = sub => ({class: dc.concat(sub).join(" "), style}); 88 - if (df) days[day].push(E("td", ds("fc-dayVal"), ds.format(df))); 89 - days[day].push(E("td", ds("fc-mainVal"), oc)); 90 - if (wf) days[day].push(E("td", ds("fc-weekVal"), ds.weekday() ? "" : ds.format(wf))); 71 + const da = {class: this.getDayClasses(d).join(" ")}; 72 + if (df) days[i].push(E("td", da, ds.format(df))); 73 + if (bgc[day]) da.style = `background-color: ${bgc[day]};`; 74 + days[i].push(E("td", da, oc)); 75 + if (wf) days[i].oush(E("td", ds.weekday() ? "" : ds.format(wf))); 91 91 } else 92 - days[ day].push(E("td", {colspan}));77 + days[i].push(E("td", {colspan})); 93 93 } 94 94 } 95 95 ... ... @@ -97,12 +97,13 @@ 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 ) 104 104 ); 105 - } 89 + 90 + debugger; 91 + }, 106 106 }), 107 107 duration: { year: 1 }, 108 108 }); ... ... @@ -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,32 +1,5 @@ 1 -#calendarCustom .fc{1 +#calendarCustom { 2 2 td.fc-sat, td.fc-sun { 3 3 background-color: #f5f5f5; 4 4 } 5 - .fc-month-cols-view > table { 6 - table-layout: auto; 7 - td, th { 8 - border-width: 0px; 9 - } 10 - col.fc-fitCol { 11 - width: 1px; 12 - } 13 - col.fc-borderLeft { 14 - border-left-width: 1px; 15 - } 16 - .fc-body { 17 - td { 18 - position: relative; 19 - & > div { 20 - position: absolute; 21 - width: 100%; 22 - } 23 - } 24 - td.fc-weekVal { 25 - text-align: right; 26 - } 27 - .fc-fade { 28 - opacity: 0.3; 29 - } 30 - } 31 - } 32 32 }