2015-02-18 09:20:39 +01:00
|
|
|
define([
|
|
|
|
|
'angular',
|
|
|
|
|
'kbn'
|
|
|
|
|
],
|
|
|
|
|
function (angular, kbn) {
|
2013-09-13 13:52:13 -07:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
angular
|
2014-07-28 18:11:52 +02:00
|
|
|
.module('grafana.directives')
|
2013-09-13 13:52:13 -07:00
|
|
|
.directive('ngModelOnblur', function() {
|
|
|
|
|
return {
|
|
|
|
|
restrict: 'A',
|
2014-08-18 09:35:13 +02:00
|
|
|
priority: 1,
|
2013-09-13 13:52:13 -07:00
|
|
|
require: 'ngModel',
|
|
|
|
|
link: function(scope, elm, attr, ngModelCtrl) {
|
|
|
|
|
if (attr.type === 'radio' || attr.type === 'checkbox') {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2014-08-18 09:35:13 +02:00
|
|
|
elm.off('input keydown change');
|
2013-09-13 13:52:13 -07:00
|
|
|
elm.bind('blur', function() {
|
|
|
|
|
scope.$apply(function() {
|
|
|
|
|
ngModelCtrl.$setViewValue(elm.val());
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
2015-01-12 14:00:30 +01:00
|
|
|
})
|
|
|
|
|
.directive('emptyToNull', function () {
|
|
|
|
|
return {
|
|
|
|
|
restrict: 'A',
|
|
|
|
|
require: 'ngModel',
|
|
|
|
|
link: function (scope, elm, attrs, ctrl) {
|
|
|
|
|
ctrl.$parsers.push(function (viewValue) {
|
|
|
|
|
if(viewValue === "") { return null; }
|
|
|
|
|
return viewValue;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
2015-02-18 09:20:39 +01:00
|
|
|
})
|
|
|
|
|
.directive('validTimeSpan', function() {
|
|
|
|
|
return {
|
|
|
|
|
require: 'ngModel',
|
|
|
|
|
link: function(scope, elm, attrs, ctrl) {
|
|
|
|
|
ctrl.$validators.integer = function(modelValue, viewValue) {
|
|
|
|
|
if (ctrl.$isEmpty(modelValue)) {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return kbn.isValidTimeSpan(viewValue);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
};
|
2013-09-13 13:52:13 -07:00
|
|
|
});
|
2014-08-18 09:35:13 +02:00
|
|
|
});
|