{layout='layouts/_html-wrapper'} <div class="container my-12 mx-auto px-4 md:px-12 w-2 inline-block align-top"> <div class="font-bold">Search All Add-Ons</div> {exp:low_search:form result_page="addons/results" form_id="addon_filter" query="{segment_3}" } <div class="p-add-ons__category-sidebar" id="keyword-search" > <div class="search-input filter-bar__item filter-bar__item--right" style="margin-bottom: 20px;" > <i class="far fa-search search-input__icon"></i> <input type="text" name="keywords" class="search-input__input" placeholder="Search Add-Ons" {if low_search_keywords}value="{low_search_keywords}"{/if} > </div> <div id="addon-filter-toggle" > <i class="far fa-sliders-h"></i> </div> <div class="filter-bar toggle-mobile sm:invisible md:visible mb-5"> <div class="font-bold">Sort</div> <div> <select name="orderby_sort" class="filter-bar__item" id="searchResultsSortSelect"> {!-- <option value="name-az">Sort By</option> --} <option value="date|desc" {if low_search_orderby_sort =="date|desc"}selected{/if}>Newest</option> <option value="date|asc" {if low_search_orderby_sort =="date|asc"}selected{/if}>Oldest</option> <option value="edit_date|desc" {if low_search_orderby_sort =="edit_date|desc"}selected{/if}>Recently Updated</option> <option value="title|asc" {if low_search_orderby_sort =="title|asc"}selected{/if}>Name: A–Z</option> <option value="title|desc" {if low_search_orderby_sort =="title|desc"}selected{/if}>Name: Z–A</option> </select> </div> </div> <div class="filter-accordion toggle-mobile sm:invisible md:visible" id="filter-container-compatibility" > <div class="font-bold"> Compatibility <i class="far fa-chevron-up"></i> </div> <ul class="sidebar__list" id="addon-compatibility-filters" > <li> <input type="checkbox" name="show-all-compatibility" id="show-all-compatibility" onclick="showAll('search:add_on_compatibility[]',this.id)" data-action="show-all-compatibility" value="" {if low_search_search:add_on_compatibility == ""}checked{/if} /> <label for="show-all-compatibility">Show All</label> </li> <li> <input type="checkbox" name="search:add_on_compatibility[]" data-action-uncheck="show-all-compatibility" id="EE6" value="6" {if low_search_search:add_on_compatibility *="6"}checked{/if} /> <label for="EE6">EE 6</label> </li> <li> <input type="checkbox" name="search:add_on_compatibility[]" data-action-uncheck="show-all-compatibility" id="EE5" value="5" {if low_search_search:add_on_compatibility *="5"}checked{/if} /> <label for="EE5">EE 5</label> </li> <li> <input type="checkbox" name="search:add_on_compatibility[]" data-action-uncheck="show-all-compatibility" id="EE4" value="4" {if low_search_search:add_on_compatibility *="4"}checked{/if} /> <label for="EE4">EE 4</label> </li> <li> <input type="checkbox" name="search:add_on_compatibility[]" data-action-uncheck="show-all-compatibility" id="EE3" value="3" {if low_search_search:add_on_compatibility *="3"}checked{/if} /> <label for="EE3">EE 3</label> </li> <li> <input type="checkbox" name="search:add_on_compatibility[]" data-action-uncheck="show-all-compatibility" id="EE2" value="2" {if low_search_search:add_on_compatibility *="2"}checked{/if} /> <label for="EE2">EE 2</label> </li> <li> <input type="checkbox" name="search:add_on_compatibility[]" data-action-uncheck="show-all-compatibility"" id="EE1" value="1" {if low_search_search:add_on_compatibility *="1"}checked{/if} /> <label for="EE1">EE 1</label> </li> </ul> </div> <div class="filter-accordion toggle-mobile sm:invisible md:visible" id="filter-container-categories" > <div class="font-bold" style="margin-top: 20px;" >Categories <i class="far fa-chevron-up"></i> </div> <ul class="sidebar__list" id="addon-category-filter" > <li> <input type="checkbox" name="category[]" id="show-all-categories" onclick="showAll('category[]',this.id)" value="" {if low_search_category == ""}checked{/if} /> <label for="show-all-categories">Show All</label> </li> {exp:channel:categories channel='add_on_store' parent_only='yes' style='linear' show_empty='no' status='not closed'} <li> <input type="checkbox" name="category[]" id="{category_url_title}" data-action-uncheck="show-all-categories" value="{category_id}" {if low_search_category ~ '/\b'.category_id.'\b/'} checked{/if} /> <label for="{category_url_title}">{category_name}</label> </li> {/exp:channel:categories} </ul> </div> </div> <button type="submit" class="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded">Submit</button> {/exp:low_search:form} </div> <div class="container my-12 mx-auto px-4 md:px-12 w-10 inline-block align-top"> <div class="flex flex-wrap -mx-1 lg:-mx-4"> {!-- Low Search tag pair to display initial set of results--} {exp:low_search:results channel='add_on_store' limit='4' paginate="bottom" } {!-- if no results, let the user know --} {if low_search_no_results} <div class="alert alert--empty">No Add-ons</div> {/if} {!-- the card used to display the add-on information --} {!-- Tailwind card component source: https://tailwindcomponents.com/component/quote-card-with-image-1 --} <div class=" flex flex-col my-1 px-1 w-full md:w-1/2 lg:my-4 lg:px-4 lg:w-1/3"> <div class="max-w-2xl bg-white border-2 border-gray-300 p-5 rounded-md tracking-wide shadow-lg flex-1"> <div id="header" class="flex"> <img alt="addon icon" class="rounded-md border-2 border-gray-300" style="width:100px;height:100px;" src="{add_on_icon}"/> <div id="body" class="flex flex-col ml-5"> <h4 id="name" class="text-xl font-semibold mb-2">{title}</h4> <p id="job" class="text-gray-800 mt-2">{add_on_description:limit characters='100'}</p> <div class="flex mt-5"> <p class="ml-3"> {if add_on_price == '0'} Free {if:else} <sup>$</sup>{add_on_price} {/if} </p> </div> </div> </div> </div> </div> {!-- pagination since we're limiting to 4 results on a page --} {!-- Tailwind pagination component source: https://www.creative-tim.com/learning-lab/tailwind-starter-kit/documentation/css/pagination/with-numbers --} {paginate} <div class="container py-2"> <nav class="block"> <ul class="flex pl-0 rounded list-none flex-wrap"> {pagination_links} {first_page} <li> <a href="{pagination_url}" class="first:ml-0 text-xs font-semibold flex w-8 h-8 mx-1 p-0 rounded-full items-center justify-center leading-tight relative border border-solid border-blue-500 {if current_page}text-white bg-blue-500{if:else}bg-white text-blue-500{/if}" style="width:30px;"> {pagination_page_number} </a> </li> {/first_page} {page} <li> <a href="{pagination_url}" class="first:ml-0 text-xs font-semibold flex w-8 h-8 mx-1 p-0 rounded-full items-center justify-center leading-tight relative border border-solid border-blue-500 {if current_page}text-white bg-blue-500{if:else}bg-white text-blue-500{/if}" style="width:30px;"> {pagination_page_number} </a> </li> {/page} {last_page} <li> <a href="{pagination_url}" class="first:ml-0 text-xs font-semibold flex w-8 h-8 mx-1 p-0 rounded-full items-center justify-center leading-tight relative border border-solid border-blue-500 {if current_page}text-white bg-blue-500{if:else}bg-white text-blue-500{/if}" style="width:30px;"> {pagination_page_number} </a> </li> {/last_page} {/pagination_links} </ul> </nav> </div> {/paginate} {/exp:low_search:results} </div> </div> <script> //uncheck all boxes with given name when box with specified ID is checked function showAll(cn,cbId){ if (document.getElementById(cbId).checked){ var cbarray = document.getElementsByName(cn); for(var i = 0; i < cbarray.length; i++){ if (cbarray[i] != document.getElementById(cbId)){ cbarray[i].checked = false; } } } } const filterAccordions = document.querySelectorAll('.filter-accordion'); filterAccordions.forEach(filterAccordions =>{ let filterCheckbox = filterAccordions.querySelectorAll('[data-action-uncheck]'); filterCheckbox.forEach(filterBox => { filterBox.addEventListener('change', event => { var showAllFilter = filterBox.getAttribute("data-action-uncheck"); document.getElementById(showAllFilter).checked = false; }) }) }); </script>