Add front-end validation for comments field [SCI-6464] (#3829)

Co-authored-by: Anton <anton@scinote.net>
This commit is contained in:
aignatov-bio 2022-02-10 10:55:58 +01:00 committed by GitHub
parent f66b89c7bb
commit 8604319c1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 44 additions and 18 deletions

View file

@ -1,4 +1,4 @@
/* global SmartAnnotation I18n MyModuleRepositories */
/* global SmartAnnotation I18n MyModuleRepositories GLOBAL_CONSTANTS */
var MyModuleStockConsumption = (function() {
const CONSUMPTION_MODAL = '#consumeRepositoryStockValueModal';
const WARNING_MODAL = '#consumeRepositoryStockValueModalWarning';
@ -32,6 +32,18 @@ var MyModuleStockConsumption = (function() {
$(WARNING_MODAL).modal('hide');
});
$(CONSUMPTION_MODAL + ' #comment').on('keyup change', function() {
$(this).closest('.sci-input-container').toggleClass(
'error',
this.value.length > GLOBAL_CONSTANTS.NAME_MAX_LENGTH
);
$('.update-consumption-button').attr(
'disabled',
this.value.length > GLOBAL_CONSTANTS.NAME_MAX_LENGTH
);
});
$('.update-consumption-button').on('click', function(event, skipValidation) {
if (parseFloat($('.stock-final-container .value').text()) < 0 && !skipValidation) {
event.preventDefault();

View file

@ -181,9 +181,9 @@ $.fn.dataTable.render.AssignedTasksValue = function(data) {
return "<div class='assign-counter-container'><span class='assign-counter'>0</span></div>";
};
$.fn.dataTable.render.RepositoryStockValue = function(data) {
if (data.value) {
if (data.stock_managable) {
$.fn.dataTable.render.RepositoryStockValue = function(data, row) {
if (data && data.value) {
if (row && row.manageStockUrl) {
return `<a class="manage-repository-stock-value-link stock-value-view-render
${data.value.stock_amount <= 0 ? 'stock-alert' : ''}">
${data.value.stock_formatted}
@ -194,7 +194,7 @@ $.fn.dataTable.render.RepositoryStockValue = function(data) {
${data.value.stock_formatted}
</span>`;
}
if (data.stock_managable) {
if (data && row && row.manageStockUrl) {
return `<a class="manage-repository-stock-value-link not-assigned-stock">
<i class="fas fa-box-open"></i>
${I18n.t('libraries.manange_modal_column.stock_type.add_stock')}

View file

@ -458,9 +458,9 @@ var RepositoryDatatable = (function(global) {
visible: true
}, {
targets: '_all',
render: function(data) {
render: function(data, type, row) {
if (typeof data === 'object' && $.fn.dataTable.render[data.value_type]) {
return $.fn.dataTable.render[data.value_type](data);
return $.fn.dataTable.render[data.value_type](data, row);
}
return data;
}

View file

@ -1,4 +1,4 @@
/* global dropdownSelector */
/* global dropdownSelector GLOBAL_CONSTANTS */
var RepositoryStockValues = (function() {
const UNIT_SELECTOR = '#repository-stock-value-units';
@ -55,6 +55,17 @@ var RepositoryStockValues = (function() {
}
});
$('#repository-stock-value-comment').on('keyup change', function() {
$(this).closest('.sci-input-container').toggleClass(
'error',
this.value.length > GLOBAL_CONSTANTS.NAME_MAX_LENGTH
);
$('.update-repository-stock').toggleClass(
'disabled',
this.value.length > GLOBAL_CONSTANTS.NAME_MAX_LENGTH
);
});
$('#stock-input-amount').on('input', function() {
var currentAmount = parseFloat($(this).data('currentAmount'));
var inputAmount = parseFloat($(this).val());

View file

@ -16,7 +16,7 @@
</div>
<span class="units"> <%= @stock_value.repository_stock_unit_item&.data %></span>
</div>
<div class="sci-input-container comments-container">
<div class="sci-input-container comments-container" data-error-text="<%= t('repository_stock_values.manage_modal.comment_limit') %>">
<%= f.label :comment, t('my_modules.repository.stock_modal.comment') %>
<%= f.text_field :comment, placeholder: t('my_modules.repository.stock_modal.enter_comment') , class: 'sci-input-field' %>
</div>

View file

@ -68,14 +68,16 @@
</div>
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<label><%= t('repository_stock_values.manage_modal.comment') %></label>
<input class="form-control"
type="text"
name="repository_stock_value[comment]"
id="repository-stock-value-comment"
placeholder="<%= t('repository_stock_values.manage_modal.comment_placeholder') %>">
</div>
<p>
<div class="sci-input-container" data-error-text="<%= t('repository_stock_values.manage_modal.comment_limit') %>">
<label><%= t('repository_stock_values.manage_modal.comment') %></label>
<input class="sci-input-field"
type="text"
name="repository_stock_value[comment]"
id="repository-stock-value-comment"
placeholder="<%= t('repository_stock_values.manage_modal.comment_placeholder') %>">
</div>
</p>
</div>
</div>
<% unless repository_stock_value.new_record? %>
@ -105,6 +107,6 @@
id="cancel"
class="btn btn-default"
data-dismiss="modal"><%=t 'general.cancel' %></button>
<%= submit_tag t('repository_stock_values.manage_modal.save_stock'), class: "btn btn-primary" %>
<%= submit_tag t('repository_stock_values.manage_modal.save_stock'), class: "btn btn-primary update-repository-stock" %>
</div>
<% end %>

View file

@ -1569,6 +1569,7 @@ en:
comment_placeholder: "Enter comment"
current_stock: "Current stock"
new_stock: "New stock"
comment_limit: "Maximum number of characters reached (255)"
libraries:
manange_modal_column_index: