mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-02-01 04:32:16 +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'),
|
||||
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);
|
||||
});
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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