From 66f03781c828aed47960f24c5601e867c3f18bad Mon Sep 17 00:00:00 2001
From: =?utf8?q?Benoi=CC=82t=20Pin?= <pin@cri.ensmp.fr>
Date: Fri, 11 Apr 2014 11:55:30 +0200
Subject: [PATCH] =?utf8?q?Recopie=20du=20code=20=C3=A0=20partir=20de=20fra?=
 =?utf8?q?gment=5Fimporter.js=20pour=20prise=20en=20charge=20de=20la=20bal?=
 =?utf8?q?ise=20<base>.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

---
 skins/ajax_scripts/ajax_form_manager.js | 33 +++++++++++++++----------
 1 file changed, 20 insertions(+), 13 deletions(-)

diff --git a/skins/ajax_scripts/ajax_form_manager.js b/skins/ajax_scripts/ajax_form_manager.js
index 8b51b2e..fed198c 100644
--- a/skins/ajax_scripts/ajax_form_manager.js
+++ b/skins/ajax_scripts/ajax_form_manager.js
@@ -391,19 +391,26 @@ FormManager.prototype.loadResponse = function(req) {
 					return;
 				}
 				var fragments = req.responseXML.documentElement.childNodes;
-				var fragment, dest;
-				var i;
-				for (i=0 ; i<fragments.length ; i++) {
-					fragment = fragments[i];
-					if (fragment.nodeName === 'fragment') {
-						dest = document.getElementById(fragment.getAttribute('id'));
-						dest.innerHTML = fragment.firstChild.nodeValue;
-			
-						scripts = dest.getElementsByTagName('script');
-						var j;
-						for (j=0 ; j < scripts.length ; j++) {
-							globalScriptRegistry.loadScript(scripts[j]);
-						}
+				var element, dest, 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) {
+								headBase[0].setAttribute('href', element.getAttribute('href'));
+								console.info('set base href:', headBase[0].href);
+							}
+							break;
 					}
 				}
 				break;
-- 
2.20.1