From 66cac0b676f1f25e9b4dc90f0a56ed1b00e9e4d3 Mon Sep 17 00:00:00 2001 From: zmagod Date: Tue, 5 Jun 2018 16:36:36 +0200 Subject: [PATCH 1/2] removes visibility toggle from Name column [fixes SCI-2435] --- .../repositories/repository_datatable.js.erb | 39 +++++++++++-------- ...y_rows_and_columns_without_repository.rake | 11 ------ lib/tasks/repositories.rake | 26 +++++++++++++ 3 files changed, 48 insertions(+), 28 deletions(-) delete mode 100644 lib/tasks/clear_repository_rows_and_columns_without_repository.rake create mode 100644 lib/tasks/repositories.rake diff --git a/app/assets/javascripts/repositories/repository_datatable.js.erb b/app/assets/javascripts/repositories/repository_datatable.js.erb index 3075232a8..eec6a046b 100644 --- a/app/assets/javascripts/repositories/repository_datatable.js.erb +++ b/app/assets/javascripts/repositories/repository_datatable.js.erb @@ -87,6 +87,7 @@ var RepositoryDatatable = (function(global) { }, { // Name column is clickable targets: 3, + visible: true, render: function(data, type, row) { return "" + data + ''; @@ -1120,6 +1121,8 @@ var RepositoryDatatable = (function(global) { thederName = el.innerText; } + + var listItem = dropdownList .find('.repository-columns-list-template') .clone(); @@ -1129,10 +1132,11 @@ var RepositoryDatatable = (function(global) { listItem.addClass(visLi); listItem.removeClass('repository-columns-list-template hide'); listItem.find('.text').html(generateColumnNameTooltip(thederName)); - listItem.find('.vis').addClass(visClass); - listItem.find('.vis') - .attr('title', $(TABLE_ID).data('columns-visibility-text')); - + if(thederName !== 'Name') { + listItem.find('.vis').addClass(visClass); + listItem.find('.vis') + .attr('title', $(TABLE_ID).data('columns-visibility-text')); + } dropdownList.append(listItem); } }); @@ -1164,20 +1168,21 @@ var RepositoryDatatable = (function(global) { var li = self.closest('li'); var column = TABLE.column(li.attr('data-position')); - if (column.visible()) { - self.addClass('fa-eye-slash'); - self.removeClass('fa-eye'); - li.addClass('col-invisible'); - column.visible(false); - TABLE.setColumnSearchable(column.index(), false); - } else { - self.addClass('fa-eye'); - self.removeClass('fa-eye-slash'); - li.removeClass('col-invisible'); - column.visible(true); - TABLE.setColumnSearchable(column.index(), true); + if(column.header.id !== 'row-name') { + if (column.visible()) { + self.addClass('fa-eye-slash'); + self.removeClass('fa-eye'); + li.addClass('col-invisible'); + column.visible(false); + TABLE.setColumnSearchable(column.index(), false); + } else { + self.addClass('fa-eye'); + self.removeClass('fa-eye-slash'); + li.removeClass('col-invisible'); + column.visible(true); + TABLE.setColumnSearchable(column.index(), true); + } } - // Re-filter/search if neccesary var searchText = $('div.dataTables_filter input').val(); if (!_.isEmpty(searchText)) { diff --git a/lib/tasks/clear_repository_rows_and_columns_without_repository.rake b/lib/tasks/clear_repository_rows_and_columns_without_repository.rake deleted file mode 100644 index 1a48ea3b9..000000000 --- a/lib/tasks/clear_repository_rows_and_columns_without_repository.rake +++ /dev/null @@ -1,11 +0,0 @@ -namespace :clear_repository_rows_and_columns_without_repository do - desc 'Removes all repository rows/columns and ' \ - 'referenced entities with dependent: destroy' - task run: :environment do - repository_ids = Repository.select(:id) - RepositoryColumn.skip_callback(:destroy, :around, :update_repository_table_states_with_removed_column) - RepositoryRow.where.not(repository_id: repository_ids).destroy_all - RepositoryColumn.where.not(repository_id: repository_ids).destroy_all - RepositoryColumn.set_callback(:destroy, :around, :update_repository_table_states_with_removed_column) - end -end diff --git a/lib/tasks/repositories.rake b/lib/tasks/repositories.rake new file mode 100644 index 000000000..e2cc1855a --- /dev/null +++ b/lib/tasks/repositories.rake @@ -0,0 +1,26 @@ +namespace :repositories do + desc 'Removes all repository rows/columns and ' \ + 'referenced entities with dependent: destroy' + task remove_rows_and_columns_without_repository: :environment do + repository_ids = Repository.select(:id) + RepositoryColumn.skip_callback( + :destroy, :around, :update_repository_table_states_with_removed_column + ) + RepositoryRow.where.not(repository_id: repository_ids).destroy_all + RepositoryColumn.where.not(repository_id: repository_ids).destroy_all + RepositoryColumn.set_callback( + :destroy, :around, :update_repository_table_states_with_removed_column + ) + end + + desc 'Set\'s the Name column visibility value to true. Needed if ' \ + 'the user has the Name column hidden when [SCI-2435] is merged. ' \ + 'Check: https://github.com/biosistemika/scinote-web/commits/master' + task set_name_column_visibility: :environment do + RepositoryTableState.find_each do |repository_table_state| + next unless repository_table_state.state['columns']['3'] + repository_table_state.state['columns']['3']['visible'] = 'true' + repository_table_state.save + end + end +end From a51ea399f4dd73caf7b5bc7059d3828ddf74338a Mon Sep 17 00:00:00 2001 From: zmagod Date: Tue, 5 Jun 2018 16:39:22 +0200 Subject: [PATCH 2/2] removes unneeded empty lines --- app/assets/javascripts/repositories/repository_datatable.js.erb | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/assets/javascripts/repositories/repository_datatable.js.erb b/app/assets/javascripts/repositories/repository_datatable.js.erb index eec6a046b..b1d6d913c 100644 --- a/app/assets/javascripts/repositories/repository_datatable.js.erb +++ b/app/assets/javascripts/repositories/repository_datatable.js.erb @@ -1121,8 +1121,6 @@ var RepositoryDatatable = (function(global) { thederName = el.innerText; } - - var listItem = dropdownList .find('.repository-columns-list-template') .clone();