diff --git a/app/assets/javascripts/my_modules/results.js b/app/assets/javascripts/my_modules/results.js index 528270a19..2bfd3b6b1 100644 --- a/app/assets/javascripts/my_modules/results.js +++ b/app/assets/javascripts/my_modules/results.js @@ -192,10 +192,10 @@ function processResult(ev, resultTypeEnum, editMode, forS3) { switch(resultTypeEnum) { case ResultTypeEnum.FILE: var $nameInput = $form.find("#result_name"); - var nameValid = textValidator(ev, $nameInput, TextLimitEnum.OPTIONAL, - TextLimitEnum.NAME_MAX_LENGTH); + var nameValid = textValidator(ev, $nameInput, 0, NAME_MAX_LENGTH); var $fileInput = $form.find("#result_asset_attributes_file"); - var filesValid = filesValidator(ev, $fileInput, FileTypeSizeEnum.FILE, editMode); + var filesValid = filesValidator(ev, $fileInput, FileTypeEnum.FILE, + editMode); if(nameValid && filesValid) { if(forS3) { @@ -210,21 +210,17 @@ function processResult(ev, resultTypeEnum, editMode, forS3) { break; case ResultTypeEnum.TABLE: var $nameInput = $form.find("#result_name"); - var nameValid = textValidator(ev, $nameInput, TextLimitEnum.OPTIONAL, - TextLimitEnum.NAME_MAX_LENGTH); + var nameValid = textValidator(ev, $nameInput, 0, NAME_MAX_LENGTH); break; case ResultTypeEnum.TEXT: var $nameInput = $form.find("#result_name"); - var nameValid = textValidator(ev, $nameInput, TextLimitEnum.OPTIONAL, - TextLimitEnum.NAME_MAX_LENGTH); + var nameValid = textValidator(ev, $nameInput, 0, NAME_MAX_LENGTH); var $textInput = $form.find("#result_result_text_attributes_text"); - textValidator(ev, $textInput, TextLimitEnum.REQUIRED, - TextLimitEnum.TEXT_MAX_LENGTH); + textValidator(ev, $textInput, 1, TEXT_MAX_LENGTH); break; case ResultTypeEnum.COMMENT: var $commentInput = $form.find("#comment_message"); - var commentValid = textValidator(ev, $commentInput, TextLimitEnum.REQUIRED, - TextLimitEnum.TEXT_MAX_LENGTH); + var commentValid = textValidator(ev, $commentInput, 1, TEXT_MAX_LENGTH); break; } } diff --git a/app/assets/javascripts/projects/canvas.js b/app/assets/javascripts/projects/canvas.js index c5bd2c647..f8b096eb6 100644 --- a/app/assets/javascripts/projects/canvas.js +++ b/app/assets/javascripts/projects/canvas.js @@ -1438,8 +1438,8 @@ function bindNewModuleAction(gridDistX, gridDistY) { function handleNewNameConfirm(ev) { var input = $("#new-module-name-input"); // Validate module name - var moduleNameValid = textValidator(ev, input, - TextLimitEnum.NAME_MIN_LENGTH, TextLimitEnum.NAME_MAX_LENGTH, true); + var moduleNameValid = textValidator(ev, input, NAME_MIN_LENGTH, + NAME_MAX_LENGTH, true); if (moduleNameValid) { // Set the "clicked" property to true modal.data("submit", "true"); @@ -1528,8 +1528,8 @@ function initEditModules() { function handleRenameConfirm(modal, ev) { var input = modal.find("#edit-module-name-input"); // Validate module name - var moduleNameValid = textValidator(ev, input, - TextLimitEnum.NAME_MIN_LENGTH, TextLimitEnum.NAME_MAX_LENGTH, true); + var moduleNameValid = textValidator(ev, input, NAME_MIN_LENGTH, + NAME_MAX_LENGTH, true); if (moduleNameValid) { var newName = input.val(); var moduleId = modal.attr("data-module-id"); @@ -1636,8 +1636,7 @@ function initEditModuleGroups() { function handleRenameConfirm(modal, ev) { var input = modal.find("#edit-module-group-name-input"); // Validate module group name - var moduleNameValid = textValidator(ev, input, TextLimitEnum.REQUIRED, - TextLimitEnum.NAME_MAX_LENGTH, true); + var moduleNameValid = textValidator(ev, input, 1, NAME_MAX_LENGTH, true); if (moduleNameValid) { var newModuleGroupName = input.val(); var moduleId = modal.attr("data-module-id"); diff --git a/app/assets/javascripts/protocols/import_export/import.js.erb b/app/assets/javascripts/protocols/import_export/import.js similarity index 99% rename from app/assets/javascripts/protocols/import_export/import.js.erb rename to app/assets/javascripts/protocols/import_export/import.js index 1ff9df895..5246829ed 100644 --- a/app/assets/javascripts/protocols/import_export/import.js.erb +++ b/app/assets/javascripts/protocols/import_export/import.js @@ -497,7 +497,7 @@ function importProtocolFromFile( $.extend(data_json, params); var rough_size = roughSizeOfObject(data_json); - if (rough_size > <%= Constants::FILE_MAX_SIZE_MB.megabytes %>) { + if (rough_size > FILE_MAX_SIZE_B) { // Call the callback function resultCallback({ name: protocolJson["name"], new_name: null, status: "size_too_large" }); return; diff --git a/app/assets/javascripts/protocols/steps.js b/app/assets/javascripts/protocols/steps.js index 97588f762..000a241eb 100644 --- a/app/assets/javascripts/protocols/steps.js +++ b/app/assets/javascripts/protocols/steps.js @@ -493,15 +493,13 @@ function processStep(ev, editMode, forS3) { $form.removeBlankFileForms(); var $fileInputs = $form.find("input[type=file]"); - var filesValid = filesValidator(ev, $fileInputs, FileTypeSizeEnum.FILE); + var filesValid = filesValidator(ev, $fileInputs, FileTypeEnum.FILE); var $checklists = $form.find(".nested_step_checklists"); var checklistsValid = checklistsValidator(ev, $checklists, editMode); var $nameInput = $form.find("#step_name"); - var nameValid = textValidator(ev, $nameInput, TextLimitEnum.REQUIRED, - TextLimitEnum.NAME_MAX_LENGTH); + var nameValid = textValidator(ev, $nameInput, 1, NAME_MAX_LENGTH); var $descrTextarea = $form.find("#step_description"); - var descriptionValid = textValidator(ev, $descrTextarea, - TextLimitEnum.OPTIONAL, TextLimitEnum.TEXT_MAX_LENGTH); + var descriptionValid = textValidator(ev, $descrTextarea, 0, TEXT_MAX_LENGTH); if (filesValid && checklistsValid && nameValid && descriptionValid) { if (forS3) { diff --git a/app/assets/javascripts/sitewide/form_validators.js.erb b/app/assets/javascripts/sitewide/form_validators.js.erb index 17513cc6c..27d8cc102 100644 --- a/app/assets/javascripts/sitewide/form_validators.js.erb +++ b/app/assets/javascripts/sitewide/form_validators.js.erb @@ -18,35 +18,27 @@ $.fn.onSubmitValidator = function(validatorCb) { } }; -var TextLimitEnum = Object.freeze({ - OPTIONAL: 0, - REQUIRED: 1, - NAME_MIN_LENGTH: "<%= Constants::NAME_MIN_LENGTH %>", - NAME_MAX_LENGTH: "<%= Constants::NAME_MAX_LENGTH %>", - TEXT_MAX_LENGTH: "<%= Constants::TEXT_MAX_LENGTH %>" -}); - /* * @param {boolean} clearErr Set clearErr to true if this is the only * error that can happen/show. */ -function textValidator(ev, textInput, textLimitEnumMin, textLimitEnumMax, clearErr) { +function textValidator(ev, textInput, textLimitMin, textLimitMax, clearErr) { clearErr = _.isUndefined(clearErr) ? false : clearErr; var text = $(textInput).val().trim(); $(textInput).val(text); - var nameTooShort = text.length < textLimitEnumMin; - var nameTooLong = text.length > textLimitEnumMax; + var nameTooShort = text.length < textLimitMin; + var nameTooLong = text.length > textLimitMax; var errMsg; if (nameTooShort) { - if (textLimitEnumMin === TextLimitEnum.REQUIRED) { + if (textLimitMin === 1) { errMsg = I18n.t("general.text.not_blank"); } else { - errMsg = I18n.t("general.text.length_too_short", { min_length: textLimitEnumMin }); + errMsg = I18n.t("general.text.length_too_short", { min_length: textLimitMin }); } } else if (nameTooLong) { - errMsg = I18n.t("general.text.length_too_long", { max_length: textLimitEnumMax }); + errMsg = I18n.t("general.text.length_too_long", { max_length: textLimitMax }); } var noErrors = _.isUndefined(errMsg); @@ -71,7 +63,8 @@ function checklistsValidator(ev, checklists, editMode) { if ($item.css('display') != 'none') { if ($itemInput.val()) { - var itemNameValid = textValidator(ev, $itemInput, TextLimitEnum.REQUIRED, TextLimitEnum.TEXT_MAX_LENGTH); + var itemNameValid = textValidator(ev, $itemInput, 1, + TEXT_MAX_LENGTH); if (!itemNameValid) { noErrors = false; } @@ -86,9 +79,9 @@ function checklistsValidator(ev, checklists, editMode) { var $checklistInput = $checklist.find(".checklist_name"); // In edit mode, checklist's name can't be blank if any items present var allowBlankChklstName = !(anyChecklistItemFilled || editMode); - var textLimitEnumMin = allowBlankChklstName ? TextLimitEnum.OPTIONAL : TextLimitEnum.REQUIRED; + var textLimitMin = allowBlankChklstName ? 0 : 1; var checklistNameValid = textValidator(ev, $checklistInput, - textLimitEnumMin, TextLimitEnum.TEXT_MAX_LENGTH); + textLimitMin, TEXT_MAX_LENGTH); if (!checklistNameValid) { noErrors = false; } else if (allowBlankChklstName) { @@ -101,9 +94,9 @@ function checklistsValidator(ev, checklists, editMode) { return noErrors; } -var FileTypeSizeEnum = Object.freeze({ - FILE: "<%= Constants::FILE_MAX_SIZE_MB.megabytes %>", - AVATAR: "<%= Constants::AVATAR_MAX_SIZE_MB.megabytes %>" +var FileTypeEnum = Object.freeze({ + FILE: 0, + AVATAR: 1 }); function filesValidator(ev, fileInputs, fileTypeEnum, canBeEmpty) { @@ -138,9 +131,9 @@ function filesSizeValidator(ev, fileInputs, fileTypeEnum) { } if (file.size > fileTypeEnum) { switch (fileTypeEnum) { - case FileTypeSizeEnum.FILE: + case FileTypeEnum.FILE: return "<%= I18n.t 'general.file.size_exceeded', file_size: Constants::FILE_MAX_SIZE_MB %>".strToErrorFormat(); - case FileTypeSizeEnum.AVATAR: + case FileTypeEnum.AVATAR: return "<%= I18n.t 'general.file.size_exceeded', file_size: Constants::AVATAR_MAX_SIZE_MB %>".strToErrorFormat(); } } diff --git a/app/assets/javascripts/users/registrations/edit.js b/app/assets/javascripts/users/registrations/edit.js index 58223616e..69db00151 100644 --- a/app/assets/javascripts/users/registrations/edit.js +++ b/app/assets/javascripts/users/registrations/edit.js @@ -68,7 +68,7 @@ function processFile(ev, forS3) { $form.clearFormErrors(); var $fileInput = $form.find("input[type=file]"); - if(filesValidator(ev, $fileInput, FileTypeSizeEnum.AVATAR)) { + if(filesValidator(ev, $fileInput, FileTypeEnum.AVATAR)) { if(forS3) { // Redirects file uploading to S3 var url = "/avatar_signature.json";