mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-07 05:34:55 +08:00
Switch input type to text for Numbers in repositories [SCI-4258]
This commit is contained in:
parent
16724f622c
commit
fa0bff93ff
3 changed files with 17 additions and 7 deletions
|
@ -133,17 +133,23 @@ $.fn.dataTable.render.editRepositoryChecklistValue = function(formId, columnId,
|
||||||
ChecklistColumnHelper.initialChecklistEditMode(formId, columnId, $cell, currentValue);
|
ChecklistColumnHelper.initialChecklistEditMode(formId, columnId, $cell, currentValue);
|
||||||
};
|
};
|
||||||
|
|
||||||
$.fn.dataTable.render.editRepositoryNumberValue = function(formId, columnId, cell) {
|
$.fn.dataTable.render.editRepositoryNumberValue = function(formId, columnId, cell, $header) {
|
||||||
let $cell = $(cell.node());
|
let $cell = $(cell.node());
|
||||||
|
let decimals = $header.data('metadata-decimals');
|
||||||
|
let number = $cell.find('.number-value').data('value');
|
||||||
|
|
||||||
|
if (!number) number = '';
|
||||||
|
|
||||||
$cell.html(`
|
$cell.html(`
|
||||||
<div class="sci-input-container text-field">
|
<div class="sci-input-container text-field">
|
||||||
<input class="sci-input-field"
|
<input class="sci-input-field"
|
||||||
form="${formId}"
|
form="${formId}"
|
||||||
type="number"
|
type="text"
|
||||||
|
oninput="this.value = this.value.replace(/[^0-9.]/g, '');
|
||||||
|
this.value = this.value.match(/^\\d*(\\.\\d{0,${decimals}})?/)[0];"
|
||||||
name="repository_cells[${columnId}]"
|
name="repository_cells[${columnId}]"
|
||||||
placeholder="${I18n.t('repositories.table.number.enter_number')}"
|
placeholder="${I18n.t('repositories.table.number.enter_number')}"
|
||||||
value="${$cell.find('.number-value').data('value')}"
|
value="${number}"
|
||||||
data-type="RepositoryNumberValue">
|
data-type="RepositoryNumberValue">
|
||||||
</div>`);
|
</div>`);
|
||||||
};
|
};
|
||||||
|
|
|
@ -64,12 +64,16 @@ $.fn.dataTable.render.newRepositoryChecklistValue = function(formId, columnId, $
|
||||||
ChecklistColumnHelper.initialChecklistEditMode(formId, columnId, $cell);
|
ChecklistColumnHelper.initialChecklistEditMode(formId, columnId, $cell);
|
||||||
};
|
};
|
||||||
|
|
||||||
$.fn.dataTable.render.newRepositoryNumberValue = function(formId, columnId, $cell) {
|
$.fn.dataTable.render.newRepositoryNumberValue = function(formId, columnId, $cell, $header) {
|
||||||
|
let decimals = $header.data('metadata-decimals');
|
||||||
|
|
||||||
$cell.html(`
|
$cell.html(`
|
||||||
<div class="sci-input-container text-field">
|
<div class="sci-input-container text-field">
|
||||||
<input class="sci-input-field"
|
<input class="sci-input-field"
|
||||||
form="${formId}"
|
form="${formId}"
|
||||||
type="number"
|
type="text"
|
||||||
|
oninput="this.value = this.value.replace(/[^0-9.]/g, '');
|
||||||
|
this.value = this.value.match(/^\\d*(\\.\\d{0,${decimals}})?/)[0];"
|
||||||
name="repository_cells[${columnId}]"
|
name="repository_cells[${columnId}]"
|
||||||
value=""
|
value=""
|
||||||
placeholder="${I18n.t('repositories.table.number.enter_number')}"
|
placeholder="${I18n.t('repositories.table.number.enter_number')}"
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
module RepositoryDatatable
|
module RepositoryDatatable
|
||||||
class RepositoryNumberValueSerializer < RepositoryBaseValueSerializer
|
class RepositoryNumberValueSerializer < RepositoryBaseValueSerializer
|
||||||
def value
|
def value
|
||||||
decimal_number = scope[:column].metadata.fetch('decimals') { Constants::REPOSITORY_NUMBER_TYPE_DEFAULT_DECIMALS }
|
decimals = scope[:column].metadata.fetch('decimals', Constants::REPOSITORY_NUMBER_TYPE_DEFAULT_DECIMALS).to_i
|
||||||
BigDecimal(object.data).round(decimal_number.to_i)
|
object.data.round(decimals).to_s('F').remove(/.0+$/)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue