duplicati/Duplicati/Server/webroot/ngax/scripts/directives/parseSizeNumber.js
2016-11-27 12:01:37 +01:00

67 lines
2 KiB
JavaScript

backupApp.directive('parseSizeNumber', function(AppUtils) {
return {
restrict: 'A',
require: ['ngModel'],
scope: {
parseSizeNumber: '@'
},
link: function(scope, element, attr, ctrl) {
var multiplier = null;
ctrl[0].$parsers.push(function(txt) {
return (txt || '0') + (multiplier || '');
});
ctrl[0].$formatters.push(function(src) {
var parts = AppUtils.splitSizeString(src);
if (parts == null) {
multiplier = null;
return null;
}
if (scope.parseSizeNumber == 'uppercase')
multiplier = parts[1].toUpperCase();
else if (scope.parseSizeNumber == 'lowercase')
multiplier = parts[1].toLowerCase();
else
multiplier = parts[1];
return parts[0];
});
}
};
});
backupApp.directive('parseSizeMultiplier', function(AppUtils) {
return {
restrict: 'A',
scope: {
parseSizeMultiplier: '@'
},
require: ['ngModel'],
link: function(scope, element, attr, ctrl) {
var number = null;
ctrl[0].$parsers.push(function(txt) {
return (number || '0') + (txt || '');
});
ctrl[0].$formatters.push(function(src) {
var parts = AppUtils.splitSizeString(src);
if (parts == null) {
number = null;
return null;
}
number = parts[0];
if (scope.parseSizeMultiplier == 'uppercase')
return parts[1].toUpperCase();
else if (scope.parseSizeMultiplier == 'lowercase')
return parts[1].toLowerCase();
else
return parts[1];
});
}
};
});