mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-03-04 19:53:19 +08:00
Fix column reordering for repositories [SCI-4070]
This commit is contained in:
parent
220c3f8eeb
commit
3481b50796
5 changed files with 23 additions and 25 deletions
|
@ -509,7 +509,7 @@ var RepositoryDatatable = (function(global) {
|
|||
sScrollXInner: '100%',
|
||||
scrollY: '64vh',
|
||||
scrollCollapse: true,
|
||||
order: [[2, 'asc']],
|
||||
order: $(TABLE_ID).data('default-order'),
|
||||
colReorder: {
|
||||
fixedColumnsLeft: 2,
|
||||
realtime: false
|
||||
|
@ -526,6 +526,7 @@ var RepositoryDatatable = (function(global) {
|
|||
columnDefs: [{
|
||||
// Checkbox column needs special handling
|
||||
targets: 0,
|
||||
visible: true,
|
||||
searchable: false,
|
||||
orderable: false,
|
||||
className: 'dt-body-center',
|
||||
|
@ -536,6 +537,7 @@ var RepositoryDatatable = (function(global) {
|
|||
}, {
|
||||
// Assigned column is not searchable
|
||||
targets: 1,
|
||||
visible: true,
|
||||
searchable: false,
|
||||
orderable: true,
|
||||
sWidth: '1%',
|
||||
|
@ -578,6 +580,10 @@ var RepositoryDatatable = (function(global) {
|
|||
columns: (function() {
|
||||
var columns = $(TABLE_ID).data('default-table-columns');
|
||||
var customColumns = $(TABLE_ID).find('thead th[data-type]');
|
||||
for (let i = 0; i < columns.length; i += 1) {
|
||||
columns[i].data = String(i);
|
||||
columns[i].defaultContent = '';
|
||||
}
|
||||
customColumns.each((i, column) => {
|
||||
columns.push({
|
||||
visible: true,
|
||||
|
@ -675,19 +681,6 @@ var RepositoryDatatable = (function(global) {
|
|||
animateLoading();
|
||||
});
|
||||
|
||||
// Timeout for table header scrolling
|
||||
setTimeout(function() {
|
||||
TABLE.columns.adjust();
|
||||
|
||||
// Append button to inner toolbar in table
|
||||
$('div.toolbarButtonsDatatable').appendTo('div.toolbar');
|
||||
$('div.toolbarButtonsDatatable').show();
|
||||
|
||||
// Append buttons for task inventory
|
||||
$('div.toolbarButtons').appendTo('div.toolbar');
|
||||
$('div.toolbarButtons').show();
|
||||
}, 100);
|
||||
|
||||
return TABLE;
|
||||
}
|
||||
|
||||
|
|
|
@ -60,18 +60,18 @@ var RepositoryDatatableRowEditor = (function() {
|
|||
const formId = 'repositoryNewRowForm';
|
||||
let actionUrl = $(TABLE.table().node()).data('createRecord');
|
||||
let rowForm = $(`
|
||||
<form id="${formId}"
|
||||
class="repository-row-edit-form"
|
||||
action="${actionUrl}"
|
||||
method="post"
|
||||
data-remote="true">
|
||||
</form>
|
||||
<td>
|
||||
<form id="${formId}"
|
||||
class="repository-row-edit-form"
|
||||
action="${actionUrl}"
|
||||
method="post"
|
||||
data-remote="true">
|
||||
</form>
|
||||
</td>
|
||||
`);
|
||||
|
||||
$row.prepend(rowForm);
|
||||
|
||||
// First two columns are always present and visible
|
||||
$row.append($(TABLE_CELL));
|
||||
$row.append(rowForm);
|
||||
$row.append($(TABLE_CELL));
|
||||
|
||||
table.columns().every(function() {
|
||||
|
@ -117,7 +117,7 @@ var RepositoryDatatableRowEditor = (function() {
|
|||
</form>
|
||||
`);
|
||||
|
||||
$row.prepend(rowForm);
|
||||
$row.find('td').first().append(rowForm);
|
||||
|
||||
TABLE.cells(row.index(), row.columns().eq(0)).every(function() {
|
||||
let columnId = $(TABLE.columns(this.index().column).header()).attr('id');
|
||||
|
|
|
@ -56,6 +56,10 @@ module RepositoryDatatableHelper
|
|||
can_manage_repository_rows?(repository)
|
||||
end
|
||||
|
||||
def default_table_order_as_js_array
|
||||
Constants::REPOSITORY_TABLE_DEFAULT_STATE['order'].to_json
|
||||
end
|
||||
|
||||
def default_table_columns
|
||||
Constants::REPOSITORY_TABLE_DEFAULT_STATE['columns'].to_json
|
||||
end
|
||||
|
|
|
@ -25,7 +25,7 @@ class RepositoryTableStateService
|
|||
|
||||
def update_state(state)
|
||||
saved_state = load_state
|
||||
state['order'][0] = [3, 'asc'] if state.dig('order', 0, 0).to_i < 2
|
||||
state['order'] = Constants::REPOSITORY_TABLE_DEFAULT_STATE['order'] if state.dig('order', 0, 0).to_i < 1
|
||||
|
||||
return if saved_state.state.except('time') == state.except('time')
|
||||
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
data-columns-delete-text="<%= I18n.t('repositories.columns_delete') %>"
|
||||
data-available-columns="<%= repository_available_columns_path(repository) %>"
|
||||
data-columns-changed="<%= I18n.t('repositories.columns_changed') %>"
|
||||
data-default-order="<%= default_table_order_as_js_array %>"
|
||||
data-default-table-columns="<%= default_table_columns %>"
|
||||
data-list-items-path="<%= Rails.application.routes.url_helpers.repository_list_items_path %>"
|
||||
data-editable="<%= can_manage_repository_rows?(repository) %>">
|
||||
|
|
Loading…
Reference in a new issue