From 05cc48ca086efad57245160ae9f05d9375948bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6?= Date: Sat, 1 Dec 2018 12:48:07 +0100 Subject: AddfindIndex polyfill for ie11 (#746) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- appinfo/info.xml | 2 +- js/main.js | 83 ++++++++++++++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 3 files changed, 71 insertions(+), 16 deletions(-) diff --git a/appinfo/info.xml b/appinfo/info.xml index 55baf49c..e018a7f0 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -11,7 +11,7 @@ * 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem! * 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library. - 2.1.7 + 2.1.8 AGPL Alexander Weidinger Jan-Christoph Borchardt 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: '' - }); + 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: '' + // 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: '' + }); - $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: '' + }); + + $routeProvider.otherwise('/' + t('contacts', 'All contacts')); + }); diff --git a/package.json b/package.json index ac5142ac..2243c18c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "contacts", - "version": "2.1.6-beta", + "version": "2.1.8", "description": "Place this app in **nextcloud/apps/**", "author": { "name": "Hendrik Leppelsack", -- cgit v1.2.3