mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-01 12:38:30 +08:00
Fix loading process
This commit is contained in:
parent
7fdc169ba2
commit
845e8c3d6d
6 changed files with 43 additions and 54 deletions
|
@ -16,7 +16,8 @@ var MyModuleRepositories = (function() {
|
||||||
url: $(tableContainer).data('source'),
|
url: $(tableContainer).data('source'),
|
||||||
data: function(d) {
|
data: function(d) {
|
||||||
d.assigned = 'assigned';
|
d.assigned = 'assigned';
|
||||||
d.simple_view = 'true';
|
d.view_mode = true;
|
||||||
|
d.skip_custom_columns = true;
|
||||||
},
|
},
|
||||||
global: false,
|
global: false,
|
||||||
type: 'GET'
|
type: 'GET'
|
||||||
|
@ -28,7 +29,12 @@ var MyModuleRepositories = (function() {
|
||||||
columns[i].defaultContent = '';
|
columns[i].defaultContent = '';
|
||||||
}
|
}
|
||||||
return columns;
|
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 repositoryContainer = $(this);
|
||||||
var repositoryTemplate = $($('#my-module-repository-simple-template').html());
|
var repositoryTemplate = $($('#my-module-repository-simple-template').html());
|
||||||
repositoryTemplate.attr('data-source', $(this).data('repository-url'));
|
repositoryTemplate.attr('data-source', $(this).data('repository-url'));
|
||||||
|
|
||||||
repositoryContainer.html(repositoryTemplate);
|
repositoryContainer.html(repositoryTemplate);
|
||||||
renderSimpleTable(repositoryTemplate);
|
renderSimpleTable(repositoryTemplate);
|
||||||
});
|
});
|
||||||
|
|
|
@ -10,6 +10,10 @@ class MyModuleRepositoriesController < ApplicationController
|
||||||
page = (params[:start].to_i / per_page) + 1
|
page = (params[:start].to_i / per_page) + 1
|
||||||
datatable_service = RepositoryDatatableService.new(@repository, params, current_user, @my_module)
|
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
|
@all_rows_count = datatable_service.all_count
|
||||||
@repository_rows = datatable_service.repository_rows
|
@repository_rows = datatable_service.repository_rows
|
||||||
.preload(:repository_columns,
|
.preload(:repository_columns,
|
||||||
|
@ -17,11 +21,8 @@ class MyModuleRepositoriesController < ApplicationController
|
||||||
repository_cells: @repository.cell_preload_includes)
|
repository_cells: @repository.cell_preload_includes)
|
||||||
.page(page)
|
.page(page)
|
||||||
.per(per_page)
|
.per(per_page)
|
||||||
if params[:simple_view]
|
|
||||||
render 'repository_rows/simple.json'
|
render 'repository_rows/index.json'
|
||||||
else
|
|
||||||
render 'repository_rows/index.json'
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -6,44 +6,10 @@ module RepositoryDatatableHelper
|
||||||
def prepare_row_columns(repository_rows,
|
def prepare_row_columns(repository_rows,
|
||||||
repository,
|
repository,
|
||||||
columns_mappings,
|
columns_mappings,
|
||||||
team)
|
team,
|
||||||
|
options = {})
|
||||||
parsed_records = []
|
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|
|
repository_rows.each do |record|
|
||||||
row = {
|
row = {
|
||||||
'DT_RowId': record.id,
|
'DT_RowId': record.id,
|
||||||
|
@ -55,6 +21,30 @@ module RepositoryDatatableHelper
|
||||||
'recordInfoUrl': Rails.application.routes.url_helpers
|
'recordInfoUrl': Rails.application.routes.url_helpers
|
||||||
.repository_row_path(record.id)
|
.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
|
parsed_records << row
|
||||||
end
|
end
|
||||||
parsed_records
|
parsed_records
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<template id="my-module-repository-simple-template">
|
<template id="my-module-repository-simple-template">
|
||||||
<table class="table"
|
<table class="table hidden"
|
||||||
data-default-table-columns="<%= default_table_columns %>"
|
data-default-table-columns="<%= default_table_columns %>"
|
||||||
>
|
>
|
||||||
<thead>
|
<thead>
|
||||||
|
|
|
@ -5,7 +5,8 @@ json.data do
|
||||||
json.array! prepare_row_columns(@repository_rows,
|
json.array! prepare_row_columns(@repository_rows,
|
||||||
@repository,
|
@repository,
|
||||||
@columns_mappings,
|
@columns_mappings,
|
||||||
@repository.team)
|
@repository.team,
|
||||||
|
defined?(@datatable_params) ? @datatable_params : {})
|
||||||
end
|
end
|
||||||
json.recordsFiltered @repository_rows.first ? @repository_rows.first.filtered_count : 0
|
json.recordsFiltered @repository_rows.first ? @repository_rows.first.filtered_count : 0
|
||||||
json.recordsTotal @all_rows_count
|
json.recordsTotal @all_rows_count
|
||||||
|
|
|
@ -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
|
|
Loading…
Reference in a new issue