| 5998 | }; |
| 5999 | } |
| 6000 | function extend$a(scheduler2) { |
| 6001 | scheduler2._parsers.xml = { canParse: function(data, xhr) { |
| 6002 | if (xhr.responseXML && xhr.responseXML.firstChild) { |
| 6003 | return true; |
| 6004 | } |
| 6005 | try { |
| 6006 | var xmlDoc = scheduler2.ajax.parse(xhr.responseText); |
| 6007 | var topElement = scheduler2.ajax.xmltop("data", xmlDoc); |
| 6008 | if (topElement && topElement.tagName === "data") { |
| 6009 | return true; |
| 6010 | } |
| 6011 | } catch (e) { |
| 6012 | } |
| 6013 | return false; |
| 6014 | }, parse: function(loader) { |
| 6015 | var xml; |
| 6016 | if (!loader.xmlDoc.responseXML) { |
| 6017 | loader.xmlDoc.responseXML = scheduler2.ajax.parse(loader.xmlDoc.responseText); |
| 6018 | } |
| 6019 | xml = scheduler2.ajax.xmltop("data", loader.xmlDoc); |
| 6020 | if (xml.tagName != "data") |
| 6021 | return null; |
| 6022 | var csrfToken = xml.getAttribute("dhx_security"); |
| 6023 | if (csrfToken) { |
| 6024 | if (window.dhtmlx) { |
| 6025 | window.dhtmlx.security_key = csrfToken; |
| 6026 | } |
| 6027 | scheduler2.security_key = csrfToken; |
| 6028 | } |
| 6029 | var opts = scheduler2.ajax.xpath("//coll_options", loader.xmlDoc); |
| 6030 | for (var i = 0; i < opts.length; i++) { |
| 6031 | var bind = opts[i].getAttribute("for"); |
| 6032 | var arr = scheduler2.serverList[bind]; |
| 6033 | if (!arr) { |
| 6034 | scheduler2.serverList[bind] = arr = []; |
| 6035 | } |
| 6036 | arr.splice(0, arr.length); |
| 6037 | var itms = scheduler2.ajax.xpath(".//item", opts[i]); |
| 6038 | for (var j = 0; j < itms.length; j++) { |
| 6039 | var itm = itms[j]; |
| 6040 | var attrs = itm.attributes; |
| 6041 | var obj = { key: itms[j].getAttribute("value"), label: itms[j].getAttribute("label") }; |
| 6042 | for (var k = 0; k < attrs.length; k++) { |
| 6043 | var attr = attrs[k]; |
| 6044 | if (attr.nodeName == "value" || attr.nodeName == "label") |
| 6045 | continue; |
| 6046 | obj[attr.nodeName] = attr.nodeValue; |
| 6047 | } |
| 6048 | arr.push(obj); |
| 6049 | } |
| 6050 | } |
| 6051 | if (opts.length) |
| 6052 | scheduler2.callEvent("onOptionsLoad", []); |
| 6053 | var ud = scheduler2.ajax.xpath("//userdata", loader.xmlDoc); |
| 6054 | for (var i = 0; i < ud.length; i++) { |
| 6055 | var udx = scheduler2._xmlNodeToJSON(ud[i]); |
| 6056 | scheduler2._userdata[udx.name] = udx.text; |
| 6057 | } |