1 | //redefine this method, if you want to provide a custom set of attributes for serialization
|
---|
2 | scheduler.data_attributes=function(){
|
---|
3 | var attrs = [];
|
---|
4 | var format = scheduler.templates.xml_format;
|
---|
5 | for (var a in this._events){
|
---|
6 | var ev = this._events[a];
|
---|
7 | for (var name in ev)
|
---|
8 | if (name.substr(0,1) !="_")
|
---|
9 | attrs.push([name,((name == "start_date" || name == "end_date")?format:null)]);
|
---|
10 | break;
|
---|
11 | }
|
---|
12 | return attrs;
|
---|
13 | }
|
---|
14 |
|
---|
15 | scheduler.toXML = function(header){
|
---|
16 | var xml = [];
|
---|
17 | var attrs = this.data_attributes();
|
---|
18 |
|
---|
19 |
|
---|
20 | for (var a in this._events){
|
---|
21 | var ev = this._events[a];
|
---|
22 | if (ev.id.toString().indexOf("#")!=-1) continue;
|
---|
23 | xml.push("<event>");
|
---|
24 | for (var i=0; i < attrs.length; i++)
|
---|
25 | xml.push("<"+attrs[i][0]+"><![CDATA["+(attrs[i][1]?attrs[i][1](ev[attrs[i][0]]):ev[attrs[i][0]])+"]]></"+attrs[i][0]+">");
|
---|
26 |
|
---|
27 | xml.push("</event>");
|
---|
28 | }
|
---|
29 | return (header||"")+"<data>"+xml.join("\n")+"</data>";
|
---|
30 | };
|
---|
31 |
|
---|
32 | scheduler.toJSON = function(){
|
---|
33 | var json = [];
|
---|
34 | var attrs = this.data_attributes();
|
---|
35 | for (var a in this._events){
|
---|
36 | var ev = this._events[a];
|
---|
37 | if (ev.id.toString().indexOf("#")!=-1) continue;
|
---|
38 | var ev = this._events[a];
|
---|
39 | var line =[];
|
---|
40 | for (var i=0; i < attrs.length; i++)
|
---|
41 | line.push(' '+attrs[i][0]+':"'+((attrs[i][1]?attrs[i][1](ev[attrs[i][0]]):ev[attrs[i][0]])||"").toString().replace(/\n/g,"")+'" ');
|
---|
42 | json.push("{"+line.join(",")+"}");
|
---|
43 | }
|
---|
44 | return "["+json.join(",\n")+"]";
|
---|
45 | };
|
---|
46 |
|
---|
47 |
|
---|
48 | scheduler.toICal = function(header){
|
---|
49 | var start = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//dhtmlXScheduler//NONSGML v2.2//EN\nDESCRIPTION:";
|
---|
50 | var end = "END:VCALENDAR";
|
---|
51 | var format = scheduler.date.date_to_str("%Y%m%dT%H%i%s");
|
---|
52 |
|
---|
53 | var ical = [];
|
---|
54 | for (var a in this._events){
|
---|
55 | var ev = this._events[a];
|
---|
56 | if (ev.id.toString().indexOf("#")!=-1) continue;
|
---|
57 |
|
---|
58 |
|
---|
59 | ical.push("BEGIN:VEVENT");
|
---|
60 | ical.push("DTSTART:"+format(ev.start_date));
|
---|
61 | ical.push("DTEND:"+format(ev.end_date));
|
---|
62 | ical.push("SUMMARY:"+ev.text);
|
---|
63 | ical.push("END:VEVENT");
|
---|
64 | }
|
---|
65 | return start+(header||"")+"\n"+ical.join("\n")+"\n"+end;
|
---|
66 | }; |
---|