|
@@ -21,6 +21,7 @@ amber = (function() {
|
|
|
var localStorageSource = [];
|
|
|
var localPackages;
|
|
|
var spec;
|
|
|
+ var jsToLoad = [];
|
|
|
|
|
|
that.load = function(obj) {
|
|
|
spec = obj || {};
|
|
@@ -110,6 +111,10 @@ amber = (function() {
|
|
|
};
|
|
|
|
|
|
function loadJS(name, prefix) {
|
|
|
+ jsToLoad.push(buildJSURL(name, prefix));
|
|
|
+ };
|
|
|
+
|
|
|
+ function buildJSURL(name, prefix) {
|
|
|
var prefix = prefix || 'js';
|
|
|
var name = name;
|
|
|
|
|
@@ -117,9 +122,7 @@ amber = (function() {
|
|
|
name = name + nocache;
|
|
|
}
|
|
|
|
|
|
- var url = home + prefix + '/' + name;
|
|
|
- var scriptString = '<script src="' + url + '" type="text/javascript"></script>';
|
|
|
- document.write(scriptString);
|
|
|
+ return home + prefix + '/' + name;
|
|
|
};
|
|
|
|
|
|
function loadCSS(name, prefix) {
|
|
@@ -138,13 +141,18 @@ amber = (function() {
|
|
|
document.getElementsByTagName("head")[0].appendChild(link);
|
|
|
};
|
|
|
|
|
|
+ function addScriptTag(src) {
|
|
|
+ var scriptString = '<script src="' + src + '" type="text/javascript"></script>';
|
|
|
+ document.write(scriptString);
|
|
|
+ }
|
|
|
+
|
|
|
function loadDependencies() {
|
|
|
if (typeof jQuery == 'undefined') {
|
|
|
- loadJS('lib/jQuery/jquery-1.6.4.min.js');
|
|
|
+ addScriptTag(buildJSURL('lib/jQuery/jquery-1.6.4.min.js'));
|
|
|
}
|
|
|
|
|
|
if ((typeof jQuery == 'undefined') || (typeof jQuery.ui == 'undefined')) {
|
|
|
- loadJS('lib/jQuery/jquery-ui-1.8.16.custom.min.js');
|
|
|
+ addScriptTag(buildJSURL('lib/jQuery/jquery-ui-1.8.16.custom.min.js'));
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -158,9 +166,7 @@ amber = (function() {
|
|
|
|
|
|
// This will be called after JS files have been loaded
|
|
|
function initializeSmalltalk() {
|
|
|
-
|
|
|
window.smalltalkReady = function() {
|
|
|
-
|
|
|
for (var i=0; i < localStorageSource.length; i++) {
|
|
|
eval(localStorageSource[i]);
|
|
|
}
|
|
@@ -173,8 +179,30 @@ amber = (function() {
|
|
|
spec.ready();
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ if (typeof jQuery == 'undefined') {
|
|
|
+ for(var i in jsToLoad)
|
|
|
+ addScriptTag(jsToLoad[i]);
|
|
|
+ } else {
|
|
|
+ getScript(jsToLoad[0]);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
+ /*
|
|
|
+ * When loaded using AJAX, scripts order not guaranteed.
|
|
|
+ * Load JS in the order they have been added
|
|
|
+ * using loadJS.
|
|
|
+ */
|
|
|
+ function getScript(url) {
|
|
|
+ $.getScript(url,
|
|
|
+ function(){
|
|
|
+ jsToLoad.shift();
|
|
|
+ if (jsToLoad.length > 0)
|
|
|
+ getScript(jsToLoad[0]);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
function populateLocalPackages(){
|
|
|
var localStorageRE = /^smalltalk\.packages\.(.*)$/;
|
|
|
localPackages = {};
|