diff --git a/public/app/app.ts b/public/app/app.ts
index 77f56264504..8e30747072e 100644
--- a/public/app/app.ts
+++ b/public/app/app.ts
@@ -21,7 +21,7 @@ import _ from 'lodash';
import moment from 'moment';
// add move to lodash for backward compatabiltiy
-_.move = function(array, fromIndex, toIndex) {
+_.move = (array, fromIndex, toIndex) => {
array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);
return array;
};
@@ -76,9 +76,9 @@ export class GrafanaApp {
$provide.decorator('$http', [
'$delegate',
'$templateCache',
- function($delegate, $templateCache) {
+ ($delegate, $templateCache) => {
const get = $delegate.get;
- $delegate.get = function(url, config) {
+ $delegate.get = (url, config) => {
if (url.match(/\.html$/)) {
// some template's already exist in the cache
if (!$templateCache.get(url)) {
@@ -135,7 +135,7 @@ export class GrafanaApp {
this.preBootModules = null;
});
})
- .catch(function(err) {
+ .catch(err => {
console.log('Application boot failed:', err);
});
}
diff --git a/public/app/containers/Explore/utils/debounce.ts b/public/app/containers/Explore/utils/debounce.ts
index 5fda5a05f5f..a7c9450a6c1 100644
--- a/public/app/containers/Explore/utils/debounce.ts
+++ b/public/app/containers/Explore/utils/debounce.ts
@@ -4,7 +4,7 @@ export default function debounce(func, wait) {
return function(this: any) {
const context = this;
const args = arguments;
- const later = function() {
+ const later = () => {
timeout = null;
func.apply(context, args);
};
diff --git a/public/app/core/components/gf_page.ts b/public/app/core/components/gf_page.ts
index ad0770940ec..057a307f205 100644
--- a/public/app/core/components/gf_page.ts
+++ b/public/app/core/components/gf_page.ts
@@ -31,7 +31,7 @@ export function gfPageDirective() {
header: '?gfPageHeader',
body: 'gfPageBody',
},
- link: function(scope, elem, attrs) {
+ link: (scope, elem, attrs) => {
console.log(scope);
},
};
diff --git a/public/app/core/components/scroll/page_scroll.ts b/public/app/core/components/scroll/page_scroll.ts
index b6603f06175..2d6e27f8b22 100644
--- a/public/app/core/components/scroll/page_scroll.ts
+++ b/public/app/core/components/scroll/page_scroll.ts
@@ -4,7 +4,7 @@ import appEvents from 'app/core/app_events';
export function pageScrollbar() {
return {
restrict: 'A',
- link: function(scope, elem, attrs) {
+ link: (scope, elem, attrs) => {
let lastPos = 0;
appEvents.on(
diff --git a/public/app/core/components/scroll/scroll.ts b/public/app/core/components/scroll/scroll.ts
index 2d60825e739..bd355817f92 100644
--- a/public/app/core/components/scroll/scroll.ts
+++ b/public/app/core/components/scroll/scroll.ts
@@ -14,7 +14,7 @@ const scrollerClass = 'baron__scroller';
export function geminiScrollbar() {
return {
restrict: 'A',
- link: function(scope, elem, attrs) {
+ link: (scope, elem, attrs) => {
let scrollRoot = elem.parent();
const scroller = elem;
diff --git a/public/app/core/controllers/invited_ctrl.ts b/public/app/core/controllers/invited_ctrl.ts
index e9127af26b7..63f9d975c1f 100644
--- a/public/app/core/controllers/invited_ctrl.ts
+++ b/public/app/core/controllers/invited_ctrl.ts
@@ -16,8 +16,8 @@ export class InvitedCtrl {
},
};
- $scope.init = function() {
- backendSrv.get('/api/user/invite/' + $routeParams.code).then(function(invite) {
+ $scope.init = () => {
+ backendSrv.get('/api/user/invite/' + $routeParams.code).then(invite => {
$scope.formModel.name = invite.name;
$scope.formModel.email = invite.email;
$scope.formModel.username = invite.email;
@@ -28,12 +28,12 @@ export class InvitedCtrl {
});
};
- $scope.submit = function() {
+ $scope.submit = () => {
if (!$scope.inviteForm.$valid) {
return;
}
- backendSrv.post('/api/user/invite/complete', $scope.formModel).then(function() {
+ backendSrv.post('/api/user/invite/complete', $scope.formModel).then(() => {
window.location.href = config.appSubUrl + '/';
});
};
diff --git a/public/app/core/controllers/login_ctrl.ts b/public/app/core/controllers/login_ctrl.ts
index 737596fcdf6..de4e3415dfb 100644
--- a/public/app/core/controllers/login_ctrl.ts
+++ b/public/app/core/controllers/login_ctrl.ts
@@ -29,7 +29,7 @@ export class LoginCtrl {
$scope.loginMode = true;
$scope.submitBtnText = 'Log in';
- $scope.init = function() {
+ $scope.init = () => {
$scope.$watch('loginMode', $scope.loginModeChanged);
if (config.loginError) {
@@ -37,7 +37,7 @@ export class LoginCtrl {
}
};
- $scope.submit = function() {
+ $scope.submit = () => {
if ($scope.loginMode) {
$scope.login();
} else {
@@ -45,7 +45,7 @@ export class LoginCtrl {
}
};
- $scope.changeView = function() {
+ $scope.changeView = () => {
const loginView = document.querySelector('#login-view');
const changePasswordView = document.querySelector('#change-password-view');
@@ -65,7 +65,7 @@ export class LoginCtrl {
}, 400);
};
- $scope.changePassword = function() {
+ $scope.changePassword = () => {
$scope.command.oldPassword = 'admin';
if ($scope.command.newPassword !== $scope.command.confirmNew) {
@@ -73,25 +73,25 @@ export class LoginCtrl {
return;
}
- backendSrv.put('/api/user/password', $scope.command).then(function() {
+ backendSrv.put('/api/user/password', $scope.command).then(() => {
$scope.toGrafana();
});
};
- $scope.skip = function() {
+ $scope.skip = () => {
$scope.toGrafana();
};
- $scope.loginModeChanged = function(newValue) {
+ $scope.loginModeChanged = newValue => {
$scope.submitBtnText = newValue ? 'Log in' : 'Sign up';
};
- $scope.signUp = function() {
+ $scope.signUp = () => {
if (!$scope.loginForm.$valid) {
return;
}
- backendSrv.post('/api/user/signup', $scope.formModel).then(function(result) {
+ backendSrv.post('/api/user/signup', $scope.formModel).then(result => {
if (result.status === 'SignUpCreated') {
$location.path('/signup').search({ email: $scope.formModel.email });
} else {
@@ -100,7 +100,7 @@ export class LoginCtrl {
});
};
- $scope.login = function() {
+ $scope.login = () => {
delete $scope.loginError;
if (!$scope.loginForm.$valid) {
@@ -110,7 +110,7 @@ export class LoginCtrl {
backendSrv
.post('/login', $scope.formModel)
- .then(function(result) {
+ .then(result => {
$scope.result = result;
if ($scope.formModel.password !== 'admin' || $scope.ldapEnabled || $scope.authProxyEnabled) {
@@ -125,7 +125,7 @@ export class LoginCtrl {
});
};
- $scope.toGrafana = function() {
+ $scope.toGrafana = () => {
const params = $location.search();
if (params.redirect && params.redirect[0] === '/') {
diff --git a/public/app/core/controllers/reset_password_ctrl.ts b/public/app/core/controllers/reset_password_ctrl.ts
index 244f0307150..933655399e8 100644
--- a/public/app/core/controllers/reset_password_ctrl.ts
+++ b/public/app/core/controllers/reset_password_ctrl.ts
@@ -22,16 +22,16 @@ export class ResetPasswordCtrl {
},
};
- $scope.sendResetEmail = function() {
+ $scope.sendResetEmail = () => {
if (!$scope.sendResetForm.$valid) {
return;
}
- backendSrv.post('/api/user/password/send-reset-email', $scope.formModel).then(function() {
+ backendSrv.post('/api/user/password/send-reset-email', $scope.formModel).then(() => {
$scope.mode = 'email-sent';
});
};
- $scope.submitReset = function() {
+ $scope.submitReset = () => {
if (!$scope.resetForm.$valid) {
return;
}
@@ -41,7 +41,7 @@ export class ResetPasswordCtrl {
return;
}
- backendSrv.post('/api/user/password/reset', $scope.formModel).then(function() {
+ backendSrv.post('/api/user/password/reset', $scope.formModel).then(() => {
$location.path('login');
});
};
diff --git a/public/app/core/filters/filters.ts b/public/app/core/filters/filters.ts
index 745873369c0..c4dbf6b7535 100644
--- a/public/app/core/filters/filters.ts
+++ b/public/app/core/filters/filters.ts
@@ -3,22 +3,22 @@ import angular from 'angular';
import moment from 'moment';
import coreModule from '../core_module';
-coreModule.filter('stringSort', function() {
- return function(input) {
+coreModule.filter('stringSort', () => {
+ return input => {
return input.sort();
};
});
-coreModule.filter('slice', function() {
- return function(arr, start, end) {
+coreModule.filter('slice', () => {
+ return (arr, start, end) => {
if (!_.isUndefined(arr)) {
return arr.slice(start, end);
}
};
});
-coreModule.filter('stringify', function() {
- return function(arr) {
+coreModule.filter('stringify', () => {
+ return arr => {
if (_.isObject(arr) && !_.isArray(arr)) {
return angular.toJson(arr);
} else {
@@ -27,8 +27,8 @@ coreModule.filter('stringify', function() {
};
});
-coreModule.filter('moment', function() {
- return function(date, mode) {
+coreModule.filter('moment', () => {
+ return (date, mode) => {
switch (mode) {
case 'ago':
return moment(date).fromNow();
@@ -37,8 +37,8 @@ coreModule.filter('moment', function() {
};
});
-coreModule.filter('noXml', function() {
- const noXml = function(text) {
+coreModule.filter('noXml', () => {
+ const noXml = text => {
return _.isString(text)
? text
.replace(/&/g, '&')
@@ -48,14 +48,14 @@ coreModule.filter('noXml', function() {
.replace(/"/g, '"')
: text;
};
- return function(text) {
+ return text => {
return _.isArray(text) ? _.map(text, noXml) : noXml(text);
};
});
/** @ngInject */
function interpolateTemplateVars(templateSrv) {
- const filterFunc: any = function(text, scope) {
+ const filterFunc: any = (text, scope) => {
let scopedVars;
if (scope.ctrl) {
scopedVars = (scope.ctrl.panel || scope.ctrl.row).scopedVars;
diff --git a/public/app/core/lodash_extended.ts b/public/app/core/lodash_extended.ts
index 1a8820fb0db..1fc7d7c341a 100644
--- a/public/app/core/lodash_extended.ts
+++ b/public/app/core/lodash_extended.ts
@@ -4,7 +4,7 @@ import _ from 'lodash';
Mixins :)
*/
_.mixin({
- move: function(array, fromIndex, toIndex) {
+ move: (array, fromIndex, toIndex) => {
array.splice(toIndex, 0, array.splice(fromIndex, 1)[0]);
return array;
},
diff --git a/public/app/core/services/alert_srv.ts b/public/app/core/services/alert_srv.ts
index 19ad81667d7..2d447651b75 100644
--- a/public/app/core/services/alert_srv.ts
+++ b/public/app/core/services/alert_srv.ts
@@ -70,7 +70,7 @@ export class AlertSrv {
const newAlertJson = angular.toJson(newAlert);
// remove same alert if it already exists
- _.remove(this.list, function(value) {
+ _.remove(this.list, value => {
return angular.toJson(value) === newAlertJson;
});
diff --git a/public/app/core/services/popover_srv.ts b/public/app/core/services/popover_srv.ts
index 631cc274021..3a00589c251 100644
--- a/public/app/core/services/popover_srv.ts
+++ b/public/app/core/services/popover_srv.ts
@@ -6,13 +6,13 @@ import Drop from 'tether-drop';
function popoverSrv(this: any, $compile, $rootScope, $timeout) {
let openDrop = null;
- this.close = function() {
+ this.close = () => {
if (openDrop) {
openDrop.close();
}
};
- this.show = function(options) {
+ this.show = options => {
if (openDrop) {
openDrop.close();
openDrop = null;
@@ -68,7 +68,7 @@ function popoverSrv(this: any, $compile, $rootScope, $timeout) {
}, 100);
// return close function
- return function() {
+ return () => {
if (drop) {
drop.close();
}
diff --git a/public/app/core/services/segment_srv.ts b/public/app/core/services/segment_srv.ts
index f03f5eca546..e7653ec5cf7 100644
--- a/public/app/core/services/segment_srv.ts
+++ b/public/app/core/services/segment_srv.ts
@@ -42,48 +42,48 @@ export function uiSegmentSrv(this: any, $sce, templateSrv) {
}
};
- this.newSelectMeasurement = function() {
+ this.newSelectMeasurement = () => {
return new MetricSegment({ value: 'select measurement', fake: true });
};
- this.newFake = function(text, type, cssClass) {
+ this.newFake = (text, type, cssClass) => {
return new MetricSegment({ value: text, fake: true, type: type, cssClass: cssClass });
};
- this.newSegment = function(options) {
+ this.newSegment = options => {
return new MetricSegment(options);
};
- this.newKey = function(key) {
+ this.newKey = key => {
return new MetricSegment({ value: key, type: 'key', cssClass: 'query-segment-key' });
};
- this.newKeyValue = function(value) {
+ this.newKeyValue = value => {
return new MetricSegment({ value: value, type: 'value', cssClass: 'query-segment-value' });
};
- this.newCondition = function(condition) {
+ this.newCondition = condition => {
return new MetricSegment({ value: condition, type: 'condition', cssClass: 'query-keyword' });
};
- this.newOperator = function(op) {
+ this.newOperator = op => {
return new MetricSegment({ value: op, type: 'operator', cssClass: 'query-segment-operator' });
};
- this.newOperators = function(ops) {
- return _.map(ops, function(op) {
+ this.newOperators = ops => {
+ return _.map(ops, op => {
return new MetricSegment({ value: op, type: 'operator', cssClass: 'query-segment-operator' });
});
};
- this.transformToSegments = function(addTemplateVars, variableTypeFilter) {
- return function(results) {
- const segments = _.map(results, function(segment) {
+ this.transformToSegments = (addTemplateVars, variableTypeFilter) => {
+ return results => {
+ const segments = _.map(results, segment => {
return self.newSegment({ value: segment.text, expandable: segment.expandable });
});
if (addTemplateVars) {
- _.each(templateSrv.variables, function(variable) {
+ _.each(templateSrv.variables, variable => {
if (variableTypeFilter === void 0 || variableTypeFilter === variable.type) {
segments.unshift(self.newSegment({ type: 'value', value: '$' + variable.name, expandable: true }));
}
@@ -94,11 +94,11 @@ export function uiSegmentSrv(this: any, $sce, templateSrv) {
};
};
- this.newSelectMetric = function() {
+ this.newSelectMetric = () => {
return new MetricSegment({ value: 'select metric', fake: true });
};
- this.newPlusButton = function() {
+ this.newPlusButton = () => {
return new MetricSegment({
fake: true,
html: '',
diff --git a/public/app/core/services/util_srv.ts b/public/app/core/services/util_srv.ts
index da598fbb127..2b7538f1be2 100644
--- a/public/app/core/services/util_srv.ts
+++ b/public/app/core/services/util_srv.ts
@@ -44,7 +44,7 @@ export class UtilSrv {
backdrop: options.backdrop,
});
- Promise.resolve(modal).then(function(modalEl) {
+ Promise.resolve(modal).then(modalEl => {
modalEl.modal('show');
});
}
@@ -52,12 +52,12 @@ export class UtilSrv {
showConfirmModal(payload) {
const scope = this.$rootScope.$new();
- scope.onConfirm = function() {
+ scope.onConfirm = () => {
payload.onConfirm();
scope.dismiss();
};
- scope.updateConfirmText = function(value) {
+ scope.updateConfirmText = value => {
scope.confirmTextValid = payload.confirmText.toLowerCase() === value.toLowerCase();
};
diff --git a/public/app/core/specs/backend_srv.test.ts b/public/app/core/specs/backend_srv.test.ts
index e9cd5973d36..2e35b87deb4 100644
--- a/public/app/core/specs/backend_srv.test.ts
+++ b/public/app/core/specs/backend_srv.test.ts
@@ -1,7 +1,7 @@
import { BackendSrv } from 'app/core/services/backend_srv';
jest.mock('app/core/store');
-describe('backend_srv', function() {
+describe('backend_srv', () => {
const _httpBackend = options => {
if (options.url === 'gateway-error') {
return Promise.reject({ status: 502 });
diff --git a/public/app/core/specs/datemath.test.ts b/public/app/core/specs/datemath.test.ts
index 8197f01c872..bbc54970411 100644
--- a/public/app/core/specs/datemath.test.ts
+++ b/public/app/core/specs/datemath.test.ts
@@ -91,11 +91,11 @@ describe('DateMath', () => {
});
_.each(spans, span => {
- it('should round now to the beginning of the ' + span, function() {
+ it('should round now to the beginning of the ' + span, () => {
expect(dateMath.parse('now/' + span).format(format)).toEqual(now.startOf(span).format(format));
});
- it('should round now to the end of the ' + span, function() {
+ it('should round now to the end of the ' + span, () => {
expect(dateMath.parse('now/' + span, true).format(format)).toEqual(now.endOf(span).format(format));
});
});
@@ -114,18 +114,18 @@ describe('DateMath', () => {
});
});
- describe('relative time to date parsing', function() {
- it('should handle negative time', function() {
+ describe('relative time to date parsing', () => {
+ it('should handle negative time', () => {
const date = dateMath.parseDateMath('-2d', moment([2014, 1, 5]));
expect(date.valueOf()).toEqual(moment([2014, 1, 3]).valueOf());
});
- it('should handle multiple math expressions', function() {
+ it('should handle multiple math expressions', () => {
const date = dateMath.parseDateMath('-2d-6h', moment([2014, 1, 5]));
expect(date.valueOf()).toEqual(moment([2014, 1, 2, 18]).valueOf());
});
- it('should return false when invalid expression', function() {
+ it('should return false when invalid expression', () => {
const date = dateMath.parseDateMath('2', moment([2014, 1, 5]));
expect(date).toEqual(undefined);
});
diff --git a/public/app/core/specs/file_export.test.ts b/public/app/core/specs/file_export.test.ts
index ced94fcdbc0..52ec4ccea19 100644
--- a/public/app/core/specs/file_export.test.ts
+++ b/public/app/core/specs/file_export.test.ts
@@ -101,7 +101,7 @@ describe('file_export', () => {
expect(returnedText).toBe(expectedText);
});
- it('should decode HTML encoded characters', function() {
+ it('should decode HTML encoded characters', () => {
const inputTable = {
columns: [{ text: 'string_value' }],
rows: [
diff --git a/public/app/core/specs/kbn.test.ts b/public/app/core/specs/kbn.test.ts
index b4072adf7cf..dfa665e3205 100644
--- a/public/app/core/specs/kbn.test.ts
+++ b/public/app/core/specs/kbn.test.ts
@@ -2,27 +2,27 @@ import kbn from '../utils/kbn';
import * as dateMath from '../utils/datemath';
import moment from 'moment';
-describe('unit format menu', function() {
+describe('unit format menu', () => {
const menu = kbn.getUnitFormats();
- menu.map(function(submenu) {
- describe('submenu ' + submenu.text, function() {
- it('should have a title', function() {
+ menu.map(submenu => {
+ describe('submenu ' + submenu.text, () => {
+ it('should have a title', () => {
expect(typeof submenu.text).toBe('string');
});
- it('should have a submenu', function() {
+ it('should have a submenu', () => {
expect(Array.isArray(submenu.submenu)).toBe(true);
});
- submenu.submenu.map(function(entry) {
- describe('entry ' + entry.text, function() {
- it('should have a title', function() {
+ submenu.submenu.map(entry => {
+ describe('entry ' + entry.text, () => {
+ it('should have a title', () => {
expect(typeof entry.text).toBe('string');
});
- it('should have a format', function() {
+ it('should have a format', () => {
expect(typeof entry.value).toBe('string');
});
- it('should have a valid format', function() {
+ it('should have a valid format', () => {
expect(typeof kbn.valueFormats[entry.value]).toBe('function');
});
});
@@ -32,8 +32,8 @@ describe('unit format menu', function() {
});
function describeValueFormat(desc, value, tickSize, tickDecimals, result) {
- describe('value format: ' + desc, function() {
- it('should translate ' + value + ' as ' + result, function() {
+ describe('value format: ' + desc, () => {
+ it('should translate ' + value + ' as ' + result, () => {
const scaledDecimals = tickDecimals - Math.floor(Math.log(tickSize) / Math.LN10);
const str = kbn.valueFormats[desc](value, tickDecimals, scaledDecimals);
expect(str).toBe(result);
@@ -100,85 +100,85 @@ describeValueFormat('d', 3, 1, 0, '3 day');
describeValueFormat('d', 245, 100, 0, '35 week');
describeValueFormat('d', 2456, 10, 0, '6.73 year');
-describe('date time formats', function() {
+describe('date time formats', () => {
const epoch = 1505634997920;
const utcTime = moment.utc(epoch);
const browserTime = moment(epoch);
- it('should format as iso date', function() {
+ it('should format as iso date', () => {
const expected = browserTime.format('YYYY-MM-DD HH:mm:ss');
const actual = kbn.valueFormats.dateTimeAsIso(epoch);
expect(actual).toBe(expected);
});
- it('should format as iso date (in UTC)', function() {
+ it('should format as iso date (in UTC)', () => {
const expected = utcTime.format('YYYY-MM-DD HH:mm:ss');
const actual = kbn.valueFormats.dateTimeAsIso(epoch, true);
expect(actual).toBe(expected);
});
- it('should format as iso date and skip date when today', function() {
+ it('should format as iso date and skip date when today', () => {
const now = moment();
const expected = now.format('HH:mm:ss');
const actual = kbn.valueFormats.dateTimeAsIso(now.valueOf(), false);
expect(actual).toBe(expected);
});
- it('should format as iso date (in UTC) and skip date when today', function() {
+ it('should format as iso date (in UTC) and skip date when today', () => {
const now = moment.utc();
const expected = now.format('HH:mm:ss');
const actual = kbn.valueFormats.dateTimeAsIso(now.valueOf(), true);
expect(actual).toBe(expected);
});
- it('should format as US date', function() {
+ it('should format as US date', () => {
const expected = browserTime.format('MM/DD/YYYY h:mm:ss a');
const actual = kbn.valueFormats.dateTimeAsUS(epoch, false);
expect(actual).toBe(expected);
});
- it('should format as US date (in UTC)', function() {
+ it('should format as US date (in UTC)', () => {
const expected = utcTime.format('MM/DD/YYYY h:mm:ss a');
const actual = kbn.valueFormats.dateTimeAsUS(epoch, true);
expect(actual).toBe(expected);
});
- it('should format as US date and skip date when today', function() {
+ it('should format as US date and skip date when today', () => {
const now = moment();
const expected = now.format('h:mm:ss a');
const actual = kbn.valueFormats.dateTimeAsUS(now.valueOf(), false);
expect(actual).toBe(expected);
});
- it('should format as US date (in UTC) and skip date when today', function() {
+ it('should format as US date (in UTC) and skip date when today', () => {
const now = moment.utc();
const expected = now.format('h:mm:ss a');
const actual = kbn.valueFormats.dateTimeAsUS(now.valueOf(), true);
expect(actual).toBe(expected);
});
- it('should format as from now with days', function() {
+ it('should format as from now with days', () => {
const daysAgo = moment().add(-7, 'd');
const expected = '7 days ago';
const actual = kbn.valueFormats.dateTimeFromNow(daysAgo.valueOf(), false);
expect(actual).toBe(expected);
});
- it('should format as from now with days (in UTC)', function() {
+ it('should format as from now with days (in UTC)', () => {
const daysAgo = moment.utc().add(-7, 'd');
const expected = '7 days ago';
const actual = kbn.valueFormats.dateTimeFromNow(daysAgo.valueOf(), true);
expect(actual).toBe(expected);
});
- it('should format as from now with minutes', function() {
+ it('should format as from now with minutes', () => {
const daysAgo = moment().add(-2, 'm');
const expected = '2 minutes ago';
const actual = kbn.valueFormats.dateTimeFromNow(daysAgo.valueOf(), false);
expect(actual).toBe(expected);
});
- it('should format as from now with minutes (in UTC)', function() {
+ it('should format as from now with minutes (in UTC)', () => {
const daysAgo = moment.utc().add(-2, 'm');
const expected = '2 minutes ago';
const actual = kbn.valueFormats.dateTimeFromNow(daysAgo.valueOf(), true);
@@ -186,92 +186,92 @@ describe('date time formats', function() {
});
});
-describe('kbn.toFixed and negative decimals', function() {
- it('should treat as zero decimals', function() {
+describe('kbn.toFixed and negative decimals', () => {
+ it('should treat as zero decimals', () => {
const str = kbn.toFixed(186.123, -2);
expect(str).toBe('186');
});
});
-describe('kbn ms format when scaled decimals is null do not use it', function() {
- it('should use specified decimals', function() {
+describe('kbn ms format when scaled decimals is null do not use it', () => {
+ it('should use specified decimals', () => {
const str = kbn.valueFormats['ms'](10000086.123, 1, null);
expect(str).toBe('2.8 hour');
});
});
-describe('kbn kbytes format when scaled decimals is null do not use it', function() {
- it('should use specified decimals', function() {
+describe('kbn kbytes format when scaled decimals is null do not use it', () => {
+ it('should use specified decimals', () => {
const str = kbn.valueFormats['kbytes'](10000000, 3, null);
expect(str).toBe('9.537 GiB');
});
});
-describe('kbn deckbytes format when scaled decimals is null do not use it', function() {
- it('should use specified decimals', function() {
+describe('kbn deckbytes format when scaled decimals is null do not use it', () => {
+ it('should use specified decimals', () => {
const str = kbn.valueFormats['deckbytes'](10000000, 3, null);
expect(str).toBe('10.000 GB');
});
});
-describe('kbn roundValue', function() {
- it('should should handle null value', function() {
+describe('kbn roundValue', () => {
+ it('should should handle null value', () => {
const str = kbn.roundValue(null, 2);
expect(str).toBe(null);
});
- it('should round value', function() {
+ it('should round value', () => {
const str = kbn.roundValue(200.877, 2);
expect(str).toBe(200.88);
});
});
-describe('calculateInterval', function() {
- it('1h 100 resultion', function() {
+describe('calculateInterval', () => {
+ it('1h 100 resultion', () => {
const range = { from: dateMath.parse('now-1h'), to: dateMath.parse('now') };
const res = kbn.calculateInterval(range, 100, null);
expect(res.interval).toBe('30s');
});
- it('10m 1600 resolution', function() {
+ it('10m 1600 resolution', () => {
const range = { from: dateMath.parse('now-10m'), to: dateMath.parse('now') };
const res = kbn.calculateInterval(range, 1600, null);
expect(res.interval).toBe('500ms');
expect(res.intervalMs).toBe(500);
});
- it('fixed user min interval', function() {
+ it('fixed user min interval', () => {
const range = { from: dateMath.parse('now-10m'), to: dateMath.parse('now') };
const res = kbn.calculateInterval(range, 1600, '10s');
expect(res.interval).toBe('10s');
expect(res.intervalMs).toBe(10000);
});
- it('short time range and user low limit', function() {
+ it('short time range and user low limit', () => {
const range = { from: dateMath.parse('now-10m'), to: dateMath.parse('now') };
const res = kbn.calculateInterval(range, 1600, '>10s');
expect(res.interval).toBe('10s');
});
- it('large time range and user low limit', function() {
+ it('large time range and user low limit', () => {
const range = { from: dateMath.parse('now-14d'), to: dateMath.parse('now') };
const res = kbn.calculateInterval(range, 1000, '>10s');
expect(res.interval).toBe('20m');
});
- it('10s 900 resolution and user low limit in ms', function() {
+ it('10s 900 resolution and user low limit in ms', () => {
const range = { from: dateMath.parse('now-10s'), to: dateMath.parse('now') };
const res = kbn.calculateInterval(range, 900, '>15ms');
expect(res.interval).toBe('15ms');
});
- it('1d 1 resolution', function() {
+ it('1d 1 resolution', () => {
const range = { from: dateMath.parse('now-1d'), to: dateMath.parse('now') };
const res = kbn.calculateInterval(range, 1, null);
expect(res.interval).toBe('1d');
expect(res.intervalMs).toBe(86400000);
});
- it('86399s 1 resolution', function() {
+ it('86399s 1 resolution', () => {
const range = {
from: dateMath.parse('now-86390s'),
to: dateMath.parse('now'),
@@ -282,140 +282,140 @@ describe('calculateInterval', function() {
});
});
-describe('hex', function() {
- it('positive integer', function() {
+describe('hex', () => {
+ it('positive integer', () => {
const str = kbn.valueFormats.hex(100, 0);
expect(str).toBe('64');
});
- it('negative integer', function() {
+ it('negative integer', () => {
const str = kbn.valueFormats.hex(-100, 0);
expect(str).toBe('-64');
});
- it('null', function() {
+ it('null', () => {
const str = kbn.valueFormats.hex(null, 0);
expect(str).toBe('');
});
- it('positive float', function() {
+ it('positive float', () => {
const str = kbn.valueFormats.hex(50.52, 1);
expect(str).toBe('32.8');
});
- it('negative float', function() {
+ it('negative float', () => {
const str = kbn.valueFormats.hex(-50.333, 2);
expect(str).toBe('-32.547AE147AE14');
});
});
-describe('hex 0x', function() {
- it('positive integeter', function() {
+describe('hex 0x', () => {
+ it('positive integeter', () => {
const str = kbn.valueFormats.hex0x(7999, 0);
expect(str).toBe('0x1F3F');
});
- it('negative integer', function() {
+ it('negative integer', () => {
const str = kbn.valueFormats.hex0x(-584, 0);
expect(str).toBe('-0x248');
});
- it('null', function() {
+ it('null', () => {
const str = kbn.valueFormats.hex0x(null, 0);
expect(str).toBe('');
});
- it('positive float', function() {
+ it('positive float', () => {
const str = kbn.valueFormats.hex0x(74.443, 3);
expect(str).toBe('0x4A.716872B020C4');
});
- it('negative float', function() {
+ it('negative float', () => {
const str = kbn.valueFormats.hex0x(-65.458, 1);
expect(str).toBe('-0x41.8');
});
});
-describe('duration', function() {
- it('null', function() {
+describe('duration', () => {
+ it('null', () => {
const str = kbn.toDuration(null, 0, 'millisecond');
expect(str).toBe('');
});
- it('0 milliseconds', function() {
+ it('0 milliseconds', () => {
const str = kbn.toDuration(0, 0, 'millisecond');
expect(str).toBe('0 milliseconds');
});
- it('1 millisecond', function() {
+ it('1 millisecond', () => {
const str = kbn.toDuration(1, 0, 'millisecond');
expect(str).toBe('1 millisecond');
});
- it('-1 millisecond', function() {
+ it('-1 millisecond', () => {
const str = kbn.toDuration(-1, 0, 'millisecond');
expect(str).toBe('1 millisecond ago');
});
- it('seconds', function() {
+ it('seconds', () => {
const str = kbn.toDuration(1, 0, 'second');
expect(str).toBe('1 second');
});
- it('minutes', function() {
+ it('minutes', () => {
const str = kbn.toDuration(1, 0, 'minute');
expect(str).toBe('1 minute');
});
- it('hours', function() {
+ it('hours', () => {
const str = kbn.toDuration(1, 0, 'hour');
expect(str).toBe('1 hour');
});
- it('days', function() {
+ it('days', () => {
const str = kbn.toDuration(1, 0, 'day');
expect(str).toBe('1 day');
});
- it('weeks', function() {
+ it('weeks', () => {
const str = kbn.toDuration(1, 0, 'week');
expect(str).toBe('1 week');
});
- it('months', function() {
+ it('months', () => {
const str = kbn.toDuration(1, 0, 'month');
expect(str).toBe('1 month');
});
- it('years', function() {
+ it('years', () => {
const str = kbn.toDuration(1, 0, 'year');
expect(str).toBe('1 year');
});
- it('decimal days', function() {
+ it('decimal days', () => {
const str = kbn.toDuration(1.5, 2, 'day');
expect(str).toBe('1 day, 12 hours, 0 minutes');
});
- it('decimal months', function() {
+ it('decimal months', () => {
const str = kbn.toDuration(1.5, 3, 'month');
expect(str).toBe('1 month, 2 weeks, 1 day, 0 hours');
});
- it('no decimals', function() {
+ it('no decimals', () => {
const str = kbn.toDuration(38898367008, 0, 'millisecond');
expect(str).toBe('1 year');
});
- it('1 decimal', function() {
+ it('1 decimal', () => {
const str = kbn.toDuration(38898367008, 1, 'millisecond');
expect(str).toBe('1 year, 2 months');
});
- it('too many decimals', function() {
+ it('too many decimals', () => {
const str = kbn.toDuration(38898367008, 20, 'millisecond');
expect(str).toBe('1 year, 2 months, 3 weeks, 4 days, 5 hours, 6 minutes, 7 seconds, 8 milliseconds');
});
- it('floating point error', function() {
+ it('floating point error', () => {
const str = kbn.toDuration(36993906007, 8, 'millisecond');
expect(str).toBe('1 year, 2 months, 0 weeks, 3 days, 4 hours, 5 minutes, 6 seconds, 7 milliseconds');
});
});
-describe('volume', function() {
- it('1000m3', function() {
+describe('volume', () => {
+ it('1000m3', () => {
const str = kbn.valueFormats['m3'](1000, 1, null);
expect(str).toBe('1000.0 m³');
});
});
-describe('hh:mm:ss', function() {
- it('00:04:06', function() {
+describe('hh:mm:ss', () => {
+ it('00:04:06', () => {
const str = kbn.valueFormats['dthms'](246, 1);
expect(str).toBe('00:04:06');
});
- it('24:00:00', function() {
+ it('24:00:00', () => {
const str = kbn.valueFormats['dthms'](86400, 1);
expect(str).toBe('24:00:00');
});
- it('6824413:53:20', function() {
+ it('6824413:53:20', () => {
const str = kbn.valueFormats['dthms'](24567890000, 1);
expect(str).toBe('6824413:53:20');
});
diff --git a/public/app/core/specs/time_series.test.ts b/public/app/core/specs/time_series.test.ts
index 3c0fc42be65..6cf7399c059 100644
--- a/public/app/core/specs/time_series.test.ts
+++ b/public/app/core/specs/time_series.test.ts
@@ -1,33 +1,33 @@
import TimeSeries from 'app/core/time_series2';
import { updateLegendValues } from 'app/core/time_series2';
-describe('TimeSeries', function() {
+describe('TimeSeries', () => {
let points, series;
const yAxisFormats = ['short', 'ms'];
let testData;
- beforeEach(function() {
+ beforeEach(() => {
testData = {
alias: 'test',
datapoints: [[1, 2], [null, 3], [10, 4], [8, 5]],
};
});
- describe('when getting flot pairs', function() {
- it('with connected style, should ignore nulls', function() {
+ describe('when getting flot pairs', () => {
+ it('with connected style, should ignore nulls', () => {
series = new TimeSeries(testData);
points = series.getFlotPairs('connected', yAxisFormats);
expect(points.length).toBe(3);
});
- it('with null as zero style, should replace nulls with zero', function() {
+ it('with null as zero style, should replace nulls with zero', () => {
series = new TimeSeries(testData);
points = series.getFlotPairs('null as zero', yAxisFormats);
expect(points.length).toBe(4);
expect(points[1][1]).toBe(0);
});
- it('if last is null current should pick next to last', function() {
+ it('if last is null current should pick next to last', () => {
series = new TimeSeries({
datapoints: [[10, 1], [null, 2]],
});
@@ -35,7 +35,7 @@ describe('TimeSeries', function() {
expect(series.stats.current).toBe(10);
});
- it('max value should work for negative values', function() {
+ it('max value should work for negative values', () => {
series = new TimeSeries({
datapoints: [[-10, 1], [-4, 2]],
});
@@ -43,13 +43,13 @@ describe('TimeSeries', function() {
expect(series.stats.max).toBe(-4);
});
- it('average value should ignore nulls', function() {
+ it('average value should ignore nulls', () => {
series = new TimeSeries(testData);
series.getFlotPairs('null', yAxisFormats);
expect(series.stats.avg).toBe(6.333333333333333);
});
- it('the delta value should account for nulls', function() {
+ it('the delta value should account for nulls', () => {
series = new TimeSeries({
datapoints: [[1, 2], [3, 3], [null, 4], [10, 5], [15, 6]],
});
@@ -57,7 +57,7 @@ describe('TimeSeries', function() {
expect(series.stats.delta).toBe(14);
});
- it('the delta value should account for nulls on first', function() {
+ it('the delta value should account for nulls on first', () => {
series = new TimeSeries({
datapoints: [[null, 2], [1, 3], [10, 4], [15, 5]],
});
@@ -65,7 +65,7 @@ describe('TimeSeries', function() {
expect(series.stats.delta).toBe(14);
});
- it('the delta value should account for nulls on last', function() {
+ it('the delta value should account for nulls on last', () => {
series = new TimeSeries({
datapoints: [[1, 2], [5, 3], [10, 4], [null, 5]],
});
@@ -73,7 +73,7 @@ describe('TimeSeries', function() {
expect(series.stats.delta).toBe(9);
});
- it('the delta value should account for resets', function() {
+ it('the delta value should account for resets', () => {
series = new TimeSeries({
datapoints: [[1, 2], [5, 3], [10, 4], [0, 5], [10, 6]],
});
@@ -81,7 +81,7 @@ describe('TimeSeries', function() {
expect(series.stats.delta).toBe(19);
});
- it('the delta value should account for resets on last', function() {
+ it('the delta value should account for resets on last', () => {
series = new TimeSeries({
datapoints: [[1, 2], [2, 3], [10, 4], [8, 5]],
});
@@ -89,13 +89,13 @@ describe('TimeSeries', function() {
expect(series.stats.delta).toBe(17);
});
- it('the range value should be max - min', function() {
+ it('the range value should be max - min', () => {
series = new TimeSeries(testData);
series.getFlotPairs('null', yAxisFormats);
expect(series.stats.range).toBe(9);
});
- it('first value should ingone nulls', function() {
+ it('first value should ingone nulls', () => {
series = new TimeSeries(testData);
series.getFlotPairs('null', yAxisFormats);
expect(series.stats.first).toBe(1);
@@ -106,13 +106,13 @@ describe('TimeSeries', function() {
expect(series.stats.first).toBe(1);
});
- it('with null as zero style, average value should treat nulls as 0', function() {
+ it('with null as zero style, average value should treat nulls as 0', () => {
series = new TimeSeries(testData);
series.getFlotPairs('null as zero', yAxisFormats);
expect(series.stats.avg).toBe(4.75);
});
- it('average value should be null if all values is null', function() {
+ it('average value should be null if all values is null', () => {
series = new TimeSeries({
datapoints: [[null, 2], [null, 3], [null, 4], [null, 5]],
});
@@ -120,7 +120,7 @@ describe('TimeSeries', function() {
expect(series.stats.avg).toBe(null);
});
- it('calculates timeStep', function() {
+ it('calculates timeStep', () => {
series = new TimeSeries({
datapoints: [[null, 1], [null, 2], [null, 3]],
});
@@ -135,190 +135,190 @@ describe('TimeSeries', function() {
});
});
- describe('When checking if ms resolution is needed', function() {
- describe('msResolution with second resolution timestamps', function() {
- beforeEach(function() {
+ describe('When checking if ms resolution is needed', () => {
+ describe('msResolution with second resolution timestamps', () => {
+ beforeEach(() => {
series = new TimeSeries({
datapoints: [[45, 1234567890], [60, 1234567899]],
});
});
- it('should set hasMsResolution to false', function() {
+ it('should set hasMsResolution to false', () => {
expect(series.hasMsResolution).toBe(false);
});
});
- describe('msResolution with millisecond resolution timestamps', function() {
- beforeEach(function() {
+ describe('msResolution with millisecond resolution timestamps', () => {
+ beforeEach(() => {
series = new TimeSeries({
datapoints: [[55, 1236547890001], [90, 1234456709000]],
});
});
- it('should show millisecond resolution tooltip', function() {
+ it('should show millisecond resolution tooltip', () => {
expect(series.hasMsResolution).toBe(true);
});
});
- describe('msResolution with millisecond resolution timestamps but with trailing zeroes', function() {
- beforeEach(function() {
+ describe('msResolution with millisecond resolution timestamps but with trailing zeroes', () => {
+ beforeEach(() => {
series = new TimeSeries({
datapoints: [[45, 1234567890000], [60, 1234567899000]],
});
});
- it('should not show millisecond resolution tooltip', function() {
+ it('should not show millisecond resolution tooltip', () => {
expect(series.hasMsResolution).toBe(false);
});
});
});
- describe('can detect if series contains ms precision', function() {
+ describe('can detect if series contains ms precision', () => {
let fakedata;
- beforeEach(function() {
+ beforeEach(() => {
fakedata = testData;
});
- it('missing datapoint with ms precision', function() {
+ it('missing datapoint with ms precision', () => {
fakedata.datapoints[0] = [1337, 1234567890000];
series = new TimeSeries(fakedata);
expect(series.isMsResolutionNeeded()).toBe(false);
});
- it('contains datapoint with ms precision', function() {
+ it('contains datapoint with ms precision', () => {
fakedata.datapoints[0] = [1337, 1236547890001];
series = new TimeSeries(fakedata);
expect(series.isMsResolutionNeeded()).toBe(true);
});
});
- describe('series overrides', function() {
+ describe('series overrides', () => {
let series;
- beforeEach(function() {
+ beforeEach(() => {
series = new TimeSeries(testData);
});
- describe('fill & points', function() {
- beforeEach(function() {
+ describe('fill & points', () => {
+ beforeEach(() => {
series.alias = 'test';
series.applySeriesOverrides([{ alias: 'test', fill: 0, points: true }]);
});
- it('should set fill zero, and enable points', function() {
+ it('should set fill zero, and enable points', () => {
expect(series.lines.fill).toBe(0.001);
expect(series.points.show).toBe(true);
});
});
- describe('series option overrides, bars, true & lines false', function() {
- beforeEach(function() {
+ describe('series option overrides, bars, true & lines false', () => {
+ beforeEach(() => {
series.alias = 'test';
series.applySeriesOverrides([{ alias: 'test', bars: true, lines: false }]);
});
- it('should disable lines, and enable bars', function() {
+ it('should disable lines, and enable bars', () => {
expect(series.lines.show).toBe(false);
expect(series.bars.show).toBe(true);
});
});
- describe('series option overrides, linewidth, stack', function() {
- beforeEach(function() {
+ describe('series option overrides, linewidth, stack', () => {
+ beforeEach(() => {
series.alias = 'test';
series.applySeriesOverrides([{ alias: 'test', linewidth: 5, stack: false }]);
});
- it('should disable stack, and set lineWidth', function() {
+ it('should disable stack, and set lineWidth', () => {
expect(series.stack).toBe(false);
expect(series.lines.lineWidth).toBe(5);
});
});
- describe('series option overrides, dashes and lineWidth', function() {
- beforeEach(function() {
+ describe('series option overrides, dashes and lineWidth', () => {
+ beforeEach(() => {
series.alias = 'test';
series.applySeriesOverrides([{ alias: 'test', linewidth: 5, dashes: true }]);
});
- it('should enable dashes, set dashes lineWidth to 5 and lines lineWidth to 0', function() {
+ it('should enable dashes, set dashes lineWidth to 5 and lines lineWidth to 0', () => {
expect(series.dashes.show).toBe(true);
expect(series.dashes.lineWidth).toBe(5);
expect(series.lines.lineWidth).toBe(0);
});
});
- describe('series option overrides, fill below to', function() {
- beforeEach(function() {
+ describe('series option overrides, fill below to', () => {
+ beforeEach(() => {
series.alias = 'test';
series.applySeriesOverrides([{ alias: 'test', fillBelowTo: 'min' }]);
});
- it('should disable line fill and add fillBelowTo', function() {
+ it('should disable line fill and add fillBelowTo', () => {
expect(series.fillBelowTo).toBe('min');
});
});
- describe('series option overrides, pointradius, steppedLine', function() {
- beforeEach(function() {
+ describe('series option overrides, pointradius, steppedLine', () => {
+ beforeEach(() => {
series.alias = 'test';
series.applySeriesOverrides([{ alias: 'test', pointradius: 5, steppedLine: true }]);
});
- it('should set pointradius, and set steppedLine', function() {
+ it('should set pointradius, and set steppedLine', () => {
expect(series.points.radius).toBe(5);
expect(series.lines.steps).toBe(true);
});
});
- describe('override match on regex', function() {
- beforeEach(function() {
+ describe('override match on regex', () => {
+ beforeEach(() => {
series.alias = 'test_01';
series.applySeriesOverrides([{ alias: '/.*01/', lines: false }]);
});
- it('should match second series', function() {
+ it('should match second series', () => {
expect(series.lines.show).toBe(false);
});
});
- describe('override series y-axis, and z-index', function() {
- beforeEach(function() {
+ describe('override series y-axis, and z-index', () => {
+ beforeEach(() => {
series.alias = 'test';
series.applySeriesOverrides([{ alias: 'test', yaxis: 2, zindex: 2 }]);
});
- it('should set yaxis', function() {
+ it('should set yaxis', () => {
expect(series.yaxis).toBe(2);
});
- it('should set zindex', function() {
+ it('should set zindex', () => {
expect(series.zindex).toBe(2);
});
});
- describe('override color', function() {
- beforeEach(function() {
+ describe('override color', () => {
+ beforeEach(() => {
series.applySeriesOverrides([{ alias: 'test', color: '#112233' }]);
});
- it('should set color', function() {
+ it('should set color', () => {
expect(series.color).toBe('#112233');
});
- it('should set bars.fillColor', function() {
+ it('should set bars.fillColor', () => {
expect(series.bars.fillColor).toBe('#112233');
});
});
});
- describe('value formatter', function() {
+ describe('value formatter', () => {
let series;
- beforeEach(function() {
+ beforeEach(() => {
series = new TimeSeries(testData);
});
- it('should format non-numeric values as empty string', function() {
+ it('should format non-numeric values as empty string', () => {
expect(series.formatValue(null)).toBe('');
expect(series.formatValue(undefined)).toBe('');
expect(series.formatValue(NaN)).toBe('');
@@ -327,10 +327,10 @@ describe('TimeSeries', function() {
});
});
- describe('legend decimals', function() {
+ describe('legend decimals', () => {
let series, panel;
const height = 200;
- beforeEach(function() {
+ beforeEach(() => {
testData = {
alias: 'test',
datapoints: [[1, 2], [0, 3], [10, 4], [8, 5]],
@@ -347,14 +347,14 @@ describe('TimeSeries', function() {
};
});
- it('should set decimals based on Y axis (expect calculated decimals = 1)', function() {
+ it('should set decimals based on Y axis (expect calculated decimals = 1)', () => {
const data = [series];
// Expect ticks with this data will have decimals = 1
updateLegendValues(data, panel, height);
expect(data[0].decimals).toBe(2);
});
- it('should set decimals based on Y axis to 0 if calculated decimals = 0)', function() {
+ it('should set decimals based on Y axis to 0 if calculated decimals = 0)', () => {
testData.datapoints = [[10, 2], [0, 3], [100, 4], [80, 5]];
series = new TimeSeries(testData);
series.getFlotPairs();
@@ -363,14 +363,14 @@ describe('TimeSeries', function() {
expect(data[0].decimals).toBe(0);
});
- it('should set decimals to Y axis decimals + 1', function() {
+ it('should set decimals to Y axis decimals + 1', () => {
panel.yaxes[0].decimals = 2;
const data = [series];
updateLegendValues(data, panel, height);
expect(data[0].decimals).toBe(3);
});
- it('should set decimals to legend decimals value if it was set explicitly', function() {
+ it('should set decimals to legend decimals value if it was set explicitly', () => {
panel.decimals = 3;
const data = [series];
updateLegendValues(data, panel, height);
diff --git a/public/app/core/utils/css_loader.ts b/public/app/core/utils/css_loader.ts
index 19dd84a6087..b4c26293bb8 100644
--- a/public/app/core/utils/css_loader.ts
+++ b/public/app/core/utils/css_loader.ts
@@ -9,8 +9,8 @@ for (let i = 0; i < links.length; i++) {
}
const isWebkit = !!window.navigator.userAgent.match(/AppleWebKit\/([^ ;]*)/);
-const webkitLoadCheck = function(link, callback) {
- setTimeout(function() {
+const webkitLoadCheck = (link, callback) => {
+ setTimeout(() => {
for (let i = 0; i < document.styleSheets.length; i++) {
const sheet = document.styleSheets[i];
if (sheet.href === link.href) {
@@ -21,19 +21,19 @@ const webkitLoadCheck = function(link, callback) {
}, 10);
};
-const noop = function() {};
+const noop = () => {};
-const loadCSS = function(url) {
- return new Promise(function(resolve, reject) {
+const loadCSS = url => {
+ return new Promise((resolve, reject) => {
const link = document.createElement('link');
- const timeout = setTimeout(function() {
+ const timeout = setTimeout(() => {
reject('Unable to load CSS');
}, waitSeconds * 1000);
- const _callback = function(error) {
+ const _callback = error => {
clearTimeout(timeout);
link.onload = link.onerror = noop;
- setTimeout(function() {
+ setTimeout(() => {
if (error) {
reject(error);
} else {
@@ -47,14 +47,14 @@ const loadCSS = function(url) {
link.href = url;
if (!isWebkit) {
- link.onload = function() {
+ link.onload = () => {
_callback(undefined);
};
} else {
webkitLoadCheck(link, _callback);
}
- link.onerror = function(evt: any) {
+ link.onerror = (evt: any) => {
_callback(evt.error || new Error('Error loading CSS file.'));
};
diff --git a/public/app/features/dashboard/change_tracker.ts b/public/app/features/dashboard/change_tracker.ts
index 5047aefa199..aa71ac2e306 100644
--- a/public/app/features/dashboard/change_tracker.ts
+++ b/public/app/features/dashboard/change_tracker.ts
@@ -128,7 +128,7 @@ export class ChangeTracker {
});
// ignore template variable values
- _.each(dash.templating.list, function(value) {
+ _.each(dash.templating.list, value => {
value.current = null;
value.options = null;
value.filters = null;
diff --git a/public/app/features/dashboard/dashboard_loader_srv.ts b/public/app/features/dashboard/dashboard_loader_srv.ts
index b7705dd9497..572a92f07bc 100644
--- a/public/app/features/dashboard/dashboard_loader_srv.ts
+++ b/public/app/features/dashboard/dashboard_loader_srv.ts
@@ -59,7 +59,7 @@ export class DashboardLoaderSrv {
});
}
- promise.then(function(result) {
+ promise.then(result => {
if (result.meta.dashboardNotFound !== true) {
impressionSrv.addDashboardImpression(result.dashboard.id);
}
diff --git a/public/app/features/dashboard/repeat_option/repeat_option.ts b/public/app/features/dashboard/repeat_option/repeat_option.ts
index 19c28607640..4e04a7b3ecc 100644
--- a/public/app/features/dashboard/repeat_option/repeat_option.ts
+++ b/public/app/features/dashboard/repeat_option/repeat_option.ts
@@ -15,7 +15,7 @@ function dashRepeatOptionDirective(variableSrv) {
scope: {
panel: '=',
},
- link: function(scope, element) {
+ link: (scope, element) => {
element.css({ display: 'block', width: '100%' });
scope.variables = variableSrv.variables.map(item => {
@@ -36,7 +36,7 @@ function dashRepeatOptionDirective(variableSrv) {
scope.panel.repeatDirection = 'h';
}
- scope.optionChanged = function() {
+ scope.optionChanged = () => {
if (scope.panel.repeat) {
scope.panel.repeatDirection = 'h';
}
diff --git a/public/app/features/dashboard/shareModalCtrl.ts b/public/app/features/dashboard/shareModalCtrl.ts
index 27f0e0073a9..c00a6d8d57f 100644
--- a/public/app/features/dashboard/shareModalCtrl.ts
+++ b/public/app/features/dashboard/shareModalCtrl.ts
@@ -11,7 +11,7 @@ export function ShareModalCtrl($scope, $rootScope, $location, $timeout, timeSrv,
};
$scope.editor = { index: $scope.tabIndex || 0 };
- $scope.init = function() {
+ $scope.init = () => {
$scope.modeSharePanel = $scope.panel ? true : false;
$scope.tabs = [{ title: 'Link', src: 'shareLink.html' }];
@@ -34,7 +34,7 @@ export function ShareModalCtrl($scope, $rootScope, $location, $timeout, timeSrv,
$scope.buildUrl();
};
- $scope.buildUrl = function() {
+ $scope.buildUrl = () => {
let baseUrl = $location.absUrl();
const queryStart = baseUrl.indexOf('?');
@@ -90,7 +90,7 @@ export function ShareModalCtrl($scope, $rootScope, $location, $timeout, timeSrv,
// This function will try to return the proper full name of the local timezone
// Chrome does not handle the timezone offset (but phantomjs does)
- $scope.getLocalTimeZone = function() {
+ $scope.getLocalTimeZone = () => {
const utcOffset = '&tz=UTC' + encodeURIComponent(moment().format('Z'));
// Older browser does not the internationalization API
@@ -111,7 +111,7 @@ export function ShareModalCtrl($scope, $rootScope, $location, $timeout, timeSrv,
return '&tz=' + encodeURIComponent(options.timeZone);
};
- $scope.getShareUrl = function() {
+ $scope.getShareUrl = () => {
return $scope.shareUrl;
};
}
diff --git a/public/app/features/dashboard/share_snapshot_ctrl.ts b/public/app/features/dashboard/share_snapshot_ctrl.ts
index 2cda493838a..ec487801948 100644
--- a/public/app/features/dashboard/share_snapshot_ctrl.ts
+++ b/public/app/features/dashboard/share_snapshot_ctrl.ts
@@ -25,8 +25,8 @@ export class ShareSnapshotCtrl {
{ text: 'Public on the web', value: 3 },
];
- $scope.init = function() {
- backendSrv.get('/api/snapshot/shared-options').then(function(options) {
+ $scope.init = () => {
+ backendSrv.get('/api/snapshot/shared-options').then(options => {
$scope.externalUrl = options['externalSnapshotURL'];
$scope.sharingButtonText = options['externalSnapshotName'];
$scope.externalEnabled = options['externalEnabled'];
@@ -35,7 +35,7 @@ export class ShareSnapshotCtrl {
$scope.apiUrl = '/api/snapshots';
- $scope.createSnapshot = function(external) {
+ $scope.createSnapshot = external => {
$scope.dashboard.snapshot = {
timestamp: new Date(),
};
@@ -49,12 +49,12 @@ export class ShareSnapshotCtrl {
$rootScope.$broadcast('refresh');
- $timeout(function() {
+ $timeout(() => {
$scope.saveSnapshot(external);
}, $scope.snapshot.timeoutSeconds * 1000);
};
- $scope.saveSnapshot = function(external) {
+ $scope.saveSnapshot = external => {
const dash = $scope.dashboard.getSaveModelClone();
$scope.scrubDashboard(dash);
@@ -67,7 +67,7 @@ export class ShareSnapshotCtrl {
const postUrl = external ? $scope.externalUrl + $scope.apiUrl : $scope.apiUrl;
backendSrv.post(postUrl, cmdData).then(
- function(results) {
+ results => {
$scope.loading = false;
if (external) {
@@ -88,17 +88,17 @@ export class ShareSnapshotCtrl {
$scope.step = 2;
},
- function() {
+ () => {
$scope.loading = false;
}
);
};
- $scope.getSnapshotUrl = function() {
+ $scope.getSnapshotUrl = () => {
return $scope.snapshotUrl;
};
- $scope.scrubDashboard = function(dash) {
+ $scope.scrubDashboard = dash => {
// change title
dash.title = $scope.snapshot.name;
@@ -106,7 +106,7 @@ export class ShareSnapshotCtrl {
dash.time = timeSrv.timeRange();
// remove panel queries & links
- _.each(dash.panels, function(panel) {
+ _.each(dash.panels, panel => {
panel.targets = [];
panel.links = [];
panel.datasource = null;
@@ -114,10 +114,10 @@ export class ShareSnapshotCtrl {
// remove annotation queries
dash.annotations.list = _.chain(dash.annotations.list)
- .filter(function(annotation) {
+ .filter(annotation => {
return annotation.enable;
})
- .map(function(annotation) {
+ .map(annotation => {
return {
name: annotation.name,
enable: annotation.enable,
@@ -131,7 +131,7 @@ export class ShareSnapshotCtrl {
.value();
// remove template queries
- _.each(dash.templating.list, function(variable) {
+ _.each(dash.templating.list, variable => {
variable.query = '';
variable.options = variable.current;
variable.refresh = false;
@@ -149,21 +149,21 @@ export class ShareSnapshotCtrl {
// cleanup snapshotData
delete $scope.dashboard.snapshot;
- $scope.dashboard.forEachPanel(function(panel) {
+ $scope.dashboard.forEachPanel(panel => {
delete panel.snapshotData;
});
- _.each($scope.dashboard.annotations.list, function(annotation) {
+ _.each($scope.dashboard.annotations.list, annotation => {
delete annotation.snapshotData;
});
};
- $scope.deleteSnapshot = function() {
- backendSrv.get($scope.deleteUrl).then(function() {
+ $scope.deleteSnapshot = () => {
+ backendSrv.get($scope.deleteUrl).then(() => {
$scope.step = 3;
});
};
- $scope.saveExternalSnapshotRef = function(cmdData, results) {
+ $scope.saveExternalSnapshotRef = (cmdData, results) => {
// save external in local instance as well
cmdData.external = true;
cmdData.key = results.key;
diff --git a/public/app/features/dashboard/timepicker/input_date.ts b/public/app/features/dashboard/timepicker/input_date.ts
index 1e016ab0896..7de39dfacb2 100644
--- a/public/app/features/dashboard/timepicker/input_date.ts
+++ b/public/app/features/dashboard/timepicker/input_date.ts
@@ -5,10 +5,10 @@ export function inputDateDirective() {
return {
restrict: 'A',
require: 'ngModel',
- link: function($scope, $elem, attrs, ngModel) {
+ link: ($scope, $elem, attrs, ngModel) => {
const format = 'YYYY-MM-DD HH:mm:ss';
- const fromUser = function(text) {
+ const fromUser = text => {
if (text.indexOf('now') !== -1) {
if (!dateMath.isValid(text)) {
ngModel.$setValidity('error', false);
@@ -34,7 +34,7 @@ export function inputDateDirective() {
return parsed;
};
- const toUser = function(currentValue) {
+ const toUser = currentValue => {
if (moment.isMoment(currentValue)) {
return currentValue.format(format);
} else {
diff --git a/public/app/features/dashboard/upload.ts b/public/app/features/dashboard/upload.ts
index 7f7a177ac4b..10d35d1f300 100644
--- a/public/app/features/dashboard/upload.ts
+++ b/public/app/features/dashboard/upload.ts
@@ -16,11 +16,11 @@ function uploadDashboardDirective(timer, alertSrv, $location) {
scope: {
onUpload: '&',
},
- link: function(scope) {
+ link: scope => {
function file_selected(evt) {
const files = evt.target.files; // FileList object
- const readerOnload = function() {
- return function(e) {
+ const readerOnload = () => {
+ return e => {
let dash;
try {
dash = JSON.parse(e.target.result);
@@ -30,7 +30,7 @@ function uploadDashboardDirective(timer, alertSrv, $location) {
return;
}
- scope.$apply(function() {
+ scope.$apply(() => {
scope.onUpload({ dash: dash });
});
};
diff --git a/public/app/features/dashboard/view_state_srv.ts b/public/app/features/dashboard/view_state_srv.ts
index 773ec6ec711..521de4ecbad 100644
--- a/public/app/features/dashboard/view_state_srv.ts
+++ b/public/app/features/dashboard/view_state_srv.ts
@@ -22,18 +22,18 @@ export class DashboardViewState {
self.$scope = $scope;
self.dashboard = $scope.dashboard;
- $scope.onAppEvent('$routeUpdate', function() {
+ $scope.onAppEvent('$routeUpdate', () => {
const urlState = self.getQueryStringState();
if (self.needsSync(urlState)) {
self.update(urlState, true);
}
});
- $scope.onAppEvent('panel-change-view', function(evt, payload) {
+ $scope.onAppEvent('panel-change-view', (evt, payload) => {
self.update(payload);
});
- $scope.onAppEvent('panel-initialized', function(evt, payload) {
+ $scope.onAppEvent('panel-initialized', (evt, payload) => {
self.registerPanel(payload.scope);
});
@@ -156,7 +156,7 @@ export class DashboardViewState {
}
getPanelScope(id) {
- return _.find(this.panelScopes, function(panelScope) {
+ return _.find(this.panelScopes, panelScope => {
return panelScope.ctrl.panel.id === id;
});
}
@@ -176,7 +176,7 @@ export class DashboardViewState {
return false;
}
- this.$timeout(function() {
+ this.$timeout(() => {
if (self.oldTimeRange !== ctrl.range) {
self.$rootScope.$broadcast('refresh');
} else {
@@ -216,7 +216,7 @@ export class DashboardViewState {
}
}
- const unbind = panelScope.$on('$destroy', function() {
+ const unbind = panelScope.$on('$destroy', () => {
self.panelScopes = _.without(self.panelScopes, panelScope);
unbind();
});
@@ -226,7 +226,7 @@ export class DashboardViewState {
/** @ngInject */
export function dashboardViewStateSrv($location, $timeout, $rootScope) {
return {
- create: function($scope) {
+ create: $scope => {
return new DashboardViewState($scope, $location, $timeout, $rootScope);
},
};
diff --git a/public/app/features/dashlinks/module.ts b/public/app/features/dashlinks/module.ts
index aab6817b327..fde41a08d52 100644
--- a/public/app/features/dashlinks/module.ts
+++ b/public/app/features/dashlinks/module.ts
@@ -10,7 +10,7 @@ function dashLinksContainer() {
restrict: 'E',
controller: 'DashLinksContainerCtrl',
template: '