// Format bytes in human readable format define('helpers/formatSize', ['handlebars', 'utils/i18n'], function(Handlebars, i18n) { 'use strict'; var sizes = ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB']; function formatSize(bytes, options) { if (!bytes || bytes === 0) return '0 B'; if (bytes === -1) return i18n.gettext('not available'); if (bytes === -2) return i18n.gettext('unlimited'); var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10); // round to two digits return (bytes / Math.pow(1024, i)).toFixed(2) + ' ' + sizes[i]; } Handlebars.registerHelper('formatSize', formatSize); return formatSize; });