MCPcopy Create free account
hub / github.com/DHTMLX/scheduler / extend$8

Function extend$8

codebase/sources/dhtmlxscheduler.js:6139–6199  ·  view source on GitHub ↗
(scheduler2)

Source from the content-addressed store, hash-verified

6137 } };
6138 }
6139 function extend$8(scheduler2) {
6140 scheduler2.ical = scheduler2._parsers.ical = { canParse: function(data) {
6141 if (typeof data === "string") {
6142 return new RegExp("^BEGIN:VCALENDAR").test(data);
6143 }
6144 return false;
6145 }, parse: function(str) {
6146 var data = str.match(RegExp(this.c_start + "[^\f]*" + this.c_end, ""));
6147 if (!data.length)
6148 return;
6149 data[0] = data[0].replace(/[\r\n]+ /g, "");
6150 data[0] = data[0].replace(/[\r\n]+(?=[a-z \t])/g, " ");
6151 data[0] = data[0].replace(/;[^:\r\n]*:/g, ":");
6152 var incoming = [];
6153 var match;
6154 var event_r = RegExp("(?:" + this.e_start + ")([^\f]*?)(?:" + this.e_end + ")", "g");
6155 while ((match = event_r.exec(data)) !== null) {
6156 var e = {};
6157 var param;
6158 var param_r = /[^\r\n]+[\r\n]+/g;
6159 while ((param = param_r.exec(match[1])) !== null)
6160 this.parse_param(param.toString(), e);
6161 if (e.uid && !e.id)
6162 e.id = e.uid;
6163 incoming.push(e);
6164 }
6165 return incoming;
6166 }, parse_param: function(str, obj) {
6167 var d = str.indexOf(":");
6168 if (d == -1)
6169 return;
6170 var name = str.substr(0, d).toLowerCase();
6171 var value = str.substr(d + 1).replace(/\\,/g, ",").replace(/[\r\n]+$/, "");
6172 if (name == "summary")
6173 name = "text";
6174 else if (name == "dtstart") {
6175 name = "start_date";
6176 value = this.parse_date(value, 0, 0);
6177 } else if (name == "dtend") {
6178 name = "end_date";
6179 value = this.parse_date(value, 0, 0);
6180 }
6181 obj[name] = value;
6182 }, parse_date: function(value, dh, dm) {
6183 var t2 = value.split("T");
6184 var utcMark = false;
6185 if (t2[1]) {
6186 dh = t2[1].substr(0, 2);
6187 dm = t2[1].substr(2, 2);
6188 utcMark = !!(t2[1][6] == "Z");
6189 }
6190 var dy = t2[0].substr(0, 4);
6191 var dn = parseInt(t2[0].substr(4, 2), 10) - 1;
6192 var dd = t2[0].substr(6, 2);
6193 if (scheduler2.config.server_utc || utcMark) {
6194 return new Date(Date.UTC(dy, dn, dd, dh, dm));
6195 } else {
6196 return new Date(dy, dn, dd, dh, dm);

Callers 1

extend$7Function · 0.70

Calls 1

parse_dateMethod · 0.65

Tested by

no test coverage detected