From c69a8dc197c87eb69272c28c1c1501e3c6d6d9aa Mon Sep 17 00:00:00 2001 From: Rinpatch Date: Mon, 10 Dec 2018 09:50:04 +0300 Subject: [PATCH] Add file size formating --- src/components/media_upload/media_upload.js | 4 +++- src/i18n/en.json | 7 +++++++ .../file_size_format/.file_size_format.js.swp | Bin 0 -> 12288 bytes .../file_size_format/file_size_format.js | 17 +++++++++++++++++ 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 src/services/file_size_format/.file_size_format.js.swp create mode 100644 src/services/file_size_format/file_size_format.js diff --git a/src/components/media_upload/media_upload.js b/src/components/media_upload/media_upload.js index 91ae3627..1927a194 100644 --- a/src/components/media_upload/media_upload.js +++ b/src/components/media_upload/media_upload.js @@ -1,5 +1,7 @@ /* eslint-env browser */ import statusPosterService from '../../services/status_poster/status_poster.service.js' +import fileSizeFormatService from '../../services/file_size_format/file_size_format.js' + const mediaUpload = { mounted () { @@ -22,7 +24,7 @@ const mediaUpload = { const self = this const store = this.$store if (file.size > store.state.instance.uploadlimit) { - self.$emit('upload-failed', 'upload_error_file_too_big', {filesize: file.size, allowedsize: store.state.instance.uploadlimit}) + self.$emit('upload-failed', 'upload_error_file_too_big', {filesize: fileSizeFormatService.fileSizeFormat(file.size, self.$t), allowedsize: fileSizeFormatService.fileSizeFormat(store.state.instance.uploadlimit, self.$t)}) return } const formData = new FormData() diff --git a/src/i18n/en.json b/src/i18n/en.json index 17c28c61..885974e4 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -229,5 +229,12 @@ "reply": "Reply", "favorite": "Favorite", "user_settings": "User Settings" + }, + "file_size_units": { + "B": "B", + "KB": "KB", + "MB": "MB", + "GB": "GB", + "TB": "TB" } } diff --git a/src/services/file_size_format/.file_size_format.js.swp b/src/services/file_size_format/.file_size_format.js.swp new file mode 100644 index 0000000000000000000000000000000000000000..ec2e601a88a5a48a3ac815db974cb0346e64ff92 GIT binary patch literal 12288 zcmeI2&2G~`5XaX@hyyfyJpe-yicK5aDH6(|0Tn?JLOGy9F9B61S+_>EH(IYt1pT#gg(Kc`eW#ilFE+EYG&fsJAOHd&00JNY0w4eaAOHd&00JNY0{m19*`)p%k zfB*=900@8p2!H?xfB*=900{hD0UVufx_jc;=$KLN3F@D2a~ literal 0 HcmV?d00001 diff --git a/src/services/file_size_format/file_size_format.js b/src/services/file_size_format/file_size_format.js new file mode 100644 index 00000000..5d22b473 --- /dev/null +++ b/src/services/file_size_format/file_size_format.js @@ -0,0 +1,17 @@ +const fileSizeFormat = (num, t) => { + var exponent + var unit + var units = [t('file_size_units.B'), t('file_size_units.KB'), t('file_size_units.MB'), t('file_size_units.GB'), t('file_size_units.TB')] + if (num < 1) { + return num + ' ' + units[0] + } + + exponent = Math.min(Math.floor(Math.log(num) / Math.log(1000)), units.length - 1) + num = (num / Math.pow(1000, exponent)).toFixed(2) * 1 + unit = units[exponent] + return num + ' ' + unit +} +const fileSizeFormatService = { + fileSizeFormat +} +export default fileSizeFormatService