Skip to content

Commit 3becc62

Browse files
Daniel BerthereauDaniel Berthereau
authored andcommitted
Added a js code to toggle advanced search form when same as simple one.
1 parent dbfe725 commit 3becc62

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

asset/js/search.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,26 @@ var Search = (function() {
3838
localStorage.setItem('search_view_type', viewType);
3939
};
4040

41+
/**
42+
* Check if the current query is an advanced search one.
43+
*/
44+
self.isAdvancedSearchQuery = function () {
45+
let searchParams = new URLSearchParams(document.location.search);
46+
let params = Array.from(searchParams.entries());
47+
for (let i in params) {
48+
let k = params[i][0];
49+
let v = params[i][1];
50+
if (v !== ''
51+
&& !['q', 'search', 'fulltext_search', 'sort', 'sort_by', 'sort_order', 'page', 'per_page', 'limit', 'offset', 'csrf'].includes(k)
52+
&& !k.startsWith('facet[')
53+
&& !k.startsWith('facet%5B')
54+
) {
55+
return true;
56+
}
57+
}
58+
return false;
59+
}
60+
4161
/**
4262
* Chosen default options.
4363
* @see https://harvesthq.github.io/chosen/
@@ -96,6 +116,21 @@ var Search = (function() {
96116

97117
$(document).ready(function() {
98118

119+
/**
120+
* When the simple and the advanced form are the same form.
121+
*/
122+
$('.advanced-search-form-toggle a').on('click', function(e) {
123+
e.preventDefault();
124+
$('.advanced-search-form, .advanced-search-form-toggle').toggleClass('open');
125+
if ($('.advanced-search-form').hasClass('open')) {
126+
$('.advanced-search-form-toggle a').text($('.advanced-search-form-toggle').data('msgOpen'));
127+
} else {
128+
$('.advanced-search-form-toggle a').text($('.advanced-search-form-toggle').data('msgClosed'));
129+
}
130+
// TODO Don't open autosuggestion when toggle.
131+
// $('#search-form [name=q]').focus();
132+
});
133+
99134
/* Sort selector links (depending if server of client build) */
100135
$('.search-sort select').on('change', function(e) {
101136
// Sort fields don't look like a url.
@@ -165,13 +200,27 @@ $(document).ready(function() {
165200
$('.search-view-type').removeClass('active');
166201
$(this).addClass('active');
167202
});
203+
168204
$('.search-view-type-grid').on('click', function(e) {
169205
e.preventDefault();
170206
Search.setViewType('grid');
171207
$('.search-view-type').removeClass('active');
172208
$(this).addClass('active');
173209
});
174210

211+
/**********
212+
* Initialisation.
213+
*/
214+
215+
/**
216+
* Open advanced search when it is used according to the query.
217+
* @todo Check if we are on the advanced search page first.
218+
* @todo Use focus on load, but don't open autosuggestion on focus.
219+
*/
220+
if (Search.isAdvancedSearchQuery()) {
221+
$('.advanced-search-form-toggle a').click();
222+
}
223+
175224
var view_type = localStorage.getItem('search_view_type');
176225
if (!view_type) {
177226
view_type = 'list';

0 commit comments

Comments
 (0)