2015-02-18 02:20:39 -06:00
|
|
|
define([
|
|
|
|
'angular',
|
|
|
|
'kbn'
|
|
|
|
],
|
|
|
|
function (angular, kbn) {
|
2013-09-13 15:52:13 -05:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
angular
|
2014-07-28 11:11:52 -05:00
|
|
|
.module('grafana.directives')
|
2013-09-13 15:52:13 -05:00
|
|
|
.directive('ngModelOnblur', function() {
|
|
|
|
return {
|
|
|
|
restrict: 'A',
|
2014-08-18 02:35:13 -05:00
|
|
|
priority: 1,
|
2013-09-13 15:52:13 -05:00
|
|
|
require: 'ngModel',
|
|
|
|
link: function(scope, elm, attr, ngModelCtrl) {
|
|
|
|
if (attr.type === 'radio' || attr.type === 'checkbox') {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2014-08-18 02:35:13 -05:00
|
|
|
elm.off('input keydown change');
|
2013-09-13 15:52:13 -05:00
|
|
|
elm.bind('blur', function() {
|
|
|
|
scope.$apply(function() {
|
|
|
|
ngModelCtrl.$setViewValue(elm.val());
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
};
|
2015-01-12 07:00:30 -06: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 02:20:39 -06: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 15:52:13 -05:00
|
|
|
});
|
2014-08-18 02:35:13 -05:00
|
|
|
});
|