Commit MetaInfo

Révision0e40cce05f2e417df1c3b6e571966571d09fab38 (tree)
l'heure2017-09-23 17:55:54
Auteurumorigu <umorigu@gmai...>
Commiterumorigu

Message de Log

Support base in search2

Change Summary

Modification

--- a/plugin/search2.inc.php
+++ b/plugin/search2.inc.php
@@ -174,25 +174,24 @@ function plugin_search2_search_form($s_word = '', $type = '', $bases = array())
174174 if (!empty($bases)) {
175175 $base_msg = '';
176176 $_num = 0;
177- $check = ' checked="checked"';
177+ $check = ' checked';
178178 foreach($bases as $base) {
179179 ++$_num;
180- if (PLUGIN_SEARCH_MAX_BASE < $_num) break;
181- $label_id = '_p_search_base_id_' . $_num;
180+ if (PLUGIN_SEARCH2_MAX_BASE < $_num) break;
182181 $s_base = htmlsc($base);
183182 $base_str = '<strong>' . $s_base . '</strong>';
184183 $base_label = str_replace('$1', $base_str, $_search_pages);
185184 $base_msg .=<<<EOD
186185 <div>
187- <input type="radio" name="base" id="$label_id" value="$s_base" $check />
188- <label for="$label_id">$base_label</label>
186+ <label>
187+ <input type="radio" name="base" value="$s_base" $check> $base_label
188+ </label>
189189 </div>
190190 EOD;
191191 $check = '';
192192 }
193193 $base_msg .=<<<EOD
194- <input type="radio" name="base" id="_p_search_base_id_all" value="" />
195- <label for="_p_search_base_id_all">$_search_all</label>
194+<label><input type="radio" name="base" value=""> $_search_all</label>
196195 EOD;
197196 $base_option = '<div class="small">' . $base_msg . '</div>';
198197 }
@@ -213,10 +212,10 @@ EOD;
213212 }
214213
215214 return <<<EOD
216-<form action="$script" method="GET">
215+<form action="$script" method="GET" class="_plugin_search2_form">
217216 <div>
218217 <input type="hidden" name="cmd" value="search2">
219- <input type="search" name="q" id="_plugin_search2_searchtext" value="$h_search_text" size="30">
218+ <input type="search" name="q" value="$h_search_text" size="30">
220219 <input type="submit" value="$_btn_search">
221220 </div>
222221 $base_option
--- a/skin/search2.js
+++ b/skin/search2.js
@@ -29,6 +29,9 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
2929 if (searchText) {
3030 url += '&q=' + encodeURIComponent(searchText);
3131 }
32+ if (session.base) {
33+ url += '&base=' + encodeURIComponent(session.base);
34+ }
3235 url += '&start=' + startIndex;
3336 fetch (url
3437 ).then(function(response){
@@ -307,13 +310,18 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
307310 }
308311 }
309312 function kickFirstSearch() {
310- var searchText = document.querySelector('#_plugin_search2_searchtext');
313+ var form = document.querySelector('._plugin_search2_form');
314+ var searchText = form && form.q;
311315 if (!searchText) return;
312316 if (searchText && searchText.value) {
313317 var e = document.querySelector('#_plugin_search2_msg_searching');
314318 var msg = e && e.value || 'Searching...';
315319 setSearchStatus(msg);
316- doSearch(searchText.value, {}, 0);
320+ var base = '';
321+ forEach(form.querySelectorAll('input[name="base"]'), function(radio){
322+ if (radio.checked) base = radio.value;
323+ });
324+ doSearch(searchText.value, {base: base}, 0);
317325 }
318326 }
319327 function setSearchStatus(statusText) {
@@ -336,13 +344,16 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
336344 if (f.action.match(/cmd=search$/)) {
337345 f.addEventListener('submit', function(e) {
338346 var q = e.target.word.value;
339- var base = e.target && e.target.base && e.target.base.value;
347+ var base = '';
348+ forEach(f.querySelectorAll('input[name="base"]'), function(radio){
349+ if (radio.checked) base = radio.value;
350+ });
340351 var loc = document.location;
341352 var url = loc.protocol + '//' + loc.host + loc.pathname +
342353 '?cmd=search2' +
343- (base ? '&base=' + encodeURIComponent(base) : '') +
344- '&q=' + encodeSearthText(q);
345- e.preventDefault();
354+ '&q=' + encodeSearthText(q) +
355+ (base ? '&base=' + encodeURIComponent(base) : '');
356+ e.preventDefault();
346357 setTimeout(function() {
347358 location.href = url;
348359 }, 1);
@@ -355,7 +366,7 @@ window.addEventListener && window.addEventListener('DOMContentLoaded', function(
355366 } else if (radio.value === 'OR') {
356367 radio.addEventListener('click', onOrRadioClick);
357368 }
358- });;
369+ });
359370 function onAndRadioClick(e) {
360371 var sp = removeSearchOperators(f.word.value).split(/\s+/);
361372 var newText = sp.join(' ');
Afficher sur ancien navigateur de dépôt.