mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2024-09-20 14:45:56 +08:00
Merge pull request #2701 from mlorb/ml-sci-4793
Add empty states to inventories datatable and fix filtering bug [SCI-4793]
This commit is contained in:
commit
73e2654d78
|
@ -48,6 +48,10 @@
|
||||||
sScrollXInner: '100%',
|
sScrollXInner: '100%',
|
||||||
order: [[1, 'asc']],
|
order: [[1, 'asc']],
|
||||||
destroy: true,
|
destroy: true,
|
||||||
|
language: {
|
||||||
|
emptyTable: archived ? I18n.t('repositories.index.no_archived_inventories') : I18n.t('repositories.index.no_inventories'),
|
||||||
|
zeroRecords: archived ? I18n.t('repositories.index.no_archived_inventories_matched') : I18n.t('repositories.index.no_inventories_matched')
|
||||||
|
},
|
||||||
columnDefs: [{
|
columnDefs: [{
|
||||||
targets: 0,
|
targets: 0,
|
||||||
visible: !$('.repositories-index').data('readonly'),
|
visible: !$('.repositories-index').data('readonly'),
|
||||||
|
|
|
@ -494,8 +494,9 @@ var RepositoryDatatable = (function(global) {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
oLanguage: {
|
language: {
|
||||||
sSearch: I18n.t('general.filter_dots')
|
emptyTable: I18n.t('repositories.show.no_items'),
|
||||||
|
zeroRecords: I18n.t('repositories.show.no_items_matched')
|
||||||
},
|
},
|
||||||
rowCallback: function(row, data) {
|
rowCallback: function(row, data) {
|
||||||
$(row).attr('data-editable', data.recordEditable);
|
$(row).attr('data-editable', data.recordEditable);
|
||||||
|
@ -539,6 +540,9 @@ var RepositoryDatatable = (function(global) {
|
||||||
checkArchivedColumnsState();
|
checkArchivedColumnsState();
|
||||||
},
|
},
|
||||||
preDrawCallback: function() {
|
preDrawCallback: function() {
|
||||||
|
var archived = $('.repository-show').hasClass('archived');
|
||||||
|
TABLE.context[0].oLanguage.sEmptyTable = archived ? I18n.t('repositories.show.no_archived_items') : I18n.t('repositories.show.no_items');
|
||||||
|
TABLE.context[0].oLanguage.sZeroRecords = archived ? I18n.t('repositories.show.no_archived_items_matched') : I18n.t('repositories.show.no_items_matched');
|
||||||
animateSpinner(this);
|
animateSpinner(this);
|
||||||
$('.record-info-link').off('click');
|
$('.record-info-link').off('click');
|
||||||
},
|
},
|
||||||
|
@ -553,6 +557,7 @@ var RepositoryDatatable = (function(global) {
|
||||||
var archived = $('.repository-show').hasClass('archived');
|
var archived = $('.repository-show').hasClass('archived');
|
||||||
if (json.state.columns[6]) json.state.columns[6].visible = archived;
|
if (json.state.columns[6]) json.state.columns[6].visible = archived;
|
||||||
if (json.state.columns[7]) json.state.columns[7].visible = archived;
|
if (json.state.columns[7]) json.state.columns[7].visible = archived;
|
||||||
|
delete json.state.search
|
||||||
callback(json.state);
|
callback(json.state);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -61,7 +61,11 @@ class RepositoryDatatableService
|
||||||
end
|
end
|
||||||
|
|
||||||
def fetch_rows(search_value)
|
def fetch_rows(search_value)
|
||||||
repository_rows = @repository.repository_rows
|
repository_rows = if @repository.archived?
|
||||||
|
@repository.repository_rows
|
||||||
|
else
|
||||||
|
@repository.repository_rows.where(archived: @params[:archived] || false)
|
||||||
|
end
|
||||||
|
|
||||||
@all_count =
|
@all_count =
|
||||||
if @my_module && @params[:assigned] == 'assigned'
|
if @my_module && @params[:assigned] == 'assigned'
|
||||||
|
|
|
@ -942,10 +942,6 @@ class Constants
|
||||||
'start' => 0,
|
'start' => 0,
|
||||||
'length' => 8,
|
'length' => 8,
|
||||||
'order' => [[2, 'asc']], # Default sorting by 'ID' column
|
'order' => [[2, 'asc']], # Default sorting by 'ID' column
|
||||||
'search' => { 'search' => '',
|
|
||||||
'smart' => true,
|
|
||||||
'regex' => false,
|
|
||||||
'caseInsensitive' => true },
|
|
||||||
'columns' => [],
|
'columns' => [],
|
||||||
'assigned' => 'assigned',
|
'assigned' => 'assigned',
|
||||||
'ColReorder' => [*0..7]
|
'ColReorder' => [*0..7]
|
||||||
|
@ -968,10 +964,6 @@ class Constants
|
||||||
'start' => 0,
|
'start' => 0,
|
||||||
'length' => 5,
|
'length' => 5,
|
||||||
'order' => [[1, 'asc']], # Default sorting by 'ID' column
|
'order' => [[1, 'asc']], # Default sorting by 'ID' column
|
||||||
'search' => { 'search' => '',
|
|
||||||
'smart' => true,
|
|
||||||
'regex' => false,
|
|
||||||
'caseInsensitive' => true },
|
|
||||||
'columns' => [],
|
'columns' => [],
|
||||||
'assigned' => 'assigned',
|
'assigned' => 'assigned',
|
||||||
'ColReorder' => [*0..4]
|
'ColReorder' => [*0..4]
|
||||||
|
|
|
@ -1080,6 +1080,10 @@ en:
|
||||||
view_only_permission_label: "You have veiw-only permission"
|
view_only_permission_label: "You have veiw-only permission"
|
||||||
show_per_page: "Show %{number} per page"
|
show_per_page: "Show %{number} per page"
|
||||||
filter_inventory: "Filter inventory item"
|
filter_inventory: "Filter inventory item"
|
||||||
|
no_inventories: "No inventories here"
|
||||||
|
no_inventories_matched: "No inventories matched your search request"
|
||||||
|
no_archived_inventories: "No archived inventories here"
|
||||||
|
no_archived_inventories_matched: "No archived inventories matched your search request"
|
||||||
snapshot_provisioning_in_progress: 'Editing is disabled while a snapshot is being created. This will only take a moment.'
|
snapshot_provisioning_in_progress: 'Editing is disabled while a snapshot is being created. This will only take a moment.'
|
||||||
|
|
||||||
options_dropdown:
|
options_dropdown:
|
||||||
|
@ -1134,6 +1138,10 @@ en:
|
||||||
active: "These are individually archived items from the %{repository_name} inventory. The inventory itself is active."
|
active: "These are individually archived items from the %{repository_name} inventory. The inventory itself is active."
|
||||||
archived_on: "Inventory archived on"
|
archived_on: "Inventory archived on"
|
||||||
archived_by: "by"
|
archived_by: "by"
|
||||||
|
no_items: "No items here"
|
||||||
|
no_items_matched: "No items matched your search request"
|
||||||
|
no_archived_items: "No archived items here"
|
||||||
|
no_archived_items_matched: "No archived items matched your search request"
|
||||||
|
|
||||||
table:
|
table:
|
||||||
id: 'ID'
|
id: 'ID'
|
||||||
|
@ -2309,7 +2317,6 @@ en:
|
||||||
no_name: "(no name)"
|
no_name: "(no name)"
|
||||||
error: "An error has occurred, please try again later."
|
error: "An error has occurred, please try again later."
|
||||||
filter: "Filter:"
|
filter: "Filter:"
|
||||||
filter_dots: "Filter..."
|
|
||||||
no_teams:
|
no_teams:
|
||||||
title: "Your dashboard is empty!"
|
title: "Your dashboard is empty!"
|
||||||
text: "It seems you're not a member of any team."
|
text: "It seems you're not a member of any team."
|
||||||
|
|
|
@ -17,12 +17,6 @@ RSpec::Matchers.define :be_valid_default_repository_table_state do |nr_of_cols|
|
||||||
'start' => 0,
|
'start' => 0,
|
||||||
'length' => cols_length, # 8 default columns + parameter
|
'length' => cols_length, # 8 default columns + parameter
|
||||||
'order' => [[2, 'asc']],
|
'order' => [[2, 'asc']],
|
||||||
'search' => {
|
|
||||||
'search' => '',
|
|
||||||
'smart' => true,
|
|
||||||
'regex' => false,
|
|
||||||
'caseInsensitive' => true
|
|
||||||
},
|
|
||||||
'assigned' => 'assigned',
|
'assigned' => 'assigned',
|
||||||
'ColReorder' => cols_array
|
'ColReorder' => cols_array
|
||||||
)
|
)
|
||||||
|
|
|
@ -9,7 +9,7 @@ RSpec::Matchers.define :be_valid_repository_table_state do
|
||||||
|
|
||||||
expect(state).to be_an_instance_of Hash
|
expect(state).to be_an_instance_of Hash
|
||||||
expect(state).to include(
|
expect(state).to include(
|
||||||
'time', 'order', 'start', 'length', 'search', 'columns', 'ColReorder'
|
'time', 'order', 'start', 'length', 'columns', 'ColReorder'
|
||||||
)
|
)
|
||||||
|
|
||||||
expect(state['time']).to be_an_instance_of Integer
|
expect(state['time']).to be_an_instance_of Integer
|
||||||
|
@ -55,15 +55,6 @@ RSpec::Matchers.define :be_valid_repository_table_state do
|
||||||
# Check that the ordering column exists in columns
|
# Check that the ordering column exists in columns
|
||||||
expect(col_indexes).to include(state['order'][0][0])
|
expect(col_indexes).to include(state['order'][0][0])
|
||||||
|
|
||||||
expect(state['search']).to be_an_instance_of Hash
|
|
||||||
expect(state['search']).to include(
|
|
||||||
'regex', 'smart', 'search', 'caseInsensitive'
|
|
||||||
)
|
|
||||||
expect(state['search']['regex']).to eq(true).or eq(false)
|
|
||||||
expect(state['search']['smart']).to eq(true).or eq(false)
|
|
||||||
expect(state['search']['caseInsensitive']).to eq(true).or eq(false)
|
|
||||||
expect(state['search']['search']).to be_an_instance_of String
|
|
||||||
|
|
||||||
expect(state['ColReorder']).to be_an_instance_of Array
|
expect(state['ColReorder']).to be_an_instance_of Array
|
||||||
expect(state['ColReorder'].length).to eq cols_length
|
expect(state['ColReorder'].length).to eq cols_length
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue