diff --git a/src/public/app/services/utils.js b/src/public/app/services/utils.js index e0ef2d767..f41e67e60 100644 --- a/src/public/app/services/utils.js +++ b/src/public/app/services/utils.js @@ -19,6 +19,18 @@ function padNum(num) { return `${num <= 9 ? "0" : ""}${num}`; } +function formatSize(bytes, decimals = 2) { + if (!+bytes) return '0 Bytes' + + const k = 1024 + const dm = decimals < 0 ? 0 : decimals + const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + + const i = Math.floor(Math.log(bytes) / Math.log(k)) + + return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` +} + function formatTime(date) { return `${padNum(date.getHours())}:${padNum(date.getMinutes())}`; } @@ -358,6 +370,7 @@ export default { reloadFrontendApp, parseDate, padNum, + formatSize, formatTime, formatTimeWithSeconds, formatDate, diff --git a/src/public/app/widgets/ribbon_widgets/file_properties.js b/src/public/app/widgets/ribbon_widgets/file_properties.js index 454c73f1d..e2914f2ae 100644 --- a/src/public/app/widgets/ribbon_widgets/file_properties.js +++ b/src/public/app/widgets/ribbon_widgets/file_properties.js @@ -136,7 +136,7 @@ export default class FilePropertiesWidget extends NoteContextAwareWidget { const noteComplement = await this.noteContext.getNoteComplement(); - this.$fileSize.text(`${noteComplement.contentLength} bytes`); + this.$fileSize.text(utils.formatSize(noteComplement.contentLength)); // open doesn't work for protected notes since it works through browser which isn't in protected session this.$openButton.toggle(!note.isProtected); diff --git a/src/public/app/widgets/ribbon_widgets/note_info_widget.js b/src/public/app/widgets/ribbon_widgets/note_info_widget.js index 28459da5d..c463c9c0d 100644 --- a/src/public/app/widgets/ribbon_widgets/note_info_widget.js +++ b/src/public/app/widgets/ribbon_widgets/note_info_widget.js @@ -1,5 +1,6 @@ import NoteContextAwareWidget from "../note_context_aware_widget.js"; import server from "../../services/server.js"; +import utils from "../../services/utils.js"; const TPL = `