slider for selecting score threshold and persistence of said threshold across period changing
This commit is contained in:
parent
596972b459
commit
091058d9ae
34 changed files with 14327 additions and 2829 deletions
|
@ -13,6 +13,6 @@
|
||||||
"commit": "7a4cf8a706dcd986a70b08d7be2faf34ed247742"
|
"commit": "7a4cf8a706dcd986a70b08d7be2faf34ed247742"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/angular/bower-angular-animate.git",
|
"_source": "git://github.com/angular/bower-angular-animate.git",
|
||||||
"_target": "^1.3.0-beta.18",
|
"_target": "1.3.0-rc.5",
|
||||||
"_originalSource": "angular-animate"
|
"_originalSource": "angular-animate"
|
||||||
}
|
}
|
18
public/app/bower_components/angular-aria/.bower.json
vendored
Normal file
18
public/app/bower_components/angular-aria/.bower.json
vendored
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"name": "angular-aria",
|
||||||
|
"version": "1.3.0-rc.5",
|
||||||
|
"main": "./angular-aria.js",
|
||||||
|
"dependencies": {
|
||||||
|
"angular": "1.3.0-rc.5"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/angular/bower-angular-aria",
|
||||||
|
"_release": "1.3.0-rc.5",
|
||||||
|
"_resolution": {
|
||||||
|
"type": "version",
|
||||||
|
"tag": "v1.3.0-rc.5",
|
||||||
|
"commit": "b48dc5d0f1f5c7850848a05c24b7cf38d59c21b0"
|
||||||
|
},
|
||||||
|
"_source": "git://github.com/angular/bower-angular-aria.git",
|
||||||
|
"_target": "1.3.0-rc.5",
|
||||||
|
"_originalSource": "angular-aria"
|
||||||
|
}
|
54
public/app/bower_components/angular-aria/README.md
vendored
Normal file
54
public/app/bower_components/angular-aria/README.md
vendored
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
# bower-angular-aria
|
||||||
|
|
||||||
|
This repo is for distribution on `bower`. The source for this module is in the
|
||||||
|
[main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngAria).
|
||||||
|
Please file issues and pull requests against that repo.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
Install with `bower`:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
bower install angular-aria
|
||||||
|
```
|
||||||
|
|
||||||
|
Add a `<script>` to your `index.html`:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="/bower_components/angular-aria/angular-aria.js"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
And add `ngAria` as a dependency for your app:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
angular.module('myApp', ['ngAria']);
|
||||||
|
```
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Documentation is available on the
|
||||||
|
[AngularJS docs site](http://docs.angularjs.org/api/ngAria).
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2010-2012 Google, Inc. http://angularjs.org
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in
|
||||||
|
all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
250
public/app/bower_components/angular-aria/angular-aria.js
vendored
Normal file
250
public/app/bower_components/angular-aria/angular-aria.js
vendored
Normal file
|
@ -0,0 +1,250 @@
|
||||||
|
/**
|
||||||
|
* @license AngularJS v1.3.0-rc.5
|
||||||
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
||||||
|
* License: MIT
|
||||||
|
*/
|
||||||
|
(function(window, angular, undefined) {'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ngdoc module
|
||||||
|
* @name ngAria
|
||||||
|
* @description
|
||||||
|
*
|
||||||
|
* The `ngAria` module provides support for adding aria tags that convey state or semantic information
|
||||||
|
* about the application in order to allow assistive technologies to convey appropriate information to
|
||||||
|
* persons with disabilities.
|
||||||
|
*
|
||||||
|
* <div doc-module-components="ngAria"></div>
|
||||||
|
*
|
||||||
|
* # Usage
|
||||||
|
* To enable the addition of the aria tags, just require the module into your application and the tags will
|
||||||
|
* hook into your ng-show/ng-hide, input, textarea, button, select and ng-required directives and adds the
|
||||||
|
* appropriate aria-tags.
|
||||||
|
*
|
||||||
|
* Currently, the following aria tags are implemented:
|
||||||
|
*
|
||||||
|
* + aria-hidden
|
||||||
|
* + aria-checked
|
||||||
|
* + aria-disabled
|
||||||
|
* + aria-required
|
||||||
|
* + aria-invalid
|
||||||
|
* + aria-multiline
|
||||||
|
* + aria-valuenow
|
||||||
|
* + aria-valuemin
|
||||||
|
* + aria-valuemax
|
||||||
|
* + tabindex
|
||||||
|
*
|
||||||
|
* You can disable individual aria tags by using the {@link ngAria.$ariaProvider#config config} method.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* global -ngAriaModule */
|
||||||
|
var ngAriaModule = angular.module('ngAria', ['ng']).
|
||||||
|
provider('$aria', $AriaProvider);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ngdoc provider
|
||||||
|
* @name $ariaProvider
|
||||||
|
*
|
||||||
|
* @description
|
||||||
|
*
|
||||||
|
* Used for configuring aria attributes.
|
||||||
|
*
|
||||||
|
* ## Dependencies
|
||||||
|
* Requires the {@link ngAria} module to be installed.
|
||||||
|
*/
|
||||||
|
function $AriaProvider() {
|
||||||
|
var config = {
|
||||||
|
ariaHidden : true,
|
||||||
|
ariaChecked: true,
|
||||||
|
ariaDisabled: true,
|
||||||
|
ariaRequired: true,
|
||||||
|
ariaInvalid: true,
|
||||||
|
ariaMultiline: true,
|
||||||
|
ariaValue: true,
|
||||||
|
tabindex: true
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ngdoc method
|
||||||
|
* @name $ariaProvider#config
|
||||||
|
*
|
||||||
|
* @param {object} config object to enable/disable specific aria tags
|
||||||
|
*
|
||||||
|
* - **ariaHidden** – `{boolean}` – Enables/disables aria-hidden tags
|
||||||
|
* - **ariaChecked** – `{boolean}` – Enables/disables aria-checked tags
|
||||||
|
* - **ariaDisabled** – `{boolean}` – Enables/disables aria-disabled tags
|
||||||
|
* - **ariaRequired** – `{boolean}` – Enables/disables aria-required tags
|
||||||
|
* - **ariaInvalid** – `{boolean}` – Enables/disables aria-invalid tags
|
||||||
|
* - **ariaMultiline** – `{boolean}` – Enables/disables aria-multiline tags
|
||||||
|
* - **ariaValue** – `{boolean}` – Enables/disables aria-valuemin, aria-valuemax and aria-valuenow tags
|
||||||
|
* - **tabindex** – `{boolean}` – Enables/disables tabindex tags
|
||||||
|
*
|
||||||
|
* @description
|
||||||
|
* Enables/disables various aria tags
|
||||||
|
*/
|
||||||
|
this.config = function(newConfig) {
|
||||||
|
config = angular.extend(config, newConfig);
|
||||||
|
};
|
||||||
|
|
||||||
|
function camelCase(input) {
|
||||||
|
return input.replace(/-./g, function(letter, pos) {
|
||||||
|
return letter[1].toUpperCase();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function watchExpr(attrName, ariaAttr, negate) {
|
||||||
|
var ariaCamelName = camelCase(ariaAttr);
|
||||||
|
return function(scope, elem, attr) {
|
||||||
|
if (config[ariaCamelName] && !attr[ariaCamelName]) {
|
||||||
|
scope.$watch(attr[attrName], function(boolVal) {
|
||||||
|
if (negate) {
|
||||||
|
boolVal = !boolVal;
|
||||||
|
}
|
||||||
|
elem.attr(ariaAttr, boolVal);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ngdoc service
|
||||||
|
* @name $aria
|
||||||
|
*
|
||||||
|
* @description
|
||||||
|
*
|
||||||
|
* Contains helper methods for applying aria tags to HTML
|
||||||
|
*
|
||||||
|
* ## Dependencies
|
||||||
|
* Requires the {@link ngAria} module to be installed.
|
||||||
|
*/
|
||||||
|
this.$get = function() {
|
||||||
|
return {
|
||||||
|
config: function (key) {
|
||||||
|
return config[camelCase(key)];
|
||||||
|
},
|
||||||
|
$$watchExpr: watchExpr
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
var ngAriaTabindex = ['$aria', function($aria) {
|
||||||
|
return function(scope, elem, attr) {
|
||||||
|
if ($aria.config('tabindex') && !elem.attr('tabindex')) {
|
||||||
|
elem.attr('tabindex', 0);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
|
||||||
|
ngAriaModule.directive('ngShow', ['$aria', function($aria) {
|
||||||
|
return $aria.$$watchExpr('ngShow', 'aria-hidden', true);
|
||||||
|
}])
|
||||||
|
.directive('ngHide', ['$aria', function($aria) {
|
||||||
|
return $aria.$$watchExpr('ngHide', 'aria-hidden', false);
|
||||||
|
}])
|
||||||
|
.directive('ngModel', ['$aria', function($aria) {
|
||||||
|
|
||||||
|
function shouldAttachAttr (attr, elem) {
|
||||||
|
return $aria.config(attr) && !elem.attr(attr);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getShape (attr, elem) {
|
||||||
|
var type = attr.type,
|
||||||
|
role = attr.role;
|
||||||
|
|
||||||
|
return ((type || role) === 'checkbox' || role === 'menuitemcheckbox') ? 'checkbox' :
|
||||||
|
((type || role) === 'radio' || role === 'menuitemradio') ? 'radio' :
|
||||||
|
(type === 'range' || role === 'progressbar' || role === 'slider') ? 'range' :
|
||||||
|
(type || role) === 'textbox' || elem[0].nodeName === 'TEXTAREA' ? 'multiline' : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
restrict: 'A',
|
||||||
|
require: '?ngModel',
|
||||||
|
link: function(scope, elem, attr, ngModel) {
|
||||||
|
var shape = getShape(attr, elem);
|
||||||
|
var needsTabIndex = shouldAttachAttr('tabindex', elem);
|
||||||
|
|
||||||
|
function ngAriaWatchModelValue() {
|
||||||
|
return ngModel.$modelValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRadioReaction() {
|
||||||
|
if (needsTabIndex) {
|
||||||
|
needsTabIndex = false;
|
||||||
|
return function ngAriaRadioReaction(newVal) {
|
||||||
|
var boolVal = newVal === attr.value;
|
||||||
|
elem.attr('aria-checked', boolVal);
|
||||||
|
elem.attr('tabindex', 0 - !boolVal);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
return function ngAriaRadioReaction(newVal) {
|
||||||
|
elem.attr('aria-checked', newVal === attr.value);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function ngAriaCheckboxReaction(newVal) {
|
||||||
|
elem.attr('aria-checked', !!newVal);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (shape) {
|
||||||
|
case 'radio':
|
||||||
|
case 'checkbox':
|
||||||
|
if (shouldAttachAttr('aria-checked', elem)) {
|
||||||
|
scope.$watch(ngAriaWatchModelValue, shape === 'radio' ?
|
||||||
|
getRadioReaction() : ngAriaCheckboxReaction);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'range':
|
||||||
|
if ($aria.config('ariaValue')) {
|
||||||
|
if (attr.min && !elem.attr('aria-valuemin')) {
|
||||||
|
elem.attr('aria-valuemin', attr.min);
|
||||||
|
}
|
||||||
|
if (attr.max && !elem.attr('aria-valuemax')) {
|
||||||
|
elem.attr('aria-valuemax', attr.max);
|
||||||
|
}
|
||||||
|
if (!elem.attr('aria-valuenow')) {
|
||||||
|
scope.$watch(ngAriaWatchModelValue, function ngAriaValueNowReaction(newVal) {
|
||||||
|
elem.attr('aria-valuenow', newVal);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'multiline':
|
||||||
|
if (shouldAttachAttr('aria-multiline', elem)) {
|
||||||
|
elem.attr('aria-multiline', true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (needsTabIndex) {
|
||||||
|
elem.attr('tabindex', 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ngModel.$validators.required && shouldAttachAttr('aria-required', elem)) {
|
||||||
|
scope.$watch(function ngAriaRequiredWatch() {
|
||||||
|
return ngModel.$error.required;
|
||||||
|
}, function ngAriaRequiredReaction(newVal) {
|
||||||
|
elem.attr('aria-required', !!newVal);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (shouldAttachAttr('aria-invalid', elem)) {
|
||||||
|
scope.$watch(function ngAriaInvalidWatch() {
|
||||||
|
return ngModel.$invalid;
|
||||||
|
}, function ngAriaInvalidReaction(newVal) {
|
||||||
|
elem.attr('aria-invalid', !!newVal);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}])
|
||||||
|
.directive('ngDisabled', ['$aria', function($aria) {
|
||||||
|
return $aria.$$watchExpr('ngDisabled', 'aria-disabled');
|
||||||
|
}])
|
||||||
|
.directive('ngClick', ngAriaTabindex)
|
||||||
|
.directive('ngDblclick', ngAriaTabindex);
|
||||||
|
|
||||||
|
|
||||||
|
})(window, window.angular);
|
11
public/app/bower_components/angular-aria/angular-aria.min.js
vendored
Normal file
11
public/app/bower_components/angular-aria/angular-aria.min.js
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
/*
|
||||||
|
AngularJS v1.3.0-rc.5
|
||||||
|
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||||
|
License: MIT
|
||||||
|
*/
|
||||||
|
(function(h,k,p){'use strict';h=["$aria",function(c){return function(e,f,a){c.config("tabindex")&&!f.attr("tabindex")&&f.attr("tabindex",0)}}];k.module("ngAria",["ng"]).provider("$aria",function(){function c(a){return a.replace(/-./g,function(b,a){return b[1].toUpperCase()})}function e(a,b,g){var d=c(b);return function(c,e,l){f[d]&&!l[d]&&c.$watch(l[a],function(a){g&&(a=!a);e.attr(b,a)})}}var f={ariaHidden:!0,ariaChecked:!0,ariaDisabled:!0,ariaRequired:!0,ariaInvalid:!0,ariaMultiline:!0,ariaValue:!0,
|
||||||
|
tabindex:!0};this.config=function(a){f=k.extend(f,a)};this.$get=function(){return{config:function(a){return f[c(a)]},$$watchExpr:e}}}).directive("ngShow",["$aria",function(c){return c.$$watchExpr("ngShow","aria-hidden",!0)}]).directive("ngHide",["$aria",function(c){return c.$$watchExpr("ngHide","aria-hidden",!1)}]).directive("ngModel",["$aria",function(c){function e(a,b){return c.config(a)&&!b.attr(a)}function f(a,b){var c=a.type,d=a.role;return"checkbox"===(c||d)||"menuitemcheckbox"===d?"checkbox":
|
||||||
|
"radio"===(c||d)||"menuitemradio"===d?"radio":"range"===c||"progressbar"===d||"slider"===d?"range":"textbox"===(c||d)||"TEXTAREA"===b[0].nodeName?"multiline":""}return{restrict:"A",require:"?ngModel",link:function(a,b,g,d){function h(){return d.$modelValue}function k(){return m?(m=!1,function(a){a=a===g.value;b.attr("aria-checked",a);b.attr("tabindex",0-!a)}):function(a){b.attr("aria-checked",a===g.value)}}function l(a){b.attr("aria-checked",!!a)}var n=f(g,b),m=e("tabindex",b);switch(n){case "radio":case "checkbox":e("aria-checked",
|
||||||
|
b)&&a.$watch(h,"radio"===n?k():l);break;case "range":c.config("ariaValue")&&(g.min&&!b.attr("aria-valuemin")&&b.attr("aria-valuemin",g.min),g.max&&!b.attr("aria-valuemax")&&b.attr("aria-valuemax",g.max),b.attr("aria-valuenow")||a.$watch(h,function(a){b.attr("aria-valuenow",a)}));break;case "multiline":e("aria-multiline",b)&&b.attr("aria-multiline",!0)}m&&b.attr("tabindex",0);d.$validators.required&&e("aria-required",b)&&a.$watch(function(){return d.$error.required},function(a){b.attr("aria-required",
|
||||||
|
!!a)});e("aria-invalid",b)&&a.$watch(function(){return d.$invalid},function(a){b.attr("aria-invalid",!!a)})}}}]).directive("ngDisabled",["$aria",function(c){return c.$$watchExpr("ngDisabled","aria-disabled")}]).directive("ngClick",h).directive("ngDblclick",h)})(window,window.angular);
|
||||||
|
//# sourceMappingURL=angular-aria.min.js.map
|
8
public/app/bower_components/angular-aria/angular-aria.min.js.map
vendored
Normal file
8
public/app/bower_components/angular-aria/angular-aria.min.js.map
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"version":3,
|
||||||
|
"file":"angular-aria.min.js",
|
||||||
|
"lineCount":10,
|
||||||
|
"mappings":"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",
|
||||||
|
"sources":["angular-aria.js"],
|
||||||
|
"names":["window","angular","undefined","ngAriaTabindex","$aria","scope","elem","attr","config","module","provider","ngAriaModule","$AriaProvider","camelCase","input","replace","letter","pos","toUpperCase","watchExpr","attrName","ariaAttr","negate","ariaCamelName","$watch","boolVal","ariaHidden","ariaChecked","ariaDisabled","ariaRequired","ariaInvalid","ariaMultiline","ariaValue","tabindex","this.config","newConfig","extend","$get","this.$get","key","$$watchExpr","directive","shouldAttachAttr","getShape","type","role","nodeName","restrict","require","link","ngModel","ngAriaWatchModelValue","$modelValue","getRadioReaction","needsTabIndex","ngAriaRadioReaction","newVal","value","ngAriaCheckboxReaction","shape","min","max","ngAriaValueNowReaction","$validators","required","ngAriaRequiredWatch","$error","ngAriaRequiredReaction","ngAriaInvalidWatch","$invalid","ngAriaInvalidReaction"]
|
||||||
|
}
|
8
public/app/bower_components/angular-aria/bower.json
vendored
Normal file
8
public/app/bower_components/angular-aria/bower.json
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"name": "angular-aria",
|
||||||
|
"version": "1.3.0-rc.5",
|
||||||
|
"main": "./angular-aria.js",
|
||||||
|
"dependencies": {
|
||||||
|
"angular": "1.3.0-rc.5"
|
||||||
|
}
|
||||||
|
}
|
27
public/app/bower_components/angular-aria/package.json
vendored
Normal file
27
public/app/bower_components/angular-aria/package.json
vendored
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"name": "angular-aria",
|
||||||
|
"version": "1.3.0-rc.5",
|
||||||
|
"description": "AngularJS module for making accessibility easy",
|
||||||
|
"main": "angular-aria.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/angular/angular.js.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"angular",
|
||||||
|
"framework",
|
||||||
|
"browser",
|
||||||
|
"accessibility",
|
||||||
|
"a11y",
|
||||||
|
"client-side"
|
||||||
|
],
|
||||||
|
"author": "Angular Core Team <angular-core+npm@google.com>",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/angular/angular.js/issues"
|
||||||
|
},
|
||||||
|
"homepage": "http://angularjs.org"
|
||||||
|
}
|
|
@ -1,19 +1,19 @@
|
||||||
{
|
{
|
||||||
"name": "angular-i18n",
|
"name": "angular-i18n",
|
||||||
"version": "1.2.26",
|
"version": "1.3.0-rc.5",
|
||||||
"ignore": [
|
"ignore": [
|
||||||
"**/.*",
|
"**/.*",
|
||||||
"node_modules",
|
"node_modules",
|
||||||
"components"
|
"components"
|
||||||
],
|
],
|
||||||
"homepage": "https://github.com/angular/bower-angular-i18n",
|
"homepage": "https://github.com/angular/bower-angular-i18n",
|
||||||
"_release": "1.2.26",
|
"_release": "1.3.0-rc.5",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v1.2.26",
|
"tag": "v1.3.0-rc.5",
|
||||||
"commit": "d3b29dbaf7f83fc0ff095a6972fc335b062525fb"
|
"commit": "44c63923486037f25c62d179c426ac27ad3b71bf"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/angular/bower-angular-i18n.git",
|
"_source": "git://github.com/angular/bower-angular-i18n.git",
|
||||||
"_target": "*",
|
"_target": "1.3.0-rc.5",
|
||||||
"_originalSource": "angular-i18n"
|
"_originalSource": "angular-i18n"
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "angular-i18n",
|
"name": "angular-i18n",
|
||||||
"version": "1.2.26",
|
"version": "1.3.0-rc.5",
|
||||||
"ignore": [
|
"ignore": [
|
||||||
"**/.*",
|
"**/.*",
|
||||||
"node_modules",
|
"node_modules",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "angular-i18n",
|
"name": "angular-i18n",
|
||||||
"version": "",
|
"version": "1.3.0-rc.5",
|
||||||
"description": "AngularJS module for internationalization",
|
"description": "AngularJS module for internationalization",
|
||||||
"main": "angular-i18n.js",
|
"main": "angular-i18n.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
{
|
{
|
||||||
"name": "angular-loader",
|
"name": "angular-loader",
|
||||||
"version": "1.2.26",
|
"version": "1.3.0-rc.5",
|
||||||
"main": "./angular-loader.js",
|
"main": "./angular-loader.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular": "1.2.26"
|
"angular": "1.3.0-rc.5"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/angular/bower-angular-loader",
|
"homepage": "https://github.com/angular/bower-angular-loader",
|
||||||
"_release": "1.2.26",
|
"_release": "1.3.0-rc.5",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v1.2.26",
|
"tag": "v1.3.0-rc.5",
|
||||||
"commit": "a90a91969628591d7d399dbc46c4c344f1c89938"
|
"commit": "adbec6e225feae91aa3eaab59a31331a5c0fcb06"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/angular/bower-angular-loader.git",
|
"_source": "git://github.com/angular/bower-angular-loader.git",
|
||||||
"_target": "*",
|
"_target": "1.3.0-rc.5",
|
||||||
"_originalSource": "angular-loader"
|
"_originalSource": "angular-loader"
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.2.26
|
* @license AngularJS v1.3.0-rc.5
|
||||||
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
@ -31,10 +31,13 @@
|
||||||
* should all be static strings, not variables or general expressions.
|
* should all be static strings, not variables or general expressions.
|
||||||
*
|
*
|
||||||
* @param {string} module The namespace to use for the new minErr instance.
|
* @param {string} module The namespace to use for the new minErr instance.
|
||||||
|
* @param {function} ErrorConstructor Custom error constructor to be instantiated when returning
|
||||||
|
* error from returned function, for cases when a particular type of error is useful.
|
||||||
* @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance
|
* @returns {function(code:string, template:string, ...templateArgs): Error} minErr instance
|
||||||
*/
|
*/
|
||||||
|
|
||||||
function minErr(module) {
|
function minErr(module, ErrorConstructor) {
|
||||||
|
ErrorConstructor = ErrorConstructor || Error;
|
||||||
return function () {
|
return function () {
|
||||||
var code = arguments[0],
|
var code = arguments[0],
|
||||||
prefix = '[' + (module ? module + ':' : '') + code + '] ',
|
prefix = '[' + (module ? module + ':' : '') + code + '] ',
|
||||||
|
@ -69,14 +72,13 @@ function minErr(module) {
|
||||||
return match;
|
return match;
|
||||||
});
|
});
|
||||||
|
|
||||||
message = message + '\nhttp://errors.angularjs.org/1.2.26/' +
|
message = message + '\nhttp://errors.angularjs.org/1.3.0-rc.5/' +
|
||||||
(module ? module + '/' : '') + code;
|
(module ? module + '/' : '') + code;
|
||||||
for (i = 2; i < arguments.length; i++) {
|
for (i = 2; i < arguments.length; i++) {
|
||||||
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
|
||||||
encodeURIComponent(stringify(arguments[i]));
|
encodeURIComponent(stringify(arguments[i]));
|
||||||
}
|
}
|
||||||
|
return new ErrorConstructor(message);
|
||||||
return new Error(message);
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,15 +181,19 @@ function setupModuleLoader(window) {
|
||||||
/** @type {!Array.<Array.<*>>} */
|
/** @type {!Array.<Array.<*>>} */
|
||||||
var invokeQueue = [];
|
var invokeQueue = [];
|
||||||
|
|
||||||
|
/** @type {!Array.<Function>} */
|
||||||
|
var configBlocks = [];
|
||||||
|
|
||||||
/** @type {!Array.<Function>} */
|
/** @type {!Array.<Function>} */
|
||||||
var runBlocks = [];
|
var runBlocks = [];
|
||||||
|
|
||||||
var config = invokeLater('$injector', 'invoke');
|
var config = invokeLater('$injector', 'invoke', 'push', configBlocks);
|
||||||
|
|
||||||
/** @type {angular.Module} */
|
/** @type {angular.Module} */
|
||||||
var moduleInstance = {
|
var moduleInstance = {
|
||||||
// Private state
|
// Private state
|
||||||
_invokeQueue: invokeQueue,
|
_invokeQueue: invokeQueue,
|
||||||
|
_configBlocks: configBlocks,
|
||||||
_runBlocks: runBlocks,
|
_runBlocks: runBlocks,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -380,9 +386,10 @@ function setupModuleLoader(window) {
|
||||||
* @param {String=} insertMethod
|
* @param {String=} insertMethod
|
||||||
* @returns {angular.Module}
|
* @returns {angular.Module}
|
||||||
*/
|
*/
|
||||||
function invokeLater(provider, method, insertMethod) {
|
function invokeLater(provider, method, insertMethod, queue) {
|
||||||
|
if (!queue) queue = invokeQueue;
|
||||||
return function() {
|
return function() {
|
||||||
invokeQueue[insertMethod || 'push']([provider, method, arguments]);
|
queue[insertMethod || 'push']([provider, method, arguments]);
|
||||||
return moduleInstance;
|
return moduleInstance;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
/*
|
/*
|
||||||
AngularJS v1.2.26
|
AngularJS v1.3.0-rc.5
|
||||||
(c) 2010-2014 Google, Inc. http://angularjs.org
|
(c) 2010-2014 Google, Inc. http://angularjs.org
|
||||||
License: MIT
|
License: MIT
|
||||||
*/
|
*/
|
||||||
(function(){'use strict';function d(a){return function(){var c=arguments[0],b,c="["+(a?a+":":"")+c+"] http://errors.angularjs.org/1.2.26/"+(a?a+"/":"")+c;for(b=1;b<arguments.length;b++)c=c+(1==b?"?":"&")+"p"+(b-1)+"="+encodeURIComponent("function"==typeof arguments[b]?arguments[b].toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof arguments[b]?"undefined":"string"!=typeof arguments[b]?JSON.stringify(arguments[b]):arguments[b]);return Error(c)}}(function(a){var c=d("$injector"),b=d("ng");a=a.angular||
|
(function(){'use strict';function d(b){return function(){var c=arguments[0],e;e="["+(b?b+":":"")+c+"] http://errors.angularjs.org/1.3.0-rc.5/"+(b?b+"/":"")+c;for(c=1;c<arguments.length;c++){e=e+(1==c?"?":"&")+"p"+(c-1)+"=";var d=encodeURIComponent,a;a=arguments[c];a="function"==typeof a?a.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof a?"undefined":"string"!=typeof a?JSON.stringify(a):a;e+=d(a)}return Error(e)}}(function(b){function c(a,c,b){return a[c]||(a[c]=b())}var e=d("$injector"),
|
||||||
(a.angular={});a.$$minErr=a.$$minErr||d;return a.module||(a.module=function(){var a={};return function(e,d,f){if("hasOwnProperty"===e)throw b("badname","module");d&&a.hasOwnProperty(e)&&(a[e]=null);return a[e]||(a[e]=function(){function a(c,d,e){return function(){b[e||"push"]([c,d,arguments]);return g}}if(!d)throw c("nomod",e);var b=[],h=[],k=a("$injector","invoke"),g={_invokeQueue:b,_runBlocks:h,requires:d,name:e,provider:a("$provide","provider"),factory:a("$provide","factory"),service:a("$provide",
|
n=d("ng");b=c(b,"angular",Object);b.$$minErr=b.$$minErr||d;return c(b,"module",function(){var a={};return function(b,d,g){if("hasOwnProperty"===b)throw n("badname","module");d&&a.hasOwnProperty(b)&&(a[b]=null);return c(a,b,function(){function a(b,d,e,f){f||(f=c);return function(){f[e||"push"]([b,d,arguments]);return h}}if(!d)throw e("nomod",b);var c=[],k=[],l=[],m=a("$injector","invoke","push",k),h={_invokeQueue:c,_configBlocks:k,_runBlocks:l,requires:d,name:b,provider:a("$provide","provider"),factory:a("$provide",
|
||||||
"service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:k,run:function(a){h.push(a);return this}};f&&k(f);return g}())}}())})(window)})(window);
|
"factory"),service:a("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),animation:a("$animateProvider","register"),filter:a("$filterProvider","register"),controller:a("$controllerProvider","register"),directive:a("$compileProvider","directive"),config:m,run:function(a){l.push(a);return this}};g&&m(g);return h})}})})(window)})(window);
|
||||||
//# sourceMappingURL=angular-loader.min.js.map
|
//# sourceMappingURL=angular-loader.min.js.map
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"version":3,
|
"version":3,
|
||||||
"file":"angular-loader.min.js",
|
"file":"angular-loader.min.js",
|
||||||
"lineCount":8,
|
"lineCount":8,
|
||||||
"mappings":"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",
|
"mappings":"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",
|
||||||
"sources":["angular-loader.js"],
|
"sources":["angular-loader.js"],
|
||||||
"names":["minErr","setupModuleLoader","window","$injectorMinErr","ngMinErr","angular","$$minErr","factory","modules","module","name","requires","configFn","context","hasOwnProperty","invokeLater","provider","method","insertMethod","invokeQueue","arguments","moduleInstance","runBlocks","config","run","block","push"]
|
"names":["minErr","setupModuleLoader","window","ensure","obj","name","factory","$injectorMinErr","ngMinErr","angular","Object","$$minErr","modules","module","requires","configFn","context","hasOwnProperty","invokeLater","provider","method","insertMethod","queue","invokeQueue","arguments","moduleInstance","configBlocks","runBlocks","config","_invokeQueue","_configBlocks","_runBlocks","service","value","constant","animation","filter","controller","directive","run","block","push"]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"name": "angular-loader",
|
"name": "angular-loader",
|
||||||
"version": "1.2.26",
|
"version": "1.3.0-rc.5",
|
||||||
"main": "./angular-loader.js",
|
"main": "./angular-loader.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular": "1.2.26"
|
"angular": "1.3.0-rc.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "angular-loader",
|
"name": "angular-loader",
|
||||||
"version": "",
|
"version": "1.3.0-rc.5",
|
||||||
"description": "AngularJS module for asynchronously loading modules",
|
"description": "AngularJS module for asynchronously loading modules",
|
||||||
"main": "angular-loader.js",
|
"main": "angular-loader.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
{
|
{
|
||||||
"name": "angular-material",
|
"name": "angular-material",
|
||||||
"version": "0.0.3",
|
"version": "0.4.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular": "^1.3.0-beta.18",
|
"angular": "1.3.0-rc.4",
|
||||||
"angular-animate": "^1.3.0-beta.18",
|
"angular-animate": "1.3.0-rc.4",
|
||||||
"hammerjs": "~2.0.3"
|
"angular-aria": "1.3.0-rc.4",
|
||||||
|
"hammerjs": "~2.0.2"
|
||||||
},
|
},
|
||||||
"main": [
|
"main": [
|
||||||
"angular-material.js",
|
"angular-material.js",
|
||||||
"angular-material.css"
|
"angular-material.css"
|
||||||
],
|
],
|
||||||
"homepage": "https://github.com/angular/bower-material",
|
"homepage": "https://github.com/angular/bower-material",
|
||||||
"_release": "0.0.3",
|
"_release": "0.4.0",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v0.0.3",
|
"tag": "v0.4.0",
|
||||||
"commit": "ec33d2ecfdf091e09eb285174c0ef1a948c10485"
|
"commit": "d3c6ed5ca2756a74b16e5faf460df64aaa9a0a36"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/angular/bower-material.git",
|
"_source": "git://github.com/angular/bower-material.git",
|
||||||
"_target": "~0.0.3",
|
"_target": "*",
|
||||||
"_originalSource": "angular-material",
|
"_originalSource": "angular-material"
|
||||||
"_direct": true
|
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,10 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "angular-material",
|
"name": "angular-material",
|
||||||
"version": "0.0.3-master-f291897",
|
"version": "0.4.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular": "^1.3.0-beta.18",
|
"angular": "1.3.0-rc.4",
|
||||||
"angular-animate": "^1.3.0-beta.18",
|
"angular-animate": "1.3.0-rc.4",
|
||||||
"hammerjs": "~2.0.3"
|
"angular-aria": "1.3.0-rc.4",
|
||||||
|
"hammerjs": "~2.0.2"
|
||||||
},
|
},
|
||||||
"main": [
|
"main": [
|
||||||
"angular-material.js",
|
"angular-material.js",
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
{
|
{
|
||||||
"name": "angular-mocks",
|
"name": "angular-mocks",
|
||||||
"version": "1.2.26",
|
"version": "1.3.0-rc.5",
|
||||||
"main": "./angular-mocks.js",
|
"main": "./angular-mocks.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular": "1.2.26"
|
"angular": "1.3.0-rc.5"
|
||||||
},
|
},
|
||||||
"homepage": "https://github.com/angular/bower-angular-mocks",
|
"homepage": "https://github.com/angular/bower-angular-mocks",
|
||||||
"_release": "1.2.26",
|
"_release": "1.3.0-rc.5",
|
||||||
"_resolution": {
|
"_resolution": {
|
||||||
"type": "version",
|
"type": "version",
|
||||||
"tag": "v1.2.26",
|
"tag": "v1.3.0-rc.5",
|
||||||
"commit": "0eda339dd42aba2628586f39d4806bcfb57fd6f4"
|
"commit": "ca34816104cd828d4940a9f621789c42f5843f85"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/angular/bower-angular-mocks.git",
|
"_source": "git://github.com/angular/bower-angular-mocks.git",
|
||||||
"_target": "*",
|
"_target": "1.3.0-rc.5",
|
||||||
"_originalSource": "angular-mocks"
|
"_originalSource": "angular-mocks"
|
||||||
}
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
* @license AngularJS v1.2.26
|
* @license AngularJS v1.3.0-rc.5
|
||||||
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
||||||
* License: MIT
|
* License: MIT
|
||||||
*/
|
*/
|
||||||
|
@ -53,9 +53,10 @@ angular.mock.$Browser = function() {
|
||||||
self.onUrlChange = function(listener) {
|
self.onUrlChange = function(listener) {
|
||||||
self.pollFns.push(
|
self.pollFns.push(
|
||||||
function() {
|
function() {
|
||||||
if (self.$$lastUrl != self.$$url) {
|
if (self.$$lastUrl !== self.$$url || self.$$state !== self.$$lastState) {
|
||||||
self.$$lastUrl = self.$$url;
|
self.$$lastUrl = self.$$url;
|
||||||
listener(self.$$url);
|
self.$$lastState = self.$$state;
|
||||||
|
listener(self.$$url, self.$$state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -127,7 +128,7 @@ angular.mock.$Browser = function() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
self.$$baseHref = '';
|
self.$$baseHref = '/';
|
||||||
self.baseHref = function() {
|
self.baseHref = function() {
|
||||||
return this.$$baseHref;
|
return this.$$baseHref;
|
||||||
};
|
};
|
||||||
|
@ -151,15 +152,24 @@ angular.mock.$Browser.prototype = {
|
||||||
return pollFn;
|
return pollFn;
|
||||||
},
|
},
|
||||||
|
|
||||||
url: function(url, replace) {
|
url: function(url, replace, state) {
|
||||||
|
if (angular.isUndefined(state)) {
|
||||||
|
state = null;
|
||||||
|
}
|
||||||
if (url) {
|
if (url) {
|
||||||
this.$$url = url;
|
this.$$url = url;
|
||||||
|
// Native pushState serializes & copies the object; simulate it.
|
||||||
|
this.$$state = angular.copy(state);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.$$url;
|
return this.$$url;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
state: function() {
|
||||||
|
return this.$$state;
|
||||||
|
},
|
||||||
|
|
||||||
cookies: function(name, value) {
|
cookies: function(name, value) {
|
||||||
if (name) {
|
if (name) {
|
||||||
if (angular.isUndefined(value)) {
|
if (angular.isUndefined(value)) {
|
||||||
|
@ -776,13 +786,22 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
$provide.decorator('$animate', function($delegate, $$asyncCallback) {
|
$provide.decorator('$animate', ['$delegate', '$$asyncCallback', '$timeout', '$browser',
|
||||||
|
function($delegate, $$asyncCallback, $timeout, $browser) {
|
||||||
var animate = {
|
var animate = {
|
||||||
queue : [],
|
queue : [],
|
||||||
|
cancel : $delegate.cancel,
|
||||||
enabled : $delegate.enabled,
|
enabled : $delegate.enabled,
|
||||||
triggerCallbacks : function() {
|
triggerCallbackEvents : function() {
|
||||||
$$asyncCallback.flush();
|
$$asyncCallback.flush();
|
||||||
},
|
},
|
||||||
|
triggerCallbackPromise : function() {
|
||||||
|
$timeout.flush(0);
|
||||||
|
},
|
||||||
|
triggerCallbacks : function() {
|
||||||
|
this.triggerCallbackEvents();
|
||||||
|
this.triggerCallbackPromise();
|
||||||
|
},
|
||||||
triggerReflow : function() {
|
triggerReflow : function() {
|
||||||
angular.forEach(reflowQueue, function(fn) {
|
angular.forEach(reflowQueue, function(fn) {
|
||||||
fn();
|
fn();
|
||||||
|
@ -797,14 +816,15 @@ angular.mock.animate = angular.module('ngAnimateMock', ['ng'])
|
||||||
animate.queue.push({
|
animate.queue.push({
|
||||||
event : method,
|
event : method,
|
||||||
element : arguments[0],
|
element : arguments[0],
|
||||||
|
options : arguments[arguments.length-1],
|
||||||
args : arguments
|
args : arguments
|
||||||
});
|
});
|
||||||
$delegate[method].apply($delegate, arguments);
|
return $delegate[method].apply($delegate, arguments);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
return animate;
|
return animate;
|
||||||
});
|
}]);
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
|
|
||||||
|
@ -1009,13 +1029,14 @@ angular.mock.dump = function(object) {
|
||||||
```js
|
```js
|
||||||
// testing controller
|
// testing controller
|
||||||
describe('MyController', function() {
|
describe('MyController', function() {
|
||||||
var $httpBackend, $rootScope, createController;
|
var $httpBackend, $rootScope, createController, authRequestHandler;
|
||||||
|
|
||||||
beforeEach(inject(function($injector) {
|
beforeEach(inject(function($injector) {
|
||||||
// Set up the mock http service responses
|
// Set up the mock http service responses
|
||||||
$httpBackend = $injector.get('$httpBackend');
|
$httpBackend = $injector.get('$httpBackend');
|
||||||
// backend definition common for all tests
|
// backend definition common for all tests
|
||||||
$httpBackend.when('GET', '/auth.py').respond({userId: 'userX'}, {'A-Token': 'xxx'});
|
authRequestHandler = $httpBackend.when('GET', '/auth.py')
|
||||||
|
.respond({userId: 'userX'}, {'A-Token': 'xxx'});
|
||||||
|
|
||||||
// Get hold of a scope (i.e. the root scope)
|
// Get hold of a scope (i.e. the root scope)
|
||||||
$rootScope = $injector.get('$rootScope');
|
$rootScope = $injector.get('$rootScope');
|
||||||
|
@ -1041,6 +1062,18 @@ angular.mock.dump = function(object) {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
it('should fail authentication', function() {
|
||||||
|
|
||||||
|
// Notice how you can change the response even after it was set
|
||||||
|
authRequestHandler.respond(401, '');
|
||||||
|
|
||||||
|
$httpBackend.expectGET('/auth.py');
|
||||||
|
var controller = createController();
|
||||||
|
$httpBackend.flush();
|
||||||
|
expect($rootScope.status).toBe('Failed...');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
it('should send msg to server', function() {
|
it('should send msg to server', function() {
|
||||||
var controller = createController();
|
var controller = createController();
|
||||||
$httpBackend.flush();
|
$httpBackend.flush();
|
||||||
|
@ -1188,32 +1221,39 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* Creates a new backend definition.
|
* Creates a new backend definition.
|
||||||
*
|
*
|
||||||
* @param {string} method HTTP method.
|
* @param {string} method HTTP method.
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
||||||
* data string and returns true if the data is as expected.
|
* data string and returns true if the data is as expected.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
||||||
* object and returns true if the headers match the current definition.
|
* object and returns true if the headers match the current definition.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that controls how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that controls how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*
|
*
|
||||||
* - respond –
|
* - respond –
|
||||||
* `{function([status,] data[, headers, statusText])
|
* `{function([status,] data[, headers, statusText])
|
||||||
* | function(function(method, url, data, headers)}`
|
* | function(function(method, url, data, headers)}`
|
||||||
* – The respond method takes a set of static data to be returned or a function that can
|
* – The respond method takes a set of static data to be returned or a function that can
|
||||||
* return an array containing response status (number), response data (string), response
|
* return an array containing response status (number), response data (string), response
|
||||||
* headers (Object), and the text for the status (string).
|
* headers (Object), and the text for the status (string). The respond method returns the
|
||||||
|
* `requestHandler` object for possible overrides.
|
||||||
*/
|
*/
|
||||||
$httpBackend.when = function(method, url, data, headers) {
|
$httpBackend.when = function(method, url, data, headers) {
|
||||||
var definition = new MockHttpExpectation(method, url, data, headers),
|
var definition = new MockHttpExpectation(method, url, data, headers),
|
||||||
chain = {
|
chain = {
|
||||||
respond: function(status, data, headers, statusText) {
|
respond: function(status, data, headers, statusText) {
|
||||||
|
definition.passThrough = undefined;
|
||||||
definition.response = createResponse(status, data, headers, statusText);
|
definition.response = createResponse(status, data, headers, statusText);
|
||||||
|
return chain;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if ($browser) {
|
if ($browser) {
|
||||||
chain.passThrough = function() {
|
chain.passThrough = function() {
|
||||||
|
definition.response = undefined;
|
||||||
definition.passThrough = true;
|
definition.passThrough = true;
|
||||||
|
return chain;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1227,10 +1267,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for GET requests. For more info see `when()`.
|
* Creates a new backend definition for GET requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1239,10 +1281,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for HEAD requests. For more info see `when()`.
|
* Creates a new backend definition for HEAD requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1251,10 +1295,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for DELETE requests. For more info see `when()`.
|
* Creates a new backend definition for DELETE requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1263,12 +1309,14 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for POST requests. For more info see `when()`.
|
* Creates a new backend definition for POST requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
||||||
* data string and returns true if the data is as expected.
|
* data string and returns true if the data is as expected.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1277,12 +1325,14 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for PUT requests. For more info see `when()`.
|
* Creates a new backend definition for PUT requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
* @param {(string|RegExp|function(string))=} data HTTP request body or function that receives
|
||||||
* data string and returns true if the data is as expected.
|
* data string and returns true if the data is as expected.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1291,9 +1341,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for JSONP requests. For more info see `when()`.
|
* Creates a new backend definition for JSONP requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
createShortMethods('when');
|
createShortMethods('when');
|
||||||
|
|
||||||
|
@ -1305,30 +1357,36 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* Creates a new request expectation.
|
* Creates a new request expectation.
|
||||||
*
|
*
|
||||||
* @param {string} method HTTP method.
|
* @param {string} method HTTP method.
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||||
* receives data string and returns true if the data is as expected, or Object if request body
|
* receives data string and returns true if the data is as expected, or Object if request body
|
||||||
* is in JSON format.
|
* is in JSON format.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
||||||
* object and returns true if the headers match the current expectation.
|
* object and returns true if the headers match the current expectation.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*
|
*
|
||||||
* - respond –
|
* - respond –
|
||||||
* `{function([status,] data[, headers, statusText])
|
* `{function([status,] data[, headers, statusText])
|
||||||
* | function(function(method, url, data, headers)}`
|
* | function(function(method, url, data, headers)}`
|
||||||
* – The respond method takes a set of static data to be returned or a function that can
|
* – The respond method takes a set of static data to be returned or a function that can
|
||||||
* return an array containing response status (number), response data (string), response
|
* return an array containing response status (number), response data (string), response
|
||||||
* headers (Object), and the text for the status (string).
|
* headers (Object), and the text for the status (string). The respond method returns the
|
||||||
|
* `requestHandler` object for possible overrides.
|
||||||
*/
|
*/
|
||||||
$httpBackend.expect = function(method, url, data, headers) {
|
$httpBackend.expect = function(method, url, data, headers) {
|
||||||
var expectation = new MockHttpExpectation(method, url, data, headers);
|
var expectation = new MockHttpExpectation(method, url, data, headers),
|
||||||
expectations.push(expectation);
|
chain = {
|
||||||
return {
|
|
||||||
respond: function (status, data, headers, statusText) {
|
respond: function (status, data, headers, statusText) {
|
||||||
expectation.response = createResponse(status, data, headers, statusText);
|
expectation.response = createResponse(status, data, headers, statusText);
|
||||||
|
return chain;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
expectations.push(expectation);
|
||||||
|
return chain;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1338,10 +1396,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new request expectation for GET requests. For more info see `expect()`.
|
* Creates a new request expectation for GET requests. For more info see `expect()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {Object=} headers HTTP headers.
|
* @param {Object=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled. See #expect for more info.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled. See #expect for more info.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1350,10 +1410,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new request expectation for HEAD requests. For more info see `expect()`.
|
* Creates a new request expectation for HEAD requests. For more info see `expect()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {Object=} headers HTTP headers.
|
* @param {Object=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1362,10 +1424,12 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new request expectation for DELETE requests. For more info see `expect()`.
|
* Creates a new request expectation for DELETE requests. For more info see `expect()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {Object=} headers HTTP headers.
|
* @param {Object=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1374,13 +1438,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new request expectation for POST requests. For more info see `expect()`.
|
* Creates a new request expectation for POST requests. For more info see `expect()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||||
* receives data string and returns true if the data is as expected, or Object if request body
|
* receives data string and returns true if the data is as expected, or Object if request body
|
||||||
* is in JSON format.
|
* is in JSON format.
|
||||||
* @param {Object=} headers HTTP headers.
|
* @param {Object=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1389,13 +1455,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new request expectation for PUT requests. For more info see `expect()`.
|
* Creates a new request expectation for PUT requests. For more info see `expect()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||||
* receives data string and returns true if the data is as expected, or Object if request body
|
* receives data string and returns true if the data is as expected, or Object if request body
|
||||||
* is in JSON format.
|
* is in JSON format.
|
||||||
* @param {Object=} headers HTTP headers.
|
* @param {Object=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1404,13 +1472,15 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new request expectation for PATCH requests. For more info see `expect()`.
|
* Creates a new request expectation for PATCH requests. For more info see `expect()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
* @param {(string|RegExp|function(string)|Object)=} data HTTP request body or function that
|
||||||
* receives data string and returns true if the data is as expected, or Object if request body
|
* receives data string and returns true if the data is as expected, or Object if request body
|
||||||
* is in JSON format.
|
* is in JSON format.
|
||||||
* @param {Object=} headers HTTP headers.
|
* @param {Object=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1419,9 +1489,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new request expectation for JSONP requests. For more info see `expect()`.
|
* Creates a new request expectation for JSONP requests. For more info see `expect()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
* @returns {requestHandler} Returns an object with `respond` method that control how a matched
|
||||||
* request is handled.
|
* request is handled. You can save this object for later use and invoke `respond` again in
|
||||||
|
* order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
createShortMethods('expect');
|
createShortMethods('expect');
|
||||||
|
|
||||||
|
@ -1436,11 +1508,11 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* all pending requests will be flushed. If there are no pending requests when the flush method
|
* all pending requests will be flushed. If there are no pending requests when the flush method
|
||||||
* is called an exception is thrown (as this typically a sign of programming error).
|
* is called an exception is thrown (as this typically a sign of programming error).
|
||||||
*/
|
*/
|
||||||
$httpBackend.flush = function(count) {
|
$httpBackend.flush = function(count, digest) {
|
||||||
$rootScope.$digest();
|
if (digest !== false) $rootScope.$digest();
|
||||||
if (!responses.length) throw new Error('No pending request to flush !');
|
if (!responses.length) throw new Error('No pending request to flush !');
|
||||||
|
|
||||||
if (angular.isDefined(count)) {
|
if (angular.isDefined(count) && count !== null) {
|
||||||
while (count--) {
|
while (count--) {
|
||||||
if (!responses.length) throw new Error('No more pending request to flush !');
|
if (!responses.length) throw new Error('No more pending request to flush !');
|
||||||
responses.shift()();
|
responses.shift()();
|
||||||
|
@ -1450,7 +1522,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
responses.shift()();
|
responses.shift()();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$httpBackend.verifyNoOutstandingExpectation();
|
$httpBackend.verifyNoOutstandingExpectation(digest);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1468,8 +1540,8 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
* afterEach($httpBackend.verifyNoOutstandingExpectation);
|
* afterEach($httpBackend.verifyNoOutstandingExpectation);
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
$httpBackend.verifyNoOutstandingExpectation = function() {
|
$httpBackend.verifyNoOutstandingExpectation = function(digest) {
|
||||||
$rootScope.$digest();
|
if (digest !== false) $rootScope.$digest();
|
||||||
if (expectations.length) {
|
if (expectations.length) {
|
||||||
throw new Error('Unsatisfied requests: ' + expectations.join(', '));
|
throw new Error('Unsatisfied requests: ' + expectations.join(', '));
|
||||||
}
|
}
|
||||||
|
@ -1513,7 +1585,7 @@ function createHttpBackendMock($rootScope, $delegate, $browser) {
|
||||||
|
|
||||||
|
|
||||||
function createShortMethods(prefix) {
|
function createShortMethods(prefix) {
|
||||||
angular.forEach(['GET', 'DELETE', 'JSONP'], function(method) {
|
angular.forEach(['GET', 'DELETE', 'JSONP', 'HEAD'], function(method) {
|
||||||
$httpBackend[prefix + method] = function(url, headers) {
|
$httpBackend[prefix + method] = function(url, headers) {
|
||||||
return $httpBackend[prefix](method, url, undefined, headers);
|
return $httpBackend[prefix](method, url, undefined, headers);
|
||||||
};
|
};
|
||||||
|
@ -1543,6 +1615,7 @@ function MockHttpExpectation(method, url, data, headers) {
|
||||||
this.matchUrl = function(u) {
|
this.matchUrl = function(u) {
|
||||||
if (!url) return true;
|
if (!url) return true;
|
||||||
if (angular.isFunction(url.test)) return url.test(u);
|
if (angular.isFunction(url.test)) return url.test(u);
|
||||||
|
if (angular.isFunction(url)) return url(u);
|
||||||
return url == u;
|
return url == u;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1629,7 +1702,7 @@ function MockXhr() {
|
||||||
* that adds a "flush" and "verifyNoPendingTasks" methods.
|
* that adds a "flush" and "verifyNoPendingTasks" methods.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
angular.mock.$TimeoutDecorator = function($delegate, $browser) {
|
angular.mock.$TimeoutDecorator = ['$delegate', '$browser', function ($delegate, $browser) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ngdoc method
|
* @ngdoc method
|
||||||
|
@ -1668,9 +1741,9 @@ angular.mock.$TimeoutDecorator = function($delegate, $browser) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return $delegate;
|
return $delegate;
|
||||||
};
|
}];
|
||||||
|
|
||||||
angular.mock.$RAFDecorator = function($delegate) {
|
angular.mock.$RAFDecorator = ['$delegate', function($delegate) {
|
||||||
var queue = [];
|
var queue = [];
|
||||||
var rafFn = function(fn) {
|
var rafFn = function(fn) {
|
||||||
var index = queue.length;
|
var index = queue.length;
|
||||||
|
@ -1696,9 +1769,9 @@ angular.mock.$RAFDecorator = function($delegate) {
|
||||||
};
|
};
|
||||||
|
|
||||||
return rafFn;
|
return rafFn;
|
||||||
};
|
}];
|
||||||
|
|
||||||
angular.mock.$AsyncCallbackDecorator = function($delegate) {
|
angular.mock.$AsyncCallbackDecorator = ['$delegate', function($delegate) {
|
||||||
var callbacks = [];
|
var callbacks = [];
|
||||||
var addFn = function(fn) {
|
var addFn = function(fn) {
|
||||||
callbacks.push(fn);
|
callbacks.push(fn);
|
||||||
|
@ -1710,7 +1783,7 @@ angular.mock.$AsyncCallbackDecorator = function($delegate) {
|
||||||
callbacks = [];
|
callbacks = [];
|
||||||
};
|
};
|
||||||
return addFn;
|
return addFn;
|
||||||
};
|
}];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -1824,12 +1897,14 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* Creates a new backend definition.
|
* Creates a new backend definition.
|
||||||
*
|
*
|
||||||
* @param {string} method HTTP method.
|
* @param {string} method HTTP method.
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp)=} data HTTP request body.
|
* @param {(string|RegExp)=} data HTTP request body.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
* @param {(Object|function(Object))=} headers HTTP headers or function that receives http header
|
||||||
* object and returns true if the headers match the current definition.
|
* object and returns true if the headers match the current definition.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*
|
*
|
||||||
* - respond –
|
* - respond –
|
||||||
* `{function([status,] data[, headers, statusText])
|
* `{function([status,] data[, headers, statusText])
|
||||||
|
@ -1840,6 +1915,7 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* - passThrough – `{function()}` – Any request matching a backend definition with
|
* - passThrough – `{function()}` – Any request matching a backend definition with
|
||||||
* `passThrough` handler will be passed through to the real backend (an XHR request will be made
|
* `passThrough` handler will be passed through to the real backend (an XHR request will be made
|
||||||
* to the server.)
|
* to the server.)
|
||||||
|
* - Both methods return the `requestHandler` object for possible overrides.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1849,10 +1925,12 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for GET requests. For more info see `when()`.
|
* Creates a new backend definition for GET requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1862,10 +1940,12 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for HEAD requests. For more info see `when()`.
|
* Creates a new backend definition for HEAD requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1875,10 +1955,12 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for DELETE requests. For more info see `when()`.
|
* Creates a new backend definition for DELETE requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1888,11 +1970,13 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for POST requests. For more info see `when()`.
|
* Creates a new backend definition for POST requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp)=} data HTTP request body.
|
* @param {(string|RegExp)=} data HTTP request body.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1902,11 +1986,13 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for PUT requests. For more info see `when()`.
|
* Creates a new backend definition for PUT requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp)=} data HTTP request body.
|
* @param {(string|RegExp)=} data HTTP request body.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1916,11 +2002,13 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for PATCH requests. For more info see `when()`.
|
* Creates a new backend definition for PATCH requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @param {(string|RegExp)=} data HTTP request body.
|
* @param {(string|RegExp)=} data HTTP request body.
|
||||||
* @param {(Object|function(Object))=} headers HTTP headers.
|
* @param {(Object|function(Object))=} headers HTTP headers.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1930,30 +2018,17 @@ angular.module('ngMockE2E', ['ng']).config(['$provide', function($provide) {
|
||||||
* @description
|
* @description
|
||||||
* Creates a new backend definition for JSONP requests. For more info see `when()`.
|
* Creates a new backend definition for JSONP requests. For more info see `when()`.
|
||||||
*
|
*
|
||||||
* @param {string|RegExp} url HTTP url.
|
* @param {string|RegExp|function(string)} url HTTP url or function that receives the url
|
||||||
|
* and returns true if the url match the current definition.
|
||||||
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
* @returns {requestHandler} Returns an object with `respond` and `passThrough` methods that
|
||||||
* control how a matched request is handled.
|
* control how a matched request is handled. You can save this object for later use and invoke
|
||||||
|
* `respond` or `passThrough` again in order to change how a matched request is handled.
|
||||||
*/
|
*/
|
||||||
angular.mock.e2e = {};
|
angular.mock.e2e = {};
|
||||||
angular.mock.e2e.$httpBackendDecorator =
|
angular.mock.e2e.$httpBackendDecorator =
|
||||||
['$rootScope', '$delegate', '$browser', createHttpBackendMock];
|
['$rootScope', '$delegate', '$browser', createHttpBackendMock];
|
||||||
|
|
||||||
|
|
||||||
angular.mock.clearDataCache = function() {
|
|
||||||
var key,
|
|
||||||
cache = angular.element.cache;
|
|
||||||
|
|
||||||
for(key in cache) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(cache,key)) {
|
|
||||||
var handle = cache[key].handle;
|
|
||||||
|
|
||||||
handle && angular.element(handle.elem).off();
|
|
||||||
delete cache[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
if(window.jasmine || window.mocha) {
|
if(window.jasmine || window.mocha) {
|
||||||
|
|
||||||
var currentSpec = null,
|
var currentSpec = null,
|
||||||
|
@ -1984,8 +2059,6 @@ if(window.jasmine || window.mocha) {
|
||||||
injector.get('$browser').pollFns.length = 0;
|
injector.get('$browser').pollFns.length = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
angular.mock.clearDataCache();
|
|
||||||
|
|
||||||
// clean up jquery's fragment cache
|
// clean up jquery's fragment cache
|
||||||
angular.forEach(angular.element.fragments, function(val, key) {
|
angular.forEach(angular.element.fragments, function(val, key) {
|
||||||
delete angular.element.fragments[key];
|
delete angular.element.fragments[key];
|
||||||
|
@ -2148,14 +2221,28 @@ if(window.jasmine || window.mocha) {
|
||||||
/////////////////////
|
/////////////////////
|
||||||
function workFn() {
|
function workFn() {
|
||||||
var modules = currentSpec.$modules || [];
|
var modules = currentSpec.$modules || [];
|
||||||
|
var strictDi = !!currentSpec.$injectorStrict;
|
||||||
modules.unshift('ngMock');
|
modules.unshift('ngMock');
|
||||||
modules.unshift('ng');
|
modules.unshift('ng');
|
||||||
var injector = currentSpec.$injector;
|
var injector = currentSpec.$injector;
|
||||||
if (!injector) {
|
if (!injector) {
|
||||||
injector = currentSpec.$injector = angular.injector(modules);
|
if (strictDi) {
|
||||||
|
// If strictDi is enabled, annotate the providerInjector blocks
|
||||||
|
angular.forEach(modules, function(moduleFn) {
|
||||||
|
if (typeof moduleFn === "function") {
|
||||||
|
angular.injector.$$annotate(moduleFn);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
injector = currentSpec.$injector = angular.injector(modules, strictDi);
|
||||||
|
currentSpec.$injectorStrict = strictDi;
|
||||||
}
|
}
|
||||||
for(var i = 0, ii = blockFns.length; i < ii; i++) {
|
for(var i = 0, ii = blockFns.length; i < ii; i++) {
|
||||||
|
if (currentSpec.$injectorStrict) {
|
||||||
|
// If the injector is strict / strictDi, and the spec wants to inject using automatic
|
||||||
|
// annotation, then annotate the function here.
|
||||||
|
injector.annotate(blockFns[i]);
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
/* jshint -W040 *//* Jasmine explicitly provides a `this` object when calling functions */
|
/* jshint -W040 *//* Jasmine explicitly provides a `this` object when calling functions */
|
||||||
injector.invoke(blockFns[i] || angular.noop, this);
|
injector.invoke(blockFns[i] || angular.noop, this);
|
||||||
|
@ -2171,6 +2258,22 @@ if(window.jasmine || window.mocha) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
angular.mock.inject.strictDi = function(value) {
|
||||||
|
value = arguments.length ? !!value : true;
|
||||||
|
return isSpecRunning() ? workFn() : workFn;
|
||||||
|
|
||||||
|
function workFn() {
|
||||||
|
if (value !== currentSpec.$injectorStrict) {
|
||||||
|
if (currentSpec.$injector) {
|
||||||
|
throw new Error('Injector already created, can not modify strict annotations');
|
||||||
|
} else {
|
||||||
|
currentSpec.$injectorStrict = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"name": "angular-mocks",
|
"name": "angular-mocks",
|
||||||
"version": "1.2.26",
|
"version": "1.3.0-rc.5",
|
||||||
"main": "./angular-mocks.js",
|
"main": "./angular-mocks.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular": "1.2.26"
|
"angular": "1.3.0-rc.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "angular-mocks",
|
"name": "angular-mocks",
|
||||||
"version": "",
|
"version": "1.3.0-rc.5",
|
||||||
"description": "AngularJS mocks for testing",
|
"description": "AngularJS mocks for testing",
|
||||||
"main": "angular-mocks.js",
|
"main": "angular-mocks.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"commit": "fe7adea2b896fc6eccae8d76542f7b2a320fe2cc"
|
"commit": "fe7adea2b896fc6eccae8d76542f7b2a320fe2cc"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/angular/bower-angular.git",
|
"_source": "git://github.com/angular/bower-angular.git",
|
||||||
"_target": "^1.3.0-beta.18",
|
"_target": "1.3.0-rc.5",
|
||||||
"_originalSource": "angular"
|
"_originalSource": "angular",
|
||||||
|
"_direct": true
|
||||||
}
|
}
|
|
@ -14,6 +14,6 @@
|
||||||
"commit": "7fc11efb37d6f2334ce957e26e9cf53690e10fa5"
|
"commit": "7fc11efb37d6f2334ce957e26e9cf53690e10fa5"
|
||||||
},
|
},
|
||||||
"_source": "git://github.com/EightMedia/hammer.js.git",
|
"_source": "git://github.com/EightMedia/hammer.js.git",
|
||||||
"_target": "~2.0.3",
|
"_target": "~2.0.2",
|
||||||
"_originalSource": "hammerjs"
|
"_originalSource": "hammerjs"
|
||||||
}
|
}
|
|
@ -3,7 +3,7 @@
|
||||||
<!--[if IE 7]> <html lang="en" ng-app="app" class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
<!--[if IE 7]> <html lang="en" ng-app="app" class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
||||||
<!--[if IE 8]> <html lang="en" ng-app="app" class="no-js lt-ie9"> <![endif]-->
|
<!--[if IE 8]> <html lang="en" ng-app="app" class="no-js lt-ie9"> <![endif]-->
|
||||||
<!--[if gt IE 8]><!--> <html lang="en" ng-app="app" class="no-js"> <!--<![endif]-->
|
<!--[if gt IE 8]><!--> <html lang="en" ng-app="app" class="no-js"> <!--<![endif]-->
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<title>ledger le-moine.org</title>
|
<title>ledger le-moine.org</title>
|
||||||
|
@ -20,8 +20,8 @@
|
||||||
|
|
||||||
<link type="text/css" rel="stylesheet" href="/css/app.css"/>
|
<link type="text/css" rel="stylesheet" href="/css/app.css"/>
|
||||||
<script src="/bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js"></script>
|
<script src="/bower_components/html5-boilerplate/js/vendor/modernizr-2.6.2.min.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body layout="vertical" layout-fill>
|
<body layout="vertical" layout-fill>
|
||||||
|
|
||||||
<!--[if lt IE 7]>
|
<!--[if lt IE 7]>
|
||||||
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
|
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
|
||||||
|
@ -36,12 +36,15 @@
|
||||||
-->
|
-->
|
||||||
<script src="/bower_components/underscore/underscore.js"></script>
|
<script src="/bower_components/underscore/underscore.js"></script>
|
||||||
<script src="/bower_components/moment/moment.js"></script>
|
<script src="/bower_components/moment/moment.js"></script>
|
||||||
|
<script src="/bower_components/hammerjs/hammer.min.js"></script>
|
||||||
<script src="/bower_components/d3/d3.min.js"></script>
|
<script src="/bower_components/d3/d3.min.js"></script>
|
||||||
<script src="/bower_components/nvd3/nv.d3.min.js"></script>
|
<script src="/bower_components/nvd3/nv.d3.min.js"></script>
|
||||||
|
|
||||||
<script src="/bower_components/angular/angular.js"></script>
|
<script src="/bower_components/angular/angular.js"></script>
|
||||||
<script src="/bower_components/angular-i18n/angular-locale_en-us.js"></script>
|
<script src="/bower_components/angular-i18n/angular-locale_en-us.js"></script>
|
||||||
<script src="/bower_components/angular-ui-router/release/angular-ui-router.js"></script>
|
<script src="/bower_components/angular-ui-router/release/angular-ui-router.js"></script>
|
||||||
|
<script src="/bower_components/angular-aria/angular-aria.min.js"></script>
|
||||||
|
<script src="/bower_components/angular-animate/angular-animate.min.js"></script>
|
||||||
<script src="/bower_components/angular-material/angular-material.min.js"></script>
|
<script src="/bower_components/angular-material/angular-material.min.js"></script>
|
||||||
<script src="/bower_components/angular-moment/angular-moment.min.js"></script>
|
<script src="/bower_components/angular-moment/angular-moment.min.js"></script>
|
||||||
<script src="/bower_components/angularjs-nvd3-directives/dist/angularjs-nvd3-directives.min.js"></script>
|
<script src="/bower_components/angularjs-nvd3-directives/dist/angularjs-nvd3-directives.min.js"></script>
|
||||||
|
@ -57,5 +60,5 @@
|
||||||
<script src="/js/controllers/NavbarCtrl.js"></script>
|
<script src="/js/controllers/NavbarCtrl.js"></script>
|
||||||
<script src="/js/controllers/BalanceCtrl.js"></script>
|
<script src="/js/controllers/BalanceCtrl.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -3,5 +3,6 @@ var app = angular.module( 'app', [ 'ui.router',
|
||||||
'angularMoment',
|
'angularMoment',
|
||||||
'chieffancypants.loadingBar',
|
'chieffancypants.loadingBar',
|
||||||
'ngTable',
|
'ngTable',
|
||||||
'angular-underscore'
|
'angular-underscore',
|
||||||
|
'ngMaterial'
|
||||||
] );
|
] );
|
||||||
|
|
|
@ -71,7 +71,7 @@ app.controller( 'BalanceCtrl',
|
||||||
_($scope.balance.buckets).each( function( bucket ) {
|
_($scope.balance.buckets).each( function( bucket ) {
|
||||||
bucket.data = [];
|
bucket.data = [];
|
||||||
|
|
||||||
if ( _(bucket.accounts_selected).isEmpty() ) {
|
if ( _(bucket.accounts_selected).isEmpty() && bucket.score_threshold === 0 ) {
|
||||||
bucket.data = bucket.raw_data;
|
bucket.data = bucket.raw_data;
|
||||||
} else {
|
} else {
|
||||||
_(bucket.accounts_selected).each( function( account_selected ) {
|
_(bucket.accounts_selected).each( function( account_selected ) {
|
||||||
|
@ -84,15 +84,21 @@ app.controller( 'BalanceCtrl',
|
||||||
}, 0 );
|
}, 0 );
|
||||||
} );
|
} );
|
||||||
};
|
};
|
||||||
$scope.select = { all: function( bucket ) {
|
|
||||||
bucket.accounts_selected = bucket.raw_data;
|
$scope.select = { score_higher_than: function( bucket, score ) {
|
||||||
},
|
|
||||||
score_higher_than: function( bucket, score ) {
|
|
||||||
bucket.accounts_selected = _(bucket.raw_data).filter( function( account ) {
|
bucket.accounts_selected = _(bucket.raw_data).filter( function( account ) {
|
||||||
return account.score > score;
|
return account.score >= score;
|
||||||
} );
|
} );
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
$scope.balance = {
|
||||||
|
buckets: [ { categories: 'Expenses',
|
||||||
|
score_threshold: 0 },
|
||||||
|
{ categories: 'Income Equity',
|
||||||
|
score_threshold: 0 } ],
|
||||||
|
details: {}
|
||||||
|
};
|
||||||
|
|
||||||
var retrieve_data = function () {
|
var retrieve_data = function () {
|
||||||
var from, to, period;
|
var from, to, period;
|
||||||
|
|
||||||
|
@ -113,19 +119,6 @@ app.controller( 'BalanceCtrl',
|
||||||
period += ' to ' + to.year() + '-' + ( to.month() + 1 ) + '-' + to.date();
|
period += ' to ' + to.year() + '-' + ( to.month() + 1 ) + '-' + to.date();
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.balance = {
|
|
||||||
buckets: [ {
|
|
||||||
categories: 'Expenses',
|
|
||||||
data: [],
|
|
||||||
total: 0
|
|
||||||
}, {
|
|
||||||
categories: 'Income Equity',
|
|
||||||
data: [],
|
|
||||||
total: 0
|
|
||||||
} ],
|
|
||||||
details: {}
|
|
||||||
};
|
|
||||||
|
|
||||||
API.register( { period: period,
|
API.register( { period: period,
|
||||||
categories: '' } )
|
categories: '' } )
|
||||||
.then( function ( response ) {
|
.then( function ( response ) {
|
||||||
|
@ -151,6 +144,7 @@ app.controller( 'BalanceCtrl',
|
||||||
}, 0 );
|
}, 0 );
|
||||||
bucket.accounts_selected = bucket.raw_data;
|
bucket.accounts_selected = bucket.raw_data;
|
||||||
|
|
||||||
|
$scope.select.score_higher_than( bucket, bucket.score_threshold );
|
||||||
$scope.filter_data();
|
$scope.filter_data();
|
||||||
} );
|
} );
|
||||||
} );
|
} );
|
||||||
|
|
|
@ -27,19 +27,18 @@
|
||||||
<div layout="vertical" layout-md="horizontal" layout-padding>
|
<div layout="vertical" layout-md="horizontal" layout-padding>
|
||||||
<div flex data-ng-repeat="bucket in balance.buckets">
|
<div flex data-ng-repeat="bucket in balance.buckets">
|
||||||
<material-toolbar class="material-theme-light">
|
<material-toolbar class="material-theme-light">
|
||||||
<h3 flex="100">{{bucket.categories}}, total = {{bucket.total | number:2}} €</h3>
|
<h3>{{bucket.categories}}, total = {{bucket.total | number:2}} €</h3>
|
||||||
<select multiple flex="100"
|
<material-slider discrete
|
||||||
|
min="0" max="10" step="1"
|
||||||
|
data-ng-model="bucket.score_threshold"
|
||||||
|
data-ng-change="select.score_higher_than( bucket, bucket.score_threshold ); filter_data()">
|
||||||
|
</material-slider>
|
||||||
|
<select multiple
|
||||||
data-ng-model="bucket.accounts_selected"
|
data-ng-model="bucket.accounts_selected"
|
||||||
data-ng-options="account.account for account in bucket.raw_data | orderBy:'account'"
|
data-ng-options="account.account for account in bucket.raw_data | orderBy:'account'"
|
||||||
data-ng-change="filter_data()">
|
data-ng-change="filter_data()">
|
||||||
<option value=''>...</option>
|
<option value=''>...</option>
|
||||||
</select>
|
</select>
|
||||||
<material-button flex="50"
|
|
||||||
class="material-theme-light-blue"
|
|
||||||
data-ng-click="select.all( bucket ); filter_data()">All</material-button>
|
|
||||||
<material-button flex="50"
|
|
||||||
class="material-theme-light-blue"
|
|
||||||
data-ng-click="select.score_higher_than( bucket, 5 ); filter_data()">Superfluous</material-button>
|
|
||||||
</material-toolbar>
|
</material-toolbar>
|
||||||
<material-content>
|
<material-content>
|
||||||
<nvd3-pie-chart data="bucket.data"
|
<nvd3-pie-chart data="bucket.data"
|
||||||
|
|
|
@ -5,12 +5,14 @@
|
||||||
"homepage": "https://github.com/cycojesus/ledgerrb",
|
"homepage": "https://github.com/cycojesus/ledgerrb",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"angular": "latest",
|
"angular": "1.3.0-rc.5",
|
||||||
"angular-i18n": "latest",
|
"angular-i18n": "1.3.0-rc.5",
|
||||||
"angular-loader": "latest",
|
"angular-animate": "1.3.0-rc.5",
|
||||||
|
"angular-aria": "1.3.0-rc.5",
|
||||||
|
"angular-loader": "1.3.0-rc.5",
|
||||||
"angular-loading-bar": "latest",
|
"angular-loading-bar": "latest",
|
||||||
"angular-material": "~0.0.3",
|
"angular-material": "latest",
|
||||||
"angular-mocks": "latest",
|
"angular-mocks": "1.3.0-rc.5",
|
||||||
"angular-moment": "latest",
|
"angular-moment": "latest",
|
||||||
"angular-ui-router": "latest",
|
"angular-ui-router": "latest",
|
||||||
"angularjs-nvd3-directives": "latest",
|
"angularjs-nvd3-directives": "latest",
|
||||||
|
@ -20,7 +22,9 @@
|
||||||
"angular-underscore": "latest"
|
"angular-underscore": "latest"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"angular": "^1.3.0-beta.18",
|
"d3": "~3.4.1",
|
||||||
"d3": "~3.4.1"
|
"angular": "1.3.0-rc.5",
|
||||||
|
"angular-animate": "1.3.0-rc.5",
|
||||||
|
"angular-aria": "1.3.0-rc.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue