diff --git a/api/js/etemplate/et2_core_xml.js b/api/js/etemplate/et2_core_xml.js index be836ea850..7ac89a6a61 100644 --- a/api/js/etemplate/et2_core_xml.js +++ b/api/js/etemplate/et2_core_xml.js @@ -6,10 +6,7 @@ * @subpackage api * @link http://www.egroupware.org * @author Andreas Stöckel - * @copyright Stylite 2011 - * @version $Id$ */ - /** * Loads the given URL asynchronously from the server * @@ -21,84 +18,64 @@ * @param {object} _context for _callback * @param {function} _fail_callback function(_xml) */ -function et2_loadXMLFromURL(_url, _callback, _context, _fail_callback) -{ - if (typeof _context == "undefined") - { - _context = null; - } - - // use window object from main window with same algorithm as for the template cache - var win; - try { - if (opener && opener.etemplate2) - { - win = opener; - } - } - catch (e) { - // catch security exception if opener is from a different domain - } - if (typeof win == "undefined") - { - win = top; - } - win.jQuery.ajax({ - // we add the full url (protocol and domain) as sometimes just the path - // gives a CSP error interpreting it as file:///path - // (if there are a enough 404 errors in html content ...) - url: (_url[0]=='/' ? location.protocol+'//'+location.host : '')+_url, - context: _context, - type: 'GET', - dataType: 'xml', - success: function(_data, _status, _xmlhttp){ - _callback.call(_context, _data.documentElement); - }, - error: function(_xmlhttp, _err) { - egw().debug('error', 'Loading eTemplate from '+_url+' failed! '+_xmlhttp.status+' '+_xmlhttp.statusText); - if(typeof _fail_callback !== 'undefined') - { - _fail_callback.call(_context, _err); - } - } - }); +function et2_loadXMLFromURL(_url, _callback, _context, _fail_callback) { + if (typeof _context == "undefined") { + _context = null; + } + // use window object from main window with same algorithm as for the template cache + var win; + try { + if (opener && opener.etemplate2) { + win = opener; + } + } + catch (e) { + // catch security exception if opener is from a different domain + } + if (typeof win == "undefined") { + win = top; + } + win.jQuery.ajax({ + // we add the full url (protocol and domain) as sometimes just the path + // gives a CSP error interpreting it as file:///path + // (if there are a enough 404 errors in html content ...) + url: (_url[0] == '/' ? location.protocol + '//' + location.host : '') + _url, + context: _context, + type: 'GET', + dataType: 'xml', + success: function (_data, _status, _xmlhttp) { + _callback.call(_context, _data.documentElement); + }, + error: function (_xmlhttp, _err) { + egw().debug('error', 'Loading eTemplate from ' + _url + ' failed! ' + _xmlhttp.status + ' ' + _xmlhttp.statusText); + if (typeof _fail_callback !== 'undefined') { + _fail_callback.call(_context, _err); + } + } + }); } - -function et2_directChildrenByTagName(_node, _tagName) -{ - // Normalize the tag name - _tagName = _tagName.toLowerCase(); - - var result = []; - for (var i = 0; i < _node.childNodes.length; i++) - { - if (_tagName == _node.childNodes[i].nodeName.toLowerCase()) - { - result.push(_node.childNodes[i]); - } - } - - return result; +function et2_directChildrenByTagName(_node, _tagName) { + // Normalize the tag name + _tagName = _tagName.toLowerCase(); + var result = []; + for (var i = 0; i < _node.childNodes.length; i++) { + if (_tagName == _node.childNodes[i].nodeName.toLowerCase()) { + result.push(_node.childNodes[i]); + } + } + return result; } - -function et2_filteredNodeIterator(_node, _callback, _context) -{ - for (var i = 0; i < _node.childNodes.length; i++) - { - var node = _node.childNodes[i]; - var nodeName = node.nodeName.toLowerCase(); - if (nodeName.charAt(0) != "#") - { - _callback.call(_context, node, nodeName); - } - } +function et2_filteredNodeIterator(_node, _callback, _context) { + for (var i = 0; i < _node.childNodes.length; i++) { + var node = _node.childNodes[i]; + var nodeName = node.nodeName.toLowerCase(); + if (nodeName.charAt(0) != "#") { + _callback.call(_context, node, nodeName); + } + } } - -function et2_readAttrWithDefault(_node, _name, _default) -{ - var val = _node.getAttribute(_name); - - return (val === null) ? _default : val; +function et2_readAttrWithDefault(_node, _name, _default) { + var val = _node.getAttribute(_name); + return (val === null) ? _default : val; } - - +//# sourceMappingURL=et2_core_xml.js.map \ No newline at end of file diff --git a/api/js/etemplate/et2_core_xml.ts b/api/js/etemplate/et2_core_xml.ts new file mode 100644 index 0000000000..e569b1bc32 --- /dev/null +++ b/api/js/etemplate/et2_core_xml.ts @@ -0,0 +1,103 @@ +/** + * EGroupware eTemplate2 - JS XML Code + * + * @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License + * @package etemplate + * @subpackage api + * @link http://www.egroupware.org + * @author Andreas Stöckel + */ + +/** + * Loads the given URL asynchronously from the server + * + * We make the Ajax call through main-windows jQuery object, to ensure cached copy + * in main-windows etemplate2 prototype works in IE too! + * + * @param {string} _url + * @param {function} _callback function(_xml) + * @param {object} _context for _callback + * @param {function} _fail_callback function(_xml) + */ +function et2_loadXMLFromURL(_url : string, _callback : Function, _context : object, _fail_callback : Function) +{ + if (typeof _context == "undefined") + { + _context = null; + } + + // use window object from main window with same algorithm as for the template cache + let win; + try { + if (opener && opener.etemplate2) + { + win = opener; + } + } + catch (e) { + // catch security exception if opener is from a different domain + } + if (typeof win == "undefined") + { + win = top; + } + win.jQuery.ajax({ + // we add the full url (protocol and domain) as sometimes just the path + // gives a CSP error interpreting it as file:///path + // (if there are a enough 404 errors in html content ...) + url: (_url[0]=='/' ? location.protocol+'//'+location.host : '')+_url, + context: _context, + type: 'GET', + dataType: 'xml', + success: function(_data, _status, _xmlhttp){ + _callback.call(_context, _data.documentElement); + }, + error: function(_xmlhttp, _err) { + egw().debug('error', 'Loading eTemplate from '+_url+' failed! '+_xmlhttp.status+' '+_xmlhttp.statusText); + if(typeof _fail_callback !== 'undefined') + { + _fail_callback.call(_context, _err); + } + } + }); +} + +function et2_directChildrenByTagName(_node : HTMLElement, _tagName : String) : HTMLElement[] +{ + // Normalize the tag name + _tagName = _tagName.toLowerCase(); + + let result = []; + for (let i = 0; i < _node.childNodes.length; i++) + { + if (_tagName == _node.childNodes[i].nodeName.toLowerCase()) + { + result.push(_node.childNodes[i]); + } + } + + return result; +} + +function et2_filteredNodeIterator(_node : HTMLElement, _callback : Function, _context : object) +{ + for (let i = 0; i < _node.childNodes.length; i++) + { + let node = _node.childNodes[i]; + let nodeName = node.nodeName.toLowerCase(); + if (nodeName.charAt(0) != "#") + { + _callback.call(_context, node, nodeName); + } + } +} + +function et2_readAttrWithDefault(_node : HTMLElement, _name : string, _default : string) : string +{ + let val = _node.getAttribute(_name); + + return (val === null) ? _default : val; +} + + +