diff --git a/ajax/libs/spinejs/1.2.0/ajax.js b/ajax/libs/spinejs/1.2.0/ajax.js new file mode 100755 index 000000000..3cf760aca --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/ajax.js @@ -0,0 +1,384 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var $, Ajax, Base, Collection, Extend, Include, Model, Queue, Singleton, Spine, + __slice = [].slice, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + + Spine = this.Spine || require('spine'); + + $ = Spine.$; + + Model = Spine.Model; + + Queue = $({}); + + Ajax = { + getURL: function(object) { + return (typeof object.url === "function" ? object.url() : void 0) || object.url; + }, + getCollectionURL: function(object) { + if (object) { + if (typeof object.url === "function") { + return this.generateURL(object); + } else { + return object.url; + } + } + }, + getScope: function(object) { + return (typeof object.scope === "function" ? object.scope() : void 0) || object.scope; + }, + generateURL: function() { + var args, collection, object, path, scope; + object = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + if (object.className) { + collection = object.className.toLowerCase() + 's'; + scope = Ajax.getScope(object); + } else { + if (typeof object.constructor.url === 'string') { + collection = object.constructor.url; + } else { + collection = object.constructor.className.toLowerCase() + 's'; + } + scope = Ajax.getScope(object) || Ajax.getScope(object.constructor); + } + args.unshift(collection); + args.unshift(scope); + path = args.join('/'); + path = path.replace(/(\/\/)/g, "/"); + path = path.replace(/^\/|\/$/g, ""); + if (path.indexOf("../") !== 0) { + return Model.host + "/" + path; + } else { + return path; + } + }, + enabled: true, + disable: function(callback) { + var e; + if (this.enabled) { + this.enabled = false; + try { + return callback(); + } catch (_error) { + e = _error; + throw e; + } finally { + this.enabled = true; + } + } else { + return callback(); + } + }, + queue: function(request) { + if (request) { + return Queue.queue(request); + } else { + return Queue.queue(); + } + }, + clearQueue: function() { + return this.queue([]); + } + }; + + Base = (function() { + function Base() {} + + Base.prototype.defaults = { + dataType: 'json', + processData: false, + headers: { + 'X-Requested-With': 'XMLHttpRequest' + } + }; + + Base.prototype.queue = Ajax.queue; + + Base.prototype.ajax = function(params, defaults) { + return $.ajax(this.ajaxSettings(params, defaults)); + }; + + Base.prototype.ajaxQueue = function(params, defaults, record) { + var deferred, jqXHR, promise, request, settings; + jqXHR = null; + deferred = $.Deferred(); + promise = deferred.promise(); + if (!Ajax.enabled) { + return promise; + } + settings = this.ajaxSettings(params, defaults); + request = function(next) { + var _ref; + if ((record != null ? record.id : void 0) != null) { + if (settings.url == null) { + settings.url = Ajax.getURL(record); + } + if ((_ref = settings.data) != null) { + _ref.id = record.id; + } + } + settings.data = JSON.stringify(settings.data); + return jqXHR = $.ajax(settings).done(deferred.resolve).fail(deferred.reject).then(next, next); + }; + promise.abort = function(statusText) { + var index; + if (jqXHR) { + return jqXHR.abort(statusText); + } + index = $.inArray(request, this.queue()); + if (index > -1) { + this.queue().splice(index, 1); + } + deferred.rejectWith(settings.context || settings, [promise, statusText, '']); + return promise; + }; + this.queue(request); + return promise; + }; + + Base.prototype.ajaxSettings = function(params, defaults) { + return $.extend({}, this.defaults, defaults, params); + }; + + return Base; + + })(); + + Collection = (function(_super) { + __extends(Collection, _super); + + function Collection(model) { + this.model = model; + this.failResponse = __bind(this.failResponse, this); + this.recordsResponse = __bind(this.recordsResponse, this); + } + + Collection.prototype.find = function(id, params, options) { + var record; + if (options == null) { + options = {}; + } + record = new this.model({ + id: id + }); + return this.ajaxQueue(params, { + type: 'GET', + url: options.url || Ajax.getURL(record) + }).done(this.recordsResponse).fail(this.failResponse); + }; + + Collection.prototype.all = function(params, options) { + if (options == null) { + options = {}; + } + return this.ajaxQueue(params, { + type: 'GET', + url: options.url || Ajax.getURL(this.model) + }).done(this.recordsResponse).fail(this.failResponse); + }; + + Collection.prototype.fetch = function(params, options) { + var id, + _this = this; + if (params == null) { + params = {}; + } + if (options == null) { + options = {}; + } + if (id = params.id) { + delete params.id; + return this.find(id, params, options).done(function(record) { + return _this.model.refresh(record, options); + }); + } else { + return this.all(params, options).done(function(records) { + return _this.model.refresh(records, options); + }); + } + }; + + Collection.prototype.recordsResponse = function(data, status, xhr) { + return this.model.trigger('ajaxSuccess', null, status, xhr); + }; + + Collection.prototype.failResponse = function(xhr, statusText, error) { + return this.model.trigger('ajaxError', null, xhr, statusText, error); + }; + + return Collection; + + })(Base); + + Singleton = (function(_super) { + __extends(Singleton, _super); + + function Singleton(record) { + this.record = record; + this.failResponse = __bind(this.failResponse, this); + this.recordResponse = __bind(this.recordResponse, this); + this.model = this.record.constructor; + } + + Singleton.prototype.reload = function(params, options) { + if (options == null) { + options = {}; + } + return this.ajaxQueue(params, { + type: 'GET', + url: options.url + }, this.record).done(this.recordResponse(options)).fail(this.failResponse(options)); + }; + + Singleton.prototype.create = function(params, options) { + if (options == null) { + options = {}; + } + return this.ajaxQueue(params, { + type: 'POST', + contentType: 'application/json', + data: this.record.toJSON(), + url: options.url || Ajax.getCollectionURL(this.record) + }).done(this.recordResponse(options)).fail(this.failResponse(options)); + }; + + Singleton.prototype.update = function(params, options) { + if (options == null) { + options = {}; + } + return this.ajaxQueue(params, { + type: 'PUT', + contentType: 'application/json', + data: this.record.toJSON(), + url: options.url + }, this.record).done(this.recordResponse(options)).fail(this.failResponse(options)); + }; + + Singleton.prototype.destroy = function(params, options) { + if (options == null) { + options = {}; + } + return this.ajaxQueue(params, { + type: 'DELETE', + url: options.url + }, this.record).done(this.recordResponse(options)).fail(this.failResponse(options)); + }; + + Singleton.prototype.recordResponse = function(options) { + var _this = this; + if (options == null) { + options = {}; + } + return function(data, status, xhr) { + var _ref, _ref1; + Ajax.disable(function() { + if (!(Spine.isBlank(data) || _this.record.destroyed)) { + if (data.id && _this.record.id !== data.id) { + _this.record.changeID(data.id); + } + return _this.record.refresh(data); + } + }); + _this.record.trigger('ajaxSuccess', data, status, xhr); + if ((_ref = options.success) != null) { + _ref.apply(_this.record); + } + return (_ref1 = options.done) != null ? _ref1.apply(_this.record) : void 0; + }; + }; + + Singleton.prototype.failResponse = function(options) { + var _this = this; + if (options == null) { + options = {}; + } + return function(xhr, statusText, error) { + var _ref, _ref1; + _this.record.trigger('ajaxError', xhr, statusText, error); + if ((_ref = options.error) != null) { + _ref.apply(_this.record); + } + return (_ref1 = options.fail) != null ? _ref1.apply(_this.record) : void 0; + }; + }; + + return Singleton; + + })(Base); + + Model.host = ''; + + Include = { + ajax: function() { + return new Singleton(this); + }, + url: function() { + var args; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + args.unshift(encodeURIComponent(this.id)); + return Ajax.generateURL.apply(Ajax, [this].concat(__slice.call(args))); + } + }; + + Extend = { + ajax: function() { + return new Collection(this); + }, + url: function() { + var args; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + return Ajax.generateURL.apply(Ajax, [this].concat(__slice.call(args))); + } + }; + + Model.Ajax = { + extended: function() { + this.fetch(this.ajaxFetch); + this.change(this.ajaxChange); + this.extend(Extend); + return this.include(Include); + }, + ajaxFetch: function() { + var _ref; + return (_ref = this.ajax()).fetch.apply(_ref, arguments); + }, + ajaxChange: function(record, type, options) { + if (options == null) { + options = {}; + } + if (options.ajax === false) { + return; + } + return record.ajax()[type](options.ajax, options); + } + }; + + Model.Ajax.Methods = { + extended: function() { + this.extend(Extend); + return this.include(Include); + } + }; + + Ajax.defaults = Base.prototype.defaults; + + Ajax.Base = Base; + + Ajax.Singleton = Singleton; + + Ajax.Collection = Collection; + + Spine.Ajax = Ajax; + + if (typeof module !== "undefined" && module !== null) { + module.exports = Ajax; + } + +}).call(this); + +/* +//@ sourceMappingURL=ajax.map +*/ diff --git a/ajax/libs/spinejs/1.2.0/ajax.min.js b/ajax/libs/spinejs/1.2.0/ajax.min.js new file mode 100644 index 000000000..2fbdbe2ec --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/ajax.min.js @@ -0,0 +1,2 @@ +(function(){var $,Ajax,Base,Collection,Extend,Include,Model,Queue,Singleton,Spine,__slice=[].slice,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};Spine=this.Spine||require("spine");$=Spine.$;Model=Spine.Model;Queue=$({});Ajax={getURL:function(object){return(typeof object.url==="function"?object.url():void 0)||object.url},getCollectionURL:function(object){if(object){if(typeof object.url==="function"){return this.generateURL(object)}else{return object.url}}},getScope:function(object){return(typeof object.scope==="function"?object.scope():void 0)||object.scope},generateURL:function(){var args,collection,object,path,scope;object=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[];if(object.className){collection=object.className.toLowerCase()+"s";scope=Ajax.getScope(object)}else{if(typeof object.constructor.url==="string"){collection=object.constructor.url}else{collection=object.constructor.className.toLowerCase()+"s"}scope=Ajax.getScope(object)||Ajax.getScope(object.constructor)}args.unshift(collection);args.unshift(scope);path=args.join("/");path=path.replace(/(\/\/)/g,"/");path=path.replace(/^\/|\/$/g,"");if(path.indexOf("../")!==0){return Model.host+"/"+path}else{return path}},enabled:true,disable:function(callback){var e;if(this.enabled){this.enabled=false;try{return callback()}catch(_error){e=_error;throw e}finally{this.enabled=true}}else{return callback()}},queue:function(request){if(request){return Queue.queue(request)}else{return Queue.queue()}},clearQueue:function(){return this.queue([])}};Base=function(){function Base(){}Base.prototype.defaults={dataType:"json",processData:false,headers:{"X-Requested-With":"XMLHttpRequest"}};Base.prototype.queue=Ajax.queue;Base.prototype.ajax=function(params,defaults){return $.ajax(this.ajaxSettings(params,defaults))};Base.prototype.ajaxQueue=function(params,defaults,record){var deferred,jqXHR,promise,request,settings;jqXHR=null;deferred=$.Deferred();promise=deferred.promise();if(!Ajax.enabled){return promise}settings=this.ajaxSettings(params,defaults);request=function(next){var _ref;if((record!=null?record.id:void 0)!=null){if(settings.url==null){settings.url=Ajax.getURL(record)}if((_ref=settings.data)!=null){_ref.id=record.id}}settings.data=JSON.stringify(settings.data);return jqXHR=$.ajax(settings).done(deferred.resolve).fail(deferred.reject).then(next,next)};promise.abort=function(statusText){var index;if(jqXHR){return jqXHR.abort(statusText)}index=$.inArray(request,this.queue());if(index>-1){this.queue().splice(index,1)}deferred.rejectWith(settings.context||settings,[promise,statusText,""]);return promise};this.queue(request);return promise};Base.prototype.ajaxSettings=function(params,defaults){return $.extend({},this.defaults,defaults,params)};return Base}();Collection=function(_super){__extends(Collection,_super);function Collection(model){this.model=model;this.failResponse=__bind(this.failResponse,this);this.recordsResponse=__bind(this.recordsResponse,this)}Collection.prototype.find=function(id,params,options){var record;if(options==null){options={}}record=new this.model({id:id});return this.ajaxQueue(params,{type:"GET",url:options.url||Ajax.getURL(record)}).done(this.recordsResponse).fail(this.failResponse)};Collection.prototype.all=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"GET",url:options.url||Ajax.getURL(this.model)}).done(this.recordsResponse).fail(this.failResponse)};Collection.prototype.fetch=function(params,options){var id,_this=this;if(params==null){params={}}if(options==null){options={}}if(id=params.id){delete params.id;return this.find(id,params,options).done(function(record){return _this.model.refresh(record,options)})}else{return this.all(params,options).done(function(records){return _this.model.refresh(records,options)})}};Collection.prototype.recordsResponse=function(data,status,xhr){return this.model.trigger("ajaxSuccess",null,status,xhr)};Collection.prototype.failResponse=function(xhr,statusText,error){return this.model.trigger("ajaxError",null,xhr,statusText,error)};return Collection}(Base);Singleton=function(_super){__extends(Singleton,_super);function Singleton(record){this.record=record;this.failResponse=__bind(this.failResponse,this);this.recordResponse=__bind(this.recordResponse,this);this.model=this.record.constructor}Singleton.prototype.reload=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"GET",url:options.url},this.record).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.create=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"POST",contentType:"application/json",data:this.record.toJSON(),url:options.url||Ajax.getCollectionURL(this.record)}).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.update=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"PUT",contentType:"application/json",data:this.record.toJSON(),url:options.url},this.record).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.destroy=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"DELETE",url:options.url},this.record).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.recordResponse=function(options){var _this=this;if(options==null){options={}}return function(data,status,xhr){var _ref,_ref1;Ajax.disable(function(){if(!(Spine.isBlank(data)||_this.record.destroyed)){if(data.id&&_this.record.id!==data.id){_this.record.changeID(data.id)}return _this.record.refresh(data)}});_this.record.trigger("ajaxSuccess",data,status,xhr);if((_ref=options.success)!=null){_ref.apply(_this.record)}return(_ref1=options.done)!=null?_ref1.apply(_this.record):void 0}};Singleton.prototype.failResponse=function(options){var _this=this;if(options==null){options={}}return function(xhr,statusText,error){var _ref,_ref1;_this.record.trigger("ajaxError",xhr,statusText,error);if((_ref=options.error)!=null){_ref.apply(_this.record)}return(_ref1=options.fail)!=null?_ref1.apply(_this.record):void 0}};return Singleton}(Base);Model.host="";Include={ajax:function(){return new Singleton(this)},url:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];args.unshift(encodeURIComponent(this.id));return Ajax.generateURL.apply(Ajax,[this].concat(__slice.call(args)))}};Extend={ajax:function(){return new Collection(this)},url:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return Ajax.generateURL.apply(Ajax,[this].concat(__slice.call(args)))}};Model.Ajax={extended:function(){this.fetch(this.ajaxFetch);this.change(this.ajaxChange);this.extend(Extend);return this.include(Include)},ajaxFetch:function(){var _ref;return(_ref=this.ajax()).fetch.apply(_ref,arguments)},ajaxChange:function(record,type,options){if(options==null){options={}}if(options.ajax===false){return}return record.ajax()[type](options.ajax,options)}};Model.Ajax.Methods={extended:function(){this.extend(Extend);return this.include(Include)}};Ajax.defaults=Base.prototype.defaults;Ajax.Base=Base;Ajax.Singleton=Singleton;Ajax.Collection=Collection;Spine.Ajax=Ajax;if(typeof module!=="undefined"&&module!==null){module.exports=Ajax}}).call(this); +//# sourceMappingURL=ajax.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/ajax.min.map b/ajax/libs/spinejs/1.2.0/ajax.min.map new file mode 100644 index 000000000..11e22e1c5 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/ajax.min.map @@ -0,0 +1 @@ +{"version":3,"file":"ajax.min.js","sources":["ajax.js"],"names":["$","Ajax","Base","Collection","Extend","Include","Model","Queue","Singleton","Spine","__slice","slice","__bind","fn","me","apply","arguments","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","this","constructor","prototype","__super__","require","getURL","object","url","getCollectionURL","generateURL","getScope","scope","args","collection","path","length","className","toLowerCase","unshift","join","replace","indexOf","host","enabled","disable","callback","e","_error","queue","request","clearQueue","defaults","dataType","processData","headers","X-Requested-With","ajax","params","ajaxSettings","ajaxQueue","record","deferred","jqXHR","promise","settings","Deferred","next","_ref","id","data","JSON","stringify","done","resolve","fail","reject","then","abort","statusText","index","inArray","splice","rejectWith","context","extend","_super","model","failResponse","recordsResponse","find","options","type","all","fetch","_this","refresh","records","status","xhr","trigger","error","recordResponse","reload","create","contentType","toJSON","update","destroy","_ref1","isBlank","destroyed","changeID","success","encodeURIComponent","concat","extended","ajaxFetch","change","ajaxChange","include","Methods","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/all.min.js b/ajax/libs/spinejs/1.2.0/all.min.js new file mode 100644 index 000000000..6925e7729 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/all.min.js @@ -0,0 +1,3 @@ +(function(){var $,Ajax,Base,Collection,Extend,Include,Model,Queue,Singleton,Spine,__slice=[].slice,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};Spine=this.Spine||require("spine");$=Spine.$;Model=Spine.Model;Queue=$({});Ajax={getURL:function(object){return(typeof object.url==="function"?object.url():void 0)||object.url},getCollectionURL:function(object){if(object){if(typeof object.url==="function"){return this.generateURL(object)}else{return object.url}}},getScope:function(object){return(typeof object.scope==="function"?object.scope():void 0)||object.scope},generateURL:function(){var args,collection,object,path,scope;object=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[];if(object.className){collection=object.className.toLowerCase()+"s";scope=Ajax.getScope(object)}else{if(typeof object.constructor.url==="string"){collection=object.constructor.url}else{collection=object.constructor.className.toLowerCase()+"s"}scope=Ajax.getScope(object)||Ajax.getScope(object.constructor)}args.unshift(collection);args.unshift(scope);path=args.join("/");path=path.replace(/(\/\/)/g,"/");path=path.replace(/^\/|\/$/g,"");if(path.indexOf("../")!==0){return Model.host+"/"+path}else{return path}},enabled:true,disable:function(callback){var e;if(this.enabled){this.enabled=false;try{return callback()}catch(_error){e=_error;throw e}finally{this.enabled=true}}else{return callback()}},queue:function(request){if(request){return Queue.queue(request)}else{return Queue.queue()}},clearQueue:function(){return this.queue([])}};Base=function(){function Base(){}Base.prototype.defaults={dataType:"json",processData:false,headers:{"X-Requested-With":"XMLHttpRequest"}};Base.prototype.queue=Ajax.queue;Base.prototype.ajax=function(params,defaults){return $.ajax(this.ajaxSettings(params,defaults))};Base.prototype.ajaxQueue=function(params,defaults,record){var deferred,jqXHR,promise,request,settings;jqXHR=null;deferred=$.Deferred();promise=deferred.promise();if(!Ajax.enabled){return promise}settings=this.ajaxSettings(params,defaults);request=function(next){var _ref;if((record!=null?record.id:void 0)!=null){if(settings.url==null){settings.url=Ajax.getURL(record)}if((_ref=settings.data)!=null){_ref.id=record.id}}settings.data=JSON.stringify(settings.data);return jqXHR=$.ajax(settings).done(deferred.resolve).fail(deferred.reject).then(next,next)};promise.abort=function(statusText){var index;if(jqXHR){return jqXHR.abort(statusText)}index=$.inArray(request,this.queue());if(index>-1){this.queue().splice(index,1)}deferred.rejectWith(settings.context||settings,[promise,statusText,""]);return promise};this.queue(request);return promise};Base.prototype.ajaxSettings=function(params,defaults){return $.extend({},this.defaults,defaults,params)};return Base}();Collection=function(_super){__extends(Collection,_super);function Collection(model){this.model=model;this.failResponse=__bind(this.failResponse,this);this.recordsResponse=__bind(this.recordsResponse,this)}Collection.prototype.find=function(id,params,options){var record;if(options==null){options={}}record=new this.model({id:id});return this.ajaxQueue(params,{type:"GET",url:options.url||Ajax.getURL(record)}).done(this.recordsResponse).fail(this.failResponse)};Collection.prototype.all=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"GET",url:options.url||Ajax.getURL(this.model)}).done(this.recordsResponse).fail(this.failResponse)};Collection.prototype.fetch=function(params,options){var id,_this=this;if(params==null){params={}}if(options==null){options={}}if(id=params.id){delete params.id;return this.find(id,params,options).done(function(record){return _this.model.refresh(record,options)})}else{return this.all(params,options).done(function(records){return _this.model.refresh(records,options)})}};Collection.prototype.recordsResponse=function(data,status,xhr){return this.model.trigger("ajaxSuccess",null,status,xhr)};Collection.prototype.failResponse=function(xhr,statusText,error){return this.model.trigger("ajaxError",null,xhr,statusText,error)};return Collection}(Base);Singleton=function(_super){__extends(Singleton,_super);function Singleton(record){this.record=record;this.failResponse=__bind(this.failResponse,this);this.recordResponse=__bind(this.recordResponse,this);this.model=this.record.constructor}Singleton.prototype.reload=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"GET",url:options.url},this.record).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.create=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"POST",contentType:"application/json",data:this.record.toJSON(),url:options.url||Ajax.getCollectionURL(this.record)}).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.update=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"PUT",contentType:"application/json",data:this.record.toJSON(),url:options.url},this.record).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.destroy=function(params,options){if(options==null){options={}}return this.ajaxQueue(params,{type:"DELETE",url:options.url},this.record).done(this.recordResponse(options)).fail(this.failResponse(options))};Singleton.prototype.recordResponse=function(options){var _this=this;if(options==null){options={}}return function(data,status,xhr){var _ref,_ref1;Ajax.disable(function(){if(!(Spine.isBlank(data)||_this.record.destroyed)){if(data.id&&_this.record.id!==data.id){_this.record.changeID(data.id)}return _this.record.refresh(data)}});_this.record.trigger("ajaxSuccess",data,status,xhr);if((_ref=options.success)!=null){_ref.apply(_this.record)}return(_ref1=options.done)!=null?_ref1.apply(_this.record):void 0}};Singleton.prototype.failResponse=function(options){var _this=this;if(options==null){options={}}return function(xhr,statusText,error){var _ref,_ref1;_this.record.trigger("ajaxError",xhr,statusText,error);if((_ref=options.error)!=null){_ref.apply(_this.record)}return(_ref1=options.fail)!=null?_ref1.apply(_this.record):void 0}};return Singleton}(Base);Model.host="";Include={ajax:function(){return new Singleton(this)},url:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];args.unshift(encodeURIComponent(this.id));return Ajax.generateURL.apply(Ajax,[this].concat(__slice.call(args)))}};Extend={ajax:function(){return new Collection(this)},url:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return Ajax.generateURL.apply(Ajax,[this].concat(__slice.call(args)))}};Model.Ajax={extended:function(){this.fetch(this.ajaxFetch);this.change(this.ajaxChange);this.extend(Extend);return this.include(Include)},ajaxFetch:function(){var _ref;return(_ref=this.ajax()).fetch.apply(_ref,arguments)},ajaxChange:function(record,type,options){if(options==null){options={}}if(options.ajax===false){return}return record.ajax()[type](options.ajax,options)}};Model.Ajax.Methods={extended:function(){this.extend(Extend);return this.include(Include)}};Ajax.defaults=Base.prototype.defaults;Ajax.Base=Base;Ajax.Singleton=Singleton;Ajax.Collection=Collection;Spine.Ajax=Ajax;if(typeof module!=="undefined"&&module!==null){module.exports=Ajax}}).call(this);(function(){var $,Spine,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};Spine=this.Spine||require("spine");$=Spine.$;Spine.List=function(_super){__extends(List,_super);List.prototype.events={"click .item":"click"};List.prototype.selectFirst=false;function List(){this.change=__bind(this.change,this);List.__super__.constructor.apply(this,arguments);this.bind("change",this.change)}List.prototype.template=function(){throw"Override template"};List.prototype.change=function(item){this.current=item;if(!this.current){this.children().removeClass("active");return}this.children().removeClass("active");return $(this.children().get(this.items.indexOf(this.current))).addClass("active")};List.prototype.render=function(items){if(items){this.items=items}this.html(this.template(this.items));this.change(this.current);if(this.selectFirst){if(!this.children(".active").length){return this.children(":first").click()}}};List.prototype.children=function(sel){return this.el.children(sel)};List.prototype.click=function(e){var item;item=this.items[$(e.currentTarget).index()];this.trigger("change",item);return true};return List}(Spine.Controller);if(typeof module!=="undefined"&&module!==null){module.exports=Spine.List}}).call(this);(function(){var Spine;Spine=this.Spine||require("spine");Spine.Model.Local={extended:function(){this.change(this.saveLocal);return this.fetch(this.loadLocal)},saveLocal:function(){var result;result=JSON.stringify(this);return localStorage[this.className]=result},loadLocal:function(options){var result;if(options==null){options={}}if(!options.hasOwnProperty("clear")){options.clear=true}result=localStorage[this.className];return this.refresh(result||[],options)}};if(typeof module!=="undefined"&&module!==null){module.exports=Spine.Model.Local}}).call(this);(function(){var $,Spine,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child},__slice=[].slice;Spine=this.Spine||require("spine");$=Spine.$;Spine.Manager=function(_super){__extends(Manager,_super);Manager.include(Spine.Events);function Manager(){this.controllers=[];this.bind("change",this.change);this.add.apply(this,arguments)}Manager.prototype.add=function(){var cont,controllers,_i,_len,_results;controllers=1<=arguments.length?__slice.call(arguments,0):[];_results=[];for(_i=0,_len=controllers.length;_i<_len;_i++){cont=controllers[_i];_results.push(this.addOne(cont))}return _results};Manager.prototype.addOne=function(controller){var _this=this;controller.bind("active",function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return _this.trigger.apply(_this,["change",controller].concat(__slice.call(args)))});controller.bind("release",function(){return _this.controllers.splice(_this.controllers.indexOf(controller),1)});return this.controllers.push(controller)};Manager.prototype.deactivate=function(){return this.trigger.apply(this,["change",false].concat(__slice.call(arguments)))};Manager.prototype.change=function(){var args,cont,current,_i,_len,_ref;current=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[];_ref=this.controllers;for(_i=0,_len=_ref.length;_i<_len;_i++){cont=_ref[_i];if(cont!==current){cont.deactivate.apply(cont,args)}}if(current){return current.activate.apply(current,args)}};return Manager}(Spine.Module);Spine.Controller.include({active:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];if(typeof args[0]==="function"){this.bind("active",args[0])}else{args.unshift("active");this.trigger.apply(this,args)}return this},isActive:function(){return this.el.hasClass("active")},activate:function(){this.el.addClass("active");return this},deactivate:function(){this.el.removeClass("active");return this}});Spine.Stack=function(_super){__extends(Stack,_super);Stack.prototype.controllers={};Stack.prototype.routes={};Stack.prototype.className="spine stack";function Stack(){var key,value,_fn,_ref,_ref1,_this=this;Stack.__super__.constructor.apply(this,arguments);this.manager=new Spine.Manager;_ref=this.controllers;for(key in _ref){value=_ref[key];if(this[key]!=null){throw Error("'@"+key+"' already assigned - choose a different name")}this[key]=new value({stack:this});this.add(this[key])}_ref1=this.routes;_fn=function(key,value){var callback;if(typeof value==="function"){callback=value}callback||(callback=function(){var _ref2;return(_ref2=_this[value]).active.apply(_ref2,arguments)});return _this.route(key,callback)};for(key in _ref1){value=_ref1[key];_fn(key,value)}if(this["default"]){this[this["default"]].active()}}Stack.prototype.add=function(controller){this.manager.add(controller);return this.append(controller)};return Stack}(Spine.Controller);if(typeof module!=="undefined"&&module!==null){module.exports=Spine.Manager}if(typeof module!=="undefined"&&module!==null){module.exports.Stack=Spine.Stack}}).call(this);(function(){var Collection,Instance,Singleton,Spine,association,isArray,require,singularize,underscore,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};Spine=this.Spine||require("spine");isArray=Spine.isArray;require=this.require||function(value){return eval(value)};Collection=function(_super){__extends(Collection,_super);function Collection(options){var key,value;if(options==null){options={}}for(key in options){value=options[key];this[key]=value}}Collection.prototype.all=function(){var _this=this;return this.model.select(function(rec){return _this.associated(rec)})};Collection.prototype.first=function(){return this.all()[0]};Collection.prototype.last=function(){var values;values=this.all();return values[values.length-1]};Collection.prototype.count=function(){return this.all().length};Collection.prototype.find=function(id){var records,_this=this;records=this.select(function(rec){return""+rec.id===""+id});if(!records[0]){throw new Error('"'+this.model.className+'" model could not find a record for the ID "'+id+'"')}return records[0]};Collection.prototype.findAllByAttribute=function(name,value){var _this=this;return this.model.select(function(rec){return _this.associated(rec)&&rec[name]===value})};Collection.prototype.findByAttribute=function(name,value){return this.findAllByAttribute(name,value)[0]};Collection.prototype.select=function(cb){var _this=this;return this.model.select(function(rec){return _this.associated(rec)&&cb(rec)})};Collection.prototype.refresh=function(values){var i,match,record,_i,_j,_k,_len,_len1,_len2,_ref,_ref1;if(values==null){return this}_ref=this.all();for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];delete this.model.irecords[record.id];_ref1=this.model.records;for(i=_j=0,_len1=_ref1.length;_j<_len1;i=++_j){match=_ref1[i];if(!(match.id===record.id)){continue}this.model.records.splice(i,1);break}}if(!isArray(values)){values=[values]}for(_k=0,_len2=values.length;_k<_len2;_k++){record=values[_k];record.newRecord=false;record[this.fkey]=this.record.id}this.model.refresh(values);return this};Collection.prototype.create=function(record,options){record[this.fkey]=this.record.id;return this.model.create(record,options)};Collection.prototype.add=function(record,options){return record.updateAttribute(this.fkey,this.record.id,options)};Collection.prototype.remove=function(record,options){return record.updateAttribute(this.fkey,null,options)};Collection.prototype.associated=function(record){return record[this.fkey]===this.record.id};return Collection}(Spine.Module);Instance=function(_super){__extends(Instance,_super);function Instance(options){var key,value;if(options==null){options={}}for(key in options){value=options[key];this[key]=value}}Instance.prototype.exists=function(){if(this.record[this.fkey]){return this.model.exists(this.record[this.fkey])}else{return false}};Instance.prototype.update=function(value){if(value==null){return this}if(!(value instanceof this.model)){value=new this.model(value)}if(value.isNew()){value.save()}this.record[this.fkey]=value&&value.id;return this};return Instance}(Spine.Module);Singleton=function(_super){__extends(Singleton,_super);function Singleton(options){var key,value;if(options==null){options={}}for(key in options){value=options[key];this[key]=value}}Singleton.prototype.find=function(){return this.record.id&&this.model.findByAttribute(this.fkey,this.record.id)};Singleton.prototype.update=function(value){if(value==null){return this}if(!(value instanceof this.model)){value=this.model.fromJSON(value)}value[this.fkey]=this.record.id;value.save();return this};return Singleton}(Spine.Module);singularize=function(str){return str.replace(/s$/,"")};underscore=function(str){return str.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/-/g,"_").toLowerCase()};association=function(name,model,record,fkey,Ctor){if(typeof model==="string"){model=require(model)}return new Ctor({name:name,model:model,record:record,fkey:fkey})};Spine.Model.extend({hasMany:function(name,model,fkey){if(fkey==null){fkey=""+underscore(this.className)+"_id"}return this.prototype[name]=function(value){return association(name,model,this,fkey,Collection).refresh(value)}},belongsTo:function(name,model,fkey){if(fkey==null){fkey=""+underscore(singularize(name))+"_id"}this.prototype[name]=function(value){return association(name,model,this,fkey,Instance).update(value).exists()};return this.attributes.push(fkey)},hasOne:function(name,model,fkey){if(fkey==null){fkey=""+underscore(this.className)+"_id"}return this.prototype[name]=function(value){return association(name,model,this,fkey,Singleton).update(value).find()}}});Spine.Collection=Collection;Spine.Singleton=Singleton;Spine.Instance=Instance}).call(this);(function(){var $,Spine,escapeRegExp,hashStrip,namedParam,splatParam,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child},__slice=[].slice;Spine=this.Spine||require("spine");$=Spine.$;hashStrip=/^#*/;namedParam=/:([\w\d]+)/g;splatParam=/\*([\w\d]+)/g;escapeRegExp=/[-[\]{}()+?.,\\^$|#\s]/g;Spine.Route=function(_super){var _ref;__extends(Route,_super);Route.extend(Spine.Events);Route.historySupport=((_ref=window.history)!=null?_ref.pushState:void 0)!=null;Route.routes=[];Route.options={trigger:true,history:false,shim:false,replace:false,redirect:false};Route.add=function(path,callback){var key,value,_results;if(typeof path==="object"&&!(path instanceof RegExp)){_results=[];for(key in path){value=path[key];_results.push(this.add(key,value))}return _results}else{return this.routes.push(new this(path,callback))}};Route.setup=function(options){if(options==null){options={}}this.options=$.extend({},this.options,options);if(this.options.history){this.history=this.historySupport&&this.options.history}if(this.options.shim){return}if(this.history){$(window).bind("popstate",this.change)}else{$(window).bind("hashchange",this.change)}return this.change()};Route.unbind=function(){if(this.options.shim){return}if(this.history){return $(window).unbind("popstate",this.change)}else{return $(window).unbind("hashchange",this.change)}};Route.navigate=function(){var args,lastArg,options,path,route;args=1<=arguments.length?__slice.call(arguments,0):[];options={};lastArg=args[args.length-1];if(typeof lastArg==="object"){options=args.pop()}else if(typeof lastArg==="boolean"){options.trigger=args.pop()}options=$.extend({},this.options,options);path=args.join("/");if(this.path===path){return}this.path=path;this.trigger("navigate",this.path);if(options.trigger){route=this.matchRoute(this.path,options)}if(options.shim){return}if(!route){if(typeof options.redirect==="function"){return options.redirect.apply(this,[this.path,options])}else{if(options.redirect===true){this.redirect(this.path)}}}if(this.history&&options.replace){return history.replaceState({},document.title,this.path)}else if(this.history){return history.pushState({},document.title,this.path)}else{return window.location.hash=this.path}};Route.getPath=function(){var path;if(this.history){path=window.location.pathname;if(path.substr(0,1)!=="/"){path="/"+path}}else{path=window.location.hash;path=path.replace(hashStrip,"")}return path};Route.getHost=function(){return""+window.location.protocol+"//"+window.location.host};Route.change=function(){var path;path=this.getPath();if(path===this.path){return}this.path=path;return this.matchRoute(this.path)};Route.matchRoute=function(path,options){var route,_i,_len,_ref1;_ref1=this.routes;for(_i=0,_len=_ref1.length;_i<_len;_i++){route=_ref1[_i];if(!route.match(path,options)){continue}this.trigger("change",route,path);return route}};Route.redirect=function(path){return window.location=path};function Route(path,callback){var match;this.path=path;this.callback=callback;this.names=[];if(typeof path==="string"){namedParam.lastIndex=0;while((match=namedParam.exec(path))!==null){this.names.push(match[1])}splatParam.lastIndex=0;while((match=splatParam.exec(path))!==null){this.names.push(match[1])}path=path.replace(escapeRegExp,"\\$&").replace(namedParam,"([^/]*)").replace(splatParam,"(.*?)");this.route=new RegExp("^"+path+"$")}else{this.route=path}}Route.prototype.match=function(path,options){var i,match,param,params,_i,_len;if(options==null){options={}}match=this.route.exec(path);if(!match){return false}options.match=match;params=match.slice(1);if(this.names.length){for(i=_i=0,_len=params.length;_i<_len;i=++_i){param=params[i];options[this.names[i]]=param}}return this.callback.call(null,options)!==false};return Route}(Spine.Module);Spine.Route.change=Spine.Route.proxy(Spine.Route.change);Spine.Controller.include({route:function(path,callback){return Spine.Route.add(path,this.proxy(callback))},routes:function(routes){var key,value,_results;_results=[];for(key in routes){value=routes[key];_results.push(this.route(key,value))}return _results},navigate:function(){return Spine.Route.navigate.apply(Spine.Route,arguments)}});if(typeof module!=="undefined"&&module!==null){module.exports=Spine.Route}}).call(this);(function(){var $,Controller,Events,Log,Model,Module,Spine,createObject,isArray,isBlank,makeArray,moduleKeywords,__slice=[].slice,__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i=0;idx=_ref2<=0?++_m:--_m){lt=listeningTo[idx];if(!ev||ev===lt.ev){lt.obj.unbind(lt.ev,lt.handler||lt.callback);if(idx!==-1){_results2.push(listeningTo.splice(idx,1))}else{_results2.push(void 0)}}else if(ev){evts=lt.ev.split(" ");if(~(i=evts.indexOf(ev))){evts.splice(i,1);lt.ev=$.trim(evts.join(" "));_results2.push(lt.obj.unbind(ev,lt.handler||lt.callback))}else{_results2.push(void 0)}}else{_results2.push(void 0)}}return _results2}())}return _results1}())}return _results}},unbind:function(ev,callback){var cb,evs,i,list,name,_i,_j,_len,_len1,_ref;if(arguments.length===0){this._callbacks={};return this}if(!ev){return this}evs=ev.split(" ");for(_i=0,_len=evs.length;_i<_len;_i++){name=evs[_i];list=(_ref=this._callbacks)!=null?_ref[name]:void 0;if(!list){continue}if(!callback){delete this._callbacks[name];continue}for(i=_j=0,_len1=list.length;_j<_len1;i=++_j){cb=list[i];if(!(cb===callback)){continue}list=list.slice();list.splice(i,1);this._callbacks[name]=list;break}}return this}};Events.on=Events.bind;Events.off=Events.unbind;Log={trace:true,logPrefix:"(App)",log:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];if(!this.trace){return}if(this.logPrefix){args.unshift(this.logPrefix)}if(typeof console!=="undefined"&&console!==null){if(typeof console.log==="function"){console.log.apply(console,args)}}return this}};moduleKeywords=["included","extended"];Module=function(){Module.include=function(obj){var key,value,_ref;if(!obj){throw new Error("include(obj) requires obj")}for(key in obj){value=obj[key];if(__indexOf.call(moduleKeywords,key)<0){this.prototype[key]=value}}if((_ref=obj.included)!=null){_ref.apply(this)}return this};Module.extend=function(obj){var key,value,_ref;if(!obj){throw new Error("extend(obj) requires obj")}for(key in obj){value=obj[key];if(__indexOf.call(moduleKeywords,key)<0){this[key]=value}}if((_ref=obj.extended)!=null){_ref.apply(this)}return this};Module.proxy=function(func){var _this=this;return function(){return func.apply(_this,arguments)}};Module.prototype.proxy=function(func){var _this=this;return function(){return func.apply(_this,arguments)}};function Module(){if(typeof this.init==="function"){this.init.apply(this,arguments)}}return Module}();Model=function(_super){__extends(Model,_super);Model.extend(Events);Model.records=[];Model.irecords={};Model.attributes=[];Model.configure=function(){var attributes,name;name=arguments[0],attributes=2<=arguments.length?__slice.call(arguments,1):[];this.className=name;this.deleteAll();if(attributes.length){this.attributes=attributes}this.attributes&&(this.attributes=makeArray(this.attributes));this.attributes||(this.attributes=[]);this.unbind();return this};Model.toString=function(){return""+this.className+"("+this.attributes.join(", ")+")"};Model.find=function(id){var record;record=this.exists(id);if(!record){throw new Error('"'+this.className+'" model could not find a record for the ID "'+id+'"')}return record};Model.exists=function(id){var _ref;return(_ref=this.irecords[id])!=null?_ref.clone():void 0};Model.addRecord=function(record){if(record.id&&this.irecords[record.id]){this.irecords[record.id].remove()}record.id||(record.id=record.cid);this.records.push(record);this.irecords[record.id]=record;return this.irecords[record.cid]=record};Model.refresh=function(values,options){var record,records,result,_i,_len;if(options==null){options={}}if(options.clear){this.deleteAll()}records=this.fromJSON(values);if(!isArray(records)){records=[records]}for(_i=0,_len=records.length;_i<_len;_i++){record=records[_i];this.addRecord(record)}this.sort();result=this.cloneArray(records);this.trigger("refresh",result,options);return result};Model.select=function(callback){var record,_i,_len,_ref,_results;_ref=this.records;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];if(callback(record)){_results.push(record.clone())}}return _results};Model.findByAttribute=function(name,value){var record,_i,_len,_ref;_ref=this.records;for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];if(record[name]===value){return record.clone()}}return null};Model.findAllByAttribute=function(name,value){return this.select(function(item){return item[name]===value})};Model.each=function(callback){var record,_i,_len,_ref,_results;_ref=this.records;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];_results.push(callback(record.clone()))}return _results};Model.all=function(){return this.cloneArray(this.records)};Model.first=function(){var _ref;return(_ref=this.records[0])!=null?_ref.clone():void 0};Model.last=function(){var _ref;return(_ref=this.records[this.records.length-1])!=null?_ref.clone():void 0};Model.count=function(){return this.records.length};Model.deleteAll=function(){this.records=[];return this.irecords={}};Model.destroyAll=function(options){var record,_i,_len,_ref,_results;_ref=this.records;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];_results.push(record.destroy(options))}return _results};Model.update=function(id,atts,options){return this.find(id).updateAttributes(atts,options)};Model.create=function(atts,options){var record;record=new this(atts);return record.save(options)};Model.destroy=function(id,options){return this.find(id).destroy(options)};Model.change=function(callbackOrParams){if(typeof callbackOrParams==="function"){return this.bind("change",callbackOrParams)}else{return this.trigger.apply(this,["change"].concat(__slice.call(arguments)))}};Model.fetch=function(callbackOrParams){if(typeof callbackOrParams==="function"){return this.bind("fetch",callbackOrParams)}else{return this.trigger.apply(this,["fetch"].concat(__slice.call(arguments)))}};Model.toJSON=function(){return this.records};Model.fromJSON=function(objects){var value,_i,_len,_results;if(!objects){return}if(typeof objects==="string"){objects=JSON.parse(objects)}if(isArray(objects)){_results=[];for(_i=0,_len=objects.length;_i<_len;_i++){value=objects[_i];_results.push(new this(value))}return _results}else{return new this(objects)}};Model.fromForm=function(){var _ref;return(_ref=new this).fromForm.apply(_ref,arguments)};Model.sort=function(){if(this.comparator){this.records.sort(this.comparator)}return this};Model.cloneArray=function(array){var value,_i,_len,_results;_results=[];for(_i=0,_len=array.length;_i<_len;_i++){value=array[_i];_results.push(value.clone())}return _results};Model.idCounter=0;Model.uid=function(prefix){var uid;if(prefix==null){prefix=""}uid=prefix+this.idCounter++;if(this.exists(uid)){uid=this.uid(prefix)}return uid};function Model(atts){Model.__super__.constructor.apply(this,arguments); +if(atts){this.load(atts)}this.cid=(atts!=null?atts.cid:void 0)||this.constructor.uid("c-")}Model.prototype.isNew=function(){return!this.exists()};Model.prototype.isValid=function(){return!this.validate()};Model.prototype.validate=function(){};Model.prototype.load=function(atts){var key,value;if(atts.id){this.id=atts.id}for(key in atts){value=atts[key];if(atts.hasOwnProperty(key)&&typeof this[key]==="function"){this[key](value)}else{this[key]=value}}return this};Model.prototype.attributes=function(){var key,result,_i,_len,_ref;result={};_ref=this.constructor.attributes;for(_i=0,_len=_ref.length;_i<_len;_i++){key=_ref[_i];if(key in this){if(typeof this[key]==="function"){result[key]=this[key]()}else{result[key]=this[key]}}}if(this.id){result.id=this.id}return result};Model.prototype.eql=function(rec){return!!(rec&&rec.constructor===this.constructor&&rec.cid===this.cid||rec.id&&rec.id===this.id)};Model.prototype.save=function(options){var error,record;if(options==null){options={}}if(options.validate!==false){error=this.validate();if(error){this.trigger("error",error);return false}}this.trigger("beforeSave",options);record=this.isNew()?this.create(options):this.update(options);this.stripCloneAttrs();this.trigger("save",options);return record};Model.prototype.stripCloneAttrs=function(){var key,value;if(this.hasOwnProperty("cid")){return}for(key in this){if(!__hasProp.call(this,key))continue;value=this[key];if(this.constructor.attributes.indexOf(key)>-1){delete this[key]}}return this};Model.prototype.updateAttribute=function(name,value,options){var atts;atts={};atts[name]=value;return this.updateAttributes(atts,options)};Model.prototype.updateAttributes=function(atts,options){this.load(atts);return this.save(options)};Model.prototype.changeID=function(id){var records;if(id===this.id){return}records=this.constructor.irecords;records[id]=records[this.id];delete records[this.id];this.id=id;return this.save()};Model.prototype.remove=function(){var i,record,records,_i,_len;records=this.constructor.records.slice(0);for(i=_i=0,_len=records.length;_i<_len;i=++_i){record=records[i];if(!this.eql(record)){continue}records.splice(i,1);break}this.constructor.records=records;delete this.constructor.irecords[this.id];return delete this.constructor.irecords[this.cid]};Model.prototype.destroy=function(options){if(options==null){options={}}this.trigger("beforeDestroy",options);this.remove();this.destroyed=true;this.trigger("destroy",options);this.trigger("change","destroy",options);if(this.listeningTo){this.stopListening()}this.unbind();return this};Model.prototype.dup=function(newRecord){var atts;if(newRecord==null){newRecord=true}atts=this.attributes();if(newRecord){delete atts.id}else{atts.cid=this.cid}return new this.constructor(atts)};Model.prototype.clone=function(){return createObject(this)};Model.prototype.reload=function(){var original;if(this.isNew()){return this}original=this.constructor.find(this.id);this.load(original.attributes());return original};Model.prototype.refresh=function(data){var root;root=this.constructor.irecords[this.id];root.load(data);this.trigger("refresh");return this};Model.prototype.toJSON=function(){return this.attributes()};Model.prototype.toString=function(){return"<"+this.constructor.className+" ("+JSON.stringify(this)+")>"};Model.prototype.fromForm=function(form){var checkbox,key,name,result,_i,_j,_k,_len,_len1,_len2,_name,_ref,_ref1,_ref2;result={};_ref=$(form).find("[type=checkbox]:not([value])");for(_i=0,_len=_ref.length;_i<_len;_i++){checkbox=_ref[_i];result[checkbox.name]=$(checkbox).prop("checked")}_ref1=$(form).find('[type=checkbox][name$="[]"]');for(_j=0,_len1=_ref1.length;_j<_len1;_j++){checkbox=_ref1[_j];name=checkbox.name.replace(/\[\]$/,"");result[name]||(result[name]=[]);if($(checkbox).prop("checked")){result[name].push(checkbox.value)}}_ref2=$(form).serializeArray();for(_k=0,_len2=_ref2.length;_k<_len2;_k++){key=_ref2[_k];result[_name=key.name]||(result[_name]=key.value)}return this.load(result)};Model.prototype.exists=function(){return this.constructor.exists(this.id)};Model.prototype.update=function(options){var clone,records;this.trigger("beforeUpdate",options);records=this.constructor.irecords;records[this.id].load(this.attributes());this.constructor.sort();clone=records[this.id].clone();clone.trigger("update",options);clone.trigger("change","update",options);return clone};Model.prototype.create=function(options){var clone,record;this.trigger("beforeCreate",options);this.id||(this.id=this.cid);record=this.dup(false);this.constructor.addRecord(record);this.constructor.sort();clone=record.clone();clone.trigger("create",options);clone.trigger("change","create",options);return clone};Model.prototype.bind=function(events,callback){var binder,singleEvent,_fn,_i,_len,_ref,_this=this;this.constructor.bind(events,binder=function(record){if(record&&_this.eql(record)){return callback.apply(_this,arguments)}});_ref=events.split(" ");_fn=function(singleEvent){var unbinder;return _this.constructor.bind("unbind",unbinder=function(record,event,cb){if(record&&_this.eql(record)){if(event&&event!==singleEvent){return}if(cb&&cb!==callback){return}_this.constructor.unbind(singleEvent,binder);return _this.constructor.unbind("unbind",unbinder)}})};for(_i=0,_len=_ref.length;_i<_len;_i++){singleEvent=_ref[_i];_fn(singleEvent)}return this};Model.prototype.one=function(events,callback){var handler,_this=this;return this.bind(events,handler=function(){_this.unbind(events,handler);return callback.apply(_this,arguments)})};Model.prototype.trigger=function(){var args,_ref;args=1<=arguments.length?__slice.call(arguments,0):[];args.splice(1,0,this);return(_ref=this.constructor).trigger.apply(_ref,args)};Model.prototype.listenTo=function(){return Events.listenTo.apply(this,arguments)};Model.prototype.listenToOnce=function(){return Events.listenToOnce.apply(this,arguments)};Model.prototype.stopListening=function(){return Events.stopListening.apply(this,arguments)};Model.prototype.unbind=function(events,callback){var event,_i,_len,_ref,_results;if(arguments.length===0){return this.trigger("unbind")}else if(events){_ref=events.split(" ");_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){event=_ref[_i];_results.push(this.trigger("unbind",event,callback))}return _results}};return Model}(Module);Model.prototype.on=Model.prototype.bind;Model.prototype.off=Model.prototype.unbind;Controller=function(_super){__extends(Controller,_super);Controller.include(Events);Controller.include(Log);Controller.prototype.eventSplitter=/^(\S+)\s*(.*)$/;Controller.prototype.tag="div";function Controller(options){this.release=__bind(this.release,this);var context,key,parent_prototype,value,_ref;this.options=options;_ref=this.options;for(key in _ref){value=_ref[key];this[key]=value}if(!this.el){this.el=document.createElement(this.tag)}this.el=$(this.el);this.$el=this.el;if(this.className){this.el.addClass(this.className)}if(this.attributes){this.el.attr(this.attributes)}if(!this.events){this.events=this.constructor.events}if(!this.elements){this.elements=this.constructor.elements}context=this;while(parent_prototype=context.constructor.__super__){if(parent_prototype.events){this.events=$.extend({},parent_prototype.events,this.events)}if(parent_prototype.elements){this.elements=$.extend({},parent_prototype.elements,this.elements)}context=parent_prototype}if(this.events){this.delegateEvents(this.events)}if(this.elements){this.refreshElements()}Controller.__super__.constructor.apply(this,arguments)}Controller.prototype.release=function(){this.trigger("release",this);this.el.remove();this.unbind();return this.stopListening()};Controller.prototype.$=function(selector){return $(selector,this.el)};Controller.prototype.delegateEvents=function(events){var eventName,key,match,method,selector,_results,_this=this;_results=[];for(key in events){method=events[key];if(typeof method==="function"){method=function(method){return function(){method.apply(_this,arguments);return true}}(method)}else{if(!this[method]){throw new Error(""+method+" doesn't exist")}method=function(method){return function(){_this[method].apply(_this,arguments);return true}}(method)}match=key.match(this.eventSplitter);eventName=match[1];selector=match[2];if(selector===""){_results.push(this.el.bind(eventName,method))}else{_results.push(this.el.on(eventName,selector,method))}}return _results};Controller.prototype.refreshElements=function(){var key,value,_ref,_results;_ref=this.elements;_results=[];for(key in _ref){value=_ref[key];_results.push(this[value]=this.$(key))}return _results};Controller.prototype.delay=function(func,timeout){return setTimeout(this.proxy(func),timeout||0)};Controller.prototype.html=function(element){this.el.html(element.el||element);this.refreshElements();return this.el};Controller.prototype.append=function(){var e,elements,_ref;elements=1<=arguments.length?__slice.call(arguments,0):[];elements=function(){var _i,_len,_results;_results=[];for(_i=0,_len=elements.length;_i<_len;_i++){e=elements[_i];_results.push(e.el||e)}return _results}();(_ref=this.el).append.apply(_ref,elements);this.refreshElements();return this.el};Controller.prototype.appendTo=function(element){this.el.appendTo(element.el||element);this.refreshElements();return this.el};Controller.prototype.prepend=function(){var e,elements,_ref;elements=1<=arguments.length?__slice.call(arguments,0):[];elements=function(){var _i,_len,_results;_results=[];for(_i=0,_len=elements.length;_i<_len;_i++){e=elements[_i];_results.push(e.el||e)}return _results}();(_ref=this.el).prepend.apply(_ref,elements);this.refreshElements();return this.el};Controller.prototype.replace=function(element){var previous,_ref,_ref1;element=element.el||element;if(typeof element==="string"){element=$.trim(element)}_ref1=[this.el,$(((_ref=$.parseHTML(element))!=null?_ref[0]:void 0)||element)],previous=_ref1[0],this.el=_ref1[1];previous.replaceWith(this.el);this.delegateEvents(this.events);this.refreshElements();return this.el};return Controller}(Module);$=(typeof window!=="undefined"&&window!==null?window.jQuery:void 0)||(typeof window!=="undefined"&&window!==null?window.Zepto:void 0)||function(element){return element};createObject=Object.create||function(o){var Func;Func=function(){};Func.prototype=o;return new Func};isArray=function(value){return Object.prototype.toString.call(value)==="[object Array]"};isBlank=function(value){var key;if(!value){return true}for(key in value){return false}return true};makeArray=function(args){return Array.prototype.slice.call(args,0)};Spine=this.Spine={};if(typeof module!=="undefined"&&module!==null){module.exports=Spine}Spine.version="1.2.0";Spine.isArray=isArray;Spine.isBlank=isBlank;Spine.$=$;Spine.Events=Events;Spine.Log=Log;Spine.Module=Module;Spine.Controller=Controller;Spine.Model=Model;Module.extend.call(Spine,Events);Module.create=Module.sub=Controller.create=Controller.sub=Model.sub=function(instances,statics){var Result,_ref;Result=function(_super){__extends(Result,_super);function Result(){_ref=Result.__super__.constructor.apply(this,arguments);return _ref}return Result}(this);if(instances){Result.include(instances)}if(statics){Result.extend(statics)}if(typeof Result.unbind==="function"){Result.unbind()}return Result};Model.setup=function(name,attributes){var Instance,_ref;if(attributes==null){attributes=[]}Instance=function(_super){__extends(Instance,_super);function Instance(){_ref=Instance.__super__.constructor.apply(this,arguments);return _ref}return Instance}(this);Instance.configure.apply(Instance,[name].concat(__slice.call(attributes)));return Instance};Spine.Class=Module}).call(this); +//# sourceMappingURL=all.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/all.min.map b/ajax/libs/spinejs/1.2.0/all.min.map new file mode 100644 index 000000000..fdb167384 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/all.min.map @@ -0,0 +1 @@ +{"version":3,"file":"all.min.js","sources":["ajax.js","list.js","local.js","manager.js","relation.js","route.js","spine.js"],"names":["$","Ajax","Base","Collection","Extend","Include","Model","Queue","Singleton","Spine","__slice","slice","__bind","fn","me","apply","arguments","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","this","constructor","prototype","__super__","require","getURL","object","url","getCollectionURL","generateURL","getScope","scope","args","collection","path","length","className","toLowerCase","unshift","join","replace","indexOf","host","enabled","disable","callback","e","_error","queue","request","clearQueue","defaults","dataType","processData","headers","X-Requested-With","ajax","params","ajaxSettings","ajaxQueue","record","deferred","jqXHR","promise","settings","Deferred","next","_ref","id","data","JSON","stringify","done","resolve","fail","reject","then","abort","statusText","index","inArray","splice","rejectWith","context","extend","_super","model","failResponse","recordsResponse","find","options","type","all","fetch","_this","refresh","records","status","xhr","trigger","error","recordResponse","reload","create","contentType","toJSON","update","destroy","_ref1","isBlank","destroyed","changeID","success","encodeURIComponent","concat","extended","ajaxFetch","change","ajaxChange","include","Methods","module","exports","List","events","click .item","selectFirst","bind","template","item","current","children","removeClass","get","items","addClass","render","html","click","sel","el","currentTarget","Controller","Local","saveLocal","loadLocal","result","localStorage","clear","Manager","Events","controllers","add","cont","_i","_len","_results","push","addOne","controller","deactivate","activate","Module","active","isActive","hasClass","Stack","routes","value","_fn","manager","Error","stack","_ref2","route","append","Instance","association","isArray","singularize","underscore","eval","select","rec","associated","first","last","values","count","findAllByAttribute","name","findByAttribute","cb","i","match","_j","_k","_len1","_len2","irecords","newRecord","fkey","updateAttribute","remove","exists","isNew","save","fromJSON","str","Ctor","hasMany","belongsTo","attributes","hasOne","escapeRegExp","hashStrip","namedParam","splatParam","Route","historySupport","window","history","pushState","shim","redirect","RegExp","setup","unbind","navigate","lastArg","pop","matchRoute","replaceState","document","title","location","hash","getPath","pathname","substr","getHost","protocol","names","lastIndex","exec","param","proxy","Log","createObject","makeArray","moduleKeywords","__indexOf","l","ev","calls","evs","split","_callbacks","one","handler","list","shift","listenTo","obj","listeningTo","listenToOnce","listeningToOnce","idx","lt","stopListening","evts","_l","_len3","_results1","_m","_results2","trim","on","off","trace","logPrefix","log","console","included","func","init","configure","deleteAll","toString","clone","addRecord","cid","sort","cloneArray","each","destroyAll","atts","updateAttributes","callbackOrParams","objects","parse","fromForm","comparator","array","idCounter","uid","prefix","load","isValid","validate","eql","stripCloneAttrs","dup","original","root","form","checkbox","_name","prop","serializeArray","binder","singleEvent","unbinder","event","eventSplitter","tag","release","parent_prototype","createElement","$el","attr","elements","delegateEvents","refreshElements","selector","eventName","method","delay","timeout","setTimeout","element","appendTo","prepend","previous","parseHTML","replaceWith","jQuery","Zepto","Object","o","Func","Array","version","sub","instances","statics","Result","Class"],"mappings":"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"} \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/list.js b/ajax/libs/spinejs/1.2.0/list.js new file mode 100755 index 000000000..3e7f821b9 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/list.js @@ -0,0 +1,77 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var $, Spine, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + + Spine = this.Spine || require('spine'); + + $ = Spine.$; + + Spine.List = (function(_super) { + __extends(List, _super); + + List.prototype.events = { + 'click .item': 'click' + }; + + List.prototype.selectFirst = false; + + function List() { + this.change = __bind(this.change, this); + List.__super__.constructor.apply(this, arguments); + this.bind('change', this.change); + } + + List.prototype.template = function() { + throw 'Override template'; + }; + + List.prototype.change = function(item) { + this.current = item; + if (!this.current) { + this.children().removeClass('active'); + return; + } + this.children().removeClass('active'); + return $(this.children().get(this.items.indexOf(this.current))).addClass('active'); + }; + + List.prototype.render = function(items) { + if (items) { + this.items = items; + } + this.html(this.template(this.items)); + this.change(this.current); + if (this.selectFirst) { + if (!this.children('.active').length) { + return this.children(':first').click(); + } + } + }; + + List.prototype.children = function(sel) { + return this.el.children(sel); + }; + + List.prototype.click = function(e) { + var item; + item = this.items[$(e.currentTarget).index()]; + this.trigger('change', item); + return true; + }; + + return List; + + })(Spine.Controller); + + if (typeof module !== "undefined" && module !== null) { + module.exports = Spine.List; + } + +}).call(this); + +/* +//@ sourceMappingURL=list.map +*/ diff --git a/ajax/libs/spinejs/1.2.0/list.min.js b/ajax/libs/spinejs/1.2.0/list.min.js new file mode 100644 index 000000000..423e7ab0a --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/list.min.js @@ -0,0 +1,2 @@ +(function(){var $,Spine,__bind=function(fn,me){return function(){return fn.apply(me,arguments)}},__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};Spine=this.Spine||require("spine");$=Spine.$;Spine.List=function(_super){__extends(List,_super);List.prototype.events={"click .item":"click"};List.prototype.selectFirst=false;function List(){this.change=__bind(this.change,this);List.__super__.constructor.apply(this,arguments);this.bind("change",this.change)}List.prototype.template=function(){throw"Override template"};List.prototype.change=function(item){this.current=item;if(!this.current){this.children().removeClass("active");return}this.children().removeClass("active");return $(this.children().get(this.items.indexOf(this.current))).addClass("active")};List.prototype.render=function(items){if(items){this.items=items}this.html(this.template(this.items));this.change(this.current);if(this.selectFirst){if(!this.children(".active").length){return this.children(":first").click()}}};List.prototype.children=function(sel){return this.el.children(sel)};List.prototype.click=function(e){var item;item=this.items[$(e.currentTarget).index()];this.trigger("change",item);return true};return List}(Spine.Controller);if(typeof module!=="undefined"&&module!==null){module.exports=Spine.List}}).call(this); +//# sourceMappingURL=list.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/list.min.map b/ajax/libs/spinejs/1.2.0/list.min.map new file mode 100644 index 000000000..ae9b37537 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/list.min.map @@ -0,0 +1 @@ +{"version":3,"file":"list.min.js","sources":["list.js"],"names":["$","Spine","__bind","fn","me","apply","arguments","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","this","constructor","prototype","__super__","require","List","_super","events","click .item","selectFirst","change","bind","template","item","current","children","removeClass","get","items","indexOf","addClass","render","html","length","click","sel","el","e","currentTarget","index","trigger","Controller","module","exports"],"mappings":"CACA,WACE,GAAIA,GAAGC,MACLC,OAAS,SAASC,GAAIC,IAAK,MAAO,YAAY,MAAOD,IAAGE,MAAMD,GAAIE,aAClEC,aAAeC,eACfC,UAAY,SAASC,MAAOC,QAAU,IAAK,GAAIC,OAAOD,QAAQ,CAAE,GAAIJ,UAAUM,KAAKF,OAAQC,KAAMF,MAAME,KAAOD,OAAOC,KAAQ,QAASE,QAASC,KAAKC,YAAcN,MAASI,KAAKG,UAAYN,OAAOM,SAAWP,OAAMO,UAAY,GAAIH,KAAQJ,OAAMQ,UAAYP,OAAOM,SAAW,OAAOP,OAEzRT,OAAQc,KAAKd,OAASkB,QAAQ,QAE9BnB,GAAIC,MAAMD,CAEVC,OAAMmB,KAAO,SAAUC,QACrBZ,UAAUW,KAAMC,OAEhBD,MAAKH,UAAUK,QACbC,cAAe,QAGjBH,MAAKH,UAAUO,YAAc,KAE7B,SAASJ,QACPL,KAAKU,OAASvB,OAAOa,KAAKU,OAAQV,KAClCK,MAAKF,UAAUF,YAAYX,MAAMU,KAAMT,UACvCS,MAAKW,KAAK,SAAUX,KAAKU,QAG3BL,KAAKH,UAAUU,SAAW,WACxB,KAAM,oBAGRP,MAAKH,UAAUQ,OAAS,SAASG,MAC/Bb,KAAKc,QAAUD,IACf,KAAKb,KAAKc,QAAS,CACjBd,KAAKe,WAAWC,YAAY,SAC5B,QAEFhB,KAAKe,WAAWC,YAAY,SAC5B,OAAO/B,GAAEe,KAAKe,WAAWE,IAAIjB,KAAKkB,MAAMC,QAAQnB,KAAKc,WAAWM,SAAS,UAG3Ef,MAAKH,UAAUmB,OAAS,SAASH,OAC/B,GAAIA,MAAO,CACTlB,KAAKkB,MAAQA,MAEflB,KAAKsB,KAAKtB,KAAKY,SAASZ,KAAKkB,OAC7BlB,MAAKU,OAAOV,KAAKc,QACjB,IAAId,KAAKS,YAAa,CACpB,IAAKT,KAAKe,SAAS,WAAWQ,OAAQ,CACpC,MAAOvB,MAAKe,SAAS,UAAUS,UAKrCnB,MAAKH,UAAUa,SAAW,SAASU,KACjC,MAAOzB,MAAK0B,GAAGX,SAASU,KAG1BpB,MAAKH,UAAUsB,MAAQ,SAASG,GAC9B,GAAId,KACJA,MAAOb,KAAKkB,MAAMjC,EAAE0C,EAAEC,eAAeC,QACrC7B,MAAK8B,QAAQ,SAAUjB,KACvB,OAAO,MAGT,OAAOR,OAENnB,MAAM6C,WAET,UAAWC,UAAW,aAAeA,SAAW,KAAM,CACpDA,OAAOC,QAAU/C,MAAMmB,QAGxBP,KAAKE"} \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/local.js b/ajax/libs/spinejs/1.2.0/local.js new file mode 100755 index 000000000..3ae68d976 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/local.js @@ -0,0 +1,38 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var Spine; + + Spine = this.Spine || require('spine'); + + Spine.Model.Local = { + extended: function() { + this.change(this.saveLocal); + return this.fetch(this.loadLocal); + }, + saveLocal: function() { + var result; + result = JSON.stringify(this); + return localStorage[this.className] = result; + }, + loadLocal: function(options) { + var result; + if (options == null) { + options = {}; + } + if (!options.hasOwnProperty('clear')) { + options.clear = true; + } + result = localStorage[this.className]; + return this.refresh(result || [], options); + } + }; + + if (typeof module !== "undefined" && module !== null) { + module.exports = Spine.Model.Local; + } + +}).call(this); + +/* +//@ sourceMappingURL=local.map +*/ diff --git a/ajax/libs/spinejs/1.2.0/local.min.js b/ajax/libs/spinejs/1.2.0/local.min.js new file mode 100644 index 000000000..4696db942 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/local.min.js @@ -0,0 +1,2 @@ +(function(){var Spine;Spine=this.Spine||require("spine");Spine.Model.Local={extended:function(){this.change(this.saveLocal);return this.fetch(this.loadLocal)},saveLocal:function(){var result;result=JSON.stringify(this);return localStorage[this.className]=result},loadLocal:function(options){var result;if(options==null){options={}}if(!options.hasOwnProperty("clear")){options.clear=true}result=localStorage[this.className];return this.refresh(result||[],options)}};if(typeof module!=="undefined"&&module!==null){module.exports=Spine.Model.Local}}).call(this); +//# sourceMappingURL=local.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/local.min.map b/ajax/libs/spinejs/1.2.0/local.min.map new file mode 100644 index 000000000..3caf52636 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/local.min.map @@ -0,0 +1 @@ +{"version":3,"file":"local.min.js","sources":["local.js"],"names":["Spine","this","require","Model","Local","extended","change","saveLocal","fetch","loadLocal","result","JSON","stringify","localStorage","className","options","hasOwnProperty","clear","refresh","module","exports","call"],"mappings":"CACA,WACE,GAAIA,MAEJA,OAAQC,KAAKD,OAASE,QAAQ,QAE9BF,OAAMG,MAAMC,OACVC,SAAU,WACRJ,KAAKK,OAAOL,KAAKM,UACjB,OAAON,MAAKO,MAAMP,KAAKQ,YAEzBF,UAAW,WACT,GAAIG,OACJA,QAASC,KAAKC,UAAUX,KACxB,OAAOY,cAAaZ,KAAKa,WAAaJ,QAExCD,UAAW,SAASM,SAClB,GAAIL,OACJ,IAAIK,SAAW,KAAM,CACnBA,WAEF,IAAKA,QAAQC,eAAe,SAAU,CACpCD,QAAQE,MAAQ,KAElBP,OAASG,aAAaZ,KAAKa,UAC3B,OAAOb,MAAKiB,QAAQR,WAAcK,UAItC,UAAWI,UAAW,aAAeA,SAAW,KAAM,CACpDA,OAAOC,QAAUpB,MAAMG,MAAMC,SAG9BiB,KAAKpB"} \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/manager.js b/ajax/libs/spinejs/1.2.0/manager.js new file mode 100755 index 000000000..9ce90e97f --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/manager.js @@ -0,0 +1,162 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var $, Spine, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + __slice = [].slice; + + Spine = this.Spine || require('spine'); + + $ = Spine.$; + + Spine.Manager = (function(_super) { + __extends(Manager, _super); + + Manager.include(Spine.Events); + + function Manager() { + this.controllers = []; + this.bind('change', this.change); + this.add.apply(this, arguments); + } + + Manager.prototype.add = function() { + var cont, controllers, _i, _len, _results; + controllers = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + _results = []; + for (_i = 0, _len = controllers.length; _i < _len; _i++) { + cont = controllers[_i]; + _results.push(this.addOne(cont)); + } + return _results; + }; + + Manager.prototype.addOne = function(controller) { + var _this = this; + controller.bind('active', function() { + var args; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + return _this.trigger.apply(_this, ['change', controller].concat(__slice.call(args))); + }); + controller.bind('release', function() { + return _this.controllers.splice(_this.controllers.indexOf(controller), 1); + }); + return this.controllers.push(controller); + }; + + Manager.prototype.deactivate = function() { + return this.trigger.apply(this, ['change', false].concat(__slice.call(arguments))); + }; + + Manager.prototype.change = function() { + var args, cont, current, _i, _len, _ref; + current = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + _ref = this.controllers; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + cont = _ref[_i]; + if (cont !== current) { + cont.deactivate.apply(cont, args); + } + } + if (current) { + return current.activate.apply(current, args); + } + }; + + return Manager; + + })(Spine.Module); + + Spine.Controller.include({ + active: function() { + var args; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if (typeof args[0] === 'function') { + this.bind('active', args[0]); + } else { + args.unshift('active'); + this.trigger.apply(this, args); + } + return this; + }, + isActive: function() { + return this.el.hasClass('active'); + }, + activate: function() { + this.el.addClass('active'); + return this; + }, + deactivate: function() { + this.el.removeClass('active'); + return this; + } + }); + + Spine.Stack = (function(_super) { + __extends(Stack, _super); + + Stack.prototype.controllers = {}; + + Stack.prototype.routes = {}; + + Stack.prototype.className = 'spine stack'; + + function Stack() { + var key, value, _fn, _ref, _ref1, + _this = this; + Stack.__super__.constructor.apply(this, arguments); + this.manager = new Spine.Manager; + _ref = this.controllers; + for (key in _ref) { + value = _ref[key]; + if (this[key] != null) { + throw Error("'@" + key + "' already assigned - choose a different name"); + } + this[key] = new value({ + stack: this + }); + this.add(this[key]); + } + _ref1 = this.routes; + _fn = function(key, value) { + var callback; + if (typeof value === 'function') { + callback = value; + } + callback || (callback = function() { + var _ref2; + return (_ref2 = _this[value]).active.apply(_ref2, arguments); + }); + return _this.route(key, callback); + }; + for (key in _ref1) { + value = _ref1[key]; + _fn(key, value); + } + if (this["default"]) { + this[this["default"]].active(); + } + } + + Stack.prototype.add = function(controller) { + this.manager.add(controller); + return this.append(controller); + }; + + return Stack; + + })(Spine.Controller); + + if (typeof module !== "undefined" && module !== null) { + module.exports = Spine.Manager; + } + + if (typeof module !== "undefined" && module !== null) { + module.exports.Stack = Spine.Stack; + } + +}).call(this); + +/* +//@ sourceMappingURL=manager.map +*/ diff --git a/ajax/libs/spinejs/1.2.0/manager.min.js b/ajax/libs/spinejs/1.2.0/manager.min.js new file mode 100644 index 000000000..527f7689c --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/manager.min.js @@ -0,0 +1,2 @@ +(function(){var $,Spine,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child},__slice=[].slice;Spine=this.Spine||require("spine");$=Spine.$;Spine.Manager=function(_super){__extends(Manager,_super);Manager.include(Spine.Events);function Manager(){this.controllers=[];this.bind("change",this.change);this.add.apply(this,arguments)}Manager.prototype.add=function(){var cont,controllers,_i,_len,_results;controllers=1<=arguments.length?__slice.call(arguments,0):[];_results=[];for(_i=0,_len=controllers.length;_i<_len;_i++){cont=controllers[_i];_results.push(this.addOne(cont))}return _results};Manager.prototype.addOne=function(controller){var _this=this;controller.bind("active",function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];return _this.trigger.apply(_this,["change",controller].concat(__slice.call(args)))});controller.bind("release",function(){return _this.controllers.splice(_this.controllers.indexOf(controller),1)});return this.controllers.push(controller)};Manager.prototype.deactivate=function(){return this.trigger.apply(this,["change",false].concat(__slice.call(arguments)))};Manager.prototype.change=function(){var args,cont,current,_i,_len,_ref;current=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[];_ref=this.controllers;for(_i=0,_len=_ref.length;_i<_len;_i++){cont=_ref[_i];if(cont!==current){cont.deactivate.apply(cont,args)}}if(current){return current.activate.apply(current,args)}};return Manager}(Spine.Module);Spine.Controller.include({active:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];if(typeof args[0]==="function"){this.bind("active",args[0])}else{args.unshift("active");this.trigger.apply(this,args)}return this},isActive:function(){return this.el.hasClass("active")},activate:function(){this.el.addClass("active");return this},deactivate:function(){this.el.removeClass("active");return this}});Spine.Stack=function(_super){__extends(Stack,_super);Stack.prototype.controllers={};Stack.prototype.routes={};Stack.prototype.className="spine stack";function Stack(){var key,value,_fn,_ref,_ref1,_this=this;Stack.__super__.constructor.apply(this,arguments);this.manager=new Spine.Manager;_ref=this.controllers;for(key in _ref){value=_ref[key];if(this[key]!=null){throw Error("'@"+key+"' already assigned - choose a different name")}this[key]=new value({stack:this});this.add(this[key])}_ref1=this.routes;_fn=function(key,value){var callback;if(typeof value==="function"){callback=value}callback||(callback=function(){var _ref2;return(_ref2=_this[value]).active.apply(_ref2,arguments)});return _this.route(key,callback)};for(key in _ref1){value=_ref1[key];_fn(key,value)}if(this["default"]){this[this["default"]].active()}}Stack.prototype.add=function(controller){this.manager.add(controller);return this.append(controller)};return Stack}(Spine.Controller);if(typeof module!=="undefined"&&module!==null){module.exports=Spine.Manager}if(typeof module!=="undefined"&&module!==null){module.exports.Stack=Spine.Stack}}).call(this); +//# sourceMappingURL=manager.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/manager.min.map b/ajax/libs/spinejs/1.2.0/manager.min.map new file mode 100644 index 000000000..1e272d42a --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/manager.min.map @@ -0,0 +1 @@ +{"version":3,"file":"manager.min.js","sources":["manager.js"],"names":["$","Spine","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","this","constructor","prototype","__super__","__slice","slice","require","Manager","_super","include","Events","controllers","bind","change","add","apply","arguments","cont","_i","_len","_results","length","push","addOne","controller","_this","args","trigger","concat","splice","indexOf","deactivate","current","_ref","activate","Module","Controller","active","unshift","isActive","el","hasClass","addClass","removeClass","Stack","routes","className","value","_fn","_ref1","manager","Error","stack","callback","_ref2","route","append","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/relation.js b/ajax/libs/spinejs/1.2.0/relation.js new file mode 100755 index 000000000..0afb8d4f1 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/relation.js @@ -0,0 +1,264 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var Collection, Instance, Singleton, Spine, association, isArray, require, singularize, underscore, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }; + + Spine = this.Spine || require('spine'); + + isArray = Spine.isArray; + + require = this.require || (function(value) { + return eval(value); + }); + + Collection = (function(_super) { + __extends(Collection, _super); + + function Collection(options) { + var key, value; + if (options == null) { + options = {}; + } + for (key in options) { + value = options[key]; + this[key] = value; + } + } + + Collection.prototype.all = function() { + var _this = this; + return this.model.select(function(rec) { + return _this.associated(rec); + }); + }; + + Collection.prototype.first = function() { + return this.all()[0]; + }; + + Collection.prototype.last = function() { + var values; + values = this.all(); + return values[values.length - 1]; + }; + + Collection.prototype.count = function() { + return this.all().length; + }; + + Collection.prototype.find = function(id) { + var records, + _this = this; + records = this.select(function(rec) { + return ("" + rec.id) === ("" + id); + }); + if (!records[0]) { + throw new Error("\"" + this.model.className + "\" model could not find a record for the ID \"" + id + "\""); + } + return records[0]; + }; + + Collection.prototype.findAllByAttribute = function(name, value) { + var _this = this; + return this.model.select(function(rec) { + return _this.associated(rec) && rec[name] === value; + }); + }; + + Collection.prototype.findByAttribute = function(name, value) { + return this.findAllByAttribute(name, value)[0]; + }; + + Collection.prototype.select = function(cb) { + var _this = this; + return this.model.select(function(rec) { + return _this.associated(rec) && cb(rec); + }); + }; + + Collection.prototype.refresh = function(values) { + var i, match, record, _i, _j, _k, _len, _len1, _len2, _ref, _ref1; + if (values == null) { + return this; + } + _ref = this.all(); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + record = _ref[_i]; + delete this.model.irecords[record.id]; + _ref1 = this.model.records; + for (i = _j = 0, _len1 = _ref1.length; _j < _len1; i = ++_j) { + match = _ref1[i]; + if (!(match.id === record.id)) { + continue; + } + this.model.records.splice(i, 1); + break; + } + } + if (!isArray(values)) { + values = [values]; + } + for (_k = 0, _len2 = values.length; _k < _len2; _k++) { + record = values[_k]; + record.newRecord = false; + record[this.fkey] = this.record.id; + } + this.model.refresh(values); + return this; + }; + + Collection.prototype.create = function(record, options) { + record[this.fkey] = this.record.id; + return this.model.create(record, options); + }; + + Collection.prototype.add = function(record, options) { + return record.updateAttribute(this.fkey, this.record.id, options); + }; + + Collection.prototype.remove = function(record, options) { + return record.updateAttribute(this.fkey, null, options); + }; + + Collection.prototype.associated = function(record) { + return record[this.fkey] === this.record.id; + }; + + return Collection; + + })(Spine.Module); + + Instance = (function(_super) { + __extends(Instance, _super); + + function Instance(options) { + var key, value; + if (options == null) { + options = {}; + } + for (key in options) { + value = options[key]; + this[key] = value; + } + } + + Instance.prototype.exists = function() { + if (this.record[this.fkey]) { + return this.model.exists(this.record[this.fkey]); + } else { + return false; + } + }; + + Instance.prototype.update = function(value) { + if (value == null) { + return this; + } + if (!(value instanceof this.model)) { + value = new this.model(value); + } + if (value.isNew()) { + value.save(); + } + this.record[this.fkey] = value && value.id; + return this; + }; + + return Instance; + + })(Spine.Module); + + Singleton = (function(_super) { + __extends(Singleton, _super); + + function Singleton(options) { + var key, value; + if (options == null) { + options = {}; + } + for (key in options) { + value = options[key]; + this[key] = value; + } + } + + Singleton.prototype.find = function() { + return this.record.id && this.model.findByAttribute(this.fkey, this.record.id); + }; + + Singleton.prototype.update = function(value) { + if (value == null) { + return this; + } + if (!(value instanceof this.model)) { + value = this.model.fromJSON(value); + } + value[this.fkey] = this.record.id; + value.save(); + return this; + }; + + return Singleton; + + })(Spine.Module); + + singularize = function(str) { + return str.replace(/s$/, ''); + }; + + underscore = function(str) { + return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\d])([A-Z])/g, '$1_$2').replace(/-/g, '_').toLowerCase(); + }; + + association = function(name, model, record, fkey, Ctor) { + if (typeof model === 'string') { + model = require(model); + } + return new Ctor({ + name: name, + model: model, + record: record, + fkey: fkey + }); + }; + + Spine.Model.extend({ + hasMany: function(name, model, fkey) { + if (fkey == null) { + fkey = "" + (underscore(this.className)) + "_id"; + } + return this.prototype[name] = function(value) { + return association(name, model, this, fkey, Collection).refresh(value); + }; + }, + belongsTo: function(name, model, fkey) { + if (fkey == null) { + fkey = "" + (underscore(singularize(name))) + "_id"; + } + this.prototype[name] = function(value) { + return association(name, model, this, fkey, Instance).update(value).exists(); + }; + return this.attributes.push(fkey); + }, + hasOne: function(name, model, fkey) { + if (fkey == null) { + fkey = "" + (underscore(this.className)) + "_id"; + } + return this.prototype[name] = function(value) { + return association(name, model, this, fkey, Singleton).update(value).find(); + }; + } + }); + + Spine.Collection = Collection; + + Spine.Singleton = Singleton; + + Spine.Instance = Instance; + +}).call(this); + +/* +//@ sourceMappingURL=relation.map +*/ diff --git a/ajax/libs/spinejs/1.2.0/relation.min.js b/ajax/libs/spinejs/1.2.0/relation.min.js new file mode 100644 index 000000000..65a233bb1 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/relation.min.js @@ -0,0 +1,2 @@ +(function(){var Collection,Instance,Singleton,Spine,association,isArray,require,singularize,underscore,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};Spine=this.Spine||require("spine");isArray=Spine.isArray;require=this.require||function(value){return eval(value)};Collection=function(_super){__extends(Collection,_super);function Collection(options){var key,value;if(options==null){options={}}for(key in options){value=options[key];this[key]=value}}Collection.prototype.all=function(){var _this=this;return this.model.select(function(rec){return _this.associated(rec)})};Collection.prototype.first=function(){return this.all()[0]};Collection.prototype.last=function(){var values;values=this.all();return values[values.length-1]};Collection.prototype.count=function(){return this.all().length};Collection.prototype.find=function(id){var records,_this=this;records=this.select(function(rec){return""+rec.id===""+id});if(!records[0]){throw new Error('"'+this.model.className+'" model could not find a record for the ID "'+id+'"')}return records[0]};Collection.prototype.findAllByAttribute=function(name,value){var _this=this;return this.model.select(function(rec){return _this.associated(rec)&&rec[name]===value})};Collection.prototype.findByAttribute=function(name,value){return this.findAllByAttribute(name,value)[0]};Collection.prototype.select=function(cb){var _this=this;return this.model.select(function(rec){return _this.associated(rec)&&cb(rec)})};Collection.prototype.refresh=function(values){var i,match,record,_i,_j,_k,_len,_len1,_len2,_ref,_ref1;if(values==null){return this}_ref=this.all();for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];delete this.model.irecords[record.id];_ref1=this.model.records;for(i=_j=0,_len1=_ref1.length;_j<_len1;i=++_j){match=_ref1[i];if(!(match.id===record.id)){continue}this.model.records.splice(i,1);break}}if(!isArray(values)){values=[values]}for(_k=0,_len2=values.length;_k<_len2;_k++){record=values[_k];record.newRecord=false;record[this.fkey]=this.record.id}this.model.refresh(values);return this};Collection.prototype.create=function(record,options){record[this.fkey]=this.record.id;return this.model.create(record,options)};Collection.prototype.add=function(record,options){return record.updateAttribute(this.fkey,this.record.id,options)};Collection.prototype.remove=function(record,options){return record.updateAttribute(this.fkey,null,options)};Collection.prototype.associated=function(record){return record[this.fkey]===this.record.id};return Collection}(Spine.Module);Instance=function(_super){__extends(Instance,_super);function Instance(options){var key,value;if(options==null){options={}}for(key in options){value=options[key];this[key]=value}}Instance.prototype.exists=function(){if(this.record[this.fkey]){return this.model.exists(this.record[this.fkey])}else{return false}};Instance.prototype.update=function(value){if(value==null){return this}if(!(value instanceof this.model)){value=new this.model(value)}if(value.isNew()){value.save()}this.record[this.fkey]=value&&value.id;return this};return Instance}(Spine.Module);Singleton=function(_super){__extends(Singleton,_super);function Singleton(options){var key,value;if(options==null){options={}}for(key in options){value=options[key];this[key]=value}}Singleton.prototype.find=function(){return this.record.id&&this.model.findByAttribute(this.fkey,this.record.id)};Singleton.prototype.update=function(value){if(value==null){return this}if(!(value instanceof this.model)){value=this.model.fromJSON(value)}value[this.fkey]=this.record.id;value.save();return this};return Singleton}(Spine.Module);singularize=function(str){return str.replace(/s$/,"")};underscore=function(str){return str.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/-/g,"_").toLowerCase()};association=function(name,model,record,fkey,Ctor){if(typeof model==="string"){model=require(model)}return new Ctor({name:name,model:model,record:record,fkey:fkey})};Spine.Model.extend({hasMany:function(name,model,fkey){if(fkey==null){fkey=""+underscore(this.className)+"_id"}return this.prototype[name]=function(value){return association(name,model,this,fkey,Collection).refresh(value)}},belongsTo:function(name,model,fkey){if(fkey==null){fkey=""+underscore(singularize(name))+"_id"}this.prototype[name]=function(value){return association(name,model,this,fkey,Instance).update(value).exists()};return this.attributes.push(fkey)},hasOne:function(name,model,fkey){if(fkey==null){fkey=""+underscore(this.className)+"_id"}return this.prototype[name]=function(value){return association(name,model,this,fkey,Singleton).update(value).find()}}});Spine.Collection=Collection;Spine.Singleton=Singleton;Spine.Instance=Instance}).call(this); +//# sourceMappingURL=relation.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/relation.min.map b/ajax/libs/spinejs/1.2.0/relation.min.map new file mode 100644 index 000000000..e9faa891e --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/relation.min.map @@ -0,0 +1 @@ +{"version":3,"file":"relation.min.js","sources":["relation.js"],"names":["Collection","Instance","Singleton","Spine","association","isArray","require","singularize","underscore","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","this","constructor","prototype","__super__","value","eval","_super","options","all","_this","model","select","rec","associated","first","last","values","length","count","find","id","records","Error","className","findAllByAttribute","name","findByAttribute","cb","refresh","i","match","record","_i","_j","_k","_len","_len1","_len2","_ref","_ref1","irecords","splice","newRecord","fkey","create","add","updateAttribute","remove","Module","exists","update","isNew","save","fromJSON","str","replace","toLowerCase","Ctor","Model","extend","hasMany","belongsTo","attributes","push","hasOne"],"mappings":"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"} \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/route.js b/ajax/libs/spinejs/1.2.0/route.js new file mode 100755 index 000000000..4f2a81bb0 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/route.js @@ -0,0 +1,242 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var $, Spine, escapeRegExp, hashStrip, namedParam, splatParam, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + __slice = [].slice; + + Spine = this.Spine || require('spine'); + + $ = Spine.$; + + hashStrip = /^#*/; + + namedParam = /:([\w\d]+)/g; + + splatParam = /\*([\w\d]+)/g; + + escapeRegExp = /[-[\]{}()+?.,\\^$|#\s]/g; + + Spine.Route = (function(_super) { + var _ref; + + __extends(Route, _super); + + Route.extend(Spine.Events); + + Route.historySupport = ((_ref = window.history) != null ? _ref.pushState : void 0) != null; + + Route.routes = []; + + Route.options = { + trigger: true, + history: false, + shim: false, + replace: false, + redirect: false + }; + + Route.add = function(path, callback) { + var key, value, _results; + if (typeof path === 'object' && !(path instanceof RegExp)) { + _results = []; + for (key in path) { + value = path[key]; + _results.push(this.add(key, value)); + } + return _results; + } else { + return this.routes.push(new this(path, callback)); + } + }; + + Route.setup = function(options) { + if (options == null) { + options = {}; + } + this.options = $.extend({}, this.options, options); + if (this.options.history) { + this.history = this.historySupport && this.options.history; + } + if (this.options.shim) { + return; + } + if (this.history) { + $(window).bind('popstate', this.change); + } else { + $(window).bind('hashchange', this.change); + } + return this.change(); + }; + + Route.unbind = function() { + if (this.options.shim) { + return; + } + if (this.history) { + return $(window).unbind('popstate', this.change); + } else { + return $(window).unbind('hashchange', this.change); + } + }; + + Route.navigate = function() { + var args, lastArg, options, path, route; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + options = {}; + lastArg = args[args.length - 1]; + if (typeof lastArg === 'object') { + options = args.pop(); + } else if (typeof lastArg === 'boolean') { + options.trigger = args.pop(); + } + options = $.extend({}, this.options, options); + path = args.join('/'); + if (this.path === path) { + return; + } + this.path = path; + this.trigger('navigate', this.path); + if (options.trigger) { + route = this.matchRoute(this.path, options); + } + if (options.shim) { + return; + } + if (!route) { + if (typeof options.redirect === 'function') { + return options.redirect.apply(this, [this.path, options]); + } else { + if (options.redirect === true) { + this.redirect(this.path); + } + } + } + if (this.history && options.replace) { + return history.replaceState({}, document.title, this.path); + } else if (this.history) { + return history.pushState({}, document.title, this.path); + } else { + return window.location.hash = this.path; + } + }; + + Route.getPath = function() { + var path; + if (this.history) { + path = window.location.pathname; + if (path.substr(0, 1) !== '/') { + path = '/' + path; + } + } else { + path = window.location.hash; + path = path.replace(hashStrip, ''); + } + return path; + }; + + Route.getHost = function() { + return "" + window.location.protocol + "//" + window.location.host; + }; + + Route.change = function() { + var path; + path = this.getPath(); + if (path === this.path) { + return; + } + this.path = path; + return this.matchRoute(this.path); + }; + + Route.matchRoute = function(path, options) { + var route, _i, _len, _ref1; + _ref1 = this.routes; + for (_i = 0, _len = _ref1.length; _i < _len; _i++) { + route = _ref1[_i]; + if (!(route.match(path, options))) { + continue; + } + this.trigger('change', route, path); + return route; + } + }; + + Route.redirect = function(path) { + return window.location = path; + }; + + function Route(path, callback) { + var match; + this.path = path; + this.callback = callback; + this.names = []; + if (typeof path === 'string') { + namedParam.lastIndex = 0; + while ((match = namedParam.exec(path)) !== null) { + this.names.push(match[1]); + } + splatParam.lastIndex = 0; + while ((match = splatParam.exec(path)) !== null) { + this.names.push(match[1]); + } + path = path.replace(escapeRegExp, '\\$&').replace(namedParam, '([^\/]*)').replace(splatParam, '(.*?)'); + this.route = new RegExp("^" + path + "$"); + } else { + this.route = path; + } + } + + Route.prototype.match = function(path, options) { + var i, match, param, params, _i, _len; + if (options == null) { + options = {}; + } + match = this.route.exec(path); + if (!match) { + return false; + } + options.match = match; + params = match.slice(1); + if (this.names.length) { + for (i = _i = 0, _len = params.length; _i < _len; i = ++_i) { + param = params[i]; + options[this.names[i]] = param; + } + } + return this.callback.call(null, options) !== false; + }; + + return Route; + + })(Spine.Module); + + Spine.Route.change = Spine.Route.proxy(Spine.Route.change); + + Spine.Controller.include({ + route: function(path, callback) { + return Spine.Route.add(path, this.proxy(callback)); + }, + routes: function(routes) { + var key, value, _results; + _results = []; + for (key in routes) { + value = routes[key]; + _results.push(this.route(key, value)); + } + return _results; + }, + navigate: function() { + return Spine.Route.navigate.apply(Spine.Route, arguments); + } + }); + + if (typeof module !== "undefined" && module !== null) { + module.exports = Spine.Route; + } + +}).call(this); + +/* +//@ sourceMappingURL=route.map +*/ diff --git a/ajax/libs/spinejs/1.2.0/route.min.js b/ajax/libs/spinejs/1.2.0/route.min.js new file mode 100644 index 000000000..5668c308e --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/route.min.js @@ -0,0 +1,2 @@ +(function(){var $,Spine,escapeRegExp,hashStrip,namedParam,splatParam,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child},__slice=[].slice;Spine=this.Spine||require("spine");$=Spine.$;hashStrip=/^#*/;namedParam=/:([\w\d]+)/g;splatParam=/\*([\w\d]+)/g;escapeRegExp=/[-[\]{}()+?.,\\^$|#\s]/g;Spine.Route=function(_super){var _ref;__extends(Route,_super);Route.extend(Spine.Events);Route.historySupport=((_ref=window.history)!=null?_ref.pushState:void 0)!=null;Route.routes=[];Route.options={trigger:true,history:false,shim:false,replace:false,redirect:false};Route.add=function(path,callback){var key,value,_results;if(typeof path==="object"&&!(path instanceof RegExp)){_results=[];for(key in path){value=path[key];_results.push(this.add(key,value))}return _results}else{return this.routes.push(new this(path,callback))}};Route.setup=function(options){if(options==null){options={}}this.options=$.extend({},this.options,options);if(this.options.history){this.history=this.historySupport&&this.options.history}if(this.options.shim){return}if(this.history){$(window).bind("popstate",this.change)}else{$(window).bind("hashchange",this.change)}return this.change()};Route.unbind=function(){if(this.options.shim){return}if(this.history){return $(window).unbind("popstate",this.change)}else{return $(window).unbind("hashchange",this.change)}};Route.navigate=function(){var args,lastArg,options,path,route;args=1<=arguments.length?__slice.call(arguments,0):[];options={};lastArg=args[args.length-1];if(typeof lastArg==="object"){options=args.pop()}else if(typeof lastArg==="boolean"){options.trigger=args.pop()}options=$.extend({},this.options,options);path=args.join("/");if(this.path===path){return}this.path=path;this.trigger("navigate",this.path);if(options.trigger){route=this.matchRoute(this.path,options)}if(options.shim){return}if(!route){if(typeof options.redirect==="function"){return options.redirect.apply(this,[this.path,options])}else{if(options.redirect===true){this.redirect(this.path)}}}if(this.history&&options.replace){return history.replaceState({},document.title,this.path)}else if(this.history){return history.pushState({},document.title,this.path)}else{return window.location.hash=this.path}};Route.getPath=function(){var path;if(this.history){path=window.location.pathname;if(path.substr(0,1)!=="/"){path="/"+path}}else{path=window.location.hash;path=path.replace(hashStrip,"")}return path};Route.getHost=function(){return""+window.location.protocol+"//"+window.location.host};Route.change=function(){var path;path=this.getPath();if(path===this.path){return}this.path=path;return this.matchRoute(this.path)};Route.matchRoute=function(path,options){var route,_i,_len,_ref1;_ref1=this.routes;for(_i=0,_len=_ref1.length;_i<_len;_i++){route=_ref1[_i];if(!route.match(path,options)){continue}this.trigger("change",route,path);return route}};Route.redirect=function(path){return window.location=path};function Route(path,callback){var match;this.path=path;this.callback=callback;this.names=[];if(typeof path==="string"){namedParam.lastIndex=0;while((match=namedParam.exec(path))!==null){this.names.push(match[1])}splatParam.lastIndex=0;while((match=splatParam.exec(path))!==null){this.names.push(match[1])}path=path.replace(escapeRegExp,"\\$&").replace(namedParam,"([^/]*)").replace(splatParam,"(.*?)");this.route=new RegExp("^"+path+"$")}else{this.route=path}}Route.prototype.match=function(path,options){var i,match,param,params,_i,_len;if(options==null){options={}}match=this.route.exec(path);if(!match){return false}options.match=match;params=match.slice(1);if(this.names.length){for(i=_i=0,_len=params.length;_i<_len;i=++_i){param=params[i];options[this.names[i]]=param}}return this.callback.call(null,options)!==false};return Route}(Spine.Module);Spine.Route.change=Spine.Route.proxy(Spine.Route.change);Spine.Controller.include({route:function(path,callback){return Spine.Route.add(path,this.proxy(callback))},routes:function(routes){var key,value,_results;_results=[];for(key in routes){value=routes[key];_results.push(this.route(key,value))}return _results},navigate:function(){return Spine.Route.navigate.apply(Spine.Route,arguments)}});if(typeof module!=="undefined"&&module!==null){module.exports=Spine.Route}}).call(this); +//# sourceMappingURL=route.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/route.min.map b/ajax/libs/spinejs/1.2.0/route.min.map new file mode 100644 index 000000000..51f3a9dbb --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/route.min.map @@ -0,0 +1 @@ +{"version":3,"file":"route.min.js","sources":["route.js"],"names":["$","Spine","escapeRegExp","hashStrip","namedParam","splatParam","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","this","constructor","prototype","__super__","__slice","slice","require","Route","_super","_ref","extend","Events","historySupport","window","history","pushState","routes","options","trigger","shim","replace","redirect","add","path","callback","value","_results","RegExp","push","setup","bind","change","unbind","navigate","args","lastArg","route","arguments","length","pop","join","matchRoute","apply","replaceState","document","title","location","hash","getPath","pathname","substr","getHost","protocol","host","_i","_len","_ref1","match","names","lastIndex","exec","i","param","params","Module","proxy","Controller","include","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/spine.js b/ajax/libs/spinejs/1.2.0/spine.js new file mode 100755 index 000000000..22ad41f9e --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/spine.js @@ -0,0 +1,1125 @@ +// Generated by CoffeeScript 1.6.3 +(function() { + var $, Controller, Events, Log, Model, Module, Spine, createObject, isArray, isBlank, makeArray, moduleKeywords, + __slice = [].slice, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }, + __hasProp = {}.hasOwnProperty, + __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, + __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; + + Events = { + bind: function(ev, callback) { + var calls, evs, name, _i, _len; + evs = ev.split(' '); + calls = this.hasOwnProperty('_callbacks') && this._callbacks || (this._callbacks = {}); + for (_i = 0, _len = evs.length; _i < _len; _i++) { + name = evs[_i]; + calls[name] || (calls[name] = []); + calls[name].push(callback); + } + return this; + }, + one: function(ev, callback) { + var handler; + return this.bind(ev, handler = function() { + this.unbind(ev, handler); + return callback.apply(this, arguments); + }); + }, + trigger: function() { + var args, callback, ev, list, _i, _len, _ref; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + ev = args.shift(); + list = this.hasOwnProperty('_callbacks') && ((_ref = this._callbacks) != null ? _ref[ev] : void 0); + if (!list) { + return; + } + for (_i = 0, _len = list.length; _i < _len; _i++) { + callback = list[_i]; + if (callback.apply(this, args) === false) { + break; + } + } + return true; + }, + listenTo: function(obj, ev, callback) { + obj.bind(ev, callback); + this.listeningTo || (this.listeningTo = []); + this.listeningTo.push({ + obj: obj, + ev: ev, + callback: callback + }); + return this; + }, + listenToOnce: function(obj, ev, callback) { + var handler, listeningToOnce; + listeningToOnce = this.listeningToOnce || (this.listeningToOnce = []); + obj.bind(ev, handler = function() { + var i, idx, lt, _i, _len; + idx = -1; + for (i = _i = 0, _len = listeningToOnce.length; _i < _len; i = ++_i) { + lt = listeningToOnce[i]; + if (lt.obj === obj) { + if (lt.ev === ev && lt.callback === callback) { + idx = i; + } + } + } + obj.unbind(ev, handler); + if (idx !== -1) { + listeningToOnce.splice(idx, 1); + } + return callback.apply(this, arguments); + }); + listeningToOnce.push({ + obj: obj, + ev: ev, + callback: callback, + handler: handler + }); + return this; + }, + stopListening: function(obj, events, callback) { + var ev, evts, i, idx, listeningTo, lt, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _results; + if (arguments.length === 0) { + _ref = [this.listeningTo, this.listeningToOnce]; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + listeningTo = _ref[_i]; + if (!listeningTo) { + continue; + } + for (_j = 0, _len1 = listeningTo.length; _j < _len1; _j++) { + lt = listeningTo[_j]; + lt.obj.unbind(lt.ev, lt.handler || lt.callback); + } + } + this.listeningTo = void 0; + return this.listeningToOnce = void 0; + } else if (obj) { + _ref1 = [this.listeningTo, this.listeningToOnce]; + _results = []; + for (_k = 0, _len2 = _ref1.length; _k < _len2; _k++) { + listeningTo = _ref1[_k]; + if (!listeningTo) { + continue; + } + events = events ? events.split(' ') : [void 0]; + _results.push((function() { + var _l, _len3, _results1; + _results1 = []; + for (_l = 0, _len3 = events.length; _l < _len3; _l++) { + ev = events[_l]; + _results1.push((function() { + var _m, _ref2, _results2; + _results2 = []; + for (idx = _m = _ref2 = listeningTo.length - 1; _ref2 <= 0 ? _m <= 0 : _m >= 0; idx = _ref2 <= 0 ? ++_m : --_m) { + lt = listeningTo[idx]; + if ((!ev) || (ev === lt.ev)) { + lt.obj.unbind(lt.ev, lt.handler || lt.callback); + if (idx !== -1) { + _results2.push(listeningTo.splice(idx, 1)); + } else { + _results2.push(void 0); + } + } else if (ev) { + evts = lt.ev.split(' '); + if (~(i = evts.indexOf(ev))) { + evts.splice(i, 1); + lt.ev = $.trim(evts.join(' ')); + _results2.push(lt.obj.unbind(ev, lt.handler || lt.callback)); + } else { + _results2.push(void 0); + } + } else { + _results2.push(void 0); + } + } + return _results2; + })()); + } + return _results1; + })()); + } + return _results; + } + }, + unbind: function(ev, callback) { + var cb, evs, i, list, name, _i, _j, _len, _len1, _ref; + if (arguments.length === 0) { + this._callbacks = {}; + return this; + } + if (!ev) { + return this; + } + evs = ev.split(' '); + for (_i = 0, _len = evs.length; _i < _len; _i++) { + name = evs[_i]; + list = (_ref = this._callbacks) != null ? _ref[name] : void 0; + if (!list) { + continue; + } + if (!callback) { + delete this._callbacks[name]; + continue; + } + for (i = _j = 0, _len1 = list.length; _j < _len1; i = ++_j) { + cb = list[i]; + if (!(cb === callback)) { + continue; + } + list = list.slice(); + list.splice(i, 1); + this._callbacks[name] = list; + break; + } + } + return this; + } + }; + + Events.on = Events.bind; + + Events.off = Events.unbind; + + Log = { + trace: true, + logPrefix: '(App)', + log: function() { + var args; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + if (!this.trace) { + return; + } + if (this.logPrefix) { + args.unshift(this.logPrefix); + } + if (typeof console !== "undefined" && console !== null) { + if (typeof console.log === "function") { + console.log.apply(console, args); + } + } + return this; + } + }; + + moduleKeywords = ['included', 'extended']; + + Module = (function() { + Module.include = function(obj) { + var key, value, _ref; + if (!obj) { + throw new Error('include(obj) requires obj'); + } + for (key in obj) { + value = obj[key]; + if (__indexOf.call(moduleKeywords, key) < 0) { + this.prototype[key] = value; + } + } + if ((_ref = obj.included) != null) { + _ref.apply(this); + } + return this; + }; + + Module.extend = function(obj) { + var key, value, _ref; + if (!obj) { + throw new Error('extend(obj) requires obj'); + } + for (key in obj) { + value = obj[key]; + if (__indexOf.call(moduleKeywords, key) < 0) { + this[key] = value; + } + } + if ((_ref = obj.extended) != null) { + _ref.apply(this); + } + return this; + }; + + Module.proxy = function(func) { + var _this = this; + return function() { + return func.apply(_this, arguments); + }; + }; + + Module.prototype.proxy = function(func) { + var _this = this; + return function() { + return func.apply(_this, arguments); + }; + }; + + function Module() { + if (typeof this.init === "function") { + this.init.apply(this, arguments); + } + } + + return Module; + + })(); + + Model = (function(_super) { + __extends(Model, _super); + + Model.extend(Events); + + Model.records = []; + + Model.irecords = {}; + + Model.attributes = []; + + Model.configure = function() { + var attributes, name; + name = arguments[0], attributes = 2 <= arguments.length ? __slice.call(arguments, 1) : []; + this.className = name; + this.deleteAll(); + if (attributes.length) { + this.attributes = attributes; + } + this.attributes && (this.attributes = makeArray(this.attributes)); + this.attributes || (this.attributes = []); + this.unbind(); + return this; + }; + + Model.toString = function() { + return "" + this.className + "(" + (this.attributes.join(", ")) + ")"; + }; + + Model.find = function(id) { + var record; + record = this.exists(id); + if (!record) { + throw new Error("\"" + this.className + "\" model could not find a record for the ID \"" + id + "\""); + } + return record; + }; + + Model.exists = function(id) { + var _ref; + return (_ref = this.irecords[id]) != null ? _ref.clone() : void 0; + }; + + Model.addRecord = function(record) { + if (record.id && this.irecords[record.id]) { + this.irecords[record.id].remove(); + } + record.id || (record.id = record.cid); + this.records.push(record); + this.irecords[record.id] = record; + return this.irecords[record.cid] = record; + }; + + Model.refresh = function(values, options) { + var record, records, result, _i, _len; + if (options == null) { + options = {}; + } + if (options.clear) { + this.deleteAll(); + } + records = this.fromJSON(values); + if (!isArray(records)) { + records = [records]; + } + for (_i = 0, _len = records.length; _i < _len; _i++) { + record = records[_i]; + this.addRecord(record); + } + this.sort(); + result = this.cloneArray(records); + this.trigger('refresh', result, options); + return result; + }; + + Model.select = function(callback) { + var record, _i, _len, _ref, _results; + _ref = this.records; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + record = _ref[_i]; + if (callback(record)) { + _results.push(record.clone()); + } + } + return _results; + }; + + Model.findByAttribute = function(name, value) { + var record, _i, _len, _ref; + _ref = this.records; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + record = _ref[_i]; + if (record[name] === value) { + return record.clone(); + } + } + return null; + }; + + Model.findAllByAttribute = function(name, value) { + return this.select(function(item) { + return item[name] === value; + }); + }; + + Model.each = function(callback) { + var record, _i, _len, _ref, _results; + _ref = this.records; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + record = _ref[_i]; + _results.push(callback(record.clone())); + } + return _results; + }; + + Model.all = function() { + return this.cloneArray(this.records); + }; + + Model.first = function() { + var _ref; + return (_ref = this.records[0]) != null ? _ref.clone() : void 0; + }; + + Model.last = function() { + var _ref; + return (_ref = this.records[this.records.length - 1]) != null ? _ref.clone() : void 0; + }; + + Model.count = function() { + return this.records.length; + }; + + Model.deleteAll = function() { + this.records = []; + return this.irecords = {}; + }; + + Model.destroyAll = function(options) { + var record, _i, _len, _ref, _results; + _ref = this.records; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + record = _ref[_i]; + _results.push(record.destroy(options)); + } + return _results; + }; + + Model.update = function(id, atts, options) { + return this.find(id).updateAttributes(atts, options); + }; + + Model.create = function(atts, options) { + var record; + record = new this(atts); + return record.save(options); + }; + + Model.destroy = function(id, options) { + return this.find(id).destroy(options); + }; + + Model.change = function(callbackOrParams) { + if (typeof callbackOrParams === 'function') { + return this.bind('change', callbackOrParams); + } else { + return this.trigger.apply(this, ['change'].concat(__slice.call(arguments))); + } + }; + + Model.fetch = function(callbackOrParams) { + if (typeof callbackOrParams === 'function') { + return this.bind('fetch', callbackOrParams); + } else { + return this.trigger.apply(this, ['fetch'].concat(__slice.call(arguments))); + } + }; + + Model.toJSON = function() { + return this.records; + }; + + Model.fromJSON = function(objects) { + var value, _i, _len, _results; + if (!objects) { + return; + } + if (typeof objects === 'string') { + objects = JSON.parse(objects); + } + if (isArray(objects)) { + _results = []; + for (_i = 0, _len = objects.length; _i < _len; _i++) { + value = objects[_i]; + _results.push(new this(value)); + } + return _results; + } else { + return new this(objects); + } + }; + + Model.fromForm = function() { + var _ref; + return (_ref = new this).fromForm.apply(_ref, arguments); + }; + + Model.sort = function() { + if (this.comparator) { + this.records.sort(this.comparator); + } + return this; + }; + + Model.cloneArray = function(array) { + var value, _i, _len, _results; + _results = []; + for (_i = 0, _len = array.length; _i < _len; _i++) { + value = array[_i]; + _results.push(value.clone()); + } + return _results; + }; + + Model.idCounter = 0; + + Model.uid = function(prefix) { + var uid; + if (prefix == null) { + prefix = ''; + } + uid = prefix + this.idCounter++; + if (this.exists(uid)) { + uid = this.uid(prefix); + } + return uid; + }; + + function Model(atts) { + Model.__super__.constructor.apply(this, arguments); + if (atts) { + this.load(atts); + } + this.cid = (atts != null ? atts.cid : void 0) || this.constructor.uid('c-'); + } + + Model.prototype.isNew = function() { + return !this.exists(); + }; + + Model.prototype.isValid = function() { + return !this.validate(); + }; + + Model.prototype.validate = function() {}; + + Model.prototype.load = function(atts) { + var key, value; + if (atts.id) { + this.id = atts.id; + } + for (key in atts) { + value = atts[key]; + if (atts.hasOwnProperty(key) && typeof this[key] === 'function') { + this[key](value); + } else { + this[key] = value; + } + } + return this; + }; + + Model.prototype.attributes = function() { + var key, result, _i, _len, _ref; + result = {}; + _ref = this.constructor.attributes; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + key = _ref[_i]; + if (key in this) { + if (typeof this[key] === 'function') { + result[key] = this[key](); + } else { + result[key] = this[key]; + } + } + } + if (this.id) { + result.id = this.id; + } + return result; + }; + + Model.prototype.eql = function(rec) { + return !!(rec && rec.constructor === this.constructor && (rec.cid === this.cid) || (rec.id && rec.id === this.id)); + }; + + Model.prototype.save = function(options) { + var error, record; + if (options == null) { + options = {}; + } + if (options.validate !== false) { + error = this.validate(); + if (error) { + this.trigger('error', error); + return false; + } + } + this.trigger('beforeSave', options); + record = this.isNew() ? this.create(options) : this.update(options); + this.stripCloneAttrs(); + this.trigger('save', options); + return record; + }; + + Model.prototype.stripCloneAttrs = function() { + var key, value; + if (this.hasOwnProperty('cid')) { + return; + } + for (key in this) { + if (!__hasProp.call(this, key)) continue; + value = this[key]; + if (this.constructor.attributes.indexOf(key) > -1) { + delete this[key]; + } + } + return this; + }; + + Model.prototype.updateAttribute = function(name, value, options) { + var atts; + atts = {}; + atts[name] = value; + return this.updateAttributes(atts, options); + }; + + Model.prototype.updateAttributes = function(atts, options) { + this.load(atts); + return this.save(options); + }; + + Model.prototype.changeID = function(id) { + var records; + if (id === this.id) { + return; + } + records = this.constructor.irecords; + records[id] = records[this.id]; + delete records[this.id]; + this.id = id; + return this.save(); + }; + + Model.prototype.remove = function() { + var i, record, records, _i, _len; + records = this.constructor.records.slice(0); + for (i = _i = 0, _len = records.length; _i < _len; i = ++_i) { + record = records[i]; + if (!(this.eql(record))) { + continue; + } + records.splice(i, 1); + break; + } + this.constructor.records = records; + delete this.constructor.irecords[this.id]; + return delete this.constructor.irecords[this.cid]; + }; + + Model.prototype.destroy = function(options) { + if (options == null) { + options = {}; + } + this.trigger('beforeDestroy', options); + this.remove(); + this.destroyed = true; + this.trigger('destroy', options); + this.trigger('change', 'destroy', options); + if (this.listeningTo) { + this.stopListening(); + } + this.unbind(); + return this; + }; + + Model.prototype.dup = function(newRecord) { + var atts; + if (newRecord == null) { + newRecord = true; + } + atts = this.attributes(); + if (newRecord) { + delete atts.id; + } else { + atts.cid = this.cid; + } + return new this.constructor(atts); + }; + + Model.prototype.clone = function() { + return createObject(this); + }; + + Model.prototype.reload = function() { + var original; + if (this.isNew()) { + return this; + } + original = this.constructor.find(this.id); + this.load(original.attributes()); + return original; + }; + + Model.prototype.refresh = function(data) { + var root; + root = this.constructor.irecords[this.id]; + root.load(data); + this.trigger('refresh'); + return this; + }; + + Model.prototype.toJSON = function() { + return this.attributes(); + }; + + Model.prototype.toString = function() { + return "<" + this.constructor.className + " (" + (JSON.stringify(this)) + ")>"; + }; + + Model.prototype.fromForm = function(form) { + var checkbox, key, name, result, _i, _j, _k, _len, _len1, _len2, _name, _ref, _ref1, _ref2; + result = {}; + _ref = $(form).find('[type=checkbox]:not([value])'); + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + checkbox = _ref[_i]; + result[checkbox.name] = $(checkbox).prop('checked'); + } + _ref1 = $(form).find('[type=checkbox][name$="[]"]'); + for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { + checkbox = _ref1[_j]; + name = checkbox.name.replace(/\[\]$/, ''); + result[name] || (result[name] = []); + if ($(checkbox).prop('checked')) { + result[name].push(checkbox.value); + } + } + _ref2 = $(form).serializeArray(); + for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) { + key = _ref2[_k]; + result[_name = key.name] || (result[_name] = key.value); + } + return this.load(result); + }; + + Model.prototype.exists = function() { + return this.constructor.exists(this.id); + }; + + Model.prototype.update = function(options) { + var clone, records; + this.trigger('beforeUpdate', options); + records = this.constructor.irecords; + records[this.id].load(this.attributes()); + this.constructor.sort(); + clone = records[this.id].clone(); + clone.trigger('update', options); + clone.trigger('change', 'update', options); + return clone; + }; + + Model.prototype.create = function(options) { + var clone, record; + this.trigger('beforeCreate', options); + this.id || (this.id = this.cid); + record = this.dup(false); + this.constructor.addRecord(record); + this.constructor.sort(); + clone = record.clone(); + clone.trigger('create', options); + clone.trigger('change', 'create', options); + return clone; + }; + + Model.prototype.bind = function(events, callback) { + var binder, singleEvent, _fn, _i, _len, _ref, + _this = this; + this.constructor.bind(events, binder = function(record) { + if (record && _this.eql(record)) { + return callback.apply(_this, arguments); + } + }); + _ref = events.split(' '); + _fn = function(singleEvent) { + var unbinder; + return _this.constructor.bind("unbind", unbinder = function(record, event, cb) { + if (record && _this.eql(record)) { + if (event && event !== singleEvent) { + return; + } + if (cb && cb !== callback) { + return; + } + _this.constructor.unbind(singleEvent, binder); + return _this.constructor.unbind("unbind", unbinder); + } + }); + }; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + singleEvent = _ref[_i]; + _fn(singleEvent); + } + return this; + }; + + Model.prototype.one = function(events, callback) { + var handler, + _this = this; + return this.bind(events, handler = function() { + _this.unbind(events, handler); + return callback.apply(_this, arguments); + }); + }; + + Model.prototype.trigger = function() { + var args, _ref; + args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + args.splice(1, 0, this); + return (_ref = this.constructor).trigger.apply(_ref, args); + }; + + Model.prototype.listenTo = function() { + return Events.listenTo.apply(this, arguments); + }; + + Model.prototype.listenToOnce = function() { + return Events.listenToOnce.apply(this, arguments); + }; + + Model.prototype.stopListening = function() { + return Events.stopListening.apply(this, arguments); + }; + + Model.prototype.unbind = function(events, callback) { + var event, _i, _len, _ref, _results; + if (arguments.length === 0) { + return this.trigger('unbind'); + } else if (events) { + _ref = events.split(' '); + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + event = _ref[_i]; + _results.push(this.trigger('unbind', event, callback)); + } + return _results; + } + }; + + return Model; + + })(Module); + + Model.prototype.on = Model.prototype.bind; + + Model.prototype.off = Model.prototype.unbind; + + Controller = (function(_super) { + __extends(Controller, _super); + + Controller.include(Events); + + Controller.include(Log); + + Controller.prototype.eventSplitter = /^(\S+)\s*(.*)$/; + + Controller.prototype.tag = 'div'; + + function Controller(options) { + this.release = __bind(this.release, this); + var context, key, parent_prototype, value, _ref; + this.options = options; + _ref = this.options; + for (key in _ref) { + value = _ref[key]; + this[key] = value; + } + if (!this.el) { + this.el = document.createElement(this.tag); + } + this.el = $(this.el); + this.$el = this.el; + if (this.className) { + this.el.addClass(this.className); + } + if (this.attributes) { + this.el.attr(this.attributes); + } + if (!this.events) { + this.events = this.constructor.events; + } + if (!this.elements) { + this.elements = this.constructor.elements; + } + context = this; + while (parent_prototype = context.constructor.__super__) { + if (parent_prototype.events) { + this.events = $.extend({}, parent_prototype.events, this.events); + } + if (parent_prototype.elements) { + this.elements = $.extend({}, parent_prototype.elements, this.elements); + } + context = parent_prototype; + } + if (this.events) { + this.delegateEvents(this.events); + } + if (this.elements) { + this.refreshElements(); + } + Controller.__super__.constructor.apply(this, arguments); + } + + Controller.prototype.release = function() { + this.trigger('release', this); + this.el.remove(); + this.unbind(); + return this.stopListening(); + }; + + Controller.prototype.$ = function(selector) { + return $(selector, this.el); + }; + + Controller.prototype.delegateEvents = function(events) { + var eventName, key, match, method, selector, _results, + _this = this; + _results = []; + for (key in events) { + method = events[key]; + if (typeof method === 'function') { + method = (function(method) { + return function() { + method.apply(_this, arguments); + return true; + }; + })(method); + } else { + if (!this[method]) { + throw new Error("" + method + " doesn't exist"); + } + method = (function(method) { + return function() { + _this[method].apply(_this, arguments); + return true; + }; + })(method); + } + match = key.match(this.eventSplitter); + eventName = match[1]; + selector = match[2]; + if (selector === '') { + _results.push(this.el.bind(eventName, method)); + } else { + _results.push(this.el.on(eventName, selector, method)); + } + } + return _results; + }; + + Controller.prototype.refreshElements = function() { + var key, value, _ref, _results; + _ref = this.elements; + _results = []; + for (key in _ref) { + value = _ref[key]; + _results.push(this[value] = this.$(key)); + } + return _results; + }; + + Controller.prototype.delay = function(func, timeout) { + return setTimeout(this.proxy(func), timeout || 0); + }; + + Controller.prototype.html = function(element) { + this.el.html(element.el || element); + this.refreshElements(); + return this.el; + }; + + Controller.prototype.append = function() { + var e, elements, _ref; + elements = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + elements = (function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = elements.length; _i < _len; _i++) { + e = elements[_i]; + _results.push(e.el || e); + } + return _results; + })(); + (_ref = this.el).append.apply(_ref, elements); + this.refreshElements(); + return this.el; + }; + + Controller.prototype.appendTo = function(element) { + this.el.appendTo(element.el || element); + this.refreshElements(); + return this.el; + }; + + Controller.prototype.prepend = function() { + var e, elements, _ref; + elements = 1 <= arguments.length ? __slice.call(arguments, 0) : []; + elements = (function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = elements.length; _i < _len; _i++) { + e = elements[_i]; + _results.push(e.el || e); + } + return _results; + })(); + (_ref = this.el).prepend.apply(_ref, elements); + this.refreshElements(); + return this.el; + }; + + Controller.prototype.replace = function(element) { + var previous, _ref, _ref1; + element = element.el || element; + if (typeof element === "string") { + element = $.trim(element); + } + _ref1 = [this.el, $(((_ref = $.parseHTML(element)) != null ? _ref[0] : void 0) || element)], previous = _ref1[0], this.el = _ref1[1]; + previous.replaceWith(this.el); + this.delegateEvents(this.events); + this.refreshElements(); + return this.el; + }; + + return Controller; + + })(Module); + + $ = (typeof window !== "undefined" && window !== null ? window.jQuery : void 0) || (typeof window !== "undefined" && window !== null ? window.Zepto : void 0) || function(element) { + return element; + }; + + createObject = Object.create || function(o) { + var Func; + Func = function() {}; + Func.prototype = o; + return new Func(); + }; + + isArray = function(value) { + return Object.prototype.toString.call(value) === '[object Array]'; + }; + + isBlank = function(value) { + var key; + if (!value) { + return true; + } + for (key in value) { + return false; + } + return true; + }; + + makeArray = function(args) { + return Array.prototype.slice.call(args, 0); + }; + + Spine = this.Spine = {}; + + if (typeof module !== "undefined" && module !== null) { + module.exports = Spine; + } + + Spine.version = '1.2.0'; + + Spine.isArray = isArray; + + Spine.isBlank = isBlank; + + Spine.$ = $; + + Spine.Events = Events; + + Spine.Log = Log; + + Spine.Module = Module; + + Spine.Controller = Controller; + + Spine.Model = Model; + + Module.extend.call(Spine, Events); + + Module.create = Module.sub = Controller.create = Controller.sub = Model.sub = function(instances, statics) { + var Result, _ref; + Result = (function(_super) { + __extends(Result, _super); + + function Result() { + _ref = Result.__super__.constructor.apply(this, arguments); + return _ref; + } + + return Result; + + })(this); + if (instances) { + Result.include(instances); + } + if (statics) { + Result.extend(statics); + } + if (typeof Result.unbind === "function") { + Result.unbind(); + } + return Result; + }; + + Model.setup = function(name, attributes) { + var Instance, _ref; + if (attributes == null) { + attributes = []; + } + Instance = (function(_super) { + __extends(Instance, _super); + + function Instance() { + _ref = Instance.__super__.constructor.apply(this, arguments); + return _ref; + } + + return Instance; + + })(this); + Instance.configure.apply(Instance, [name].concat(__slice.call(attributes))); + return Instance; + }; + + Spine.Class = Module; + +}).call(this); + +/* +//@ sourceMappingURL=spine.map +*/ diff --git a/ajax/libs/spinejs/1.2.0/spine.min.js b/ajax/libs/spinejs/1.2.0/spine.min.js new file mode 100644 index 000000000..59c3290ac --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/spine.min.js @@ -0,0 +1,2 @@ +(function(){var $,Controller,Events,Log,Model,Module,Spine,createObject,isArray,isBlank,makeArray,moduleKeywords,__slice=[].slice,__indexOf=[].indexOf||function(item){for(var i=0,l=this.length;i=0;idx=_ref2<=0?++_m:--_m){lt=listeningTo[idx];if(!ev||ev===lt.ev){lt.obj.unbind(lt.ev,lt.handler||lt.callback);if(idx!==-1){_results2.push(listeningTo.splice(idx,1))}else{_results2.push(void 0)}}else if(ev){evts=lt.ev.split(" ");if(~(i=evts.indexOf(ev))){evts.splice(i,1);lt.ev=$.trim(evts.join(" "));_results2.push(lt.obj.unbind(ev,lt.handler||lt.callback))}else{_results2.push(void 0)}}else{_results2.push(void 0)}}return _results2}())}return _results1}())}return _results}},unbind:function(ev,callback){var cb,evs,i,list,name,_i,_j,_len,_len1,_ref;if(arguments.length===0){this._callbacks={};return this}if(!ev){return this}evs=ev.split(" ");for(_i=0,_len=evs.length;_i<_len;_i++){name=evs[_i];list=(_ref=this._callbacks)!=null?_ref[name]:void 0;if(!list){continue}if(!callback){delete this._callbacks[name];continue}for(i=_j=0,_len1=list.length;_j<_len1;i=++_j){cb=list[i];if(!(cb===callback)){continue}list=list.slice();list.splice(i,1);this._callbacks[name]=list;break}}return this}};Events.on=Events.bind;Events.off=Events.unbind;Log={trace:true,logPrefix:"(App)",log:function(){var args;args=1<=arguments.length?__slice.call(arguments,0):[];if(!this.trace){return}if(this.logPrefix){args.unshift(this.logPrefix)}if(typeof console!=="undefined"&&console!==null){if(typeof console.log==="function"){console.log.apply(console,args)}}return this}};moduleKeywords=["included","extended"];Module=function(){Module.include=function(obj){var key,value,_ref;if(!obj){throw new Error("include(obj) requires obj")}for(key in obj){value=obj[key];if(__indexOf.call(moduleKeywords,key)<0){this.prototype[key]=value}}if((_ref=obj.included)!=null){_ref.apply(this)}return this};Module.extend=function(obj){var key,value,_ref;if(!obj){throw new Error("extend(obj) requires obj")}for(key in obj){value=obj[key];if(__indexOf.call(moduleKeywords,key)<0){this[key]=value}}if((_ref=obj.extended)!=null){_ref.apply(this)}return this};Module.proxy=function(func){var _this=this;return function(){return func.apply(_this,arguments)}};Module.prototype.proxy=function(func){var _this=this;return function(){return func.apply(_this,arguments)}};function Module(){if(typeof this.init==="function"){this.init.apply(this,arguments)}}return Module}();Model=function(_super){__extends(Model,_super);Model.extend(Events);Model.records=[];Model.irecords={};Model.attributes=[];Model.configure=function(){var attributes,name;name=arguments[0],attributes=2<=arguments.length?__slice.call(arguments,1):[];this.className=name;this.deleteAll();if(attributes.length){this.attributes=attributes}this.attributes&&(this.attributes=makeArray(this.attributes));this.attributes||(this.attributes=[]);this.unbind();return this};Model.toString=function(){return""+this.className+"("+this.attributes.join(", ")+")"};Model.find=function(id){var record;record=this.exists(id);if(!record){throw new Error('"'+this.className+'" model could not find a record for the ID "'+id+'"')}return record};Model.exists=function(id){var _ref;return(_ref=this.irecords[id])!=null?_ref.clone():void 0};Model.addRecord=function(record){if(record.id&&this.irecords[record.id]){this.irecords[record.id].remove()}record.id||(record.id=record.cid);this.records.push(record);this.irecords[record.id]=record;return this.irecords[record.cid]=record};Model.refresh=function(values,options){var record,records,result,_i,_len;if(options==null){options={}}if(options.clear){this.deleteAll()}records=this.fromJSON(values);if(!isArray(records)){records=[records]}for(_i=0,_len=records.length;_i<_len;_i++){record=records[_i];this.addRecord(record)}this.sort();result=this.cloneArray(records);this.trigger("refresh",result,options);return result};Model.select=function(callback){var record,_i,_len,_ref,_results;_ref=this.records;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];if(callback(record)){_results.push(record.clone())}}return _results};Model.findByAttribute=function(name,value){var record,_i,_len,_ref;_ref=this.records;for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];if(record[name]===value){return record.clone()}}return null};Model.findAllByAttribute=function(name,value){return this.select(function(item){return item[name]===value})};Model.each=function(callback){var record,_i,_len,_ref,_results;_ref=this.records;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];_results.push(callback(record.clone()))}return _results};Model.all=function(){return this.cloneArray(this.records)};Model.first=function(){var _ref;return(_ref=this.records[0])!=null?_ref.clone():void 0};Model.last=function(){var _ref;return(_ref=this.records[this.records.length-1])!=null?_ref.clone():void 0};Model.count=function(){return this.records.length};Model.deleteAll=function(){this.records=[];return this.irecords={}};Model.destroyAll=function(options){var record,_i,_len,_ref,_results;_ref=this.records;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){record=_ref[_i];_results.push(record.destroy(options))}return _results};Model.update=function(id,atts,options){return this.find(id).updateAttributes(atts,options)};Model.create=function(atts,options){var record;record=new this(atts);return record.save(options)};Model.destroy=function(id,options){return this.find(id).destroy(options)};Model.change=function(callbackOrParams){if(typeof callbackOrParams==="function"){return this.bind("change",callbackOrParams)}else{return this.trigger.apply(this,["change"].concat(__slice.call(arguments)))}};Model.fetch=function(callbackOrParams){if(typeof callbackOrParams==="function"){return this.bind("fetch",callbackOrParams)}else{return this.trigger.apply(this,["fetch"].concat(__slice.call(arguments)))}};Model.toJSON=function(){return this.records};Model.fromJSON=function(objects){var value,_i,_len,_results;if(!objects){return}if(typeof objects==="string"){objects=JSON.parse(objects)}if(isArray(objects)){_results=[];for(_i=0,_len=objects.length;_i<_len;_i++){value=objects[_i];_results.push(new this(value))}return _results}else{return new this(objects)}};Model.fromForm=function(){var _ref;return(_ref=new this).fromForm.apply(_ref,arguments)};Model.sort=function(){if(this.comparator){this.records.sort(this.comparator)}return this};Model.cloneArray=function(array){var value,_i,_len,_results;_results=[];for(_i=0,_len=array.length;_i<_len;_i++){value=array[_i];_results.push(value.clone())}return _results};Model.idCounter=0;Model.uid=function(prefix){var uid;if(prefix==null){prefix=""}uid=prefix+this.idCounter++;if(this.exists(uid)){uid=this.uid(prefix)}return uid};function Model(atts){Model.__super__.constructor.apply(this,arguments);if(atts){this.load(atts)}this.cid=(atts!=null?atts.cid:void 0)||this.constructor.uid("c-")}Model.prototype.isNew=function(){return!this.exists()};Model.prototype.isValid=function(){return!this.validate()};Model.prototype.validate=function(){};Model.prototype.load=function(atts){var key,value;if(atts.id){this.id=atts.id}for(key in atts){value=atts[key];if(atts.hasOwnProperty(key)&&typeof this[key]==="function"){this[key](value)}else{this[key]=value}}return this};Model.prototype.attributes=function(){var key,result,_i,_len,_ref;result={};_ref=this.constructor.attributes;for(_i=0,_len=_ref.length;_i<_len;_i++){key=_ref[_i];if(key in this){if(typeof this[key]==="function"){result[key]=this[key]()}else{result[key]=this[key]}}}if(this.id){result.id=this.id}return result};Model.prototype.eql=function(rec){return!!(rec&&rec.constructor===this.constructor&&rec.cid===this.cid||rec.id&&rec.id===this.id)};Model.prototype.save=function(options){var error,record;if(options==null){options={}}if(options.validate!==false){error=this.validate();if(error){this.trigger("error",error);return false}}this.trigger("beforeSave",options);record=this.isNew()?this.create(options):this.update(options);this.stripCloneAttrs();this.trigger("save",options);return record};Model.prototype.stripCloneAttrs=function(){var key,value;if(this.hasOwnProperty("cid")){return}for(key in this){if(!__hasProp.call(this,key))continue;value=this[key];if(this.constructor.attributes.indexOf(key)>-1){delete this[key]}}return this};Model.prototype.updateAttribute=function(name,value,options){var atts;atts={};atts[name]=value;return this.updateAttributes(atts,options)};Model.prototype.updateAttributes=function(atts,options){this.load(atts);return this.save(options)};Model.prototype.changeID=function(id){var records;if(id===this.id){return}records=this.constructor.irecords;records[id]=records[this.id];delete records[this.id];this.id=id;return this.save()};Model.prototype.remove=function(){var i,record,records,_i,_len;records=this.constructor.records.slice(0);for(i=_i=0,_len=records.length;_i<_len;i=++_i){record=records[i];if(!this.eql(record)){continue}records.splice(i,1);break}this.constructor.records=records;delete this.constructor.irecords[this.id];return delete this.constructor.irecords[this.cid]};Model.prototype.destroy=function(options){if(options==null){options={}}this.trigger("beforeDestroy",options);this.remove();this.destroyed=true;this.trigger("destroy",options);this.trigger("change","destroy",options);if(this.listeningTo){this.stopListening()}this.unbind();return this};Model.prototype.dup=function(newRecord){var atts;if(newRecord==null){newRecord=true}atts=this.attributes();if(newRecord){delete atts.id}else{atts.cid=this.cid}return new this.constructor(atts)};Model.prototype.clone=function(){return createObject(this)};Model.prototype.reload=function(){var original;if(this.isNew()){return this}original=this.constructor.find(this.id);this.load(original.attributes());return original};Model.prototype.refresh=function(data){var root;root=this.constructor.irecords[this.id];root.load(data);this.trigger("refresh");return this};Model.prototype.toJSON=function(){return this.attributes()};Model.prototype.toString=function(){return"<"+this.constructor.className+" ("+JSON.stringify(this)+")>"};Model.prototype.fromForm=function(form){var checkbox,key,name,result,_i,_j,_k,_len,_len1,_len2,_name,_ref,_ref1,_ref2;result={};_ref=$(form).find("[type=checkbox]:not([value])");for(_i=0,_len=_ref.length;_i<_len;_i++){checkbox=_ref[_i];result[checkbox.name]=$(checkbox).prop("checked")}_ref1=$(form).find('[type=checkbox][name$="[]"]');for(_j=0,_len1=_ref1.length;_j<_len1;_j++){checkbox=_ref1[_j];name=checkbox.name.replace(/\[\]$/,"");result[name]||(result[name]=[]);if($(checkbox).prop("checked")){result[name].push(checkbox.value)}}_ref2=$(form).serializeArray();for(_k=0,_len2=_ref2.length;_k<_len2;_k++){key=_ref2[_k];result[_name=key.name]||(result[_name]=key.value)}return this.load(result)};Model.prototype.exists=function(){return this.constructor.exists(this.id)};Model.prototype.update=function(options){var clone,records;this.trigger("beforeUpdate",options);records=this.constructor.irecords;records[this.id].load(this.attributes());this.constructor.sort();clone=records[this.id].clone();clone.trigger("update",options);clone.trigger("change","update",options);return clone};Model.prototype.create=function(options){var clone,record;this.trigger("beforeCreate",options);this.id||(this.id=this.cid);record=this.dup(false);this.constructor.addRecord(record);this.constructor.sort();clone=record.clone();clone.trigger("create",options);clone.trigger("change","create",options);return clone};Model.prototype.bind=function(events,callback){var binder,singleEvent,_fn,_i,_len,_ref,_this=this;this.constructor.bind(events,binder=function(record){if(record&&_this.eql(record)){return callback.apply(_this,arguments)}});_ref=events.split(" ");_fn=function(singleEvent){var unbinder;return _this.constructor.bind("unbind",unbinder=function(record,event,cb){if(record&&_this.eql(record)){if(event&&event!==singleEvent){return}if(cb&&cb!==callback){return}_this.constructor.unbind(singleEvent,binder);return _this.constructor.unbind("unbind",unbinder)}})};for(_i=0,_len=_ref.length;_i<_len;_i++){singleEvent=_ref[_i];_fn(singleEvent)}return this};Model.prototype.one=function(events,callback){var handler,_this=this;return this.bind(events,handler=function(){_this.unbind(events,handler);return callback.apply(_this,arguments)})};Model.prototype.trigger=function(){var args,_ref;args=1<=arguments.length?__slice.call(arguments,0):[];args.splice(1,0,this);return(_ref=this.constructor).trigger.apply(_ref,args)};Model.prototype.listenTo=function(){return Events.listenTo.apply(this,arguments)};Model.prototype.listenToOnce=function(){return Events.listenToOnce.apply(this,arguments)};Model.prototype.stopListening=function(){return Events.stopListening.apply(this,arguments)};Model.prototype.unbind=function(events,callback){var event,_i,_len,_ref,_results;if(arguments.length===0){return this.trigger("unbind")}else if(events){_ref=events.split(" ");_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){event=_ref[_i];_results.push(this.trigger("unbind",event,callback))}return _results}};return Model}(Module);Model.prototype.on=Model.prototype.bind;Model.prototype.off=Model.prototype.unbind;Controller=function(_super){__extends(Controller,_super);Controller.include(Events);Controller.include(Log);Controller.prototype.eventSplitter=/^(\S+)\s*(.*)$/;Controller.prototype.tag="div";function Controller(options){this.release=__bind(this.release,this);var context,key,parent_prototype,value,_ref;this.options=options;_ref=this.options;for(key in _ref){value=_ref[key];this[key]=value}if(!this.el){this.el=document.createElement(this.tag)}this.el=$(this.el);this.$el=this.el;if(this.className){this.el.addClass(this.className)}if(this.attributes){this.el.attr(this.attributes)}if(!this.events){this.events=this.constructor.events}if(!this.elements){this.elements=this.constructor.elements}context=this;while(parent_prototype=context.constructor.__super__){if(parent_prototype.events){this.events=$.extend({},parent_prototype.events,this.events)}if(parent_prototype.elements){this.elements=$.extend({},parent_prototype.elements,this.elements)}context=parent_prototype}if(this.events){this.delegateEvents(this.events)}if(this.elements){this.refreshElements()}Controller.__super__.constructor.apply(this,arguments)}Controller.prototype.release=function(){this.trigger("release",this);this.el.remove();this.unbind();return this.stopListening()};Controller.prototype.$=function(selector){return $(selector,this.el)};Controller.prototype.delegateEvents=function(events){var eventName,key,match,method,selector,_results,_this=this;_results=[];for(key in events){method=events[key];if(typeof method==="function"){method=function(method){return function(){method.apply(_this,arguments);return true}}(method)}else{if(!this[method]){throw new Error(""+method+" doesn't exist")}method=function(method){return function(){_this[method].apply(_this,arguments);return true}}(method)}match=key.match(this.eventSplitter);eventName=match[1];selector=match[2];if(selector===""){_results.push(this.el.bind(eventName,method))}else{_results.push(this.el.on(eventName,selector,method))}}return _results};Controller.prototype.refreshElements=function(){var key,value,_ref,_results;_ref=this.elements;_results=[];for(key in _ref){value=_ref[key];_results.push(this[value]=this.$(key))}return _results};Controller.prototype.delay=function(func,timeout){return setTimeout(this.proxy(func),timeout||0)};Controller.prototype.html=function(element){this.el.html(element.el||element);this.refreshElements();return this.el};Controller.prototype.append=function(){var e,elements,_ref;elements=1<=arguments.length?__slice.call(arguments,0):[];elements=function(){var _i,_len,_results;_results=[];for(_i=0,_len=elements.length;_i<_len;_i++){e=elements[_i];_results.push(e.el||e)}return _results}();(_ref=this.el).append.apply(_ref,elements);this.refreshElements();return this.el};Controller.prototype.appendTo=function(element){this.el.appendTo(element.el||element);this.refreshElements();return this.el};Controller.prototype.prepend=function(){var e,elements,_ref;elements=1<=arguments.length?__slice.call(arguments,0):[];elements=function(){var _i,_len,_results;_results=[];for(_i=0,_len=elements.length;_i<_len;_i++){e=elements[_i];_results.push(e.el||e)}return _results}();(_ref=this.el).prepend.apply(_ref,elements);this.refreshElements();return this.el};Controller.prototype.replace=function(element){var previous,_ref,_ref1;element=element.el||element;if(typeof element==="string"){element=$.trim(element)}_ref1=[this.el,$(((_ref=$.parseHTML(element))!=null?_ref[0]:void 0)||element)],previous=_ref1[0],this.el=_ref1[1];previous.replaceWith(this.el);this.delegateEvents(this.events);this.refreshElements();return this.el};return Controller}(Module);$=(typeof window!=="undefined"&&window!==null?window.jQuery:void 0)||(typeof window!=="undefined"&&window!==null?window.Zepto:void 0)||function(element){return element};createObject=Object.create||function(o){var Func;Func=function(){};Func.prototype=o;return new Func};isArray=function(value){return Object.prototype.toString.call(value)==="[object Array]"};isBlank=function(value){var key;if(!value){return true}for(key in value){return false}return true};makeArray=function(args){return Array.prototype.slice.call(args,0)};Spine=this.Spine={};if(typeof module!=="undefined"&&module!==null){module.exports=Spine}Spine.version="1.2.0";Spine.isArray=isArray;Spine.isBlank=isBlank;Spine.$=$;Spine.Events=Events;Spine.Log=Log;Spine.Module=Module;Spine.Controller=Controller;Spine.Model=Model;Module.extend.call(Spine,Events);Module.create=Module.sub=Controller.create=Controller.sub=Model.sub=function(instances,statics){var Result,_ref;Result=function(_super){__extends(Result,_super);function Result(){_ref=Result.__super__.constructor.apply(this,arguments);return _ref}return Result}(this);if(instances){Result.include(instances)}if(statics){Result.extend(statics)}if(typeof Result.unbind==="function"){Result.unbind()}return Result};Model.setup=function(name,attributes){var Instance,_ref;if(attributes==null){attributes=[]}Instance=function(_super){__extends(Instance,_super);function Instance(){_ref=Instance.__super__.constructor.apply(this,arguments);return _ref}return Instance}(this);Instance.configure.apply(Instance,[name].concat(__slice.call(attributes)));return Instance};Spine.Class=Module}).call(this); +//# sourceMappingURL=spine.min.map \ No newline at end of file diff --git a/ajax/libs/spinejs/1.2.0/spine.min.map b/ajax/libs/spinejs/1.2.0/spine.min.map new file mode 100644 index 000000000..e441c16b3 --- /dev/null +++ b/ajax/libs/spinejs/1.2.0/spine.min.map @@ -0,0 +1 @@ +{"version":3,"file":"spine.min.js","sources":["spine.js"],"names":["$","Controller","Events","Log","Model","Module","Spine","createObject","isArray","isBlank","makeArray","moduleKeywords","__slice","slice","__indexOf","indexOf","item","i","l","this","length","__hasProp","hasOwnProperty","__extends","child","parent","key","call","ctor","constructor","prototype","__super__","__bind","fn","me","apply","arguments","bind","ev","callback","calls","evs","name","_i","_len","split","_callbacks","push","one","handler","unbind","trigger","args","list","_ref","shift","listenTo","obj","listeningTo","listenToOnce","listeningToOnce","idx","lt","splice","stopListening","events","evts","_j","_k","_len1","_len2","_ref1","_results","_l","_len3","_results1","_m","_ref2","_results2","trim","join","cb","on","off","trace","logPrefix","log","unshift","console","include","value","Error","included","extend","extended","proxy","func","_this","init","_super","records","irecords","attributes","configure","className","deleteAll","toString","find","id","record","exists","clone","addRecord","remove","cid","refresh","values","options","result","clear","fromJSON","sort","cloneArray","select","findByAttribute","findAllByAttribute","each","all","first","last","count","destroyAll","destroy","update","atts","updateAttributes","create","save","change","callbackOrParams","concat","fetch","toJSON","objects","JSON","parse","fromForm","comparator","array","idCounter","uid","prefix","load","isNew","isValid","validate","eql","rec","error","stripCloneAttrs","updateAttribute","changeID","destroyed","dup","newRecord","reload","original","data","root","stringify","form","checkbox","_name","prop","replace","serializeArray","binder","singleEvent","_fn","unbinder","event","eventSplitter","tag","release","context","parent_prototype","el","document","createElement","$el","addClass","attr","elements","delegateEvents","refreshElements","selector","eventName","match","method","delay","timeout","setTimeout","html","element","append","e","appendTo","prepend","previous","parseHTML","replaceWith","window","jQuery","Zepto","Object","o","Func","Array","module","exports","version","sub","instances","statics","Result","setup","Instance","Class"],"mappings":"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"} \ No newline at end of file diff --git a/ajax/libs/spinejs/package.json b/ajax/libs/spinejs/package.json index 6fae1833e..19232e394 100644 --- a/ajax/libs/spinejs/package.json +++ b/ajax/libs/spinejs/package.json @@ -1,9 +1,9 @@ { "name": "spinejs", - "filename": "spine.min.js", - "version": "0.0.4", + "filename": "all.min.js", + "version": "1.2.0", "description": "Spine is a lightweight framework for building JavaScript web applications", - "homepage": "http://maccman.github.com/spine/", + "homepage": "http://spinejs.com/", "keywords": [ "mvc", "models", @@ -23,7 +23,7 @@ "repositories": [ { "type": "git", - "url": "https://github.com/maccman/spine" + "url": "https://github.com/spine/spine" } ] }