mirror of
https://github.com/portainer/portainer.git
synced 2025-07-23 15:29:42 +02:00
feat(service): change update delay format to a time string in service… (#1470)
This commit is contained in:
parent
f3a23c7dd1
commit
728ef35cc1
5 changed files with 62 additions and 9 deletions
|
@ -141,5 +141,55 @@ angular.module('portainer.helpers').factory('ServiceHelper', [function ServiceHe
|
|||
}
|
||||
};
|
||||
|
||||
helper.translateHumanDurationToNanos = function(humanDuration) {
|
||||
var nanos = 0;
|
||||
var regex = /^([0-9]+)(h|m|s|ms|us|ns)$/i;
|
||||
var matches = humanDuration.match(regex);
|
||||
|
||||
if (matches !== null && matches.length === 3) {
|
||||
var duration = parseInt(matches[1], 10);
|
||||
var unit = matches[2];
|
||||
// Moment.js cannot use micro or nanoseconds
|
||||
switch (unit) {
|
||||
case 'ns':
|
||||
nanos = duration;
|
||||
break;
|
||||
case 'us':
|
||||
nanos = duration * 1000;
|
||||
break;
|
||||
default:
|
||||
nanos = moment.duration(duration, unit).asMilliseconds() * 1000000;
|
||||
}
|
||||
}
|
||||
return nanos;
|
||||
};
|
||||
|
||||
// Convert nanoseconds to the higher unit possible
|
||||
// e.g 1840 nanoseconds = 1804ns
|
||||
// e.g 300000000000 nanoseconds = 5m
|
||||
// e.g 3510000000000 nanoseconds = 3510s
|
||||
// e.g 3540000000000 nanoseconds = 59m
|
||||
// e.g 3600000000000 nanoseconds = 1h
|
||||
|
||||
helper.translateNanosToHumanDuration = function(nanos) {
|
||||
var humanDuration = '0s';
|
||||
|
||||
var conversionFromNano = {};
|
||||
conversionFromNano['ns'] = 1;
|
||||
conversionFromNano['us'] = conversionFromNano['ns'] * 1000;
|
||||
conversionFromNano['ms'] = conversionFromNano['us'] * 1000;
|
||||
conversionFromNano['s'] = conversionFromNano['ms'] * 1000;
|
||||
conversionFromNano['m'] = conversionFromNano['s'] * 60;
|
||||
conversionFromNano['h'] = conversionFromNano['m'] * 60;
|
||||
|
||||
Object.keys(conversionFromNano).forEach(function(unit) {
|
||||
if ( nanos % conversionFromNano[unit] === 0 && (nanos / conversionFromNano[unit]) > 0) {
|
||||
humanDuration = (nanos / conversionFromNano[unit]) + unit;
|
||||
}
|
||||
});
|
||||
|
||||
return humanDuration;
|
||||
};
|
||||
|
||||
return helper;
|
||||
}]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue