Browse Source

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

Dale Henrichs 12 years ago
parent
commit
895f887668
1 changed files with 23 additions and 23 deletions
  1. 23 23
      js/amber.js

+ 23 - 23
js/amber.js

@@ -12,9 +12,6 @@ amber = (function() {
 	var scripts = document.getElementsByTagName("script");
 	var src     = scripts[ scripts.length - 1 ].src;
 	var home    = src.split("/").slice(0, -2).join("/") + "/";
-        var amberPrefix = "amber/";
-        var amberCssPrefix = "amber/css"; 
-        var amberJsPrefix = "amber/js"; 
 
 	var debug;
 	var deploy;
@@ -59,8 +56,8 @@ amber = (function() {
 		}
 
 		loadDependencies();
-		addJSToLoad('compat.js', amberJsPrefix);
-		addJSToLoad('boot.js', amberJsPrefix);
+		addJSToLoad('compat.js');
+		addJSToLoad('boot.js');
 
 		if (deploy) {
 			loadPackages([
@@ -72,10 +69,10 @@ amber = (function() {
 				'Kernel-Transcript.deploy',
 				'Kernel-Announcements.deploy',
 				'Canvas.deploy'
-			], amberJsPrefix);
+			]);
 		} else {
 			loadIDEDependencies();
-			loadCSS('amber.css', amberCssPrefix);
+			loadCSS('amber.css');
 
 			loadPackages([
 				'Kernel-Objects',
@@ -93,42 +90,45 @@ amber = (function() {
 				'Examples',
 				'Benchfib',
 				'Kernel-Tests'
-			], amberJsPrefix);
+			]);
 		}
 
 		var additionalFiles = spec.packages || spec.files;
 		if (additionalFiles) {
-			loadPackages(additionalFiles, spec.prefix);
+			loadPackages(additionalFiles, spec.prefix, spec.packageHome);
 		}
 
 		// Be sure to setup & initialize smalltalk classes
-		addJSToLoad('init.js', amberJsPrefix);
+		addJSToLoad('init.js');
 		initializeSmalltalk();
 	};
 
-	function loadPackages(names, prefix){
+	function loadPackages(names, prefix, urlHome){
 		var name, url;
 		var prefix = prefix || 'js';
+    var urlHome = urlHome || home;
 
 		for (var i=0; i < names.length; i++) {
 			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 name = name;
+    var urlHome = urlHome || home;
 
 		if (!deploy) {
 			name = name + nocache;
 		}
 
-		return home + prefix + '/' + name;
+		return urlHome + prefix + '/' + name;
 	};
 
 	function loadCSS(name, prefix) {
@@ -149,20 +149,20 @@ amber = (function() {
 
 	function loadDependencies() {
 		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')) {      
-			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() {
-		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