From 2b18f3213f7bcdb3d8a01c97d4eebb4650093e0d Mon Sep 17 00:00:00 2001 From: ataki Date: Sun, 28 Dec 2014 01:59:45 -0800 Subject: [PATCH] Fix visual bug with large file error msg in cms. This hotfix patches the functionality of the GridFS PR by dismissing the error msg when the user uploads a large file and fails, then uploads a regular file. This includes a Jasmine test to cover this case. --- cms/static/js/spec/views/assets_spec.js | 15 +++++++++++++++ cms/static/js/views/assets.js | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/cms/static/js/spec/views/assets_spec.js b/cms/static/js/spec/views/assets_spec.js index e0f07b1339..3e5e10ef62 100644 --- a/cms/static/js/spec/views/assets_spec.js +++ b/cms/static/js/spec/views/assets_spec.js @@ -169,6 +169,21 @@ define([ "jquery", "js/common_helpers/ajax_helpers", "js/views/asset", "js/views expect(assetsView.largeFileErrorMsg).toBeNull(); }); + + it('hides the error modal if a large file, then small file is uploaded', function() { + expect(assetsView).toBeDefined(); + mockFileUpload.files[0].size = assetsView.maxFileSize; + + $('.choose-file-button').click(); + $(".upload-modal .file-chooser").fileupload('add', mockFileUpload); + + expect(assetsView.largeFileErrorMsg).toBeDefined(); + + mockFileUpload.files[0].size = assetsView.maxFileSize / 10; + $('.choose-file-button').click(); + $(".upload-modal .file-chooser").fileupload('add', mockFileUpload); + expect(assetsView.largeFileErrorMsg).toBeNull(); + }); }); }); }); diff --git a/cms/static/js/views/assets.js b/cms/static/js/views/assets.js index c5b17c0418..fe58c11aa4 100644 --- a/cms/static/js/views/assets.js +++ b/cms/static/js/views/assets.js @@ -135,6 +135,7 @@ define(["jquery", "underscore", "gettext", "js/models/asset", "js/views/paging", event.preventDefault(); self.resetUploadModal(); ModalUtils.showModal(); + $('.modal-cover').on('click', self.hideModal); $('.file-input').bind('change', self.startUpload); $('.upload-modal .file-chooser').fileupload({ dataType: 'json', @@ -182,6 +183,9 @@ define(["jquery", "underscore", "gettext", "js/models/asset", "js/views/paging", showFileSelectionMenu: function(event) { event.preventDefault(); + if (assetsView.largeFileErrorMsg) { + assetsView.largeFileErrorMsg.hide(); + } $('.file-input').click(); },