mirror of
https://github.com/discourse/discourse.git
synced 2025-05-28 10:24:13 +08:00
FEATURE: Humanize file size error messages (#14398)
The file size error messages for max_image_size_kb and max_attachment_size_kb are shown to the user in the KB format, regardless of how large the limit is. Since we are going to support uploading much larger files soon, this KB-based limit soon becomes unfriendly to the end user. For example, if the max attachment size is set to 512000 KB, this is what the user sees: > Sorry, the file you are trying to upload is too big (maximum size is 512000KB) This makes the user do math. In almost all file explorers that a regular user would be familiar width, the file size is shown in a format based on the maximum increment (e.g. KB, MB, GB). This commit changes the behaviour to output a humanized file size instead of the raw KB. For the above example, it would now say: > Sorry, the file you are trying to upload is too big (maximum size is 512 MB) This humanization also handles decimals, e.g. 1536KB = 1.5 MB
This commit is contained in:
@ -31,6 +31,21 @@ describe UploadValidator do
|
||||
expect(UploadCreator.new(csv_file, "#{filename}.zip", for_export: true).create_for(user.id)).to be_valid
|
||||
end
|
||||
|
||||
describe "size validation" do
|
||||
it "does not allow images that are too large" do
|
||||
SiteSetting.max_image_size_kb = 1536
|
||||
upload = Fabricate.build(:upload,
|
||||
user: Fabricate(:admin),
|
||||
original_filename: "test.png",
|
||||
filesize: 2097152
|
||||
)
|
||||
subject.validate(upload)
|
||||
expect(upload.errors.full_messages.first).to eq(
|
||||
"Filesize #{I18n.t("upload.images.too_large_humanized", max_size: "1.5 MB")}"
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'when allow_staff_to_upload_any_file_in_pm is true' do
|
||||
it 'should allow uploads for pm' do
|
||||
upload = Fabricate.build(:upload,
|
||||
|
Reference in New Issue
Block a user