// RENDERER FOR THIS VIEW
function view_render_calendar() {
- fetch(
- "/ctdl/r/" + escapeHTMLURI(current_room) + "/calendar::"
- )
+
+ let options = {
+ method: "REPORT",
+ headers: {
+ "Content-Type" : "application/xml; charset=utf-8"
+ },
+ body: `
+ <CAL:calendar-query xmlns="DAV:" xmlns:CAL="urn:ietf:params:xml:ns:caldav">
+ <allprop />
+ <CAL:filter>
+ <CAL:comp-filter name="VCALENDAR">
+ <CAL:comp-filter name="VEVENT" />
+ </CAL:comp-filter>
+ </CAL:filter>
+ </CAL:calendar-query>
+ `
+ };
+
+ fetch("/ctdl/r/" + escapeHTMLURI(current_room), options)
.then(response => {
if (response.ok) {
- return(response.json());
+ return(response.text());
}
else {
throw new Error(`${response.status} ${response.statusText}`);
}
})
- .then(j => {
- document.getElementById("ctdl-main").innerHTML = JSON.stringify(j);
+ //.then(str => document.getElementById("ctdl-main").innerHTML = escapeHTML(str))
+ .then(str => new window.DOMParser().parseFromString(str, "text/xml"))
+ .then(xmlcal => {
+ document.getElementById("ctdl-main").innerHTML = "calendar items:<br>";
+ let root = xmlcal.documentElement;
+ let children = root.childNodes;
+ for (let i=0; i<children.length; ++i) {
+ let child = children[i];
+ if (child.nodeType == Node.ELEMENT_NODE) {
+ var getetag_e = child.getElementsByTagName("DAV:href")[0];
+ var getetag_s = getetag_e.textContent;
+ document.getElementById("ctdl-main").innerHTML += getetag_s + "<br>";
+ }
+ }
+
})
.catch(error => {
console.log(error);