From: Kohei Yoshino Date: Thu, 21 Jun 2018 14:28:21 +0000 (-0400) Subject: Bug 1469333 - Check attachment file size client-side and inform user of too large... X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=52100a9f4f2e5b5d3249934143fb9a7097f156f9;p=thirdparty%2Fbugzilla.git Bug 1469333 - Check attachment file size client-side and inform user of too large file before uploading it --- diff --git a/js/attachment.js b/js/attachment.js index f967f64d3..6d6dae58d 100644 --- a/js/attachment.js +++ b/js/attachment.js @@ -93,6 +93,21 @@ function DataFieldHandler() { } } } + + // Check the current file size (in KB) + const file_size = field_data.files[0].size / 1024; + const max_size = BUGZILLA.param.maxattachmentsize; + const invalid = file_size > max_size; + const message = invalid ? `This file (${(file_size / 1024).toFixed(1)} MB) is larger than the ` + + `maximum allowed size (${(max_size / 1024).toFixed(1)} MB).
Please consider uploading it ` + + `to an online file storage and sharing the link in a bug comment instead.` : ''; + const message_short = invalid ? 'File too large' : ''; + const $error = document.querySelector('#data-error'); + + // Show an error message if the file is too large + $error.innerHTML = message; + field_data.setCustomValidity(message_short); + field_data.setAttribute('aria-invalid', invalid); } function clearAttachmentFields() { diff --git a/skins/standard/attachment.css b/skins/standard/attachment.css index ace4b6781..401bce92b 100644 --- a/skins/standard/attachment.css +++ b/skins/standard/attachment.css @@ -38,6 +38,14 @@ table#attachment_flags td { font-size: small; } +#data-error { + margin: 4px 0 0; +} + +#data-error:empty { + margin: 0; +} + /* Rules used to view patches in diff mode. */ .file_head { diff --git a/template/en/default/attachment/createformcontents.html.tmpl b/template/en/default/attachment/createformcontents.html.tmpl index 41a02a913..61ddceac3 100644 --- a/template/en/default/attachment/createformcontents.html.tmpl +++ b/template/en/default/attachment/createformcontents.html.tmpl @@ -37,7 +37,8 @@ Enter the path to the file on your computer (or paste text as attachment).
- + +
@@ -69,7 +70,7 @@ [%# Reset this whenever the page loads so that the JS state is up to date %]