X-Git-Url: https://scm.cri.minesparis.psl.eu/git/Plinn.git/blobdiff_plain/3c4367d8e03450e9a73e61f4247145d2b6c86a33..959d888c17d1403d2eeecc19bc4b5e2c8d1debf6:/skins/ajax_scripts/fragment_importer.js diff --git a/skins/ajax_scripts/fragment_importer.js b/skins/ajax_scripts/fragment_importer.js deleted file mode 100644 index 52d7eb0..0000000 --- a/skins/ajax_scripts/fragment_importer.js +++ /dev/null @@ -1,108 +0,0 @@ -// (c) Benoît PIN 2006-2007 -// http://plinn.org -// Licence GPL -// -// - -var FragmentImporter; - -(function(){ - -var isTextMime = /^text\/.+/i; - -FragmentImporter = function(url, onAfterPopulate) { - var thisImporter = this; - this.url = url; - this.onAfterPopulate = (!onAfterPopulate) ? function(){return;} : onAfterPopulate; -}; - -FragmentImporter.prototype._load = function(url) { - var req = new XMLHttpRequest(); - var thisImporter = this; - req.onreadystatechange = function() { - switch (req.readyState) { - case 1 : - showProgressImage(); - break; - case 2 : - try { - if (! isTextMime.exec(req.getResponseHeader('Content-Type'))) { - req.onreadystatechange = null; - req.abort(); - hideProgressImage(); - window.location.href = thisImporter._fallBackUrl; - } - } - catch(e){} - break; - case 4 : - hideProgressImage(); - if (req.status === 200) { - thisImporter.populateBaseElement(req); } - else { - alert('Error: ' + req.status); } - break; - } - }; - - req.open("GET", url, true); - req.send(null); -}; - -FragmentImporter.prototype.load = function(fallBackUrl) { - if (fallBackUrl) { - this._fallBackUrl = fallBackUrl; } - else { - this._fallBackUrl = this.url; } - this._load(this.url); -}; - -FragmentImporter.prototype.useMacro = function(template, macro, fragmentId, queryString) { - var url = this.url + "/use_macro?template=" + template + "¯o=" + macro + "&fragmentId=" + fragmentId; - if (queryString) { - url += '&' + queryString; } - this._load(url); -}; - - -FragmentImporter.prototype.populateBaseElement = function(req) { - // :( IE : innerHTML is read-only for these tags: - // COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, TR - var contentType = req.getResponseHeader('Content-Type'); - if (! isTextMime.exec(contentType)) { - window.location.href = this._fallBackUrl; - return; - } - if (contentType.indexOf('text/xml') !== -1) { - var fragments = req.responseXML.documentElement.childNodes; - var element, dest, scripts, i, j; - for (i=0 ; i < fragments.length ; i++) { - element = fragments[i]; - switch (element.nodeName) { - case 'fragment' : - dest = document.getElementById(element.getAttribute('id')); - if(dest) { - dest.innerHTML = element.firstChild.nodeValue; - scripts = dest.getElementsByTagName('script'); - for (j=0 ; j < scripts.length ; j++) { - globalScriptRegistry.loadScript(scripts[j]); } - } - break; - case 'base' : - var headBase = document.getElementsByTagName('base'); - if (headBase.length > 0) { - headBase[0].setAttribute('href', element.getAttribute('href')); - } - else { - headBase = document.createElement('base'); - headBase.setAttribute('href', element.getAttribute('href')); - document.head.appendChild(headBase); - } - break; - } - } - } - this.onAfterPopulate(); -}; - -}()); \ No newline at end of file