Skip to content

Commit

Permalink
simplify the search parameters key naming to avoid duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
syphax-bouazzouni committed Dec 24, 2023
1 parent 0191163 commit 4b9a9c1
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 31 deletions.
4 changes: 2 additions & 2 deletions app/components/chips_component.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
class ChipsComponent < ViewComponent::Base

renders_one :count
def initialize(id:nil, name:, label: nil, value:, checked: false)
def initialize(id:nil, name:, label: nil, value: nil, checked: false)
@id = id || name
@name = name
@value = value
@value = value || 'true'
@checked = checked
@label = label || @value
end
Expand Down
28 changes: 11 additions & 17 deletions app/controllers/search_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,19 @@ class SearchController < ApplicationController
layout :determine_layout

def index
@search_query = params[:query].nil? ? params[:q] : params[:query]
params[:q] = params[:query]
params[:query] = nil
@search_query ||= ""
@search_query = params[:query] || params[:q] || ''
@advanced_options_open = false
unless @search_query.eql?("")
params[:pagesize] = "5000"
define_search_api_params(params)
@advanced_options_open = !params_empty?(params)
@select_ontologies = params[:ontologies_list]
@select_categories = params[:categories_list]
data = LinkedData::Client::Models::Class.search(@search_query, params)
results = data.collection
grouped_results = group_results_by_ontology(results)
@search_results = make_search_result(grouped_results)
@no_results = @search_results.eql?([])
@search_results = []

return if @search_query.empty?

params[:pagesize] = "150"

results = LinkedData::Client::Models::Class.search(@search_query, params).collection

@advanced_options_open = !search_params_empty?
@search_results = aggregate_results(@search_query, results)
end
end
end

def json_search
if params[:q].nil?
Expand Down
2 changes: 1 addition & 1 deletion app/helpers/multi_languages_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def search_language_selector(id: 'search_language', name: 'search_language', sel
languages: search_languages,
'data-select-input-searchable-value': false,
title: search_language_help_text,
selected: selected)
selected: selected&.to_sym)

end

Expand Down
22 changes: 11 additions & 11 deletions app/views/search/index.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -6,41 +6,41 @@
%input{type:"text", placeholder:"Enter a term, e.g. Melanoma", name: "q", value: @search_query}
%button.search-page-button{type:'submit'}
= inline_svg_tag 'icons/search.svg'
.search-page-sizedbox

.search-page-advanced{'data-search-target': 'advancedOptions', class: "#{@advanced_options_open ? '' : 'd-none'}"}
.left
.filter-container
.title
Search language
.field
= search_language_selector(selected:@language)
= search_language_selector(name: 'lang', selected: params[:lang])
.filter-container
.title
= t("search.categories")
.field
= render Input::SelectComponent.new(id: 'search-categories', name: 'categories_list[]', value: categories_for_select, multiple: "multiple", selected: @select_categories)
= render Input::SelectComponent.new(id: 'search-categories', name: 'categories[]', value: categories_for_select, multiple: "multiple", selected: params[:categories])

.filter-container
.title
= t("search.ontologies")
.field

= render Input::SelectComponent.new(id: 'search-ontologies', name: 'ontologies_list[]', value: @onts_for_select, multiple: "multiple", selected: @select_ontologies)
= render Input::SelectComponent.new(id: 'search-ontologies', name: 'ontologies[]', value: @onts_for_select, multiple: "multiple", selected: params[:ontologies])
.right
.filter-container
.title
Include in search
.options
= render(ChipsComponent.new(name: 'property-values', value: 'Property values', checked: @property_values.eql?("true")))
= render(ChipsComponent.new(name: 'obsolete-classes', value: 'Obsolete classes', checked: @obsolete_classes.eql?("true")))
= render(ChipsComponent.new(name: 'ontology-views', value: 'Ontology views', checked: @ontology_views.eql?("true")))
.d-flex
= render(ChipsComponent.new(name: 'include_properties', label: 'Property values', checked: params[:include_properties]))
= render(ChipsComponent.new(name: 'obsolete', label: 'Obsolete classes', checked: params[:obsolete]))
= render(ChipsComponent.new(name: 'include_views', label: 'Ontology views', checked: params[:include_views]))

.filter-container
.title
Show only
.options
= render(ChipsComponent.new(name: 'exact-matches', value: 'Exact Matches', checked: @exact_matches.eql?("true")))
= render(ChipsComponent.new(name: 'classes-with-definitions', value: 'Classes with definitions', checked: @require_definition.eql?("true")))
.d-flex
= render(ChipsComponent.new(name: 'exact_match', label: 'Exact Matches', checked: params[:exact_match]))
= render(ChipsComponent.new(name: 'require_definition', label: 'Classes with definitions', checked: params[:require_definition]))

.search-page-options
- if @search_results
Expand Down

0 comments on commit 4b9a9c1

Please sign in to comment.