Move to Angular 1.5
This has been reasonably well tested, but further testing should be done on staging. Also optimizes avatar handling to use a constant size and not 404. Fixes #1434
This commit is contained in:
parent
dc42f22b79
commit
4aab834156
19 changed files with 91 additions and 133 deletions
7
static/lib/angular-cookies.min.js
vendored
7
static/lib/angular-cookies.min.js
vendored
|
@ -1,7 +0,0 @@
|
|||
/*
|
||||
AngularJS v1.2.0-ed8640b
|
||||
(c) 2010-2012 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
(function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&d.$apply())})();k=!0;d.$watch(function(){var a,e,d;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)(e=c[a],f.isString(e))?e!==g[a]&&(b.cookies(a,e),d=!0):f.isDefined(g[a])?c[a]=g[a]:delete c[a];if(d)for(a in e=b.cookies(),c)c[a]!==e[a]&&(m(e[a])?delete c[a]:c[a]=e[a])});
|
||||
return c}]).factory("$cookieStore",["$cookies",function(d){return{get:function(b){return(b=d[b])?f.fromJson(b):b},put:function(b,c){d[b]=f.toJson(c)},remove:function(b){delete d[b]}}}])})(window,window.angular);
|
66
static/lib/angular-debounce.js
vendored
66
static/lib/angular-debounce.js
vendored
|
@ -1,66 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('debounce', [])
|
||||
.service('debounce', ['$timeout', function ($timeout) {
|
||||
return function (func, wait, immediate) {
|
||||
var timeout, args, context, result;
|
||||
function debounce() {
|
||||
/* jshint validthis:true */
|
||||
context = this;
|
||||
args = arguments;
|
||||
var later = function () {
|
||||
timeout = null;
|
||||
if (!immediate) {
|
||||
result = func.apply(context, args);
|
||||
}
|
||||
};
|
||||
var callNow = immediate && !timeout;
|
||||
if (timeout) {
|
||||
$timeout.cancel(timeout);
|
||||
}
|
||||
timeout = $timeout(later, wait);
|
||||
if (callNow) {
|
||||
result = func.apply(context, args);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
debounce.cancel = function () {
|
||||
$timeout.cancel(timeout);
|
||||
timeout = null;
|
||||
};
|
||||
return debounce;
|
||||
};
|
||||
}])
|
||||
.directive('debounce', ['debounce', '$parse', function (debounce, $parse) {
|
||||
return {
|
||||
require: 'ngModel',
|
||||
priority: 999,
|
||||
link: function ($scope, $element, $attrs, ngModelController) {
|
||||
var debounceDuration = $parse($attrs.debounce)($scope);
|
||||
var immediate = !!$parse($attrs.immediate)($scope);
|
||||
var debouncedValue, pass;
|
||||
var prevRender = ngModelController.$render.bind(ngModelController);
|
||||
var commitSoon = debounce(function (viewValue) {
|
||||
pass = true;
|
||||
ngModelController.$setViewValue(viewValue);
|
||||
pass = false;
|
||||
}, parseInt(debounceDuration, 10), immediate);
|
||||
ngModelController.$render = function () {
|
||||
prevRender();
|
||||
commitSoon.cancel();
|
||||
//we must be first parser for this to work properly,
|
||||
//so we have priority 999 so that we unshift into parsers last
|
||||
debouncedValue = this.$viewValue;
|
||||
};
|
||||
ngModelController.$parsers.unshift(function (value) {
|
||||
if (pass) {
|
||||
debouncedValue = value;
|
||||
return value;
|
||||
} else {
|
||||
commitSoon(ngModelController.$viewValue);
|
||||
return debouncedValue;
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
Reference in a new issue