Pull out separate build_search_params, use URLSearchParams object.
This commit is contained in:
parent
64585a6fa1
commit
2f68b800c5
1 changed files with 24 additions and 21 deletions
|
@ -534,13 +534,12 @@ function simplify_tagnames(tags)
|
|||
return new_tags;
|
||||
}
|
||||
|
||||
function submit_search()
|
||||
function build_search_params()
|
||||
{
|
||||
/*
|
||||
Gather up all the form data and tags and compose the search URL
|
||||
Gather up all the form data and tags and compose the URL parameters.
|
||||
*/
|
||||
let url = window.location.origin + "/search";
|
||||
let parameters = [];
|
||||
const parameters = new URLSearchParams();
|
||||
|
||||
// If the user has left any text in the tag boxes, but not hit Enter on
|
||||
// them, then they will not be in the `inputted_` lists and would get
|
||||
|
@ -550,32 +549,30 @@ function submit_search()
|
|||
add_searchtag_from_box(input_forbids, inputted_forbids, "search_builder_forbids_inputted");
|
||||
|
||||
let has_tag_params = false;
|
||||
const musts = simplify_tagnames(inputted_musts).map(encodeURIComponent).join(",");
|
||||
if (musts) {parameters.push("tag_musts=" + musts); has_tag_params = true;}
|
||||
const musts = simplify_tagnames(inputted_musts).join(",");
|
||||
if (musts) {parameters.set("tag_musts", musts); has_tag_params = true;}
|
||||
|
||||
const mays = simplify_tagnames(inputted_mays).map(encodeURIComponent).join(",");
|
||||
if (mays) {parameters.push("tag_mays=" + mays); has_tag_params = true;}
|
||||
const mays = simplify_tagnames(inputted_mays).join(",");
|
||||
if (mays) {parameters.set("tag_mays", mays); has_tag_params = true;}
|
||||
|
||||
const forbids = simplify_tagnames(inputted_forbids).map(encodeURIComponent).join(",");
|
||||
if (forbids) {parameters.push("tag_forbids=" + forbids); has_tag_params = true;}
|
||||
const forbids = simplify_tagnames(inputted_forbids).join(",");
|
||||
if (forbids) {parameters.set("tag_forbids", forbids); has_tag_params = true;}
|
||||
|
||||
const expression = document.getElementsByName("tag_expression")[0].value;
|
||||
if (expression)
|
||||
{
|
||||
//expression = expression.replace(new RegExp(" ", 'g'), "-");
|
||||
parameters.push("tag_expression=" + encodeURIComponent(expression));
|
||||
parameters.set("tag_expression", expression);
|
||||
has_tag_params = true;
|
||||
}
|
||||
|
||||
const basic_inputs = document.getElementsByClassName("basic_param");
|
||||
for (const basic_input of basic_inputs)
|
||||
{
|
||||
const boxname = basic_input.name;
|
||||
const box = document.getElementsByName(boxname)[0];
|
||||
let value = box.value;
|
||||
let value = basic_input.value;
|
||||
value = value.split("&").join("%26");
|
||||
console.log(value);
|
||||
if (PARAM_DEFAULTS[boxname] == value)
|
||||
if (PARAM_DEFAULTS[basic_input.name] == value)
|
||||
{
|
||||
// Don't clutter url with default values.
|
||||
continue;
|
||||
|
@ -584,7 +581,7 @@ function submit_search()
|
|||
{
|
||||
continue;
|
||||
}
|
||||
parameters.push(boxname + "=" + value);
|
||||
parameters.set(basic_input.name, value);
|
||||
}
|
||||
|
||||
const orderby_rows = document.getElementsByClassName("search_builder_orderby_li");
|
||||
|
@ -606,19 +603,25 @@ function submit_search()
|
|||
if (orderby_params && orderby_params != "created-desc")
|
||||
{
|
||||
// Don't clutter url with default of created-desc
|
||||
parameters.push("orderby=" + orderby_params);
|
||||
parameters.set("orderby", orderby_params);
|
||||
}
|
||||
|
||||
if (parameters.length > 0)
|
||||
return parameters;
|
||||
}
|
||||
|
||||
function submit_search()
|
||||
{
|
||||
parameters = parameters.join("&");
|
||||
parameters = "?" + parameters;
|
||||
url = url + parameters;
|
||||
const parameters = build_search_params().toString();
|
||||
let url = window.location.origin + "/search";
|
||||
if (parameters !== "")
|
||||
{
|
||||
url += "?" + parameters.toString();
|
||||
}
|
||||
console.log(url);
|
||||
window.location.href = url;
|
||||
return false;
|
||||
}
|
||||
|
||||
function tags_on_this_page_add_must(event, tagname)
|
||||
{
|
||||
add_searchtag(
|
||||
|
|
Loading…
Reference in a new issue