From 845e8c3d6d0f1d1ecd69632d8eced0fdc3bdc45b Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Tue, 7 Apr 2020 12:36:01 +0200 Subject: [PATCH] Fix loading process --- .../javascripts/my_modules/repositories.js | 11 +++- .../my_module_repositories_controller.rb | 11 ++-- app/helpers/repository_datatable_helper.rb | 62 ++++++++----------- .../repositories/_repositories_list.html.erb | 2 +- app/views/repository_rows/index.json.jbuilder | 3 +- .../repository_rows/simple.json.jbuilder | 8 --- 6 files changed, 43 insertions(+), 54 deletions(-) delete mode 100644 app/views/repository_rows/simple.json.jbuilder diff --git a/app/assets/javascripts/my_modules/repositories.js b/app/assets/javascripts/my_modules/repositories.js index f3b478883..4e063b7d0 100644 --- a/app/assets/javascripts/my_modules/repositories.js +++ b/app/assets/javascripts/my_modules/repositories.js @@ -16,7 +16,8 @@ var MyModuleRepositories = (function() { url: $(tableContainer).data('source'), data: function(d) { d.assigned = 'assigned'; - d.simple_view = 'true'; + d.view_mode = true; + d.skip_custom_columns = true; }, global: false, type: 'GET' @@ -28,7 +29,12 @@ var MyModuleRepositories = (function() { columns[i].defaultContent = ''; } return columns; - }()) + }()), + drawCallback: function() { + var repositoryContainer = $(this).closest('.assigned-repository-container'); + repositoryContainer.find('.table.dataTable').removeClass('hidden'); + SIMPLE_TABLE.columns.adjust(); + } }); } @@ -37,7 +43,6 @@ var MyModuleRepositories = (function() { var repositoryContainer = $(this); var repositoryTemplate = $($('#my-module-repository-simple-template').html()); repositoryTemplate.attr('data-source', $(this).data('repository-url')); - repositoryContainer.html(repositoryTemplate); renderSimpleTable(repositoryTemplate); }); diff --git a/app/controllers/my_module_repositories_controller.rb b/app/controllers/my_module_repositories_controller.rb index a0bb5caef..c77b40f83 100644 --- a/app/controllers/my_module_repositories_controller.rb +++ b/app/controllers/my_module_repositories_controller.rb @@ -10,6 +10,10 @@ class MyModuleRepositoriesController < ApplicationController page = (params[:start].to_i / per_page) + 1 datatable_service = RepositoryDatatableService.new(@repository, params, current_user, @my_module) + @datatable_params = { + view_mode: params[:view_mode], + skip_custom_columns: params[:skip_custom_columns] + } @all_rows_count = datatable_service.all_count @repository_rows = datatable_service.repository_rows .preload(:repository_columns, @@ -17,11 +21,8 @@ class MyModuleRepositoriesController < ApplicationController repository_cells: @repository.cell_preload_includes) .page(page) .per(per_page) - if params[:simple_view] - render 'repository_rows/simple.json' - else - render 'repository_rows/index.json' - end + + render 'repository_rows/index.json' end private diff --git a/app/helpers/repository_datatable_helper.rb b/app/helpers/repository_datatable_helper.rb index d691b3297..baaf0f3d7 100644 --- a/app/helpers/repository_datatable_helper.rb +++ b/app/helpers/repository_datatable_helper.rb @@ -6,44 +6,10 @@ module RepositoryDatatableHelper def prepare_row_columns(repository_rows, repository, columns_mappings, - team) + team, + options = {}) parsed_records = [] - repository_rows.each do |record| - row = { - 'DT_RowId': record.id, - '1': assigned_row(record), - '2': record.id, - '3': escape_input(record.name), - '4': I18n.l(record.created_at, format: :full), - '5': escape_input(record.created_by.full_name), - 'recordEditUrl': Rails.application.routes.url_helpers - .edit_repository_repository_row_path( - repository, - record.id - ), - 'recordUpdateUrl': Rails.application.routes.url_helpers - .repository_repository_row_path( - repository, - record.id - ), - 'recordInfoUrl': Rails.application.routes.url_helpers - .repository_row_path(record.id), - 'recordEditable': record.editable? - } - - # Add custom columns - record.repository_cells.each do |cell| - row[columns_mappings[cell.repository_column.id]] = - display_cell_value(cell, team) - end - parsed_records << row - end - parsed_records - end - - def prepare_row_columns_simple(repository_rows) - parsed_records = [] repository_rows.each do |record| row = { 'DT_RowId': record.id, @@ -55,6 +21,30 @@ module RepositoryDatatableHelper 'recordInfoUrl': Rails.application.routes.url_helpers .repository_row_path(record.id) } + + unless options[:view_mode] + row.merge({ + 'recordEditUrl': Rails.application.routes.url_helpers + .edit_repository_repository_row_path( + repository, + record.id + ), + 'recordUpdateUrl': Rails.application.routes.url_helpers + .repository_repository_row_path( + repository, + record.id + ), + 'recordEditable': record.editable? + }) + end + + unless options[:skip_custom_columns] + # Add custom columns + record.repository_cells.each do |cell| + row[columns_mappings[cell.repository_column.id]] = + display_cell_value(cell, team) + end + end parsed_records << row end parsed_records diff --git a/app/views/my_modules/repositories/_repositories_list.html.erb b/app/views/my_modules/repositories/_repositories_list.html.erb index 4df8ec797..71bb599a9 100644 --- a/app/views/my_modules/repositories/_repositories_list.html.erb +++ b/app/views/my_modules/repositories/_repositories_list.html.erb @@ -24,7 +24,7 @@ <% end %>