mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-04 04:04:36 +08:00
Implement repository snapshots displaying on assigned items full view modal [SCI-6442] (#3862)
This commit is contained in:
parent
af011a3bb8
commit
9c4fca1b86
6 changed files with 57 additions and 28 deletions
|
@ -16,7 +16,7 @@ var MyModuleRepositories = (function() {
|
|||
{
|
||||
visible: true,
|
||||
searchable: false,
|
||||
data: otherColumnCount
|
||||
data: 'stock'
|
||||
},
|
||||
{
|
||||
visible: true,
|
||||
|
@ -40,7 +40,7 @@ var MyModuleRepositories = (function() {
|
|||
className: 'item-consumed-stock',
|
||||
sWidth: '1%',
|
||||
render: function(data) {
|
||||
return $.fn.dataTable.render.RepositoryConsumedStockValue(data);
|
||||
return $.fn.dataTable.render.RepositoryStockConsumptionValue(data);
|
||||
}
|
||||
}
|
||||
];
|
||||
|
@ -130,7 +130,7 @@ var MyModuleRepositories = (function() {
|
|||
return $.fn.dataTable.render[data.value_type](data);
|
||||
}
|
||||
if (data !== undefined && data.stock_present !== undefined) {
|
||||
return $.fn.dataTable.render.RepositoryConsumedStockValue(data);
|
||||
return $.fn.dataTable.render.RepositoryStockConsumptionValue(data);
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
|
|
@ -140,6 +140,6 @@ $.fn.dataTable.render.editRepositoryStockValue = function(formId, columnId, cell
|
|||
return cell.node();
|
||||
};
|
||||
|
||||
$.fn.dataTable.render.editRepositoryConsumedStockValue = function(formId, columnId, cell) {
|
||||
$.fn.dataTable.render.editRepositoryStockConsumptionValue = function(formId, columnId, cell) {
|
||||
return cell.node();
|
||||
};
|
||||
|
|
|
@ -205,16 +205,19 @@ $.fn.dataTable.render.RepositoryStockValue = function(data, row) {
|
|||
</span>`;
|
||||
};
|
||||
|
||||
$.fn.dataTable.render.RepositoryConsumedStockValue = function(data = {}) {
|
||||
$.fn.dataTable.render.defaultRepositoryStockValue = function() {
|
||||
return $.fn.dataTable.render.RepositoryStockValue();
|
||||
};
|
||||
|
||||
$.fn.dataTable.render.RepositoryStockConsumptionValue = function(data = {}) {
|
||||
if (data.value && data.value.consumed_stock !== null) {
|
||||
if (data.consumption_managable) {
|
||||
return `<a href="${data.updateStockConsumptionUrl}" class="manage-repository-consumed-stock-value-link stock-value-view-render">
|
||||
${data.value.consumed_stock} ${data.value.unit || ''}
|
||||
</a>`;
|
||||
return `<a href="${data.updateStockConsumptionUrl}"
|
||||
class="manage-repository-consumed-stock-value-link stock-value-view-render">
|
||||
${data.value.consumed_stock_formatted}
|
||||
</a>`;
|
||||
}
|
||||
return `<span class="stock-value-view-render">
|
||||
${data.value.consumed_stock} ${data.value.unit || ''}
|
||||
</span>`;
|
||||
return `<span class="stock-value-view-render">${data.value.consumed_stock_formatted}</span>`;
|
||||
}
|
||||
if (data.stock_present && data.consumption_managable) {
|
||||
return `<a href="${data.updateStockConsumptionUrl}" class="manage-repository-consumed-stock-value-link">
|
||||
|
@ -225,6 +228,6 @@ $.fn.dataTable.render.RepositoryConsumedStockValue = function(data = {}) {
|
|||
return '<span class="empty-consumed-stock-render"> - </span>';
|
||||
};
|
||||
|
||||
$.fn.dataTable.render.defaultRepositoryStockValue = function() {
|
||||
return $.fn.dataTable.render.RepositoryStockValue();
|
||||
$.fn.dataTable.render.defaultRepositoryStockConsumptionValue = function() {
|
||||
return $.fn.dataTable.render.RepositoryStockConsumptionValue();
|
||||
};
|
||||
|
|
|
@ -93,20 +93,17 @@ module RepositoryDatatableHelper
|
|||
consumption_managable =
|
||||
stock_present && record.repository.is_a?(Repository) && can_update_my_module_stock_consumption?(my_module)
|
||||
|
||||
row['1'] = stock_present ? display_cell_value(record.repository_stock_cell, record.repository.team) : {}
|
||||
row['1'][:stock_managable] = stock_managable
|
||||
row['consumedStock'] = {
|
||||
stock_present: stock_present,
|
||||
consumption_managable: consumption_managable
|
||||
}
|
||||
row['stock'] = stock_present ? display_cell_value(record.repository_stock_cell, record.repository.team) : {}
|
||||
row['stock'][:stock_managable] = stock_managable
|
||||
if record.repository.is_a?(RepositorySnapshot)
|
||||
if record.repository_stock_consumption_value.present?
|
||||
row['consumedStock'][:value] = {
|
||||
consumed_stock: record.repository_stock_consumption_value.amount,
|
||||
unit: record.repository_stock_consumption_value.repository_stock_unit_item&.data
|
||||
}
|
||||
end
|
||||
row['consumedStock'] =
|
||||
if record.repository_stock_consumption_value.present?
|
||||
display_cell_value(record.repository_stock_consumption_cell, record.repository.team)
|
||||
else
|
||||
{}
|
||||
end
|
||||
else
|
||||
row['consumedStock'] = {}
|
||||
if consumption_managable
|
||||
row['consumedStock'][:updateStockConsumptionUrl] =
|
||||
Rails.application.routes.url_helpers.consume_modal_my_module_repository_path(
|
||||
|
@ -116,17 +113,20 @@ module RepositoryDatatableHelper
|
|||
if record.consumed_stock.present?
|
||||
row['consumedStock'][:value] = {
|
||||
consumed_stock: record.consumed_stock,
|
||||
unit: record.repository_stock_value&.repository_stock_unit_item&.data
|
||||
consumed_stock_formatted:
|
||||
"#{record.consumed_stock} #{record.repository_stock_value&.repository_stock_unit_item&.data}"
|
||||
}
|
||||
end
|
||||
end
|
||||
row['consumedStock']['stock_present'] = stock_present
|
||||
row['consumedStock']['consumption_managable'] = consumption_managable
|
||||
end
|
||||
|
||||
row
|
||||
end
|
||||
end
|
||||
|
||||
def prepare_snapshot_row_columns(repository_rows, columns_mappings, team)
|
||||
def prepare_snapshot_row_columns(repository_rows, columns_mappings, team, options = {})
|
||||
repository_rows.map do |record|
|
||||
row = {
|
||||
'DT_RowId': record.id,
|
||||
|
@ -143,6 +143,17 @@ module RepositoryDatatableHelper
|
|||
row[columns_mappings[cell.repository_column.id]] = display_cell_value(cell, team)
|
||||
end
|
||||
|
||||
if options[:include_stock_consumption] && record.repository.has_stock_management?
|
||||
stock_present = record.repository_stock_cell.present?
|
||||
row['stock'] = stock_present ? display_cell_value(record.repository_stock_cell, record.repository.team) : {}
|
||||
row['consumedStock'] =
|
||||
if stock_present
|
||||
display_cell_value(record.repository_stock_consumption_cell, record.repository.team)
|
||||
else
|
||||
{}
|
||||
end
|
||||
end
|
||||
|
||||
row
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module RepositoryDatatable
|
||||
class RepositoryStockConsumptionValueSerializer < RepositoryBaseValueSerializer
|
||||
def value
|
||||
{
|
||||
consumed_stock_formatted: object.formatted,
|
||||
consumed_stock: object.data
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
|
@ -2,7 +2,10 @@
|
|||
|
||||
json.draw @draw
|
||||
json.data do
|
||||
json.array! prepare_snapshot_row_columns(@repository_rows, @columns_mappings, @repository_snapshot.team)
|
||||
json.array! prepare_snapshot_row_columns(@repository_rows,
|
||||
@columns_mappings,
|
||||
@repository_snapshot.team,
|
||||
{ include_stock_consumption: @repository_snapshot.has_stock_management? })
|
||||
end
|
||||
json.recordsFiltered @repository_rows.first ? @repository_rows.first.filtered_count : 0
|
||||
json.recordsTotal @all_rows_count
|
||||
|
|
Loading…
Add table
Reference in a new issue