aboutsummaryrefslogtreecommitdiff
path: root/static/server_connect.js
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-12-18 23:18:47 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2020-12-18 23:18:47 +0100
commit0e1eb02c1a6d596bd1e620b9c9bb13e6c125f5cb (patch)
treefef88b7581e8e3f2b41f739137ad42859e67915c /static/server_connect.js
parentAdd convert entry-point. (diff)
downloadcalp-0e1eb02c1a6d596bd1e620b9c9bb13e6c125f5cb.tar.gz
calp-0e1eb02c1a6d596bd1e620b9c9bb13e6c125f5cb.tar.xz
Start work on jcal system.
Diffstat (limited to '')
-rw-r--r--static/server_connect.js60
1 files changed, 57 insertions, 3 deletions
diff --git a/static/server_connect.js b/static/server_connect.js
index e789d72c..6c4e4496 100644
--- a/static/server_connect.js
+++ b/static/server_connect.js
@@ -23,14 +23,68 @@ async function remove_event (element) {
async function create_event (event) {
- let xml = event.getElementsByTagName("icalendar")[0].outerHTML
+ // let xml = event.getElementsByTagName("icalendar")[0].outerHTML
let calendar = event.properties.calendar;
- console.log(calendar, xml);
+ console.log(calendar/*, xml*/);
let data = new URLSearchParams();
data.append("cal", calendar);
- data.append("data", xml);
+ // data.append("data", xml);
+
+ for (let prop of event.properties.ical_properties) {
+ let v = event.properties[prop];
+ if (v !== undefined) {
+ [prop, {}, /*type*/, v];
+ /* TODO , here */
+
+ let type = 'text';
+ let value;
+
+ if (v instanceof Array) {
+ } else if (v instanceof Date) {
+ if (v.isWholeDay) {
+ type = 'date';
+ value = v.format("~Y-~m-~d");
+ } else {
+ type = 'date-time';
+ /* TODO TZ */
+ value = v.format("~Y-~m~dT~H:~M:~S");
+ }
+ } else if (v === true || v === false) {
+ type = 'boolean';
+ value = v;
+ } else if (typeof(v) == 'number') {
+ /* TODO float or integer */
+ type = 'integer';
+ value = v;
+ }
+ /* TODO period */
+ /* TODO recur */
+ else {
+ /* text types */
+ }
+
+ }
+ }
+
+
+ let jcal =
+ ['vcalendar',
+ ['vevent',
+ [
+ ['summary', {}, 'text', 'Example summary'],
+ ],
+ []
+ ]
+ ];
+
+ let doc = jcal_to_xcal(jcal);
+ console.log(doc);
+
+ console.log(event.properties);
+
+ return;
let response = await fetch ( '/insert', {
method: 'POST',