Implements all comments from @PVince81

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This commit is contained in:
Patrick Paysant 2016-12-07 11:03:15 +01:00 committed by Lukas Reschke
parent 6217393d6a
commit ff018d48cf
No known key found for this signature in database
GPG key ID: B9F6980CF6E759B1
2 changed files with 46 additions and 48 deletions

View file

@ -1625,51 +1625,6 @@ function humanFileSize(size, skipSmallSizes) {
return relativeSize + ' ' + readableFormat;
}
/**
* Returns a file size in bytes from a humanly readable string
* @param {string} string file size in human readable format
* @return {number}
*
* Makes 2kB to 2048.
*
* Inspired by computerFileSize in helper.php
*/
function computerFileSize(string) {
var s = string.toLowerCase();
if (!isNaN(parseFloat(s)) && isFinite(s)) {
return parseFloat(s);
}
var bytes_array = {
'b' : 1,
'k' : 1024,
'kb': 1024,
'mb': 1024 * 1024,
'm' : 1024 * 1024,
'gb': 1024 * 1024 * 1024,
'g' : 1024 * 1024 * 1024,
'tb': 1024 * 1024 * 1024 * 1024,
't' : 1024 * 1024 * 1024 * 1024,
'pb': 1024 * 1024 * 1024 * 1024 * 1024,
'p' : 1024 * 1024 * 1024 * 1024 * 1024
};
var bytes = parseFloat(s);
var matches = s.match(/([kmgtp]?b?)$/i);
if (matches[1]) {
bytes = bytes * bytes_array[matches[1]];
}
else {
return false;
}
bytes = Math.round(bytes);
console.log(bytes);
return bytes;
}
/**
* Format an UNIX timestamp to a human understandable format
* @param {number} timestamp UNIX timestamp
@ -1712,7 +1667,50 @@ function relative_modified_date(timestamp) {
OC.Util = {
// TODO: remove original functions from global namespace
humanFileSize: humanFileSize,
computerFileSize: computerFileSize,
/**
* Returns a file size in bytes from a humanly readable string
* @param {string} string file size in human readable format
* @return {number} or null if string could not be parsed
*
* Makes 2kB to 2048.
*
* Inspired by computerFileSize in helper.php
*/
computerFileSize: function (string) {
var s = string.toLowerCase();
if (!isNaN(parseFloat(s)) && isFinite(s)) {
return parseFloat(s);
}
var bytes_array = {
'b' : 1,
'k' : 1024,
'kb': 1024,
'mb': 1024 * 1024,
'm' : 1024 * 1024,
'gb': 1024 * 1024 * 1024,
'g' : 1024 * 1024 * 1024,
'tb': 1024 * 1024 * 1024 * 1024,
't' : 1024 * 1024 * 1024 * 1024,
'pb': 1024 * 1024 * 1024 * 1024 * 1024,
'p' : 1024 * 1024 * 1024 * 1024 * 1024
};
var bytes = parseFloat(s);
var matches = s.match(/([kmgtp]?b?)$/i);
if (matches[1]) {
bytes = bytes * bytes_array[matches[1]];
}
else {
return null;
}
bytes = Math.round(bytes);
return bytes;
},
/**
* @param timestamp

View file

@ -598,8 +598,8 @@ describe('Core base tests', function() {
['125b', 125],
['125 KB', 128000],
['125kb', 128000],
['122.1 MB', 128031130, ],
['122.1mb', 128031130, ],
['122.1 MB', 128031130],
['122.1mb', 128031130],
['119.2 GB', 127990025421],
['119.2gb', 127990025421],
['116.4 TB', 127983153473126],