forked from I2P_Developers/i2p.i2p

Some checks failed
Java CI / build (push) Has been cancelled
Java CI / javadoc-latest (push) Has been cancelled
Java CI / build-java7 (push) Has been cancelled
Java with IzPack Snapshot Setup / setup (push) Has been cancelled
Sync Primary Repository to GitHub Mirror / sync (push) Has been cancelled
228 lines
6.1 KiB
JavaScript
228 lines
6.1 KiB
JavaScript
/* @license http://www.gnu.org/licenses/gpl-2.0.html GPL-2.0 */
|
|
/* see also licenses/LICENSE-GPLv2.txt */
|
|
|
|
/**
|
|
* Search form helpers
|
|
*
|
|
* @since 0.9.58
|
|
*/
|
|
function initSearch()
|
|
{
|
|
var sch = document.getElementById("search");
|
|
if (sch != null) {
|
|
var box = document.getElementById("searchbox");
|
|
var cxl = document.getElementById("searchcancel");
|
|
var radio = document.querySelectorAll('input[name=searchopt]');
|
|
var remote = document.getElementById("remoteresults");
|
|
var msgs = document.getElementById("snarkMessages");
|
|
var main = document.getElementById("mainsection");
|
|
var lower = document.getElementById("lowersection");
|
|
|
|
// cancel listener
|
|
cxl.addEventListener("click", function(event) {
|
|
if (box.value !== "") {
|
|
box.value = "";
|
|
requestAjax2(-1);
|
|
}
|
|
cxl.classList.add("disabled");
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
if (msgs != null)
|
|
msgs.classList.remove("disabled");
|
|
if (lower != null)
|
|
lower.classList.remove("disabled");
|
|
removeRemoteResults();
|
|
event.preventDefault();
|
|
});
|
|
|
|
// search listener
|
|
box.addEventListener("input", function(event) {
|
|
if (box.value !== "") {
|
|
cxl.classList.remove("disabled");
|
|
if (msgs != null)
|
|
msgs.classList.add("disabled");
|
|
if (lower != null)
|
|
lower.classList.add("disabled");
|
|
if (radio != null) {
|
|
var opt = document.querySelector('input[name=searchopt]:checked').value;
|
|
if (opt === "1") {
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
requestAjax2(-1);
|
|
} else if (opt === "2") {
|
|
if (remote != null) {
|
|
if (box.value.length >= 3) {
|
|
removeUnrelatedResults(box.value);
|
|
remote.classList.remove("disabled");
|
|
requestAjaxRemote();
|
|
} else {
|
|
remote.classList.add("disabled");
|
|
}
|
|
}
|
|
if (main != null)
|
|
main.classList.add("disabled");
|
|
} else if (opt === "3") {
|
|
if (remote != null) {
|
|
if (box.value.length >= 3) {
|
|
removeUnrelatedResults(box.value);
|
|
remote.classList.remove("disabled");
|
|
requestAjaxRemote();
|
|
} else {
|
|
remote.classList.add("disabled");
|
|
}
|
|
}
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
requestAjax2(-1);
|
|
}
|
|
} else {
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
requestAjax2(-1);
|
|
}
|
|
} else {
|
|
cxl.classList.add("disabled");
|
|
removeRemoteResults();
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
if (msgs != null)
|
|
msgs.classList.remove("disabled");
|
|
if (lower != null)
|
|
lower.classList.remove("disabled");
|
|
requestAjax2(-1);
|
|
}
|
|
});
|
|
|
|
// radio listener
|
|
if (radio != null) {
|
|
for (var index = 0; index < radio.length; index++)
|
|
{
|
|
var r = radio[index];
|
|
r.addEventListener("click", function(event) {
|
|
var opt = document.querySelector('input[name=searchopt]:checked').value;
|
|
if (opt === "1" || box.value === "") {
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
//requestAjax2(-1);
|
|
} else if (opt === "2") {
|
|
if (remote != null) {
|
|
if (box.value.length >= 3) {
|
|
removeUnrelatedResults(box.value);
|
|
remote.classList.remove("disabled");
|
|
//requestAjaxRemote();
|
|
} else {
|
|
remote.classList.add("disabled");
|
|
}
|
|
}
|
|
if (main != null)
|
|
main.classList.add("disabled");
|
|
} else if (opt === "3") {
|
|
if (remote != null) {
|
|
if (box.value.length >= 3) {
|
|
removeUnrelatedResults(box.value);
|
|
remote.classList.remove("disabled");
|
|
//requestAjaxRemote();
|
|
} else {
|
|
remote.classList.add("disabled");
|
|
}
|
|
}
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
//requestAjax2(-1);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// initial setup
|
|
if (box.value !== "") {
|
|
cxl.classList.remove("disabled");
|
|
if (msgs != null)
|
|
msgs.classList.add("disabled");
|
|
if (lower != null)
|
|
lower.classList.add("disabled");
|
|
if (radio != null) {
|
|
var opt = document.querySelector('input[name=searchopt]:checked').value;
|
|
if (opt === "1") {
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
} else if (opt === "2") {
|
|
if (remote != null) {
|
|
if (box.value.length >= 3) {
|
|
remote.classList.remove("disabled");
|
|
} else {
|
|
remote.classList.add("disabled");
|
|
}
|
|
}
|
|
if (main != null)
|
|
main.classList.add("disabled");
|
|
} else if (opt === "3") {
|
|
if (remote != null) {
|
|
if (box.value.length >= 3) {
|
|
remote.classList.remove("disabled");
|
|
} else {
|
|
remote.classList.add("disabled");
|
|
}
|
|
}
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
}
|
|
} else {
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
}
|
|
} else {
|
|
cxl.classList.add("disabled");
|
|
if (remote != null)
|
|
remote.classList.add("disabled");
|
|
if (main != null)
|
|
main.classList.remove("disabled");
|
|
if (msgs != null)
|
|
msgs.classList.remove("disabled");
|
|
if (lower != null)
|
|
lower.classList.remove("disabled");
|
|
}
|
|
// so we don't get the link popup
|
|
cxl.removeAttribute("href");
|
|
}
|
|
}
|
|
|
|
function removeUnrelatedResults(cur) {
|
|
var footer = document.getElementById("remoteresultfooter");
|
|
if (footer != null) {
|
|
var prev = footer.getAttribute("search");
|
|
if (prev != null) {
|
|
if (!prev.startsWith(cur) && !cur.startsWith(prev)) {
|
|
// unrelated search, clear previous results
|
|
removeRemoteResults();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function removeRemoteResults() {
|
|
var results = document.getElementById("removeresulttablebody");
|
|
if (results != null)
|
|
results.innerHTML = "";
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function() {
|
|
initSearch();
|
|
}, true);
|
|
|
|
/* @license-end */
|