mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-03 13:41:12 +08:00
Replaced all Ruby constants instances in JS to be called from JS.
This commit is contained in:
parent
0780bd2416
commit
05acf5a725
6 changed files with 32 additions and 46 deletions
|
@ -192,10 +192,10 @@ function processResult(ev, resultTypeEnum, editMode, forS3) {
|
||||||
switch(resultTypeEnum) {
|
switch(resultTypeEnum) {
|
||||||
case ResultTypeEnum.FILE:
|
case ResultTypeEnum.FILE:
|
||||||
var $nameInput = $form.find("#result_name");
|
var $nameInput = $form.find("#result_name");
|
||||||
var nameValid = textValidator(ev, $nameInput, TextLimitEnum.OPTIONAL,
|
var nameValid = textValidator(ev, $nameInput, 0, NAME_MAX_LENGTH);
|
||||||
TextLimitEnum.NAME_MAX_LENGTH);
|
|
||||||
var $fileInput = $form.find("#result_asset_attributes_file");
|
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(nameValid && filesValid) {
|
||||||
if(forS3) {
|
if(forS3) {
|
||||||
|
@ -210,21 +210,17 @@ function processResult(ev, resultTypeEnum, editMode, forS3) {
|
||||||
break;
|
break;
|
||||||
case ResultTypeEnum.TABLE:
|
case ResultTypeEnum.TABLE:
|
||||||
var $nameInput = $form.find("#result_name");
|
var $nameInput = $form.find("#result_name");
|
||||||
var nameValid = textValidator(ev, $nameInput, TextLimitEnum.OPTIONAL,
|
var nameValid = textValidator(ev, $nameInput, 0, NAME_MAX_LENGTH);
|
||||||
TextLimitEnum.NAME_MAX_LENGTH);
|
|
||||||
break;
|
break;
|
||||||
case ResultTypeEnum.TEXT:
|
case ResultTypeEnum.TEXT:
|
||||||
var $nameInput = $form.find("#result_name");
|
var $nameInput = $form.find("#result_name");
|
||||||
var nameValid = textValidator(ev, $nameInput, TextLimitEnum.OPTIONAL,
|
var nameValid = textValidator(ev, $nameInput, 0, NAME_MAX_LENGTH);
|
||||||
TextLimitEnum.NAME_MAX_LENGTH);
|
|
||||||
var $textInput = $form.find("#result_result_text_attributes_text");
|
var $textInput = $form.find("#result_result_text_attributes_text");
|
||||||
textValidator(ev, $textInput, TextLimitEnum.REQUIRED,
|
textValidator(ev, $textInput, 1, TEXT_MAX_LENGTH);
|
||||||
TextLimitEnum.TEXT_MAX_LENGTH);
|
|
||||||
break;
|
break;
|
||||||
case ResultTypeEnum.COMMENT:
|
case ResultTypeEnum.COMMENT:
|
||||||
var $commentInput = $form.find("#comment_message");
|
var $commentInput = $form.find("#comment_message");
|
||||||
var commentValid = textValidator(ev, $commentInput, TextLimitEnum.REQUIRED,
|
var commentValid = textValidator(ev, $commentInput, 1, TEXT_MAX_LENGTH);
|
||||||
TextLimitEnum.TEXT_MAX_LENGTH);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1438,8 +1438,8 @@ function bindNewModuleAction(gridDistX, gridDistY) {
|
||||||
function handleNewNameConfirm(ev) {
|
function handleNewNameConfirm(ev) {
|
||||||
var input = $("#new-module-name-input");
|
var input = $("#new-module-name-input");
|
||||||
// Validate module name
|
// Validate module name
|
||||||
var moduleNameValid = textValidator(ev, input,
|
var moduleNameValid = textValidator(ev, input, NAME_MIN_LENGTH,
|
||||||
TextLimitEnum.NAME_MIN_LENGTH, TextLimitEnum.NAME_MAX_LENGTH, true);
|
NAME_MAX_LENGTH, true);
|
||||||
if (moduleNameValid) {
|
if (moduleNameValid) {
|
||||||
// Set the "clicked" property to true
|
// Set the "clicked" property to true
|
||||||
modal.data("submit", "true");
|
modal.data("submit", "true");
|
||||||
|
@ -1528,8 +1528,8 @@ function initEditModules() {
|
||||||
function handleRenameConfirm(modal, ev) {
|
function handleRenameConfirm(modal, ev) {
|
||||||
var input = modal.find("#edit-module-name-input");
|
var input = modal.find("#edit-module-name-input");
|
||||||
// Validate module name
|
// Validate module name
|
||||||
var moduleNameValid = textValidator(ev, input,
|
var moduleNameValid = textValidator(ev, input, NAME_MIN_LENGTH,
|
||||||
TextLimitEnum.NAME_MIN_LENGTH, TextLimitEnum.NAME_MAX_LENGTH, true);
|
NAME_MAX_LENGTH, true);
|
||||||
if (moduleNameValid) {
|
if (moduleNameValid) {
|
||||||
var newName = input.val();
|
var newName = input.val();
|
||||||
var moduleId = modal.attr("data-module-id");
|
var moduleId = modal.attr("data-module-id");
|
||||||
|
@ -1636,8 +1636,7 @@ function initEditModuleGroups() {
|
||||||
function handleRenameConfirm(modal, ev) {
|
function handleRenameConfirm(modal, ev) {
|
||||||
var input = modal.find("#edit-module-group-name-input");
|
var input = modal.find("#edit-module-group-name-input");
|
||||||
// Validate module group name
|
// Validate module group name
|
||||||
var moduleNameValid = textValidator(ev, input, TextLimitEnum.REQUIRED,
|
var moduleNameValid = textValidator(ev, input, 1, NAME_MAX_LENGTH, true);
|
||||||
TextLimitEnum.NAME_MAX_LENGTH, true);
|
|
||||||
if (moduleNameValid) {
|
if (moduleNameValid) {
|
||||||
var newModuleGroupName = input.val();
|
var newModuleGroupName = input.val();
|
||||||
var moduleId = modal.attr("data-module-id");
|
var moduleId = modal.attr("data-module-id");
|
||||||
|
|
|
@ -497,7 +497,7 @@ function importProtocolFromFile(
|
||||||
$.extend(data_json, params);
|
$.extend(data_json, params);
|
||||||
|
|
||||||
var rough_size = roughSizeOfObject(data_json);
|
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
|
// Call the callback function
|
||||||
resultCallback({ name: protocolJson["name"], new_name: null, status: "size_too_large" });
|
resultCallback({ name: protocolJson["name"], new_name: null, status: "size_too_large" });
|
||||||
return;
|
return;
|
|
@ -493,15 +493,13 @@ function processStep(ev, editMode, forS3) {
|
||||||
$form.removeBlankFileForms();
|
$form.removeBlankFileForms();
|
||||||
|
|
||||||
var $fileInputs = $form.find("input[type=file]");
|
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 $checklists = $form.find(".nested_step_checklists");
|
||||||
var checklistsValid = checklistsValidator(ev, $checklists, editMode);
|
var checklistsValid = checklistsValidator(ev, $checklists, editMode);
|
||||||
var $nameInput = $form.find("#step_name");
|
var $nameInput = $form.find("#step_name");
|
||||||
var nameValid = textValidator(ev, $nameInput, TextLimitEnum.REQUIRED,
|
var nameValid = textValidator(ev, $nameInput, 1, NAME_MAX_LENGTH);
|
||||||
TextLimitEnum.NAME_MAX_LENGTH);
|
|
||||||
var $descrTextarea = $form.find("#step_description");
|
var $descrTextarea = $form.find("#step_description");
|
||||||
var descriptionValid = textValidator(ev, $descrTextarea,
|
var descriptionValid = textValidator(ev, $descrTextarea, 0, TEXT_MAX_LENGTH);
|
||||||
TextLimitEnum.OPTIONAL, TextLimitEnum.TEXT_MAX_LENGTH);
|
|
||||||
|
|
||||||
if (filesValid && checklistsValid && nameValid && descriptionValid) {
|
if (filesValid && checklistsValid && nameValid && descriptionValid) {
|
||||||
if (forS3) {
|
if (forS3) {
|
||||||
|
|
|
@ -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
|
* @param {boolean} clearErr Set clearErr to true if this is the only
|
||||||
* error that can happen/show.
|
* error that can happen/show.
|
||||||
*/
|
*/
|
||||||
function textValidator(ev, textInput, textLimitEnumMin, textLimitEnumMax, clearErr) {
|
function textValidator(ev, textInput, textLimitMin, textLimitMax, clearErr) {
|
||||||
clearErr = _.isUndefined(clearErr) ? false : clearErr;
|
clearErr = _.isUndefined(clearErr) ? false : clearErr;
|
||||||
|
|
||||||
var text = $(textInput).val().trim();
|
var text = $(textInput).val().trim();
|
||||||
$(textInput).val(text);
|
$(textInput).val(text);
|
||||||
var nameTooShort = text.length < textLimitEnumMin;
|
var nameTooShort = text.length < textLimitMin;
|
||||||
var nameTooLong = text.length > textLimitEnumMax;
|
var nameTooLong = text.length > textLimitMax;
|
||||||
|
|
||||||
var errMsg;
|
var errMsg;
|
||||||
if (nameTooShort) {
|
if (nameTooShort) {
|
||||||
if (textLimitEnumMin === TextLimitEnum.REQUIRED) {
|
if (textLimitMin === 1) {
|
||||||
errMsg = I18n.t("general.text.not_blank");
|
errMsg = I18n.t("general.text.not_blank");
|
||||||
} else {
|
} 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) {
|
} 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);
|
var noErrors = _.isUndefined(errMsg);
|
||||||
|
@ -71,7 +63,8 @@ function checklistsValidator(ev, checklists, editMode) {
|
||||||
if ($item.css('display') != 'none') {
|
if ($item.css('display') != 'none') {
|
||||||
|
|
||||||
if ($itemInput.val()) {
|
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) {
|
if (!itemNameValid) {
|
||||||
noErrors = false;
|
noErrors = false;
|
||||||
}
|
}
|
||||||
|
@ -86,9 +79,9 @@ function checklistsValidator(ev, checklists, editMode) {
|
||||||
var $checklistInput = $checklist.find(".checklist_name");
|
var $checklistInput = $checklist.find(".checklist_name");
|
||||||
// In edit mode, checklist's name can't be blank if any items present
|
// In edit mode, checklist's name can't be blank if any items present
|
||||||
var allowBlankChklstName = !(anyChecklistItemFilled || editMode);
|
var allowBlankChklstName = !(anyChecklistItemFilled || editMode);
|
||||||
var textLimitEnumMin = allowBlankChklstName ? TextLimitEnum.OPTIONAL : TextLimitEnum.REQUIRED;
|
var textLimitMin = allowBlankChklstName ? 0 : 1;
|
||||||
var checklistNameValid = textValidator(ev, $checklistInput,
|
var checklistNameValid = textValidator(ev, $checklistInput,
|
||||||
textLimitEnumMin, TextLimitEnum.TEXT_MAX_LENGTH);
|
textLimitMin, TEXT_MAX_LENGTH);
|
||||||
if (!checklistNameValid) {
|
if (!checklistNameValid) {
|
||||||
noErrors = false;
|
noErrors = false;
|
||||||
} else if (allowBlankChklstName) {
|
} else if (allowBlankChklstName) {
|
||||||
|
@ -101,9 +94,9 @@ function checklistsValidator(ev, checklists, editMode) {
|
||||||
return noErrors;
|
return noErrors;
|
||||||
}
|
}
|
||||||
|
|
||||||
var FileTypeSizeEnum = Object.freeze({
|
var FileTypeEnum = Object.freeze({
|
||||||
FILE: "<%= Constants::FILE_MAX_SIZE_MB.megabytes %>",
|
FILE: 0,
|
||||||
AVATAR: "<%= Constants::AVATAR_MAX_SIZE_MB.megabytes %>"
|
AVATAR: 1
|
||||||
});
|
});
|
||||||
|
|
||||||
function filesValidator(ev, fileInputs, fileTypeEnum, canBeEmpty) {
|
function filesValidator(ev, fileInputs, fileTypeEnum, canBeEmpty) {
|
||||||
|
@ -138,9 +131,9 @@ function filesSizeValidator(ev, fileInputs, fileTypeEnum) {
|
||||||
}
|
}
|
||||||
if (file.size > fileTypeEnum) {
|
if (file.size > fileTypeEnum) {
|
||||||
switch (fileTypeEnum) {
|
switch (fileTypeEnum) {
|
||||||
case FileTypeSizeEnum.FILE:
|
case FileTypeEnum.FILE:
|
||||||
return "<%= I18n.t 'general.file.size_exceeded', file_size: Constants::FILE_MAX_SIZE_MB %>".strToErrorFormat();
|
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();
|
return "<%= I18n.t 'general.file.size_exceeded', file_size: Constants::AVATAR_MAX_SIZE_MB %>".strToErrorFormat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,7 +68,7 @@ function processFile(ev, forS3) {
|
||||||
$form.clearFormErrors();
|
$form.clearFormErrors();
|
||||||
|
|
||||||
var $fileInput = $form.find("input[type=file]");
|
var $fileInput = $form.find("input[type=file]");
|
||||||
if(filesValidator(ev, $fileInput, FileTypeSizeEnum.AVATAR)) {
|
if(filesValidator(ev, $fileInput, FileTypeEnum.AVATAR)) {
|
||||||
if(forS3) {
|
if(forS3) {
|
||||||
// Redirects file uploading to S3
|
// Redirects file uploading to S3
|
||||||
var url = "/avatar_signature.json";
|
var url = "/avatar_signature.json";
|
||||||
|
|
Loading…
Reference in a new issue