Fix loading process

This commit is contained in:
aignatov-bio 2020-04-07 12:36:01 +02:00
parent 7fdc169ba2
commit 845e8c3d6d
6 changed files with 43 additions and 54 deletions

View file

@ -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);
});

View file

@ -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

View file

@ -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

View file

@ -24,7 +24,7 @@
<% end %>
<template id="my-module-repository-simple-template">
<table class="table"
<table class="table hidden"
data-default-table-columns="<%= default_table_columns %>"
>
<thead>

View file

@ -5,7 +5,8 @@ json.data do
json.array! prepare_row_columns(@repository_rows,
@repository,
@columns_mappings,
@repository.team)
@repository.team,
defined?(@datatable_params) ? @datatable_params : {})
end
json.recordsFiltered @repository_rows.first ? @repository_rows.first.filtered_count : 0
json.recordsTotal @all_rows_count

View file

@ -1,8 +0,0 @@
# frozen_string_literal: true
json.draw @draw
json.data do
json.array! prepare_row_columns_simple(@repository_rows)
end
json.recordsFiltered @repository_rows.first ? @repository_rows.first.filtered_count : 0
json.recordsTotal @all_rows_count