mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-06 21:24:23 +08:00
Samples - show all/show assigned [SCI-1277] (#644)
* Samples - show all/show assigned [SCI-1277] * Some fixes in code * Some minor fixes in code * Omit present * Correct missed present * Fixing hound warnings
This commit is contained in:
parent
eb95ec74a3
commit
887d9a4f52
5 changed files with 57 additions and 6 deletions
|
@ -33,9 +33,12 @@ var loadFirstTime = true;
|
||||||
var table;
|
var table;
|
||||||
var originalHeader;
|
var originalHeader;
|
||||||
|
|
||||||
|
var view_assigned;
|
||||||
|
|
||||||
function dataTableInit() {
|
function dataTableInit() {
|
||||||
// Make a copy of original samples table header
|
// Make a copy of original samples table header
|
||||||
originalHeader = $('#samples thead').children().clone();
|
originalHeader = $('#samples thead').children().clone();
|
||||||
|
view_assigned = 'assigned';
|
||||||
table = $('#samples').DataTable({
|
table = $('#samples').DataTable({
|
||||||
order: [[2, 'desc']],
|
order: [[2, 'desc']],
|
||||||
dom: "R<'row'<'col-sm-9-custom toolbar'l><'col-sm-3-custom'f>>tpi",
|
dom: "R<'row'<'col-sm-9-custom toolbar'l><'col-sm-3-custom'f>>tpi",
|
||||||
|
@ -53,6 +56,9 @@ function dataTableInit() {
|
||||||
destroy: true,
|
destroy: true,
|
||||||
ajax: {
|
ajax: {
|
||||||
url: $('#samples').data('source'),
|
url: $('#samples').data('source'),
|
||||||
|
data: function ( d ) {
|
||||||
|
d.assigned = view_assigned;
|
||||||
|
},
|
||||||
global: false,
|
global: false,
|
||||||
type: 'POST'
|
type: 'POST'
|
||||||
},
|
},
|
||||||
|
@ -819,6 +825,15 @@ function onClickAddSample() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$('#assignedSamples').on('click', function () {
|
||||||
|
view_assigned = 'assigned';
|
||||||
|
table.draw();
|
||||||
|
});
|
||||||
|
$('#allSamples').on('click', function () {
|
||||||
|
view_assigned = 'all';
|
||||||
|
table.draw();
|
||||||
|
});
|
||||||
|
|
||||||
// Handle enter key
|
// Handle enter key
|
||||||
$(document).off('keypress').keypress(function(event) {
|
$(document).off('keypress').keypress(function(event) {
|
||||||
var keycode = (event.keyCode ? event.keyCode : event.which);
|
var keycode = (event.keyCode ? event.keyCode : event.which);
|
||||||
|
|
|
@ -17,6 +17,12 @@ $("form#form-samples-file")
|
||||||
$(this).find(".form-group").append("<span class='help-block'>" + data.responseJSON.message + "</span>");
|
$(this).find(".form-group").append("<span class='help-block'>" + data.responseJSON.message + "</span>");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.sample-assign-group > .btn').click(function() {
|
||||||
|
$('.btn-group > .btn').removeClass('active btn-primary');
|
||||||
|
$('.btn-group > .btn').addClass('btn-default');
|
||||||
|
$(this).addClass('active btn-primary');
|
||||||
|
});
|
||||||
|
|
||||||
// Fetch samples data and updates the select options fields for
|
// Fetch samples data and updates the select options fields for
|
||||||
// sample group and sample type column
|
// sample group and sample type column
|
||||||
function updateSamplesTypesandGroups() {
|
function updateSamplesTypesandGroups() {
|
||||||
|
|
|
@ -21,6 +21,7 @@ class SampleDatatable < AjaxDatatablesRails::Base
|
||||||
'regex' => false,
|
'regex' => false,
|
||||||
'caseInsensitive' => true },
|
'caseInsensitive' => true },
|
||||||
'columns' => [],
|
'columns' => [],
|
||||||
|
'assigned' => 'all',
|
||||||
'ColReorder' => [*0..6]
|
'ColReorder' => [*0..6]
|
||||||
}
|
}
|
||||||
7.times do
|
7.times do
|
||||||
|
@ -178,10 +179,14 @@ class SampleDatatable < AjaxDatatablesRails::Base
|
||||||
@assigned_samples = @my_module.samples
|
@assigned_samples = @my_module.samples
|
||||||
|
|
||||||
samples = samples.joins("LEFT OUTER JOIN sample_my_modules ON
|
samples = samples.joins("LEFT OUTER JOIN sample_my_modules ON
|
||||||
(samples.id = sample_my_modules.sample_id AND
|
(samples.id = sample_my_modules.sample_id AND
|
||||||
(sample_my_modules.my_module_id = #{@my_module.id.to_s} OR
|
(sample_my_modules.my_module_id =
|
||||||
sample_my_modules.id IS NULL))")
|
#{@my_module.id} OR
|
||||||
.references(:sample_my_modules)
|
sample_my_modules.id IS NULL))")
|
||||||
|
.references(:sample_my_modules)
|
||||||
|
if params[:assigned] == 'assigned'
|
||||||
|
samples = samples.where('"sample_my_modules"."id" > 0')
|
||||||
|
end
|
||||||
elsif @project
|
elsif @project
|
||||||
@assigned_samples = @project.assigned_samples
|
@assigned_samples = @project.assigned_samples
|
||||||
ids = @project.my_modules_ids
|
ids = @project.my_modules_ids
|
||||||
|
@ -198,6 +203,16 @@ class SampleDatatable < AjaxDatatablesRails::Base
|
||||||
sample_my_modules.id IS NULL))")
|
sample_my_modules.id IS NULL))")
|
||||||
.references(:sample_my_modules)
|
.references(:sample_my_modules)
|
||||||
end
|
end
|
||||||
|
if params[:assigned] == 'assigned'
|
||||||
|
samples = samples.joins('LEFT OUTER JOIN "my_modules" ON
|
||||||
|
"my_modules"."id" =
|
||||||
|
"sample_my_modules"."my_module_id"')
|
||||||
|
.joins('LEFT OUTER JOIN "experiments" ON
|
||||||
|
"experiments"."id" =
|
||||||
|
"my_modules"."experiment_id"')
|
||||||
|
.where('"experiments"."project_id" = ?', @project.id)
|
||||||
|
.where('"my_modules"."nr_of_assigned_samples" > 0')
|
||||||
|
end
|
||||||
elsif @experiment
|
elsif @experiment
|
||||||
@assigned_samples = @experiment.assigned_samples
|
@assigned_samples = @experiment.assigned_samples
|
||||||
ids = @experiment.my_modules.select(:id)
|
ids = @experiment.my_modules.select(:id)
|
||||||
|
@ -207,6 +222,14 @@ class SampleDatatable < AjaxDatatablesRails::Base
|
||||||
(sample_my_modules.my_module_id IN (#{ids.to_sql}) OR
|
(sample_my_modules.my_module_id IN (#{ids.to_sql}) OR
|
||||||
sample_my_modules.id IS NULL))")
|
sample_my_modules.id IS NULL))")
|
||||||
.references(:sample_my_modules)
|
.references(:sample_my_modules)
|
||||||
|
if params[:assigned] == 'assigned'
|
||||||
|
samples = samples.joins('LEFT OUTER JOIN "my_modules" ON
|
||||||
|
"my_modules"."id" =
|
||||||
|
"sample_my_modules"."my_module_id"')
|
||||||
|
.where('"my_modules"."experiment_id" = ?',
|
||||||
|
@experiment.id)
|
||||||
|
.where('"my_modules"."nr_of_assigned_samples" > 0')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# Make mappings of custom fields, so we have same id for every column
|
# Make mappings of custom fields, so we have same id for every column
|
||||||
|
@ -297,9 +320,9 @@ class SampleDatatable < AjaxDatatablesRails::Base
|
||||||
.distinct
|
.distinct
|
||||||
|
|
||||||
# check the input param and merge the two arrays of ids
|
# check the input param and merge the two arrays of ids
|
||||||
if params[:order].values[0]["dir"] == "asc"
|
if params[:order].values[0]['dir'] == 'asc'
|
||||||
ids = assigned + unassigned
|
ids = assigned + unassigned
|
||||||
elsif params[:order].values[0]["dir"] == "desc"
|
elsif params[:order].values[0]['dir'] == 'desc'
|
||||||
ids = unassigned + assigned
|
ids = unassigned + assigned
|
||||||
end
|
end
|
||||||
ids = ids.collect { |s| s.id }
|
ids = ids.collect { |s| s.id }
|
||||||
|
|
|
@ -36,6 +36,11 @@
|
||||||
<span class="glyphicon glyphicon-cloud-download"></span>
|
<span class="glyphicon glyphicon-cloud-download"></span>
|
||||||
<span class="hidden-xs"><%= t("samples.export") %></span>
|
<span class="hidden-xs"><%= t("samples.export") %></span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<div id="show-assigned-buttons" class="btn-group sample-assign-group" data-toggle="buttons">
|
||||||
|
<button type="button" class="active btn btn-primary" id="assignedSamples"><%= t("samples.view_assigned_samples") %></button>
|
||||||
|
<button type="button" class="btn btn-default" id="allSamples"><%= t("samples.view_all_samples") %></button>
|
||||||
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<div id="datatables-buttons" style="display: inline;">
|
<div id="datatables-buttons" style="display: inline;">
|
||||||
|
|
|
@ -853,6 +853,8 @@ en:
|
||||||
add_new_sample_type: "Add sample type"
|
add_new_sample_type: "Add sample type"
|
||||||
add_new_sample_group: "Add sample group"
|
add_new_sample_group: "Add sample group"
|
||||||
add_new_column: "Add column"
|
add_new_column: "Add column"
|
||||||
|
view_all_samples: "View all samples"
|
||||||
|
view_assigned_samples: "View assigned samples"
|
||||||
modal_info:
|
modal_info:
|
||||||
added_on: "Added on"
|
added_on: "Added on"
|
||||||
added_by: "Added by"
|
added_by: "Added by"
|
||||||
|
|
Loading…
Add table
Reference in a new issue