aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMisko Hevery2010-01-10 08:58:57 -0800
committerMisko Hevery2010-01-10 08:58:57 -0800
commit1aba6b53b88c70b61a0cc991b1371739305d117b (patch)
treed1d21efbd2df191824b7a02020190df0195f2fbb /src
parent9b9a0dadcce82ae42ac09ad396d647739af20a06 (diff)
downloadangular.js-1aba6b53b88c70b61a0cc991b1371739305d117b.tar.bz2
basic calculator works with minified.js, lots of references still broken
Diffstat (limited to 'src')
-rw-r--r--src/API.js72
-rw-r--r--src/DataStore.js2
-rw-r--r--src/Filters.js2
-rw-r--r--src/JSON.js6
-rw-r--r--src/Loader.js47
-rw-r--r--src/Parser.js8
-rw-r--r--src/Scope.js2
-rw-r--r--src/Widgets.js16
-rw-r--r--src/test/Runner.js2
-rw-r--r--src/test/_namespace.js10
10 files changed, 85 insertions, 82 deletions
diff --git a/src/API.js b/src/API.js
index 6fb6e8fc..49089da0 100644
--- a/src/API.js
+++ b/src/API.js
@@ -1,5 +1,5 @@
-angular.Global = {
- typeOf:function(obj){
+angular['Global'] = {
+ 'typeOf':function(obj){
var type = typeof obj;
switch(type) {
case "object":
@@ -12,10 +12,10 @@ angular.Global = {
}
};
-angular.Collection = {};
-angular.Object = {};
-angular.Array = {
- includeIf:function(array, value, condition) {
+angular['Collection'] = {};
+angular['Object'] = {};
+angular['Array'] = {
+ 'includeIf':function(array, value, condition) {
var index = _.indexOf(array, value);
if (condition) {
if (index == -1)
@@ -25,8 +25,8 @@ angular.Array = {
}
return array;
},
- sum:function(array, expression) {
- var fn = angular.Function.compile(expression);
+ 'sum':function(array, expression) {
+ var fn = angular['Function']['compile'](expression);
var sum = 0;
for (var i = 0; i < array.length; i++) {
var value = 1 * fn(array[i]);
@@ -36,15 +36,15 @@ angular.Array = {
}
return sum;
},
- remove:function(array, value) {
+ 'remove':function(array, value) {
var index = _.indexOf(array, value);
if (index >=0)
array.splice(index, 1);
return value;
},
- find:function(array, condition, defaultValue) {
+ 'find':function(array, condition, defaultValue) {
if (!condition) return undefined;
- var fn = angular.Function.compile(condition);
+ var fn = angular['Function']['compile'](condition);
_.detect(array, function($){
if (fn($)){
defaultValue = $;
@@ -53,10 +53,10 @@ angular.Array = {
});
return defaultValue;
},
- findById:function(array, id) {
+ 'findById':function(array, id) {
return angular.Array.find(array, function($){return $.$id == id;}, null);
},
- filter:function(array, expression) {
+ 'filter':function(array, expression) {
var predicates = [];
predicates.check = function(value) {
for (var j = 0; j < predicates.length; j++) {
@@ -136,16 +136,16 @@ angular.Array = {
}
return filtered;
},
- add:function(array, value) {
+ 'add':function(array, value) {
array.push(_.isUndefined(value)? {} : value);
return array;
},
- count:function(array, condition) {
+ 'count':function(array, condition) {
if (!condition) return array.length;
- var fn = angular.Function.compile(condition);
+ var fn = angular['Function']['compile'](condition);
return _.reduce(array, 0, function(count, $){return count + (fn($)?1:0);});
},
- orderBy:function(array, expression, descend) {
+ 'orderBy':function(array, expression, descend) {
function reverse(comp, descending) {
return toBoolean(descending) ?
function(a,b){return comp(b,a);} : comp;
@@ -169,7 +169,7 @@ angular.Array = {
descending = $.charAt(0) == '-';
$ = $.substring(1);
}
- var get = $ ? angular.Function.compile($) : _.identity;
+ var get = $ ? angular['Function']['compile']($) : _.identity;
return reverse(function(a,b){
return compare(get(a),get(b));
}, descending);
@@ -183,7 +183,7 @@ angular.Array = {
};
return _.clone(array).sort(reverse(comparator, descend));
},
- orderByToggle:function(predicate, attribute) {
+ 'orderByToggle':function(predicate, attribute) {
var STRIP = /^([+|-])?(.*)/;
var ascending = false;
var index = -1;
@@ -205,7 +205,7 @@ angular.Array = {
predicate.unshift((ascending ? "-" : "+") + attribute);
return predicate;
},
- orderByDirection:function(predicate, attribute, ascend, descend) {
+ 'orderByDirection':function(predicate, attribute, ascend, descend) {
ascend = ascend || 'ng-ascend';
descend = descend || 'ng-descend';
var att = predicate[0] || '';
@@ -218,7 +218,7 @@ angular.Array = {
}
return att == attribute ? (direction ? ascend : descend) : "";
},
- merge:function(array, index, mergeValue) {
+ 'merge':function(array, index, mergeValue) {
var value = array[index];
if (!value) {
value = {};
@@ -228,8 +228,8 @@ angular.Array = {
return array;
}
};
-angular.String = {
- quote:function(string) {
+angular['String'] = {
+ 'quote':function(string) {
return '"' + string.replace(/\\/g, '\\\\').
replace(/"/g, '\\"').
replace(/\n/g, '\\n').
@@ -239,8 +239,8 @@ angular.String = {
replace(/\v/g, '\\v') +
'"';
},
- quoteUnicode:function(string) {
- var str = angular.String.quote(string);
+ 'quoteUnicode':function(string) {
+ var str = angular['String']['quote'](string);
var chars = [];
for ( var i = 0; i < str.length; i++) {
var ch = str.charCodeAt(i);
@@ -253,7 +253,7 @@ angular.String = {
}
return chars.join('');
},
- toDate:function(string){
+ 'toDate':function(string){
var match;
if (typeof string == 'string' &&
(match = string.match(/^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)Z$/))){
@@ -265,8 +265,8 @@ angular.String = {
return string;
}
};
-angular.Date = {
- toString:function(date){
+angular['Date'] = {
+ 'toString':function(date){
function pad(n) { return n < 10 ? "0" + n : n; }
return (date.getUTCFullYear()) + '-' +
pad(date.getUTCMonth() + 1) + '-' +
@@ -276,8 +276,8 @@ angular.Date = {
pad(date.getUTCSeconds()) + 'Z';
}
};
-angular.Function = {
- compile:function(expression) {
+angular['Function'] = {
+ 'compile':function(expression) {
if (_.isFunction(expression)){
return expression;
} else if (expression){
@@ -299,20 +299,20 @@ angular.Function = {
dst[name] = _[name];
});
};
- extend(angular.Global, {},
+ extend(angular['Global'], {},
['extend', 'clone','isEqual',
'isElement', 'isArray', 'isFunction', 'isUndefined']);
- extend(angular.Collection, angular.Global,
+ extend(angular['Collection'], angular['Global'],
['each', 'map', 'reduce', 'reduceRight', 'detect',
'select', 'reject', 'all', 'any', 'include',
'invoke', 'pluck', 'max', 'min', 'sortBy',
'sortedIndex', 'toArray', 'size']);
- extend(angular.Array, angular.Collection,
+ extend(angular['Array'], angular['Collection'],
['first', 'last', 'compact', 'flatten', 'without',
'uniq', 'intersect', 'zip', 'indexOf', 'lastIndexOf']);
- extend(angular.Object, angular.Collection,
+ extend(angular['Object'], angular['Collection'],
['keys', 'values']);
- extend(angular.String, angular.Global);
- extend(angular.Function, angular.Global,
+ extend(angular['String'], angular['Global']);
+ extend(angular['Function'], angular['Global'],
['bind', 'bindAll', 'delay', 'defer', 'wrap', 'compose']);
})(); \ No newline at end of file
diff --git a/src/DataStore.js b/src/DataStore.js
index bdf882a0..6eeabb21 100644
--- a/src/DataStore.js
+++ b/src/DataStore.js
@@ -92,7 +92,7 @@ DataStore.prototype.save = function(document, callback) {
var cachedDoc = self.cache(document);
_.each(self._cache.$collections, function(collection){
if (collection.$$accept(document)) {
- angular.Array.includeIf(collection, cachedDoc, true);
+ angular['Array']['includeIf'](collection, cachedDoc, true);
}
});
if (document.$$anchor) {
diff --git a/src/Filters.js b/src/Filters.js
index dd4217be..b3f56e75 100644
--- a/src/Filters.js
+++ b/src/Filters.js
@@ -22,7 +22,7 @@ angular.filter.Meta.get = function(obj, attr){
}
};
-angular.filter.currency = function(amount){
+angular.filter['currency'] = function(amount){
jQuery(this.element).toggleClass('ng-format-negative', amount < 0);
return '$' + angular.filter.number.apply(this, [amount, 2]);
};
diff --git a/src/JSON.js b/src/JSON.js
index 84c9a857..238ed489 100644
--- a/src/JSON.js
+++ b/src/JSON.js
@@ -38,7 +38,7 @@ toJsonArray = function(buf, obj, pretty){
buf.push('' + obj);
}
} else if (type === 'string') {
- return buf.push(angular.String.quoteUnicode(obj));
+ return buf.push(angular['String']['quoteUnicode'](obj));
} else if (type === 'object') {
if (obj instanceof Array) {
buf.push("[");
@@ -56,7 +56,7 @@ toJsonArray = function(buf, obj, pretty){
}
buf.push("]");
} else if (obj instanceof Date) {
- buf.push(angular.String.quoteUnicode(angular.Date.toString(obj)));
+ buf.push(angular['String']['quoteUnicode'](angular['Date']['toString'](obj)));
} else {
buf.push("{");
if (pretty) buf.push(pretty);
@@ -78,7 +78,7 @@ toJsonArray = function(buf, obj, pretty){
buf.push(",");
if (pretty) buf.push(pretty);
}
- buf.push(angular.String.quote(key));
+ buf.push(angular['String']['quote'](key));
buf.push(":");
toJsonArray(buf, value, childPretty);
comma = true;
diff --git a/src/Loader.js b/src/Loader.js
index dfaa355a..19840567 100644
--- a/src/Loader.js
+++ b/src/Loader.js
@@ -23,6 +23,8 @@ if (typeof Node == 'undefined') {
}
var callbacks = {};
+var jQuery = window['jQuery'];
+var msie = jQuery['browser']['msie'];
if (!window.angular){ angular = {}; window['angular'] = angular; }
if (!angular.validator) angular.validator = {};
@@ -32,8 +34,8 @@ if (!window.console)
log:function() {},
error:function() {}
};
-if (_.isUndefined(alert)) {
- alert = function(){console.log(arguments); window.alert.apply(window, arguments); };
+if (!angular.alert) {
+ angular.alert = function(){console.log(arguments); window.alert.apply(window, arguments); };
}
var consoleNode;
@@ -169,7 +171,6 @@ Loader.prototype.load = function() {
this.loadCss('/stylesheets/jquery-ui/smoothness/jquery-ui-1.7.1.css');
this.loadCss('/stylesheets/css');
console.log("Server: " + this.config.server);
- msie = jQuery.browser.msie;
this.configureJQueryPlugins();
this.computeConfiguration();
this.bindHtml();
@@ -177,11 +178,7 @@ Loader.prototype.load = function() {
Loader.prototype.configureJQueryPlugins = function() {
console.log('Loader.configureJQueryPlugins()');
- jQuery.fn.removeNode = function() {
- var node = this.get(0);
- node.parentNode.removeChild(node);
- };
- jQuery.fn.scope = function() {
+ jQuery['fn']['scope'] = function() {
var element = this;
while (element && element.get(0)) {
var scope = element.data("scope");
@@ -191,7 +188,7 @@ Loader.prototype.configureJQueryPlugins = function() {
}
return null;
};
- jQuery.fn.controller = function() {
+ jQuery['fn']['controller'] = function() {
return this.data('controller') || NullController.instance;
};
};
@@ -229,24 +226,19 @@ Loader.prototype.bindHtml = function() {
var datastore = new DataStore(post, users, binder.anchor);
binder.updateListeners.push(function(){datastore.flush();});
var scope = new Scope( {
- $anchor : binder.anchor,
- $binder : binder,
- $config : this.config,
- $console : window.console,
- $datastore : datastore,
- $save : function(callback) {
+ '$anchor' : binder.anchor,
+ '$binder' : binder,
+ '$config' : this.config,
+ '$console' : window.console,
+ '$datastore' : datastore,
+ '$save' : function(callback) {
datastore.saveScope(scope.state, callback, binder.anchor);
},
- $window : window,
- $uid : this.uid,
- $users : users
+ '$window' : window,
+ '$uid' : this.uid,
+ '$users' : users
}, "ROOT");
- jQuery.each(["get", "set", "eval", "addWatchListener", "updateView"],
- function(i, method){
- angular[method] = bind(scope, scope[method]);
- });
-
document.data('scope', scope);
console.log('$binder.entity()');
binder.entity(scope);
@@ -284,7 +276,6 @@ Loader.prototype.bindHtml = function() {
watcher.watch();
document.find("body").show();
console.log('ready()');
-
};
Loader.prototype.visualPost = function(delegate) {
@@ -399,6 +390,12 @@ angular['compile'] = function(root, config) {
//todo: don't start watcher
var loader = new Loader(root, jQuery("head"), _(defaults).extend(config));
loader.load();
- return jQuery(root).scope();
+ var scope = jQuery(root).scope();
+ //TODO: cleanup
+ return {
+ 'updateView':function(){return scope.updateView.apply(scope, arguments);},
+ 'set':function(){return scope.set.apply(scope, arguments);},
+ 'get':function(){return scope.get.apply(scope, arguments);}
+ };
};
diff --git a/src/Parser.js b/src/Parser.js
index b23215be..cdece11e 100644
--- a/src/Parser.js
+++ b/src/Parser.js
@@ -185,7 +185,7 @@ Lexer.prototype.readString = function(quote) {
this.tokens.push({index:start, text:string,
fn:function(){
return (string.length == dateParseLength) ?
- angular.String.toDate(string) : string;
+ angular['String']['toDate'](string) : string;
}});
return;
} else {
@@ -346,11 +346,11 @@ Parser.prototype.filterChain = function(){
};
Parser.prototype.filter = function(){
- return this._pipeFunction(angular.filter);
+ return this._pipeFunction(angular['filter']);
};
Parser.prototype.validator = function(){
- return this._pipeFunction(angular.validator);
+ return this._pipeFunction(angular['validator']);
};
Parser.prototype._pipeFunction = function(fnScope){
@@ -697,7 +697,7 @@ Parser.prototype.entityDecl = function () {
self.scope.set(instance, document);
return "$anchor." + instance + ":{" +
instance + "=" + entity + ".load($anchor." + instance + ");" +
- instance + ".$$anchor=" + angular.String.quote(instance) + ";" +
+ instance + ".$$anchor=" + angular['String']['quote'](instance) + ";" +
"};";
} else {
return "";
diff --git a/src/Scope.js b/src/Scope.js
index e3634cee..dff3bfbd 100644
--- a/src/Scope.js
+++ b/src/Scope.js
@@ -55,7 +55,7 @@ Scope.getter = function(instance, path) {
instance = instance[key];
}
if (_.isUndefined(instance) && key.charAt(0) == '$') {
- var type = angular.Global.typeOf(lastInstance);
+ var type = angular['Global']['typeOf'](lastInstance);
type = angular[type.charAt(0).toUpperCase()+type.substring(1)];
var fn = type ? type[[key.substring(1)]] : undefined;
if (fn) {
diff --git a/src/Widgets.js b/src/Widgets.js
index 3a0f2845..4e4facf8 100644
--- a/src/Widgets.js
+++ b/src/Widgets.js
@@ -5,7 +5,13 @@ WidgetFactory = function(serverUrl, database) {
this.nextUploadId = 0;
this.serverUrl = serverUrl;
this.database = database;
- this.createSWF = swfobject.createSWF;
+ if (window.swfobject) {
+ this.createSWF = swfobject.createSWF;
+ } else {
+ this.createSWF = function(){
+ alert("ERROR: swfobject not loaded!");
+ };
+ }
this.onChangeListener = function(){};
};
@@ -145,7 +151,7 @@ FileController.prototype._on_uploadCompleteData = function(data) {
FileController.prototype._on_select = function(name, size, type) {
this.name = name;
this.view.find("a").text(name).attr('href', name);
- this.view.find("span").text(angular.filter.bytes(size));
+ this.view.find("span").text(angular['filter']['bytes'](size));
this.upload();
};
@@ -167,7 +173,7 @@ FileController.prototype.updateView = function(scope) {
this.view.find("a").
attr("href", this.value.url).
text(this.value.text);
- this.view.find("span").text(angular.filter.bytes(this.value.size));
+ this.view.find("span").text(angular['filter']['bytes'](this.value.size));
}
this.view.find("input").attr('checked', !!modelValue);
};
@@ -677,8 +683,8 @@ RepeaterUpdater.prototype.updateView = function(scope) {
});
// shrink children
for ( var r = childrenLength; r > iteratorLength; --r) {
- var unneeded = this.children.pop();
- unneeded.element.removeNode();
+ var unneeded = this.children.pop().element[0];
+ unneeded.parentNode.removeChild(unneeded);
}
// Special case for option in select
if (child && child.element[0].nodeName === "OPTION") {
diff --git a/src/test/Runner.js b/src/test/Runner.js
index 5840282e..c6684951 100644
--- a/src/test/Runner.js
+++ b/src/test/Runner.js
@@ -110,7 +110,7 @@ test.Scenario.prototype = {
},
verb:function(step){
var fn = null;
- if (!step) fn = function (){ throw "Step is null!"; }
+ if (!step) fn = function (){ throw "Step is null!"; };
else if (step.Given) fn = angular.test.GIVEN[step.Given];
else if (step.When) fn = angular.test.WHEN[step.When];
else if (step.Then) fn = angular.test.THEN[step.Then];
diff --git a/src/test/_namespace.js b/src/test/_namespace.js
index 78f430f1..e29ae72a 100644
--- a/src/test/_namespace.js
+++ b/src/test/_namespace.js
@@ -1,5 +1,5 @@
-if (!angular) angular = {};
-if (!angular.test) angular.test = {};
-if (!angular.test.GIVEN) angular.test.GIVEN = {};
-if (!angular.test.WHEN) angular.test.WHEN = {};
-if (!angular.test.THEN) angular.test.THEN = {};
+if (!angular) var angular = window['angular'] = {};
+if (!angular['test']) var angularTest = angular['test'] = {};
+if (!angular['test']['GIVEN']) angularTest['GIVEN'] = {};
+if (!angular['test']['WHEN']) angularTest['WHEN'] = {};
+if (!angular['test']['THEN']) angularTest['THEN'] = {};