155 lines
4.7 KiB
Plaintext
155 lines
4.7 KiB
Plaintext
var quick_jump_state = null;
|
|
var quick_jump_inputs = [];
|
|
var quick_jump_prevent_key = false;
|
|
|
|
function quick_jump_update(key){
|
|
// let dbg = "DEBUG: ";
|
|
|
|
// if (key)
|
|
// dbg += "K: " + key;
|
|
|
|
// for (let x of quick_jump_inputs){
|
|
// dbg += "[" + x + "]";
|
|
// }
|
|
// document.getElementById("qjstatus").textContent = dbg;
|
|
|
|
for(let el of document.getElementsByClassName("quick_jump_help"))
|
|
el.classList.remove("visible");
|
|
|
|
if (quick_jump_state != null){
|
|
quick_jump_state.classList.add("visible");
|
|
let ul = quick_jump_state.getElementsByTagName("ul");
|
|
if (ul.length >= 1 && !document.getElementById("quick_jump_input").classList.contains("visible")){
|
|
ul = ul[0];
|
|
ul.classList.add("visible");
|
|
for (let li of ul.getElementsByTagName("li")){
|
|
let menu = li.getElementsByClassName("menu")[0];
|
|
let action = li.getElementsByClassName("action")[0];
|
|
li.classList.add("visible");
|
|
menu.classList.add("visible");
|
|
menu.classList.remove("selected");
|
|
action.classList.remove("visible");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function quick_jump_show(show){
|
|
let popup = document.getElementById("popup");
|
|
if (show){
|
|
popup.classList.add("visible");
|
|
quick_jump_state = document.getElementById("quick_jump_start");
|
|
quick_jump_inputs = [];
|
|
document.getElementById("quick_jump_input").value = "";
|
|
document.getElementById("quick_jump_input").classList.remove("visible");
|
|
quick_jump_update("-");
|
|
}
|
|
else{
|
|
popup.classList.remove("visible");
|
|
quick_jump_state = null;
|
|
return;
|
|
}
|
|
}
|
|
|
|
function quick_jump_toggle(){
|
|
quick_jump_show(!document.getElementById("popup").classList.contains("visible"));
|
|
}
|
|
|
|
function quick_jump_go(){
|
|
|
|
let text = document.getElementById("quick_jump_input").value;
|
|
var customer_id;
|
|
if (typeof(CUSTOMER_ID) == "undefined")
|
|
customer_id = "1";
|
|
else
|
|
customer_id = CUSTOMER_ID;
|
|
let url = "/quick_jump?customer_id=" + customer_id + "&action=" + quick_jump_state.dataset.action;
|
|
let n = 1;
|
|
for (let x of quick_jump_inputs)
|
|
{
|
|
url += "&input" + n + "=" + x;
|
|
n += 1;
|
|
}
|
|
window.location.href = url;
|
|
}
|
|
|
|
document.getElementById("quick_jump_input").addEventListener("keypress", function(e){
|
|
if (e.key == "Enter")
|
|
{
|
|
let value = document.getElementById("quick_jump_input").value;
|
|
|
|
quick_jump_inputs.push(value);
|
|
|
|
document.getElementById("quick_jump_input").classList.remove("visible");
|
|
document.getElementById("quick_jump_input").value = "";
|
|
|
|
if (quick_jump_state.dataset.go == "wait-input")
|
|
quick_jump_go();
|
|
else{
|
|
quick_jump_state.querySelector("span.input").appendChild(document.createTextNode(value));
|
|
}
|
|
quick_jump_prevent_key = true;
|
|
quick_jump_update();
|
|
}
|
|
});
|
|
|
|
function quick_jump_key(key){
|
|
|
|
if (document.getElementById("quick_jump_input").classList.contains("visible"))
|
|
return;
|
|
|
|
if (quick_jump_prevent_key)
|
|
return;
|
|
|
|
for (let li of quick_jump_state.getElementsByTagName("li")){
|
|
let action = li.getElementsByClassName("action")[0];
|
|
if (action.dataset.key == key)
|
|
{
|
|
for (let hide_li of quick_jump_state.getElementsByTagName("li"))
|
|
hide_li.classList.remove("visible");
|
|
li.classList.add("visible");
|
|
li.getElementsByClassName("menu")[0].classList.add("selected");
|
|
quick_jump_state = action;
|
|
if (action.dataset.input == "yes")
|
|
{
|
|
document.getElementById("quick_jump_input").classList.add("visible");
|
|
document.getElementById("quick_jump_input").focus();
|
|
}
|
|
let span_input = quick_jump_state.querySelector("span.input");
|
|
if (span_input)
|
|
span_input.innerHTML = "";
|
|
if (action.dataset.go == "yes")
|
|
quick_jump_go();
|
|
break;
|
|
}
|
|
}
|
|
quick_jump_update(key);
|
|
return;
|
|
}
|
|
|
|
document.addEventListener("keydown", function(e){
|
|
quick_jump_prevent_key = false;
|
|
if (document.getElementById("popup").classList.contains("visible"))
|
|
e.stopPropagation();
|
|
});
|
|
|
|
document.addEventListener("keyup", function(e){
|
|
if (e.code == "F8")
|
|
{
|
|
quick_jump_toggle();
|
|
e.stopPropagation();
|
|
}
|
|
else if (document.getElementById("popup").classList.contains("visible"))
|
|
{
|
|
if (e.code == "Escape")
|
|
{
|
|
quick_jump_show(false);
|
|
}
|
|
else if (quick_jump_state != null)
|
|
{
|
|
quick_jump_key(e.key);
|
|
}
|
|
e.stopPropagation();
|
|
}
|
|
});
|