From 77a225ec3146387210e719c75aff13330a28d408 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Zrim=C5=A1ek?= Date: Wed, 7 Jun 2017 18:13:25 +0200 Subject: [PATCH] Added toggle between assigned and all repository records. [SCI-1276] --- .../repositories/repository_datatable.js | 28 +++++++++++++++++++ app/datatables/repository_datatable.rb | 2 ++ app/views/my_modules/repository.html.erb | 5 ++++ config/locales/en.yml | 2 ++ 4 files changed, 37 insertions(+) diff --git a/app/assets/javascripts/repositories/repository_datatable.js b/app/assets/javascripts/repositories/repository_datatable.js index c9f5324f3..042d8b83b 100644 --- a/app/assets/javascripts/repositories/repository_datatable.js +++ b/app/assets/javascripts/repositories/repository_datatable.js @@ -34,9 +34,13 @@ var loadFirstTime = true; var table; var originalHeader; +// Tells whether to filter only assigned repository records +var viewAssigned; + function dataTableInit() { // Make a copy of original repository table header originalHeader = $('#repository-table thead').children().clone(); + viewAssigned = 'assigned'; table = $('#repository-table').DataTable({ order: [[2, 'desc']], dom: "R<'row'<'col-sm-9-custom toolbar'l><'col-sm-3-custom'f>>tpi", @@ -54,6 +58,9 @@ function dataTableInit() { destroy: true, ajax: { url: $('#repository-table').data('source'), + data: function(d) { + d.assigned = viewAssigned; + }, global: false, type: 'POST' }, @@ -361,6 +368,27 @@ function onClickAddRecord() { adjustTableHeader(); } +(function onClickToggleAssignedRecords() { + $('.repository-assign-group > .btn').click(function() { + $('.btn-group > .btn').removeClass('active btn-primary'); + $('.btn-group > .btn').addClass('btn-default'); + $(this).addClass('active btn-primary'); + }); + + $('#assigned-repo-records').on('click', function() { + viewAssigned = 'assigned'; + table.ajax.reload(function() { + initRowSelection(); + }, false); + }); + $('#all-repo-records').on('click', function() { + viewAssigned = 'all'; + table.ajax.reload(function() { + initRowSelection(); + }, false); + }); +})(); + function onClickAssignRecords() { animateSpinner(); $.ajax({ diff --git a/app/datatables/repository_datatable.rb b/app/datatables/repository_datatable.rb index ee52d9a31..4e26171a2 100644 --- a/app/datatables/repository_datatable.rb +++ b/app/datatables/repository_datatable.rb @@ -21,6 +21,7 @@ class RepositoryDatatable < AjaxDatatablesRails::Base 'regex' => false, 'caseInsensitive' => true }, 'columns' => [], + 'assigned' => 'assigned', 'ColReorder' => [*0..4] } 5.times do @@ -165,6 +166,7 @@ class RepositoryDatatable < AjaxDatatablesRails::Base # number of samples/all samples it's dependant upon sort_record query def fetch_records records = get_raw_records + records = @assigned_rows if @my_module && params[:assigned] == 'assigned' records = sort_records(records) if params[:order].present? escape_special_chars records = filter_records(records) if params[:search].present? && diff --git a/app/views/my_modules/repository.html.erb b/app/views/my_modules/repository.html.erb index c1c21290f..35f6427a4 100644 --- a/app/views/my_modules/repository.html.erb +++ b/app/views/my_modules/repository.html.erb @@ -7,6 +7,11 @@

<%= @repository.name %>

+
+ + +
+