3 changed files with 35 additions and 107 deletions
@ -1,56 +1,46 @@ |
|||||||
(function (Drupal) { |
(function (Drupal) { |
||||||
|
'use strict'; // Good practice for stricter JS parsing
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () { |
||||||
|
// Select the parent container
|
||||||
|
const sidebar = document.querySelector('.region--sidebar'); |
||||||
|
|
||||||
|
// Check if the element exists
|
||||||
|
if (sidebar) { |
||||||
|
// Get all direct children
|
||||||
|
const children = Array.from(sidebar.children); |
||||||
|
|
||||||
|
if (children.length > 0) { // Optional: Skip if no children
|
||||||
|
// Create the wrapper div
|
||||||
|
const wrapper = document.createElement('div'); |
||||||
|
wrapper.classList.add('facet-wrapper'); |
||||||
|
|
||||||
|
// Move each child into the wrapper
|
||||||
|
children.forEach(child => { |
||||||
|
wrapper.appendChild(child); |
||||||
|
}); |
||||||
|
|
||||||
|
// Append the wrapper back to the sidebar
|
||||||
|
sidebar.appendChild(wrapper); |
||||||
|
|
||||||
// Select the parent container
|
|
||||||
const sidebar = document.querySelector('.region--sidebar'); |
|
||||||
|
|
||||||
// Check if the element exists
|
|
||||||
if (sidebar) { |
|
||||||
// Get all direct children
|
|
||||||
const children = Array.from(sidebar.children); |
|
||||||
|
|
||||||
// Create the wrapper div
|
|
||||||
const wrapper = document.createElement('div'); |
|
||||||
wrapper.classList.add('facet-wrapper'); |
|
||||||
|
|
||||||
// Move each child into the wrapper
|
|
||||||
children.forEach(child => { |
|
||||||
wrapper.appendChild(child); |
|
||||||
}); |
|
||||||
|
|
||||||
// Append the wrapper back to the sidebar (replacing the original children)
|
|
||||||
sidebar.appendChild(wrapper); |
|
||||||
} |
|
||||||
// Select the parent container
|
|
||||||
//const sidebar = document.querySelector('.region--sidebar');
|
|
||||||
|
|
||||||
// Check if the element exists
|
|
||||||
if (sidebar) { |
|
||||||
// Select the existing wrapper
|
|
||||||
const wrapper = sidebar.querySelector('.facet-wrapper'); |
|
||||||
|
|
||||||
// Check if the wrapper exists
|
|
||||||
if (wrapper) { |
|
||||||
// Create the button element
|
// Create the button element
|
||||||
const button = document.createElement('button'); |
const button = document.createElement('button'); |
||||||
button.id = 'toggle-facets'; |
button.id = 'toggle-facets'; |
||||||
button.textContent = 'Search the Collection'; |
button.textContent = 'Search the Collection'; |
||||||
|
|
||||||
// Insert the button before the wrapper
|
// Insert the button before the wrapper
|
||||||
sidebar.insertBefore(button, wrapper); |
sidebar.insertBefore(button, wrapper); |
||||||
} |
|
||||||
} |
// Wire up the toggle (now after elements exist)
|
||||||
document.addEventListener("DOMContentLoaded", function () { |
const toggleButton = document.getElementById('toggle-facets'); |
||||||
const toggleButton = document.getElementById("toggle-facets"); |
if (toggleButton) { // Extra safety, though it should exist
|
||||||
const facetWrapper = document.querySelector( |
toggleButton.addEventListener('click', function () { |
||||||
".region--sidebar .facet-wrapper" |
const computedStyle = window.getComputedStyle(facetWrapper); |
||||||
); |
const isHidden = computedStyle.display === 'none'; |
||||||
|
facetWrapper.style.display = isHidden ? 'block' : 'none'; |
||||||
if (toggleButton && facetWrapper) { |
}); |
||||||
toggleButton.addEventListener("click", function () { |
} |
||||||
const isHidden = |
} |
||||||
facetWrapper.style.display === "none" || !facetWrapper.style.display; // Accounts for CSS default
|
|
||||||
facetWrapper.style.display = isHidden ? "block" : "none"; |
|
||||||
}); |
|
||||||
} |
} |
||||||
}); |
}); |
||||||
})(Drupal); |
})(Drupal); |
||||||
|
|||||||
@ -1,31 +0,0 @@ |
|||||||
{# |
|
||||||
/** |
|
||||||
* @file |
|
||||||
* Olivesbdh's theme override to display the sidebar region. |
|
||||||
* |
|
||||||
* Available variables: |
|
||||||
* - content: The content for this region, typically blocks. |
|
||||||
* - attributes: HTML attributes for the region <div>. |
|
||||||
* - region: The name of the region variable as defined in the theme's |
|
||||||
* .info.yml file. |
|
||||||
* |
|
||||||
* @see template_preprocess_region() |
|
||||||
*/ |
|
||||||
#} |
|
||||||
{% |
|
||||||
set classes = [ |
|
||||||
'region', |
|
||||||
'region--' ~ region|clean_class, |
|
||||||
] |
|
||||||
%} |
|
||||||
|
|
||||||
{{ attach_library('olivesbdh/sidebar') }} |
|
||||||
|
|
||||||
{% if content %} |
|
||||||
<aside{{ attributes.addClass(classes) }}> |
|
||||||
{#<button id="toggle-facets">Search the Collection</button>#} |
|
||||||
<div class="facet-wrapper"> |
|
||||||
{{ content }} |
|
||||||
</div> |
|
||||||
</aside> |
|
||||||
{% endif %} |
|
||||||
@ -1,31 +0,0 @@ |
|||||||
{# |
|
||||||
/** |
|
||||||
* @file |
|
||||||
* Olivesbdh's theme override to display the sidebar region. |
|
||||||
* |
|
||||||
* Available variables: |
|
||||||
* - content: The content for this region, typically blocks. |
|
||||||
* - attributes: HTML attributes for the region <div>. |
|
||||||
* - region: The name of the region variable as defined in the theme's |
|
||||||
* .info.yml file. |
|
||||||
* |
|
||||||
* @see template_preprocess_region() |
|
||||||
*/ |
|
||||||
#} |
|
||||||
{% |
|
||||||
set classes = [ |
|
||||||
'region', |
|
||||||
'region--' ~ region|clean_class, |
|
||||||
] |
|
||||||
%} |
|
||||||
|
|
||||||
{{ attach_library('olivesbdh/sidebar') }} |
|
||||||
|
|
||||||
{% if content %} |
|
||||||
<aside{{ attributes.addClass(classes) }}> |
|
||||||
{#<button id="toggle-facets">Search the Collection</button>#} |
|
||||||
<div class="facet-wrapper"> |
|
||||||
{{ content }} |
|
||||||
</div> |
|
||||||
</aside> |
|
||||||
{% endif %} |
|
||||||
Loading…
Reference in new issue