toggle search filers display
This commit is contained in:
@@ -8,6 +8,8 @@
|
||||
use Drupal\Core\Routing\RouteMatchInterface;
|
||||
use Solarium\QueryType\Select\Query\Query;
|
||||
use Drupal\search_api\Query\QueryInterface;
|
||||
use Drupal\Core\Template\Attribute;
|
||||
|
||||
/**
|
||||
* Implements hook_help().
|
||||
*/
|
||||
@@ -48,3 +50,20 @@ function materio_sapi_search_api_solr_query_alter(Query $solarium_query, QueryI
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepares variables for fieldset element templates.
|
||||
*
|
||||
* Default template: fieldset.html.twig.
|
||||
*
|
||||
* @param array $variables
|
||||
* An associative array containing:
|
||||
* - element: An associative array containing the properties of the element.
|
||||
* Properties used: #attributes, #children, #description, #id, #title,
|
||||
* #value.
|
||||
*/
|
||||
function materio_sapi_preprocess_fieldset(&$variables) {
|
||||
if (isset($variables['element']['#legend_attributes'])) {
|
||||
$variables['legend']['attributes'] = new Attribute($variables['element']['#legend_attributes']);
|
||||
}
|
||||
}
|
||||
|
@@ -47,9 +47,18 @@ class MaterioSapiSearchForm extends FormBase {
|
||||
];
|
||||
|
||||
$form['filters'] = [
|
||||
'#type' => 'container'
|
||||
'#type' => 'fieldset',
|
||||
'#title' => t('Assisted Search'),
|
||||
'#legend_attributes' => [
|
||||
"class" => ["test-attribute"],
|
||||
'@click.prevent' => "onClickFilters",
|
||||
]
|
||||
];
|
||||
|
||||
// $form['filters']['switch'] = [
|
||||
// '#type' => "label",
|
||||
//
|
||||
// ]
|
||||
$query = \Drupal::entityQuery('taxonomy_term');
|
||||
$query->condition('vid', "assisted_research");
|
||||
$tids = $query->execute();
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -595,9 +595,30 @@ header[role="banner"]{
|
||||
color:#666;
|
||||
}
|
||||
|
||||
#edit-filters{
|
||||
fieldset#edit-filters{
|
||||
grid-row: 2 / 2;
|
||||
grid-column: 1 / span 2;
|
||||
border: none;
|
||||
padding: 0;
|
||||
>legend{
|
||||
line-height: 0.6;
|
||||
padding-bottom: 0.2em;
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
span{
|
||||
cursor: pointer;
|
||||
font-size: 0.756em;
|
||||
color: #8f8f8f;
|
||||
}
|
||||
}
|
||||
> div.fieldset-wrapper{
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
&.open >div.fieldset-wrapper{
|
||||
height: auto;
|
||||
overflow: visible;
|
||||
}
|
||||
.ss-main{
|
||||
font-size: 0.756em;
|
||||
.ss-single-selected{
|
||||
|
@@ -71,6 +71,11 @@ export default {
|
||||
onSelectFiltersChange(index, info){
|
||||
console.log('onSelectFiltersChange', index, info, this.filters)
|
||||
this.slimFilters[index] = info.value
|
||||
},
|
||||
onClickFilters(e){
|
||||
console.log('onClickFilters legend', e)
|
||||
e.target.closest('fieldset').classList.toggle('open')
|
||||
// TODO: reset the filters oon close
|
||||
}
|
||||
},
|
||||
directives: {
|
||||
|
Reference in New Issue
Block a user