Convert et2_core_xml to TS

This commit is contained in:
Hadi Nategh 2020-02-13 15:53:12 +01:00
parent 5d11d6f34b
commit 4ef29c0c1a
2 changed files with 160 additions and 80 deletions

View File

@ -6,10 +6,7 @@
* @subpackage api * @subpackage api
* @link http://www.egroupware.org * @link http://www.egroupware.org
* @author Andreas Stöckel * @author Andreas Stöckel
* @copyright Stylite 2011
* @version $Id$
*/ */
/** /**
* Loads the given URL asynchronously from the server * Loads the given URL asynchronously from the server
* *
@ -21,84 +18,64 @@
* @param {object} _context for _callback * @param {object} _context for _callback
* @param {function} _fail_callback function(_xml) * @param {function} _fail_callback function(_xml)
*/ */
function et2_loadXMLFromURL(_url, _callback, _context, _fail_callback) function et2_loadXMLFromURL(_url, _callback, _context, _fail_callback) {
{ if (typeof _context == "undefined") {
if (typeof _context == "undefined")
{
_context = null; _context = null;
} }
// use window object from main window with same algorithm as for the template cache // use window object from main window with same algorithm as for the template cache
var win; var win;
try { try {
if (opener && opener.etemplate2) if (opener && opener.etemplate2) {
{
win = opener; win = opener;
} }
} }
catch (e) { catch (e) {
// catch security exception if opener is from a different domain // catch security exception if opener is from a different domain
} }
if (typeof win == "undefined") if (typeof win == "undefined") {
{
win = top; win = top;
} }
win.jQuery.ajax({ win.jQuery.ajax({
// we add the full url (protocol and domain) as sometimes just the path // we add the full url (protocol and domain) as sometimes just the path
// gives a CSP error interpreting it as file:///path // gives a CSP error interpreting it as file:///path
// (if there are a enough 404 errors in html content ...) // (if there are a enough 404 errors in html content ...)
url: (_url[0]=='/' ? location.protocol+'//'+location.host : '')+_url, url: (_url[0] == '/' ? location.protocol + '//' + location.host : '') + _url,
context: _context, context: _context,
type: 'GET', type: 'GET',
dataType: 'xml', dataType: 'xml',
success: function(_data, _status, _xmlhttp){ success: function (_data, _status, _xmlhttp) {
_callback.call(_context, _data.documentElement); _callback.call(_context, _data.documentElement);
}, },
error: function(_xmlhttp, _err) { error: function (_xmlhttp, _err) {
egw().debug('error', 'Loading eTemplate from '+_url+' failed! '+_xmlhttp.status+' '+_xmlhttp.statusText); egw().debug('error', 'Loading eTemplate from ' + _url + ' failed! ' + _xmlhttp.status + ' ' + _xmlhttp.statusText);
if(typeof _fail_callback !== 'undefined') if (typeof _fail_callback !== 'undefined') {
{
_fail_callback.call(_context, _err); _fail_callback.call(_context, _err);
} }
} }
}); });
} }
function et2_directChildrenByTagName(_node, _tagName) {
function et2_directChildrenByTagName(_node, _tagName)
{
// Normalize the tag name // Normalize the tag name
_tagName = _tagName.toLowerCase(); _tagName = _tagName.toLowerCase();
var result = []; var result = [];
for (var i = 0; i < _node.childNodes.length; i++) for (var i = 0; i < _node.childNodes.length; i++) {
{ if (_tagName == _node.childNodes[i].nodeName.toLowerCase()) {
if (_tagName == _node.childNodes[i].nodeName.toLowerCase())
{
result.push(_node.childNodes[i]); result.push(_node.childNodes[i]);
} }
} }
return result; return result;
} }
function et2_filteredNodeIterator(_node, _callback, _context) {
function et2_filteredNodeIterator(_node, _callback, _context) for (var i = 0; i < _node.childNodes.length; i++) {
{
for (var i = 0; i < _node.childNodes.length; i++)
{
var node = _node.childNodes[i]; var node = _node.childNodes[i];
var nodeName = node.nodeName.toLowerCase(); var nodeName = node.nodeName.toLowerCase();
if (nodeName.charAt(0) != "#") if (nodeName.charAt(0) != "#") {
{
_callback.call(_context, node, nodeName); _callback.call(_context, node, nodeName);
} }
} }
} }
function et2_readAttrWithDefault(_node, _name, _default) {
function et2_readAttrWithDefault(_node, _name, _default)
{
var val = _node.getAttribute(_name); var val = _node.getAttribute(_name);
return (val === null) ? _default : val; return (val === null) ? _default : val;
} }
//# sourceMappingURL=et2_core_xml.js.map

View File

@ -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;
}