1
0
فهرست منبع

less invasive approach to loading package files from an alternate home directory using packageHome option

Dale Henrichs 13 سال پیش
والد
کامیت
895f887668
1فایلهای تغییر یافته به همراه23 افزوده شده و 23 حذف شده
  1. 23 23
      js/amber.js

+ 23 - 23
js/amber.js

@@ -12,9 +12,6 @@ amber = (function() {
 	var scripts = document.getElementsByTagName("script");
 	var scripts = document.getElementsByTagName("script");
 	var src     = scripts[ scripts.length - 1 ].src;
 	var src     = scripts[ scripts.length - 1 ].src;
 	var home    = src.split("/").slice(0, -2).join("/") + "/";
 	var home    = src.split("/").slice(0, -2).join("/") + "/";
-        var amberPrefix = "amber/";
-        var amberCssPrefix = "amber/css"; 
-        var amberJsPrefix = "amber/js"; 
 
 
 	var debug;
 	var debug;
 	var deploy;
 	var deploy;
@@ -59,8 +56,8 @@ amber = (function() {
 		}
 		}
 
 
 		loadDependencies();
 		loadDependencies();
-		addJSToLoad('compat.js', amberJsPrefix);
-		addJSToLoad('boot.js', amberJsPrefix);
+		addJSToLoad('compat.js');
+		addJSToLoad('boot.js');
 
 
 		if (deploy) {
 		if (deploy) {
 			loadPackages([
 			loadPackages([
@@ -72,10 +69,10 @@ amber = (function() {
 				'Kernel-Transcript.deploy',
 				'Kernel-Transcript.deploy',
 				'Kernel-Announcements.deploy',
 				'Kernel-Announcements.deploy',
 				'Canvas.deploy'
 				'Canvas.deploy'
-			], amberJsPrefix);
+			]);
 		} else {
 		} else {
 			loadIDEDependencies();
 			loadIDEDependencies();
-			loadCSS('amber.css', amberCssPrefix);
+			loadCSS('amber.css');
 
 
 			loadPackages([
 			loadPackages([
 				'Kernel-Objects',
 				'Kernel-Objects',
@@ -93,42 +90,45 @@ amber = (function() {
 				'Examples',
 				'Examples',
 				'Benchfib',
 				'Benchfib',
 				'Kernel-Tests'
 				'Kernel-Tests'
-			], amberJsPrefix);
+			]);
 		}
 		}
 
 
 		var additionalFiles = spec.packages || spec.files;
 		var additionalFiles = spec.packages || spec.files;
 		if (additionalFiles) {
 		if (additionalFiles) {
-			loadPackages(additionalFiles, spec.prefix);
+			loadPackages(additionalFiles, spec.prefix, spec.packageHome);
 		}
 		}
 
 
 		// Be sure to setup & initialize smalltalk classes
 		// Be sure to setup & initialize smalltalk classes
-		addJSToLoad('init.js', amberJsPrefix);
+		addJSToLoad('init.js');
 		initializeSmalltalk();
 		initializeSmalltalk();
 	};
 	};
 
 
-	function loadPackages(names, prefix){
+	function loadPackages(names, prefix, urlHome){
 		var name, url;
 		var name, url;
 		var prefix = prefix || 'js';
 		var prefix = prefix || 'js';
+    var urlHome = urlHome || home;
 
 
 		for (var i=0; i < names.length; i++) {
 		for (var i=0; i < names.length; i++) {
 			name = names[i].split(/\.js$/)[0];
 			name = names[i].split(/\.js$/)[0];
-			addJSToLoad(name + '.js', prefix);
+			addJSToLoad(name + '.js', prefix, urlHome);
 		}
 		}
 	};
 	};
 
 
-	function addJSToLoad(name, prefix) {
-		jsToLoad.push(buildJSURL(name, prefix));
+	function addJSToLoad(name, prefix, urlHome) {
+    var urlHome = urlHome || home;
+		jsToLoad.push(buildJSURL(name, prefix, urlHome));
 	};
 	};
 
 
-	function buildJSURL(name, prefix) {
+	function buildJSURL(name, prefix, urlHome) {
 		var prefix = prefix || 'js';
 		var prefix = prefix || 'js';
 		var name = name;
 		var name = name;
+    var urlHome = urlHome || home;
 
 
 		if (!deploy) {
 		if (!deploy) {
 			name = name + nocache;
 			name = name + nocache;
 		}
 		}
 
 
-		return home + prefix + '/' + name;
+		return urlHome + prefix + '/' + name;
 	};
 	};
 
 
 	function loadCSS(name, prefix) {
 	function loadCSS(name, prefix) {
@@ -149,20 +149,20 @@ amber = (function() {
 
 
 	function loadDependencies() {
 	function loadDependencies() {
 		if (typeof jQuery == 'undefined') {
 		if (typeof jQuery == 'undefined') {
-			writeScriptTag(buildJSURL('lib/jQuery/jquery-1.6.4.min.js', amberJsPrefix));
+			writeScriptTag(buildJSURL('lib/jQuery/jquery-1.6.4.min.js'));
 		}
 		}
 
 
 		if ((typeof jQuery == 'undefined') || (typeof jQuery.ui == 'undefined')) {      
 		if ((typeof jQuery == 'undefined') || (typeof jQuery.ui == 'undefined')) {      
-			writeScriptTag(buildJSURL('lib/jQuery/jquery-ui-1.8.16.custom.min.js', amberJsPrefix));
+			writeScriptTag(buildJSURL('lib/jQuery/jquery-ui-1.8.16.custom.min.js'));
 		}
 		}
 	};
 	};
 
 
 	function loadIDEDependencies() {
 	function loadIDEDependencies() {
-		addJSToLoad('lib/jQuery/jquery.textarea.js', amberJsPrefix);
-		addJSToLoad('lib/CodeMirror/codemirror.js', amberJsPrefix);
-		addJSToLoad('lib/CodeMirror/smalltalk.js', amberJsPrefix);
-		loadCSS('lib/CodeMirror/codemirror.css', amberJsPrefix);
-		loadCSS('lib/CodeMirror/amber.css', amberJsPrefix);
+		addJSToLoad('lib/jQuery/jquery.textarea.js');
+		addJSToLoad('lib/CodeMirror/codemirror.js');
+		addJSToLoad('lib/CodeMirror/smalltalk.js');
+		loadCSS('lib/CodeMirror/codemirror.css', 'js');
+		loadCSS('lib/CodeMirror/amber.css', 'js');
 	};
 	};
 
 
 	// This will be called after JS files have been loaded
 	// This will be called after JS files have been loaded