(scheduler2)
| 20734 | }); |
| 20735 | } |
| 20736 | function serialize(scheduler2) { |
| 20737 | const getSerializableData = getSerializator(scheduler2); |
| 20738 | scheduler2.data_attributes = function() { |
| 20739 | var attrs = []; |
| 20740 | var format = scheduler2._helpers.formatDate; |
| 20741 | var all_events = getSerializableData(); |
| 20742 | for (var a in all_events) { |
| 20743 | var ev = all_events[a]; |
| 20744 | for (var name in ev) |
| 20745 | if (name.substr(0, 1) != "_") |
| 20746 | attrs.push([name, name == "start_date" || name == "end_date" ? format : null]); |
| 20747 | break; |
| 20748 | } |
| 20749 | return attrs; |
| 20750 | }; |
| 20751 | scheduler2.toXML = function(header) { |
| 20752 | var xml = []; |
| 20753 | var attrs = this.data_attributes(); |
| 20754 | var all_events = getSerializableData(); |
| 20755 | for (var a in all_events) { |
| 20756 | var ev = all_events[a]; |
| 20757 | xml.push("<event>"); |
| 20758 | for (var i = 0; i < attrs.length; i++) |
| 20759 | xml.push("<" + attrs[i][0] + "><![CDATA[" + (attrs[i][1] ? attrs[i][1](ev[attrs[i][0]]) : ev[attrs[i][0]]) + "]]></" + attrs[i][0] + ">"); |
| 20760 | xml.push("</event>"); |
| 20761 | } |
| 20762 | return (header || "") + "<data>" + xml.join("\n") + "</data>"; |
| 20763 | }; |
| 20764 | scheduler2._serialize_json_value = function(value) { |
| 20765 | if (value === null || typeof value === "boolean") { |
| 20766 | value = "" + value; |
| 20767 | } else { |
| 20768 | if (!value && value !== 0) { |
| 20769 | value = ""; |
| 20770 | } |
| 20771 | value = '"' + value.toString().replace(/\n/g, "").replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"'; |
| 20772 | } |
| 20773 | return value; |
| 20774 | }; |
| 20775 | scheduler2.toJSON = function() { |
| 20776 | return JSON.stringify(this.serialize()); |
| 20777 | }; |
| 20778 | scheduler2.toICal = function(header) { |
| 20779 | var start = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//dhtmlXScheduler//NONSGML v2.2//EN\nDESCRIPTION:"; |
| 20780 | var end = "END:VCALENDAR"; |
| 20781 | var format = scheduler2.date.date_to_str("%Y%m%dT%H%i%s"); |
| 20782 | var full_day_format = scheduler2.date.date_to_str("%Y%m%d"); |
| 20783 | var ical = []; |
| 20784 | var all_events = getSerializableData(); |
| 20785 | for (var a in all_events) { |
| 20786 | var ev = all_events[a]; |
| 20787 | ical.push("BEGIN:VEVENT"); |
| 20788 | if (!ev._timed || !ev.start_date.getHours() && !ev.start_date.getMinutes()) |
| 20789 | ical.push("DTSTART:" + full_day_format(ev.start_date)); |
| 20790 | else |
| 20791 | ical.push("DTSTART:" + format(ev.start_date)); |
| 20792 | if (!ev._timed || !ev.end_date.getHours() && !ev.end_date.getMinutes()) |
| 20793 | ical.push("DTEND:" + full_day_format(ev.end_date)); |
nothing calls this directly
no test coverage detected