faturas_4docs/Compliance/jsonDoc_files/quick_jump.js.download

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();
}
});