source: branches/2.2.0.1/calendar/js/dhtmlx/sources/ext/ext_serialize.js @ 4001

Revision 4001, 2.0 KB checked in by rafaelraymundo, 13 years ago (diff)

Ticket #1615 - Componente novo para agenda......................................

Line 
1//redefine this method, if you want to provide a custom set of attributes for serialization
2scheduler.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
15scheduler.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
32scheduler.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
48scheduler.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};
Note: See TracBrowser for help on using the repository browser.