Changes for page Home

Last modified by Benjamin Fischer on 2025/07/11 17:00

From version 66.1
edited by Benjamin Fischer
on 2024/10/24 16:37
Change comment: Renamed back-links.
To version 100.1
edited by Judith Steinfeld
on 2025/02/20 16:31
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.fischer
1 +XWiki.JudithSteinfeld
Content
... ... @@ -1,57 +1,54 @@
1 -
1 +=== ===
2 2  
3 -[[image:logo_horizontal_23_neu.png||height="100" width="200"]]
3 +{{box cssClass="floatinginfobox" image="https://wiki.erumdatahub.de/bin/download/Main/WebHome/logo_horizontal_23_neu.png?width=200"}}
4 +{{displayIcon name="application_view_tile"/}} [[Events (Indico)>>https://indico.desy.de/category/984/]]
5 +{{displayIcon name="email"/}} [[Mailing Lists>>doc:DIG-UM.Mailing Lists.WebHome]]
6 +{{displayIcon name="world"/}} [[Website>>https://erumdatahub.de/]]
4 4  
5 -(% class="box infomessage" %)
6 -(((
7 -**Welcome to the new ErUM-Data-Hub Wiki       **
8 -)))
8 +//{{icon name="info-circle"/}}//ErUM =** Er**forschung von** U**niversum & **M**aterie
9 +(Research on Universe and Matter)
10 +{{/box}}
9 9  
12 +== **Welcome** ==
10 10  
11 -== **Getting Started** ==
14 +==== ====
12 12  
13 -For any questions, access and editing rights, please contact {{displayIcon name="email"/}}[[ webmaster@erumdatahub.de>>mailto:webmaster@erumdatahub.de]]
16 +==== **Welcome to the new ErUM-Data-Hub Wiki - a place for all ErUM-Data communities, to interact and share information with one another.** ====
14 14  
15 -----
18 +**We invite you to create an account and contribute improvements and contents yourself. For help, see this [[video>>attach:registration.mp4]]. **
16 16  
17 -=== **{{displayIcon name="email"/}} Mailing Lists** ===
18 18  
19 -Subscribe to our Mailing-Lists: [[https:~~/~~/wiki.erumdatahub.de/de/mailing-list>>url:https://wiki.erumdatahub.de/de/mailing-lists]]
21 +This wiki was launched and released for use in January 2025. Please note that further development is an ongoing effort. Further functions, content and interaction options are planned. **This wiki is for you, the ErUM-Data community**, and is intended to meet your needs. For optimal functionality, we are dependent on your input. We are always happy to receive feedback, suggestions and requests, which you are welcome to send to angela.warkentin@erumdatahub.de.
20 20  
21 -----
23 +==== ====
22 22  
23 -=== **{{displayIcon name="world"/}} Further Information** ===
25 +{{icon name="question-circle"}}{{/icon}}Further information, answers to all questions you may have regarding the ErUM-Data-Hub and more about our aims and work can be found on our [[website>>https://erumdatahub.de/]].
24 24  
25 -For more information have a look at our website:  [[https:~~/~~/wiki.erumdatahub.de>>url:https://wiki.erumdatahub.de/de/mailing-lists]]
26 26  
27 -----
28 +== What is new? ==
28 28  
29 -=== ** {{displayIcon name="application_view_tile"/}} Events** ===
30 +Have a look at our new comprehensive material collection and People in ErUM-Data list:
30 30  
31 -Upcoming next: [[Federated Infrastructure (Coordination Meeting) - 04.11.2024>>https://indico.desy.de/event/46669/]]
32 +* [[Material collection]] of learning and teaching materials, and
33 +* [[People in ErUM-Data]] list of research groups and contact information of people who work in ErUM-Data.
32 32  
33 -All events: [[https:~~/~~/indico.desy.de/category/984/ >>https://indico.desy.de/category/984/]]
35 += =
34 34  
35 -----
37 +== ErUM-Data Calendar ==
36 36  
37 -{{info}}
38 -**What is new?**
39 +{{velocity output="false"}}
40 +$xwiki.ssx.use("Calendar.FullCalendar")
41 +$xwiki.jsx.use("Calendar.FullCalendar", {'defer': false})
42 +$xwiki.jsx.use("Main.WebHome", {'defer': false, 'minify': false})
43 +{{/velocity}}
39 39  
40 -
41 -Have a look at our [[Material Collection>>doc:Material collection.WebHome]] and [[People in ErUM-Data>>doc:People in ErUM-Data tmp.WebHome]].
42 -
43 -
44 -Both lists contain a comprehensive collection of information on (1) learning and teaching materials as well as (2) research groups and contact information of people who work in ErUM-Data and are intended to to facilitate your search for suitable ErUM-Data information.
45 -
45 +(% id="calendarCustom" %)
46 +(((
46 46  
47 -{{/info}}
48 +)))
48 48  
50 += =
49 49  
50 -
51 -{{calendar classname="Event.Code.EventClass" startfield="startDate" endfield="endDate" right="month,listYear" editable="false"/}}
52 -
53 -
54 -
55 55  {{velocity}}
56 56  #set ($showcomments = false)
57 57  #set ($showannotations = false)
jahreskalender_2024_v14.xlsx
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.JudithSteinfeld
Size
... ... @@ -1,1 +1,0 @@
1 -25.5 KB
Content
registration.mp4
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.JanBurger
Size
... ... @@ -1,0 +1,1 @@
1 +1.1 MB
Content
XWiki.JavaScriptExtension[0]
Caching policy
... ... @@ -1,0 +1,1 @@
1 +default
Code
... ... @@ -1,0 +1,178 @@
1 +require(["jquery", "fullcalendar"], function (jq) {
2 + const FC = jq.fullCalendar;
3 + const E = (tag, ...childs) => {
4 + const attrs = childs[0]?.constructor === Object ? childs.shift() : {};
5 + const ret = Element(tag, attrs);
6 + ret.append(...childs.flat().filter(e => e));
7 + return ret;
8 + };
9 + const range = num => Array(num).fill().map((_, i) => i);
10 + FC.defineView('monthCols', {
11 + class: FC.View.extend({
12 + renderEvents(events) {
13 + console.debug("renderEvents", events);
14 + debugger;
15 + try {
16 + this._renderFun(events);
17 + } catch (e) {
18 + console.exception(e);
19 + }
20 + },
21 + _renderFun(events) {
22 + const cf = this.opt("columnFormat") ?? "MMM";
23 + const rf = this.opt("rowFormat") ?? "D";
24 + const df = this.opt("cellFormat") ?? "dd";
25 + const wf = this.opt("weekFormat") ?? "w";
26 + const colspan = (df || wf) ? (1 + !!df + !!wf) : null;
27 +
28 + const ys = this.start;
29 + const ye = this.end;
30 + const yv = events.slice().sort((a,b) => a.start.diff(b.start) || a.end.diff(b.end));
31 +
32 + const cols = [];
33 + const head = [];
34 + const days = Array(31).fill().map(_ => []);
35 +
36 + if (rf) {
37 + cols.push(E("col", {class: "fc-fitCol"}));
38 + head.push(E("th"));
39 + days.forEach((arr, day) => arr.push(E("th", {class: "fc-axis"}, ys.clone().add({day}).format(rf))));
40 + }
41 +
42 + for (const month of range(12)) {
43 + const ms = ys.clone().add({month})
44 + const me = ms.clone().add({month: 1});
45 + const md = me.diff(ms, "days");
46 + const mv = yv.filter(t => ms.isBefore(t.end) && t.start.isBefore(me));
47 +
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 + head.push(E("th", {colspan}, ms.format(cf)));
52 +
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 + };
62 +
63 + for (const day of range(31)) {
64 + if (day < md) {
65 + const ds = ms.clone().add({day});
66 + const de = ds.clone().add({day: 1});
67 +
68 + const oc = [];
69 + while(mv[0]?.start.isBefore(de)) {
70 + const v = mv.shift();
71 + const d = Math.ceil(v.end.max(me).diff(ds, "days", true));
72 + if (v.rendering == "background") {
73 + if (v.color)
74 + for (const i of range(d)) {
75 + bgc[day + i] = v.color;
76 + bgt[day + i] = v.title;
77 + }
78 + } else {
79 + const e = E("div", E("a", {href: v.url}, v.title));
80 + e.style.height = `${100 * d}%`;
81 + if (v.color) e.style.borderColor = e.style.backgroundColor = v.color;
82 + 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");
85 + oc.push(e);
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 + }
96 + }
97 + }
98 +
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)));
108 + } else
109 + days[day].push(E("td", {colspan}));
110 + }
111 + }
112 +
113 +
114 + this.el.addClass("fc-month-cols-view").html(
115 + E(
116 + "table",
117 + E("colgroup", cols),
118 + E("thead", {class: "fc-head"}, E("tr", head)),
119 + E("tbody", {class: "fc-body"}, days.map(d => E("tr", d))),
120 + )
121 + );
122 + }
123 + }),
124 + duration: { year: 1 },
125 + });
126 +
127 + const init = () => {
128 + jq("#calendarCustom").fullCalendar({
129 + views: {
130 + month: {
131 + columnFormat: "ddd",
132 + titleFormat: "MMMM YYYY",
133 + buttonText: "month",
134 + },
135 + monthCols: {
136 + columnFormat: "MMM",
137 + weekFormat: "W",
138 + titleFormat: "YYYY",
139 + buttonText: "year",
140 + },
141 + },
142 + timeFormat: "h(:mm)t",
143 + axisFormat: "h(:mm)t",
144 + allDayText: "All day",
145 + eventSources: [
146 + "/bin/get/MoccaCalendar/Code/JSONService?xpage=plain&outputSyntax=plain&calendarDoc=Main.WebHome&filter=wiki&classname=MoccaCalendar.MoccaCalendarEventClass&startfield=startDate&endfield=endDate&durationfield=&xpage=plain&outputSyntax=plain&classname=&startfield=datetime&endfield=&durationfield=&extraFields=",
147 + ],
148 + header: {
149 + left: "prev,next today",
150 + center: "title",
151 + right: "month,monthCols",
152 + },
153 + timeFormat: "H:mm",
154 + defaultView: "monthCols",
155 + firstDay: "1",
156 + minTime: "8:00",
157 + maxTime: "23:00",
158 + validRange: {
159 + start: '2022-01-01',
160 + end: '2027-01-01',
161 + },
162 + editable: false,
163 + eventDataTransform: event => {
164 + const cal = event.url.split("/")[4];
165 + if (cal === "Holidays" || cal == "Blocked" || cal.includes("Conference")) event.rendering = "background";
166 + event.viewUrl = event.url;
167 + event.url = event.html.match(/<span class="wikiexternallink"><a href="([^"]+)">\1</)?.[1] ?? event.url;
168 + return event;
169 + },
170 + eventRender: function (event, element) {
171 + // Render augmentation hook, use: event.html
172 + },
173 + });
174 + };
175 +
176 + jq(document).ready(init);
177 +});
178 +
Name
... ... @@ -1,0 +1,1 @@
1 +Customized Calendar View
Parse content
... ... @@ -1,0 +1,1 @@
1 +No
Use this extension
... ... @@ -1,0 +1,1 @@
1 +onDemand
XWiki.StyleSheetExtension[0]
Caching policy
... ... @@ -1,0 +1,1 @@
1 +default
Code
... ... @@ -1,0 +1,74 @@
1 +@weekend-color: #f5f5f5;
2 +#calendarCustom.fc {
3 + td.fc-sat, td.fc-sun {
4 + background-color: @weekend-color;
5 + }
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 + }
74 +}
Content Type
... ... @@ -1,0 +1,1 @@
1 +LESS
Parse content
... ... @@ -1,0 +1,1 @@
1 +No
Use this extension
... ... @@ -1,0 +1,1 @@
1 +currentPage