diff --git a/.travis.yml b/.travis.yml index 06d1c852fb9..66dd58dc4a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,9 +10,6 @@ notifications: hipchat: rooms: secure: mkHfRTsuxidtOOORbJJ0Jspb/DSa8jAiQwWWUljqLwefy1p4HGC9P/rLdXXg3vsjiulCzyjEkfvDWAHXvu34GhGWfQuD8U140Fon1Os3AO5Hbme+yRmjXmTcgH8XetSLQufyBBMqXHMd6o1tkxXql1p54G1IShhgAdPNe76d5ZE= - template: - - '%{repository}: build#%{build_number} #{message} (%{branch} - %{commit} : %{author})' - format: html before_install: - gem update --system diff --git a/config/build.js b/config/build.js index bfa3694a3dc..b95e0707729 100644 --- a/config/build.js +++ b/config/build.js @@ -45,6 +45,8 @@ module.exports = { vendorFiles: [ 'js/angular/angular-animate.js', 'js/angular/angular-animate.min.js', + 'js/angular/angular-resource.js', + 'js/angular/angular-resource.min.js', 'js/angular/angular-sanitize.js', 'js/angular/angular-sanitize.min.js', 'js/angular/angular.js', diff --git a/config/karma.conf.js b/config/karma.conf.js index a2a4fb1c705..95eb989cc91 100644 --- a/config/karma.conf.js +++ b/config/karma.conf.js @@ -18,7 +18,6 @@ module.exports = function(config) { 'config/lib/js/angular/angular.js', 'config/lib/js/angular/angular-animate.js', 'config/lib/js/angular/angular-mocks.js', - 'config/lib/js/angular/angular-sanitize.js', 'config/lib/js/angular-ui/angular-ui-router.js', ] .concat(buildConfig.ionicFiles) diff --git a/config/lib/js/angular/angular-animate.min.js.map b/config/lib/js/angular/angular-animate.min.js.map deleted file mode 100755 index 44e3ae639f4..00000000000 --- a/config/lib/js/angular/angular-animate.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ -"version":3, -"file":"angular-animate.min.js", -"lineCount":24, -"mappings":"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", -"sources":["angular-animate.js"], -"names":["window","angular","undefined","module","factory","$window","$timeout","requestAnimationFrame","webkitRequestAnimationFrame","fn","cancelAnimationFrame","webkitCancelAnimationFrame","timer","cancel","id","config","$provide","$animateProvider","extractElementNode","element","i","length","elm","nodeType","ELEMENT_NODE","noop","forEach","selectors","$$selectors","NG_ANIMATE_STATE","NG_ANIMATE_CLASS_NAME","rootAnimateState","decorator","$delegate","$injector","$sniffer","$rootElement","$rootScope","$document","lookup","name","matches","flagMap","classes","substr","split","transitions","animations","push","klass","selectorFactoryName","get","performAnimation","animationEvent","className","parentElement","afterElement","domOperation","doneCallback","onBeforeAnimationsComplete","cancelled","fireDOMOperation","closeAnimation","data","done","invokeRegisteredAnimationFns","phase","allAnimationFnsComplete","fireAfterCallbackAsync","fireBeforeCallbackAsync","endFnName","animation","index","animationPhaseCompleted","phaseCompletionFlag","currentAnimation","isClassBased","fireDOMCallback","animationPhase","triggerHandler","fireDoneCallbackAsync","hasBeenRun","cleanup","closeAnimationTimeout","currentClassName","node","isAnimatableClassName","animationLookup","replace","parent","ngAnimateState","animationsDisabled","disabled","running","structural","allowCancel","afterFn","beforeFn","charAt","toUpperCase","futureClassName","ONE_SPACE","cancelAnimations","isRevertingClassAnimation","isFullyClassBasedAnimation","event","beforeComplete","classNameToken","indexOf","addClass","cancelChildAnimations","querySelectorAll","beforeEnd","isCancelledFlag","afterComplete","afterEnd","removeClass","removeData","isRoot","state","result","$$postDigest","classNameFilter","test","enter","enabled","leave","move","value","arguments","register","$$animateReflow","afterReflow","callback","cancelAnimationReflow","animationReflowQueue","animationElementQueue","elementData","NG_ANIMATE_CSS_DATA_KEY","stagger","staggerTime","itemIndex","Math","max","animationDelay","transitionDelay","closingAnimationTime","maxDelay","maxDuration","CLOSING_TIME_BUFFER","ONE_SECOND","animationCount","animationCounter","elementQueueSnapshot","animationCounterSnapshot","closeAllAnimations","lookupCache","elements","count","closeAnimationFn","getElementAnimationDetails","cacheKey","transitionDuration","animationDuration","transitionDelayStyle","animationDelayStyle","transitionDurationStyle","transitionPropertyStyle","elementStyles","getComputedStyle","TRANSITION_PROP","DURATION_KEY","parseMaxTime","PROPERTY_KEY","DELAY_KEY","ANIMATION_PROP","aDuration","parseInt","ANIMATION_ITERATION_COUNT_KEY","str","maxValue","values","isString","parseFloat","getCacheKey","parentID","NG_ANIMATE_PARENT_KEY","parentCounter","animateSetup","calculationDecorator","eventCacheKey","total","staggerClassName","staggerCacheKey","applyClasses","timings","activeClassName","style","unblockTransitions","prop","unblockKeyframeAnimations","animateRun","activeAnimationComplete","onEnd","off","css3AnimationEvents","onAnimationProgress","appliedStyles","removeProperty","stopPropagation","ev","originalEvent","timeStamp","$manualTimeStamp","Date","now","elapsedTime","toFixed","ELAPSED_TIME_MAX_DECIMAL_PLACES","startTime","maxDelayTime","ANIMATIONEND_EVENT","TRANSITIONEND_EVENT","propertyStyle","CSS_PREFIX","prepareStaggerDelay","oldStyle","getAttribute","setAttribute","on","elementData.closeAnimationFn","delayStyle","staggerDelay","val","animateBefore","animateAfter","afterAnimationComplete","animate","animationComplete","preReflowCancellation","suffixClasses","suffix","isArray","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","oldClasses","clone","cloneNode","attr","removeAttr","empty","append","remove","animationCompleted","beforeAddClass","cancellationMethod","beforeRemoveClass"] -} diff --git a/config/lib/js/angular/angular-resource.js b/config/lib/js/angular/angular-resource.js new file mode 100644 index 00000000000..38bebab22c5 --- /dev/null +++ b/config/lib/js/angular/angular-resource.js @@ -0,0 +1,594 @@ +/** + * @license AngularJS v1.2.10 + * (c) 2010-2014 Google, Inc. http://angularjs.org + * License: MIT + */ +(function(window, angular, undefined) {'use strict'; + +var $resourceMinErr = angular.$$minErr('$resource'); + +// Helper functions and regex to lookup a dotted path on an object +// stopping at undefined/null. The path must be composed of ASCII +// identifiers (just like $parse) +var MEMBER_NAME_REGEX = /^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/; + +function isValidDottedPath(path) { + return (path != null && path !== '' && path !== 'hasOwnProperty' && + MEMBER_NAME_REGEX.test('.' + path)); +} + +function lookupDottedPath(obj, path) { + if (!isValidDottedPath(path)) { + throw $resourceMinErr('badmember', 'Dotted member path "@{0}" is invalid.', path); + } + var keys = path.split('.'); + for (var i = 0, ii = keys.length; i < ii && obj !== undefined; i++) { + var key = keys[i]; + obj = (obj !== null) ? obj[key] : undefined; + } + return obj; +} + +/** + * Create a shallow copy of an object and clear other fields from the destination + */ +function shallowClearAndCopy(src, dst) { + dst = dst || {}; + + angular.forEach(dst, function(value, key){ + delete dst[key]; + }); + + for (var key in src) { + if (src.hasOwnProperty(key) && key.charAt(0) !== '$' && key.charAt(1) !== '$') { + dst[key] = src[key]; + } + } + + return dst; +} + +/** + * @ngdoc overview + * @name ngResource + * @description + * + * # ngResource + * + * The `ngResource` module provides interaction support with RESTful services + * via the $resource service. + * + * {@installModule resource} + * + *
+ * + * See {@link ngResource.$resource `$resource`} for usage. + */ + +/** + * @ngdoc object + * @name ngResource.$resource + * @requires $http + * + * @description + * A factory which creates a resource object that lets you interact with + * [RESTful](http://en.wikipedia.org/wiki/Representational_State_Transfer) server-side data sources. + * + * The returned resource object has action methods which provide high-level behaviors without + * the need to interact with the low level {@link ng.$http $http} service. + * + * Requires the {@link ngResource `ngResource`} module to be installed. + * + * @param {string} url A parametrized URL template with parameters prefixed by `:` as in + * `/user/:username`. If you are using a URL with a port number (e.g. + * `http://example.com:8080/api`), it will be respected. + * + * If you are using a url with a suffix, just add the suffix, like this: + * `$resource('http://example.com/resource.json')` or `$resource('http://example.com/:id.json')` + * or even `$resource('http://example.com/resource/:resource_id.:format')` + * If the parameter before the suffix is empty, :resource_id in this case, then the `/.` will be + * collapsed down to a single `.`. If you need this sequence to appear and not collapse then you + * can escape it with `/\.`. + * + * @param {Object=} paramDefaults Default values for `url` parameters. These can be overridden in + * `actions` methods. If any of the parameter value is a function, it will be executed every time + * when a param value needs to be obtained for a request (unless the param was overridden). + * + * Each key value in the parameter object is first bound to url template if present and then any + * excess keys are appended to the url search query after the `?`. + * + * Given a template `/path/:verb` and parameter `{verb:'greet', salutation:'Hello'}` results in + * URL `/path/greet?salutation=Hello`. + * + * If the parameter value is prefixed with `@` then the value of that parameter is extracted from + * the data object (useful for non-GET operations). + * + * @param {Object.=} actions Hash with declaration of custom action that should extend the + * default set of resource actions. The declaration should be created in the format of {@link + * ng.$http#usage_parameters $http.config}: + * + * {action1: {method:?, params:?, isArray:?, headers:?, ...}, + * action2: {method:?, params:?, isArray:?, headers:?, ...}, + * ...} + * + * Where: + * + * - **`action`** – {string} – The name of action. This name becomes the name of the method on + * your resource object. + * - **`method`** – {string} – HTTP request method. Valid methods are: `GET`, `POST`, `PUT`, + * `DELETE`, and `JSONP`. + * - **`params`** – {Object=} – Optional set of pre-bound parameters for this action. If any of + * the parameter value is a function, it will be executed every time when a param value needs to + * be obtained for a request (unless the param was overridden). + * - **`url`** – {string} – action specific `url` override. The url templating is supported just + * like for the resource-level urls. + * - **`isArray`** – {boolean=} – If true then the returned object for this action is an array, + * see `returns` section. + * - **`transformRequest`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * request body and headers and returns its transformed (typically serialized) version. + * - **`transformResponse`** – + * `{function(data, headersGetter)|Array.}` – + * transform function or an array of such functions. The transform function takes the http + * response body and headers and returns its transformed (typically deserialized) version. + * - **`cache`** – `{boolean|Cache}` – If true, a default $http cache will be used to cache the + * GET request, otherwise if a cache instance built with + * {@link ng.$cacheFactory $cacheFactory}, this cache will be used for + * caching. + * - **`timeout`** – `{number|Promise}` – timeout in milliseconds, or {@link ng.$q promise} that + * should abort the request when resolved. + * - **`withCredentials`** - `{boolean}` - whether to set the `withCredentials` flag on the + * XHR object. See {@link https://developer.mozilla.org/en/http_access_control#section_5 + * requests with credentials} for more information. + * - **`responseType`** - `{string}` - see {@link + * https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType requestType}. + * - **`interceptor`** - `{Object=}` - The interceptor object has two optional methods - + * `response` and `responseError`. Both `response` and `responseError` interceptors get called + * with `http response` object. See {@link ng.$http $http interceptors}. + * + * @returns {Object} A resource "class" object with methods for the default set of resource actions + * optionally extended with custom `actions`. The default set contains these actions: + * + * { 'get': {method:'GET'}, + * 'save': {method:'POST'}, + * 'query': {method:'GET', isArray:true}, + * 'remove': {method:'DELETE'}, + * 'delete': {method:'DELETE'} }; + * + * Calling these methods invoke an {@link ng.$http} with the specified http method, + * destination and parameters. When the data is returned from the server then the object is an + * instance of the resource class. The actions `save`, `remove` and `delete` are available on it + * as methods with the `$` prefix. This allows you to easily perform CRUD operations (create, + * read, update, delete) on server-side data like this: + *
+        var User = $resource('/user/:userId', {userId:'@id'});
+        var user = User.get({userId:123}, function() {
+          user.abc = true;
+          user.$save();
+        });
+     
+ * + * It is important to realize that invoking a $resource object method immediately returns an + * empty reference (object or array depending on `isArray`). Once the data is returned from the + * server the existing reference is populated with the actual data. This is a useful trick since + * usually the resource is assigned to a model which is then rendered by the view. Having an empty + * object results in no rendering, once the data arrives from the server then the object is + * populated with the data and the view automatically re-renders itself showing the new data. This + * means that in most cases one never has to write a callback function for the action methods. + * + * The action methods on the class object or instance object can be invoked with the following + * parameters: + * + * - HTTP GET "class" actions: `Resource.action([parameters], [success], [error])` + * - non-GET "class" actions: `Resource.action([parameters], postData, [success], [error])` + * - non-GET instance actions: `instance.$action([parameters], [success], [error])` + * + * Success callback is called with (value, responseHeaders) arguments. Error callback is called + * with (httpResponse) argument. + * + * Class actions return empty instance (with additional properties below). + * Instance actions return promise of the action. + * + * The Resource instances and collection have these additional properties: + * + * - `$promise`: the {@link ng.$q promise} of the original server interaction that created this + * instance or collection. + * + * On success, the promise is resolved with the same resource instance or collection object, + * updated with data from server. This makes it easy to use in + * {@link ngRoute.$routeProvider resolve section of $routeProvider.when()} to defer view + * rendering until the resource(s) are loaded. + * + * On failure, the promise is resolved with the {@link ng.$http http response} object, without + * the `resource` property. + * + * - `$resolved`: `true` after first server interaction is completed (either with success or + * rejection), `false` before that. Knowing if the Resource has been resolved is useful in + * data-binding. + * + * @example + * + * # Credit card resource + * + *
+     // Define CreditCard class
+     var CreditCard = $resource('/user/:userId/card/:cardId',
+      {userId:123, cardId:'@id'}, {
+       charge: {method:'POST', params:{charge:true}}
+      });
+
+     // We can retrieve a collection from the server
+     var cards = CreditCard.query(function() {
+       // GET: /user/123/card
+       // server returns: [ {id:456, number:'1234', name:'Smith'} ];
+
+       var card = cards[0];
+       // each item is an instance of CreditCard
+       expect(card instanceof CreditCard).toEqual(true);
+       card.name = "J. Smith";
+       // non GET methods are mapped onto the instances
+       card.$save();
+       // POST: /user/123/card/456 {id:456, number:'1234', name:'J. Smith'}
+       // server returns: {id:456, number:'1234', name: 'J. Smith'};
+
+       // our custom method is mapped as well.
+       card.$charge({amount:9.99});
+       // POST: /user/123/card/456?amount=9.99&charge=true {id:456, number:'1234', name:'J. Smith'}
+     });
+
+     // we can create an instance as well
+     var newCard = new CreditCard({number:'0123'});
+     newCard.name = "Mike Smith";
+     newCard.$save();
+     // POST: /user/123/card {number:'0123', name:'Mike Smith'}
+     // server returns: {id:789, number:'0123', name: 'Mike Smith'};
+     expect(newCard.id).toEqual(789);
+ * 
+ * + * The object returned from this function execution is a resource "class" which has "static" method + * for each action in the definition. + * + * Calling these methods invoke `$http` on the `url` template with the given `method`, `params` and + * `headers`. + * When the data is returned from the server then the object is an instance of the resource type and + * all of the non-GET methods are available with `$` prefix. This allows you to easily support CRUD + * operations (create, read, update, delete) on server-side data. + +
+     var User = $resource('/user/:userId', {userId:'@id'});
+     var user = User.get({userId:123}, function() {
+       user.abc = true;
+       user.$save();
+     });
+   
+ * + * It's worth noting that the success callback for `get`, `query` and other methods gets passed + * in the response that came from the server as well as $http header getter function, so one + * could rewrite the above example and get access to http headers as: + * +
+     var User = $resource('/user/:userId', {userId:'@id'});
+     User.get({userId:123}, function(u, getResponseHeaders){
+       u.abc = true;
+       u.$save(function(u, putResponseHeaders) {
+         //u => saved user object
+         //putResponseHeaders => $http header getter
+       });
+     });
+   
+ + * # Creating a custom 'PUT' request + * In this example we create a custom method on our resource to make a PUT request + *
+ *		var app = angular.module('app', ['ngResource', 'ngRoute']);
+ *
+ *		// Some APIs expect a PUT request in the format URL/object/ID
+ *		// Here we are creating an 'update' method 
+ *		app.factory('Notes', ['$resource', function($resource) {
+ *    return $resource('/notes/:id', null,
+ *        {
+ *            'update': { method:'PUT' }
+ *        });
+ *		}]);
+ *
+ *		// In our controller we get the ID from the URL using ngRoute and $routeParams
+ *		// We pass in $routeParams and our Notes factory along with $scope
+ *		app.controller('NotesCtrl', ['$scope', '$routeParams', 'Notes',
+                                      function($scope, $routeParams, Notes) {
+ *    // First get a note object from the factory
+ *    var note = Notes.get({ id:$routeParams.id });
+ *    $id = note.id;
+ *
+ *    // Now call update passing in the ID first then the object you are updating
+ *    Notes.update({ id:$id }, note);
+ *
+ *    // This will PUT /notes/ID with the note object in the request payload
+ *		}]);
+ * 
+ */ +angular.module('ngResource', ['ng']). + factory('$resource', ['$http', '$q', function($http, $q) { + + var DEFAULT_ACTIONS = { + 'get': {method:'GET'}, + 'save': {method:'POST'}, + 'query': {method:'GET', isArray:true}, + 'remove': {method:'DELETE'}, + 'delete': {method:'DELETE'} + }; + var noop = angular.noop, + forEach = angular.forEach, + extend = angular.extend, + copy = angular.copy, + isFunction = angular.isFunction; + + /** + * We need our custom method because encodeURIComponent is too aggressive and doesn't follow + * http://www.ietf.org/rfc/rfc3986.txt with regards to the character set (pchar) allowed in path + * segments: + * segment = *pchar + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * pct-encoded = "%" HEXDIG HEXDIG + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriSegment(val) { + return encodeUriQuery(val, true). + replace(/%26/gi, '&'). + replace(/%3D/gi, '='). + replace(/%2B/gi, '+'); + } + + + /** + * This method is intended for encoding *key* or *value* parts of query component. We need a + * custom method because encodeURIComponent is too aggressive and encodes stuff that doesn't + * have to be encoded per http://tools.ietf.org/html/rfc3986: + * query = *( pchar / "/" / "?" ) + * pchar = unreserved / pct-encoded / sub-delims / ":" / "@" + * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~" + * pct-encoded = "%" HEXDIG HEXDIG + * sub-delims = "!" / "$" / "&" / "'" / "(" / ")" + * / "*" / "+" / "," / ";" / "=" + */ + function encodeUriQuery(val, pctEncodeSpaces) { + return encodeURIComponent(val). + replace(/%40/gi, '@'). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, (pctEncodeSpaces ? '%20' : '+')); + } + + function Route(template, defaults) { + this.template = template; + this.defaults = defaults || {}; + this.urlParams = {}; + } + + Route.prototype = { + setUrlParams: function(config, params, actionUrl) { + var self = this, + url = actionUrl || self.template, + val, + encodedVal; + + var urlParams = self.urlParams = {}; + forEach(url.split(/\W/), function(param){ + if (param === 'hasOwnProperty') { + throw $resourceMinErr('badname', "hasOwnProperty is not a valid parameter name."); + } + if (!(new RegExp("^\\d+$").test(param)) && param && + (new RegExp("(^|[^\\\\]):" + param + "(\\W|$)").test(url))) { + urlParams[param] = true; + } + }); + url = url.replace(/\\:/g, ':'); + + params = params || {}; + forEach(self.urlParams, function(_, urlParam){ + val = params.hasOwnProperty(urlParam) ? params[urlParam] : self.defaults[urlParam]; + if (angular.isDefined(val) && val !== null) { + encodedVal = encodeUriSegment(val); + url = url.replace(new RegExp(":" + urlParam + "(\\W|$)", "g"), encodedVal + "$1"); + } else { + url = url.replace(new RegExp("(\/?):" + urlParam + "(\\W|$)", "g"), function(match, + leadingSlashes, tail) { + if (tail.charAt(0) == '/') { + return tail; + } else { + return leadingSlashes + tail; + } + }); + } + }); + + // strip trailing slashes and set the url + url = url.replace(/\/+$/, '') || '/'; + // then replace collapse `/.` if found in the last URL path segment before the query + // E.g. `http://url.com/id./format?q=x` becomes `http://url.com/id.format?q=x` + url = url.replace(/\/\.(?=\w+($|\?))/, '.'); + // replace escaped `/\.` with `/.` + config.url = url.replace(/\/\\\./, '/.'); + + + // set params - delegate param encoding to $http + forEach(params, function(value, key){ + if (!self.urlParams[key]) { + config.params = config.params || {}; + config.params[key] = value; + } + }); + } + }; + + + function resourceFactory(url, paramDefaults, actions) { + var route = new Route(url); + + actions = extend({}, DEFAULT_ACTIONS, actions); + + function extractParams(data, actionParams){ + var ids = {}; + actionParams = extend({}, paramDefaults, actionParams); + forEach(actionParams, function(value, key){ + if (isFunction(value)) { value = value(); } + ids[key] = value && value.charAt && value.charAt(0) == '@' ? + lookupDottedPath(data, value.substr(1)) : value; + }); + return ids; + } + + function defaultResponseInterceptor(response) { + return response.resource; + } + + function Resource(value){ + shallowClearAndCopy(value || {}, this); + } + + forEach(actions, function(action, name) { + var hasBody = /^(POST|PUT|PATCH)$/i.test(action.method); + + Resource[name] = function(a1, a2, a3, a4) { + var params = {}, data, success, error; + + /* jshint -W086 */ /* (purposefully fall through case statements) */ + switch(arguments.length) { + case 4: + error = a4; + success = a3; + //fallthrough + case 3: + case 2: + if (isFunction(a2)) { + if (isFunction(a1)) { + success = a1; + error = a2; + break; + } + + success = a2; + error = a3; + //fallthrough + } else { + params = a1; + data = a2; + success = a3; + break; + } + case 1: + if (isFunction(a1)) success = a1; + else if (hasBody) data = a1; + else params = a1; + break; + case 0: break; + default: + throw $resourceMinErr('badargs', + "Expected up to 4 arguments [params, data, success, error], got {0} arguments", + arguments.length); + } + /* jshint +W086 */ /* (purposefully fall through case statements) */ + + var isInstanceCall = this instanceof Resource; + var value = isInstanceCall ? data : (action.isArray ? [] : new Resource(data)); + var httpConfig = {}; + var responseInterceptor = action.interceptor && action.interceptor.response || + defaultResponseInterceptor; + var responseErrorInterceptor = action.interceptor && action.interceptor.responseError || + undefined; + + forEach(action, function(value, key) { + if (key != 'params' && key != 'isArray' && key != 'interceptor') { + httpConfig[key] = copy(value); + } + }); + + if (hasBody) httpConfig.data = data; + route.setUrlParams(httpConfig, + extend({}, extractParams(data, action.params || {}), params), + action.url); + + var promise = $http(httpConfig).then(function(response) { + var data = response.data, + promise = value.$promise; + + if (data) { + // Need to convert action.isArray to boolean in case it is undefined + // jshint -W018 + if (angular.isArray(data) !== (!!action.isArray)) { + throw $resourceMinErr('badcfg', 'Error in resource configuration. Expected ' + + 'response to contain an {0} but got an {1}', + action.isArray?'array':'object', angular.isArray(data)?'array':'object'); + } + // jshint +W018 + if (action.isArray) { + value.length = 0; + forEach(data, function(item) { + value.push(new Resource(item)); + }); + } else { + shallowClearAndCopy(data, value); + value.$promise = promise; + } + } + + value.$resolved = true; + + response.resource = value; + + return response; + }, function(response) { + value.$resolved = true; + + (error||noop)(response); + + return $q.reject(response); + }); + + promise = promise.then( + function(response) { + var value = responseInterceptor(response); + (success||noop)(value, response.headers); + return value; + }, + responseErrorInterceptor); + + if (!isInstanceCall) { + // we are creating instance / collection + // - set the initial promise + // - return the instance / collection + value.$promise = promise; + value.$resolved = false; + + return value; + } + + // instance call + return promise; + }; + + + Resource.prototype['$' + name] = function(params, success, error) { + if (isFunction(params)) { + error = success; success = params; params = {}; + } + var result = Resource[name].call(this, params, this, success, error); + return result.$promise || result; + }; + }); + + Resource.bind = function(additionalParamDefaults){ + return resourceFactory(url, extend({}, paramDefaults, additionalParamDefaults), actions); + }; + + return Resource; + } + + return resourceFactory; + }]); + + +})(window, window.angular); diff --git a/config/lib/js/angular/angular-resource.min.js b/config/lib/js/angular/angular-resource.min.js new file mode 100644 index 00000000000..9df2b8309fb --- /dev/null +++ b/config/lib/js/angular/angular-resource.min.js @@ -0,0 +1,13 @@ +/* + AngularJS v1.2.10 + (c) 2010-2014 Google, Inc. http://angularjs.org + License: MIT +*/ +(function(H,a,A){'use strict';function D(p,g){g=g||{};a.forEach(g,function(a,c){delete g[c]});for(var c in p)p.hasOwnProperty(c)&&("$"!==c.charAt(0)&&"$"!==c.charAt(1))&&(g[c]=p[c]);return g}var v=a.$$minErr("$resource"),C=/^(\.[a-zA-Z_$][0-9a-zA-Z_$]*)+$/;a.module("ngResource",["ng"]).factory("$resource",["$http","$q",function(p,g){function c(a,c){this.template=a;this.defaults=c||{};this.urlParams={}}function t(n,w,l){function r(h,d){var e={};d=x({},w,d);s(d,function(b,d){u(b)&&(b=b());var k;if(b&& +b.charAt&&"@"==b.charAt(0)){k=h;var a=b.substr(1);if(null==a||""===a||"hasOwnProperty"===a||!C.test("."+a))throw v("badmember",a);for(var a=a.split("."),f=0,c=a.length;f","<=",">=","&&","||","&","|","!","ESCAPE","lex","ch","lastCh","tokens","is","readString","peek","readNumber","isIdent","readIdent","was","isWhitespace","ch2","ch3","fn2","fn3","throwError","chars","isExpOperator","start","end","colStr","peekCh","ident","lastDot","peekIndex","methodName","quote","rawString","hex","rep","ZERO","Parser.ZERO","assignment","logicalOR","functionCall","fieldAccess","objectIndex","filterChain","this.filterChain","primary","statements","expect","consume","arrayDeclaration","msg","peekToken","e1","e2","e3","e4","t","unaryFn","right","ternaryFn","left","middle","binaryFn","statement","argsFn","fnInvoke","ternary","logicalAND","equality","relational","additive","multiplicative","unary","field","indexFn","o","safe","contextGetter","fnPtr","elementFns","allConstant","elementFn","keyValues","ampmGetter","getHours","AMPMS","timeZoneGetter","zone","getTimezoneOffset","paddedZone","htmlAnchorDirective","xlinkHref","ngAttributeAliasDirectives","propName","normalized","ngBooleanAttrWatchAction","formDirectiveFactory","isNgForm","formDirective","formElement","action","preventDefaultListener","parentFormCtrl","alias","ngFormDirective","URL_REGEXP","EMAIL_REGEXP","NUMBER_REGEXP","inputType","numberInputType","minValidator","maxValidator","urlInputType","urlValidator","emailInputType","emailValidator","radioInputType","checked","checkboxInputType","trueValue","ngTrueValue","falseValue","ngFalseValue","ctrl.$isEmpty","inputDirective","NgModelController","$modelValue","NaN","$viewChangeListeners","ngModelGet","ngModel","ngModelSet","this.$isEmpty","inheritedData","this.$setValidity","this.$setPristine","this.$setViewValue","ngModelWatch","formatters","ngModelDirective","ctrls","modelCtrl","formCtrl","ngChangeDirective","ngChange","requiredDirective","required","validator","ngListDirective","ngList","viewValue","CONSTANT_VALUE_REGEXP","ngValueDirective","tpl","tplAttr","ngValue","ngValueConstantLink","ngValueLink","valueWatchAction","ngBindDirective","ngBind","ngBindWatchAction","ngBindTemplateDirective","ngBindTemplate","ngBindHtmlDirective","ngBindHtml","getStringValue","ngBindHtmlWatchAction","getTrustedHtml","ngClassDirective","ngClassOddDirective","ngClassEvenDirective","ngCloakDirective","ngControllerDirective","ngEventDirectives","ngIfDirective","$transclude","ngIf","ngIfWatchAction","ngIncludeDirective","$anchorScroll","srcExp","ngInclude","onloadExp","autoScrollExp","autoscroll","currentElement","cleanupLastIncludeContent","parseAsResourceUrl","ngIncludeWatchAction","afterAnimation","thisChangeId","newScope","ngIncludeFillContentDirective","$compile","ngInitDirective","ngInit","ngNonBindableDirective","ngPluralizeDirective","BRACE","numberExp","whenExp","whens","whensExpFns","isWhen","attributeName","ngPluralizeWatch","ngPluralizeWatchAction","ngRepeatDirective","ngRepeatMinErr","ngRepeat","trackByExpGetter","trackByIdExpFn","trackByIdArrayFn","trackByIdObjFn","valueIdentifier","keyIdentifier","hashFnLocals","lhs","rhs","trackByExp","lastBlockMap","ngRepeatAction","collection","previousNode","nextNode","nextBlockMap","arrayLength","collectionKeys","nextBlockOrder","trackByIdFn","trackById","id","$first","$last","$middle","$odd","$even","ngShowDirective","ngShow","ngShowWatchAction","ngHideDirective","ngHide","ngHideWatchAction","ngStyleDirective","ngStyle","ngStyleWatchAction","newStyles","oldStyles","ngSwitchDirective","ngSwitchController","cases","selectedTranscludes","selectedElements","selectedScopes","ngSwitch","ngSwitchWatchAction","change","selectedTransclude","selectedScope","caseElement","anchor","ngSwitchWhenDirective","ngSwitchWhen","ngSwitchDefaultDirective","ngTranscludeDirective","$attrs","scriptDirective","ngOptionsMinErr","ngOptionsDirective","selectDirective","NG_OPTIONS_REGEXP","nullModelCtrl","optionsMap","ngModelCtrl","unknownOption","databound","init","self.init","ngModelCtrl_","nullOption_","unknownOption_","addOption","self.addOption","removeOption","self.removeOption","hasOption","renderUnknownOption","self.renderUnknownOption","unknownVal","self.hasOption","setupAsSingle","selectElement","selectCtrl","ngModelCtrl.$render","emptyOption","setupAsMultiple","lastView","items","selectMultipleWatch","setupAsOptions","render","optionGroups","optionGroupNames","optionGroupName","optionGroup","existingParent","existingOptions","modelValue","valuesFn","keyName","groupIndex","selectedSet","lastElement","trackFn","trackIndex","valueName","groupByFn","modelCast","label","displayFn","nullOption","groupLength","optionGroupsCache","optGroupTemplate","existingOption","optionTemplate","optionsExp","track","optionElement","ngOptions","ngModelCtrl.$isEmpty","optionDirective","nullSelectCtrl","selectCtrlName","interpolateWatchAction","styleDirective","publishExternalAPI","ngModule","$$csp"] -} diff --git a/js/ext/angular/src/directive/ionicBar.js b/js/ext/angular/src/directive/ionicBar.js index d169aeb4d23..01492358f66 100644 --- a/js/ext/angular/src/directive/ionicBar.js +++ b/js/ext/angular/src/directive/ionicBar.js @@ -20,12 +20,12 @@ angular.module('ionic.ui.header', ['ngAnimate']) transclude: true, template: '
\
\ - \
\ -

\ +

\
\ - \
\
', diff --git a/js/ext/angular/src/directive/ionicViewState.js b/js/ext/angular/src/directive/ionicViewState.js index 1e799bdfce1..c7cb60dac97 100644 --- a/js/ext/angular/src/directive/ionicViewState.js +++ b/js/ext/angular/src/directive/ionicViewState.js @@ -41,9 +41,9 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu // Clone the old title and add a new one so we can show two animating in and out // add ng-leave and ng-enter during creation to prevent flickering when they are swapped during animation title = angular.element(titles[0]); - oTitle = $compile('

')($scope); + oTitle = $compile('

')($scope); title.replaceWith(oTitle); - nTitle = $compile('

')($scope); + nTitle = $compile('

')($scope); var insert = $element[0].firstElementChild || null; @@ -70,11 +70,11 @@ angular.module('ionic.ui.viewState', ['ionic.service.view', 'ionic.service.gestu template: '', diff --git a/js/ext/angular/src/ionicAngular.js b/js/ext/angular/src/ionicAngular.js index 2d406482ea1..5270b64aaec 100644 --- a/js/ext/angular/src/ionicAngular.js +++ b/js/ext/angular/src/ionicAngular.js @@ -21,6 +21,7 @@ angular.module('ionic.ui.service', [ ]); angular.module('ionic.ui', [ + 'ionic.ui.bindHtml', 'ionic.ui.content', 'ionic.ui.scroll', 'ionic.ui.tabs', @@ -40,9 +41,8 @@ angular.module('ionic', [ 'ionic.service', 'ionic.ui.service', 'ionic.ui', - + // Angular deps 'ngAnimate', - 'ngSanitize', 'ui.router' ]); diff --git a/js/ext/angular/test/directive/ionicBindHtml.js b/js/ext/angular/test/directive/ionicBindHtml.js new file mode 100644 index 00000000000..d8460f71fe2 --- /dev/null +++ b/js/ext/angular/test/directive/ionicBindHtml.js @@ -0,0 +1,9 @@ +angular.module('ionic.ui.bindHtml', []) +.directive('bindHtmlUnsafe', function () { + return function (scope, element, attr) { + element.addClass('ng-binding').data('$binding', attr.bindHtmlUnsafe); + scope.$watch(attr.bindHtmlUnsafe, function(value) { + element.html(value || ''); + }); + }; +});