diff --git a/app/datatables/repository_datatable.rb b/app/datatables/repository_datatable.rb index bf1f2f947..9e9550c98 100644 --- a/app/datatables/repository_datatable.rb +++ b/app/datatables/repository_datatable.rb @@ -185,18 +185,20 @@ class RepositoryDatatable < AjaxDatatablesRails::Base end # Overriden to make it work for custom columns, because they are polymorphic - def simple_search(records) - return records unless params[:search].present? && - params[:search][:value].present? + # NOTE: Function assumes the provided records/rows are only from the current + # repository! + def simple_search(repo_rows) + return repo_rows unless params[:search].present? && + params[:search][:value].present? search_val = params[:search][:value] - filtered_ids = RepositoryRow.select do |r| + filtered_rows = repo_rows.select do |r| row_cells = [r.name, r.created_at.strftime(Constants::DATE_FORMAT), r.created_by.full_name] row_cells.push(*r.repository_cells.collect { |c| c.value.data }) row_cells.any? { |c| c.include?(search_val) } end - records.where!(id: filtered_ids) + repo_rows.where(id: filtered_rows) end # Override default sort method if needed