summaryrefslogtreecommitdiffstats
path: root/js/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/main.js')
-rw-r--r--js/main.js83
1 files changed, 69 insertions, 14 deletions
diff --git a/js/main.js b/js/main.js
index ade26d2b..efe4728b 100644
--- a/js/main.js
+++ b/js/main.js
@@ -8,23 +8,78 @@
* @copyright Hendrik Leppelsack 2015
*/
-angular.module('contactsApp', ['uuid4', 'angular-cache', 'ngRoute', 'ui.bootstrap', 'ui.select', 'ngSanitize', 'angular-click-outside', 'ngclipboard'])
-.config(function($routeProvider) {
+/** findIndex polyfill */
+if (!Array.prototype.findIndex) {
+ Object.defineProperty(Array.prototype, 'findIndex', {
+ value: function(predicate) {
+ // 1. Let O be ? ToObject(this value).
+ if (this == null) {
+ throw new TypeError('"this" is null or not defined');
+ }
- $routeProvider.when('/:gid', {
- template: '<contactdetails></contactdetails>'
- });
+ var o = Object(this);
- $routeProvider.when('/contact/:uid', {
- redirectTo: function(parameters) {
- return '/' + t('contacts', 'All contacts') + '/' + parameters.uid;
- }
- });
+ // 2. Let len be ? ToLength(? Get(O, "length")).
+ var len = o.length >>> 0;
+
+ // 3. If IsCallable(predicate) is false, throw a TypeError exception.
+ if (typeof predicate !== 'function') {
+ throw new TypeError('predicate must be a function');
+ }
+
+ // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
+ var thisArg = arguments[1];
+
+ // 5. Let k be 0.
+ var k = 0;
- $routeProvider.when('/:gid/:uid', {
- template: '<contactdetails></contactdetails>'
+ // 6. Repeat, while k < len
+ while (k < len) {
+ // a. Let Pk be ! ToString(k).
+ // b. Let kValue be ? Get(O, Pk).
+ // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
+ // d. If testResult is true, return k.
+ var kValue = o[k];
+ if (predicate.call(thisArg, kValue, k, o)) {
+ return k;
+ }
+ // e. Increase k by 1.
+ k++;
+ }
+
+ // 7. Return -1.
+ return -1;
+ },
+ configurable: true,
+ writable: true
});
+}
+
+angular
+ .module('contactsApp', [
+ 'uuid4',
+ 'angular-cache',
+ 'ngRoute',
+ 'ui.bootstrap',
+ 'ui.select',
+ 'ngSanitize',
+ 'angular-click-outside',
+ 'ngclipboard'
+ ])
+ .config(function($routeProvider) {
+ $routeProvider.when('/:gid', {
+ template: '<contactdetails></contactdetails>'
+ });
- $routeProvider.otherwise('/' + t('contacts', 'All contacts'));
+ $routeProvider.when('/contact/:uid', {
+ redirectTo: function(parameters) {
+ return ('/' + t('contacts', 'All contacts') + '/' + parameters.uid);
+ }
+ });
-});
+ $routeProvider.when('/:gid/:uid', {
+ template: '<contactdetails></contactdetails>'
+ });
+
+ $routeProvider.otherwise('/' + t('contacts', 'All contacts'));
+ });