first commit
This commit is contained in:
commit
4d332ef662
27586 changed files with 3281783 additions and 0 deletions
895
rus/admin/_V4/_js/ajaxTextBoxSearch4.js
Normal file
895
rus/admin/_V4/_js/ajaxTextBoxSearch4.js
Normal file
|
|
@ -0,0 +1,895 @@
|
|||
//v 2.0
|
||||
//01-10-2017 libreria AB. getsione LTE
|
||||
//10-05-2017 aggiunto Ab.disabledEventPropagation
|
||||
//01-10-2015 creato Ab.resetAllRI... corretto ancora bug
|
||||
//30-09-2015 ancora...
|
||||
//29-09-2015 divLista.html non è mai vuoto. Utilizzato contenuto
|
||||
//28-09-2015 corretto bug "#"+divLista
|
||||
//21-09-2015 gestito il vai avanti tramite attributo enablenodb sul campo di ricerca
|
||||
//15-09-2015 ricerca ajax su caricaListaSMono. gestito il va comunque avanti
|
||||
//01-08-2015 ricerca ajax. su invio va comnque avanti, nasconde il div lista e cambia css sul campo di ricerca
|
||||
//24-04-2015 gestione campo indietro
|
||||
//12-01-2014 azzero la chiave se il campo di ricerca è vuoto
|
||||
//15-09-2014 _ablia.js
|
||||
//29-03-2014 modificato per utilizzare executeProcess(postProcess,ppArgs)
|
||||
//07-02-2014 selectAjKey testato funzione sulla selezione quando al posto del nextfocus ho uno script con parametri
|
||||
//compatibile con abliajar Abl_16_70_26_070214
|
||||
//Ab.hideList Ab.isListVisible e Ab.showList spostato qui e implementato con jquery (anzi no ...problemi con explorer... ma va!!)
|
||||
//aggiunto Ab.postCr utilizzato nella distinzione tra nextfocus e funzione da eseguire sia
|
||||
//su caricaLista che su selectAj
|
||||
//06-06-2013 aggirnato immagine attesa
|
||||
//03/09/2012 corretto errore su selectAjKey nel caso di esecuzione di una funzione
|
||||
//22/07/2011 ignoro stasto cmd(mela) e cmd tab su mac
|
||||
//26/06/2011 gestione selectAjKey con nextField o script o funzione da eseguire (trova e())
|
||||
//13-11 2008 gestione automazione 1 record si/no opzionale caricaLista caricaListaM caricaListaS caricaListaSM
|
||||
//09-11-2008 aggiornato caricaListaS per gestione continuo a ricercare
|
||||
//06-11-2008 gestione postProcess per il caso in cui trovo 1 solo record.
|
||||
//05-11-2008 gestito ricerca su nchar + ricerca solo sul submit
|
||||
//30-10-2008 gestito la concomitanza di piu searchTextBox. In pratica l'elemento della lista
|
||||
|
||||
|
||||
var debug=false,
|
||||
timerPartenza;
|
||||
|
||||
|
||||
Ab.caricaLista =
|
||||
function (svltRequest,searchTxt,divLista,RI,theEvent,nChar,nextField,useSubmit) {
|
||||
Ab.caricaListaMono(svltRequest,searchTxt,divLista,RI,theEvent,nChar,nextField,useSubmit,false);
|
||||
}
|
||||
Ab.caricaListaM=
|
||||
function (svltRequest,searchTxt,divLista,RI,theEvent,nChar,nextField,useSubmit) {
|
||||
Ab.caricaListaMono(svltRequest,searchTxt,divLista,RI,theEvent,nChar,nextField,useSubmit,true);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////
|
||||
//sendAjaxGetLista
|
||||
//NNNBB il postProcess in questo caso è il classico
|
||||
//onclick per gestire l'elemento unico (useMon=true su
|
||||
//caricalistaxxx )
|
||||
///////////////////////////////////////////////
|
||||
Ab.sendAjaxGetLista=
|
||||
function (svltRequest,divLista,postProcess)
|
||||
{
|
||||
// variabili di controllo del tempo
|
||||
// data di inizio interazione
|
||||
dataChiamata = new Date(),
|
||||
// tempo in millisecondi dell'inizio
|
||||
inizioChiamata = dataChiamata.getTime(),
|
||||
// secondi di attesa prima di fermare l'interazione
|
||||
massimaAttesa = 10,
|
||||
// variabile cui assegnare la funzione di verifica
|
||||
verificaTempoTrascorso = function(){};
|
||||
|
||||
// variabili di funzione
|
||||
// assegnazione oggetto XMLHttpRequest
|
||||
ajax = assegnaXMLHttpRequest(),
|
||||
// assegnazione elemento del documento
|
||||
elemento = Ab.prendiElementoDaId(divLista),
|
||||
// risultato booleano di funzione
|
||||
usaLink = true;
|
||||
|
||||
// se l'oggetto XMLHttpRequest non è nullo
|
||||
if(ajax)
|
||||
{
|
||||
//faccio vedere la lista
|
||||
if(!Ab.isListVisible(divLista))
|
||||
{
|
||||
Ab.showList(divLista);
|
||||
//metto la gif
|
||||
//elemento.innerHTML="Ricerca in corso ....."+"<img src='../../../../"+webApp+"/admin/_V3/_img/attesa.gif' alt='Ricerca in corso''>";
|
||||
elemento.innerHTML="Ricerca in corso .....";
|
||||
//<img src="../../admin/img/attesa.gif" alt="Ricerca in corso" width="20" height="21">
|
||||
|
||||
}
|
||||
// il link al file non deve essere usato
|
||||
usaLink = false;
|
||||
// impostazione richiesta asincrona in GET
|
||||
// del file specificato
|
||||
ajax.open("get", svltRequest, true);
|
||||
|
||||
// rimozione dell'header "connection" come "keep alive"
|
||||
ajax.setRequestHeader("connection", "close");
|
||||
|
||||
// impostazione controllo e stato della richiesta
|
||||
ajax.onreadystatechange = function() {
|
||||
|
||||
// verifica dello stato
|
||||
if(ajax.readyState === readyState.COMPLETATO)
|
||||
{
|
||||
// annulliamo la funzione di verifica tempo
|
||||
verificaTempoTrascorso = function(){};
|
||||
// verifica della risposta da parte del server
|
||||
if(statusText[ajax.status] === "OK"){
|
||||
// operazione avvenuta con successo
|
||||
elemento.innerHTML = ajax.responseText;
|
||||
//post elaborazioni???
|
||||
if(postProcess!=null){
|
||||
postProcess();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// errore di caricamento
|
||||
elemento.innerHTML = "Impossibile effettuare l'operazione richiesta.<br />";
|
||||
elemento.innerHTML += "Errore riscontrato: " + statusText[ajax.status];
|
||||
}
|
||||
}
|
||||
// se la richiesta non è stata ancora ultimata
|
||||
// è possibile sfruttare la variabile massimaAttesa
|
||||
// per verificare se il controllo sul tempo trascorso
|
||||
// sia stato creato o meno.
|
||||
// Essendo tale valore un intero rappresentante i secondi
|
||||
// ma non essendo ancora stato riassegnato nel corrispettivo
|
||||
// in millesimi, questo else if può garantire che
|
||||
// il codice al suo interno verrà eseguito una sola volta
|
||||
else if(massimaAttesa < 1000)
|
||||
{
|
||||
// conversione di massimaAttesain millisecondi
|
||||
massimaAttesa= massimaAttesa * 1000;
|
||||
// il controllo sul tempo trascorso deve essere
|
||||
// asincrono a questa funzione poichè non è detto
|
||||
// che il cambio di stato della richiesta
|
||||
// venga effettuato in tempi utili.
|
||||
// Una funzione apposita per la verifica
|
||||
// è la soluzione più indicata
|
||||
verificaTempoTrascorso = function()
|
||||
{
|
||||
// ogni chiamata asincrona a questa funzione
|
||||
// dovrà verificare la durata dell'interazione
|
||||
// è necessario quindi ridichiarare la variabile
|
||||
// al fine di ottenere il nuovo oggetto Date
|
||||
dataChiamata = new Date();
|
||||
// Se il tempo trascorso è maggiore della
|
||||
// massima attesa ...
|
||||
if((dataChiamata.getTime() - inizioChiamata) > massimaAttesa)
|
||||
{
|
||||
// ... interrompiamo la richiesta ed
|
||||
// informarmiamo l'utente di quanto avvenuto.
|
||||
// Quindi riassegnamo onreadystatechange ad una
|
||||
// funzione vuota, poichè quest'evento sarà
|
||||
// sollevato chiamando il metodo abort()
|
||||
ajax.onreadystatechange = function(){return;};
|
||||
// è possibile a questo punto richiamare il metodo abort
|
||||
// ed annullare le operazioni dell'oggetto XMLHttpRequest
|
||||
ajax.abort();
|
||||
// creiamo un elemento per avvertire l'utente
|
||||
// del fallimento della richiesta da aggiungere
|
||||
// a quello predisposto per mostrare il risultato.
|
||||
// Usiamo il metodo createElement() del document e
|
||||
// non innerHTML,che potrebbe riscrivere il link selezionato
|
||||
// annullando l'assegnazione del parametro fittizio.
|
||||
// Avendo annullato l'utilità dell'oggetto XMLHttpRequest
|
||||
// è possibile anche riciclare la variabile 'ajax'.
|
||||
ajax = document.createElement("p");
|
||||
ajax.innerHTML =
|
||||
"Spiacente, richiesta fallita.<br />" +
|
||||
"La prego di ritentare tra qualche istante.";
|
||||
elemento.appendChild(ajax);
|
||||
|
||||
}
|
||||
// se invece il tempo è inferiore al timeout
|
||||
else
|
||||
{
|
||||
// si richiama questa stessa funzione, con un tempo
|
||||
// che non dovrà essere ne alto ne troppo basso.
|
||||
setTimeout(verificaTempoTrascorso, 100);
|
||||
}
|
||||
};
|
||||
// definita la funzione non resta che avviarla
|
||||
verificaTempoTrascorso();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// invio richiesta
|
||||
ajax.send(null);
|
||||
}
|
||||
|
||||
return usaLink;
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//utilizzare caricaLista(svltRequest,searchTxt,divLista,RI,theEvent,nChar,nextField,true/false,true/false)
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.caricaListaMono=
|
||||
function (svltRequest,searchTxt,divLista,RI,theEvent,nChar,nextField,useSubmit,useMono) {
|
||||
|
||||
|
||||
//vediamo che dobbiamo fare
|
||||
var evtKey=theEvent.keyCode,
|
||||
field=theEvent.target.id;
|
||||
|
||||
//alert(evtKey);
|
||||
//40 basso 13 invio 9 tab indietro, 16 ctrl, 111 f1 -->122 f12 , 27 esc
|
||||
//mac 224 tasto cmd(mela) 0=cmd+tab
|
||||
if(evtKey==224 ||evtKey==0 ||evtKey==9 ||evtKey==16 ||evtKey==17 ||evtKey==111||(evtKey>=113 && evtKey<=122 ))
|
||||
{
|
||||
//facciamo nulla
|
||||
return;
|
||||
}
|
||||
else if(evtKey==27)
|
||||
{
|
||||
Ab.escapeKey(divLista)
|
||||
}
|
||||
if (evtKey==13)
|
||||
{
|
||||
//se ho la lista attiva perndo il primo e vado al next field
|
||||
//altrimenti vado al next field
|
||||
|
||||
var contenuto = "";
|
||||
//divlista.html è sempre !=!!
|
||||
if ($("#"+divLista).html() != "")
|
||||
{
|
||||
contenuto = $("#"+divLista).find("#stRow").html().replace("<!-- InstanceBeginEditable name=\"list\" -->", "").replace("<!-- InstanceEndEditable -->", "").replace("<ul class=\"nav nav-pills nav-stacked\"></ul>","");
|
||||
}
|
||||
|
||||
if(Ab.isListVisible(divLista) && contenuto.trim().length > 0)
|
||||
{
|
||||
$("#" + searchTxt).removeClass("ajstNoDb");
|
||||
var sk= Ab.prendiElementoDaId(divLista+"_1");
|
||||
sk.onclick();
|
||||
}
|
||||
else
|
||||
{
|
||||
if(useSubmit==true)
|
||||
{
|
||||
submitForm(theEvent);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(nextField!="")
|
||||
{
|
||||
//faccio il next focus o
|
||||
//eseguo lo script
|
||||
Ab.postCr(nextField);
|
||||
}
|
||||
}
|
||||
|
||||
//if($("#"+divLista).length == 0)
|
||||
if(contenuto.trim().length == 0)
|
||||
{
|
||||
//campo non nel db
|
||||
if($("#" + searchTxt).attr("enablenodb")=="true")
|
||||
{//alert('pio');
|
||||
if(Ab.isListVisible(divLista)){
|
||||
$("#" + searchTxt).addClass("ajstNoDb");
|
||||
//cancello solo l'id
|
||||
//ma dovrei cancellare tutto fuori che searchtext!!!!
|
||||
Ab.resetId(RI);
|
||||
Ab.hideList(divLista);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(Ab.isListVisible(divLista)){
|
||||
//$("#" + searchTxt).val("");
|
||||
Ab.resetAllRI(RI);
|
||||
Ab.hideList(divLista);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (evtKey==40)
|
||||
{
|
||||
//freccia giu' --> vado al primo elemento
|
||||
if(Ab.isListVisible(divLista))
|
||||
{
|
||||
Ab.selectTElement(divLista+"_"+1);
|
||||
Ab.prendiElementoDaId(divLista+"_1").focus();
|
||||
}
|
||||
}
|
||||
else if (evtKey==112)
|
||||
{
|
||||
if ($('[nextField="' + field + '"]').val() != undefined)
|
||||
{
|
||||
$('[nextField="' + field + '"]').focus();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('[name="'+Ab.rendiPrevField(field)+'"]').focus();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(timerPartenza){
|
||||
clearTimeout(timerPartenza);
|
||||
timerPartenza = null;
|
||||
}
|
||||
|
||||
//resetto l'id
|
||||
//Ab.resetId(RI);
|
||||
//if(!Ab.isListVisible(divLista))
|
||||
//alert(evtKey);
|
||||
|
||||
var searchTxtElement=Ab.prendiElementoDaId(searchTxt);
|
||||
if(searchTxtElement.value.length==0)
|
||||
Ab.resetId(RI);
|
||||
if(searchTxtElement.value.length>=nChar)
|
||||
{
|
||||
timerPartenza = setTimeout(function()
|
||||
{
|
||||
|
||||
//inizio ricerca tramite ajax
|
||||
if (svltRequest.charAt(0)=="/")
|
||||
{//path assoluto
|
||||
svltRequest=webApp+svltRequest;
|
||||
}
|
||||
//non utilizzo NSF ma lo gestisco da qui
|
||||
if(nextField=="")
|
||||
nextField=searchTxt;
|
||||
|
||||
//devo gestiore il % e sostituirlo con %25
|
||||
var st=searchTxtElement.value;
|
||||
st=st.replace('%','%25');
|
||||
////////////////////////////////////////////////////////////////////////////////////77
|
||||
svltRequest=svltRequest+st+"&cmd=ajSt&RI="+RI+"&nextField="+nextField+"&divList="+divLista;
|
||||
//alert(svltRequest);
|
||||
//request ajax
|
||||
//preparo prima il postProcess
|
||||
if(useMono)
|
||||
{
|
||||
postProcess=function()
|
||||
{
|
||||
//automazione mono record
|
||||
if(Ab.prendiElementoDaId(divLista+"_tnr").value==1)
|
||||
{
|
||||
Ab.prendiElementoDaId(divLista+"_1").onclick();
|
||||
}
|
||||
};
|
||||
}
|
||||
else{
|
||||
postProcess=function(){};
|
||||
}
|
||||
Ab.disabledEventPropagation(theEvent);
|
||||
Ab.sendAjaxGetLista(svltRequest,divLista,postProcess);
|
||||
//automazione 1 record
|
||||
}, 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//utilizzare caricaLista(svltRequest,searchTxt,divLista,RI,theEvent,nextField,true/false)
|
||||
// faccio la ricerca solo con il submit.
|
||||
//Il submit nei parametri mi identifica se voglio lanciare il sumbit form
|
||||
Ab.caricaListaS=
|
||||
function (svltRequest,searchTxt,divLista,RI,theEvent,nextField,useSubmit)
|
||||
{
|
||||
Ab.caricaListaSMono(svltRequest,searchTxt,divLista,RI,theEvent,nextField,useSubmit,false);
|
||||
|
||||
}
|
||||
Ab.caricaListaSM=
|
||||
function (svltRequest,searchTxt,divLista,RI,theEvent,nextField,useSubmit)
|
||||
{
|
||||
Ab.caricaListaSMono(svltRequest,searchTxt,divLista,RI,theEvent,nextField,useSubmit,true);
|
||||
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//utilizzare caricaLista(svltRequest,searchTxt,divLista,RI,theEvent,nextField,true/false,true/false)
|
||||
// faccio la ricerca solo con il submit.
|
||||
//paramtro useMono per automazione ricerca primo elemento automatica
|
||||
//Il submit nei parametri mi identifica se voglio lanciare il sumbit form
|
||||
Ab.caricaListaSMono=
|
||||
function (svltRequest,searchTxt,divLista,RI,theEvent,nextField,useSubmit,useMono)
|
||||
{
|
||||
// console.log("caricaListaSMono");
|
||||
|
||||
var nChar=1;
|
||||
//vediamo che dobbiamo fare
|
||||
evtKey=theEvent.keyCode;
|
||||
//alert(evtKey);
|
||||
//40 basso 13 invio 9 tab indietro, 16 ctrl, 111 f1 -->122 f12 , 27 esc
|
||||
//mac 224 tasto cmd(mela) 0=cmd+tab
|
||||
if(evtKey==224 ||evtKey==0 ||evtKey==9 ||evtKey==16 ||evtKey==17 ||(evtKey>=111 && evtKey<=122 ))
|
||||
{
|
||||
//facciamo nulla
|
||||
return;
|
||||
}
|
||||
else if(evtKey==27 )
|
||||
{ //esc
|
||||
Ab.escapeKey(divLista)
|
||||
}
|
||||
//else if(evtKey==8 ||evtKey==46 ||evtKey==37 ||evtKey==39)
|
||||
else if(evtKey!=13 && evtKey!=40)
|
||||
{// 8delIndietro 46canc 37frecciasx 39frecciadx
|
||||
//cambiato in qualsiasi tasto fuorche i precedenti o invio
|
||||
//mi ripreparo per una nuova ricerca
|
||||
Ab.hideList(divLista);
|
||||
Ab.resetId(RI);
|
||||
return;
|
||||
}
|
||||
if (evtKey==13)
|
||||
{
|
||||
|
||||
//se ho la lista attiva perndo il primo e vado al next field
|
||||
//altrimenti vado al next field
|
||||
//in questo caso vuol dire che sono al secondo invio
|
||||
if(Ab.isListVisible(divLista))
|
||||
{
|
||||
|
||||
//se non ci sono elementi, sto inserendo qualcosa che non è nel db
|
||||
var contenuto = "";
|
||||
//divLista lenght non è mai !=0
|
||||
//if ($("#"+divLista).html() != "")
|
||||
{
|
||||
contenuto = $("#"+divLista).find("#stRow").html().replace("<!-- InstanceBeginEditable name=\"list\" -->", "").replace("<!-- InstanceEndEditable -->", "").replace("<ul class=\"nav nav-pills nav-stacked\"></ul>","");
|
||||
}
|
||||
if(contenuto.trim().length == 0)
|
||||
{
|
||||
//campo non nel db
|
||||
if($("#" + searchTxt).attr("enablenodb")=="true")
|
||||
{//alert('pio2');
|
||||
if(Ab.isListVisible(divLista)){
|
||||
$("#" + searchTxt).addClass("ajstNoDb");
|
||||
//cancello solo l'id
|
||||
//ma dovrei cancellare tutto fuori che searchtext!!!!
|
||||
Ab.resetId(RI);
|
||||
Ab.hideList(divLista);
|
||||
}
|
||||
Ab.postCr(nextField);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(Ab.isListVisible(divLista)){
|
||||
Ab.resetAllRI(RI);
|
||||
//$("#" + searchTxt).val("");
|
||||
Ab.hideList(divLista);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//prendo il primo elemento e faccio click
|
||||
var sk= Ab.prendiElementoDaId(divLista+"_1");
|
||||
sk.onclick();
|
||||
}
|
||||
}
|
||||
else
|
||||
{ //alert(Ab.getSTId(RI).value);
|
||||
//dovrei fare il submit se l'id non è nullo
|
||||
if(Ab.getSTId(RI).value=="")
|
||||
{
|
||||
//faccio la request
|
||||
var searchTxtElement=Ab.prendiElementoDaId(searchTxt);
|
||||
if(searchTxtElement.value.length>=nChar)
|
||||
{
|
||||
//inizio ricerca tramite ajax
|
||||
if (svltRequest.charAt(0)=="/")
|
||||
{//path assoluto
|
||||
svltRequest=webApp+svltRequest;
|
||||
}
|
||||
//non utilizzo NSF ma lo gestisco da qui
|
||||
if(nextField=="")
|
||||
nextField=searchTxt;
|
||||
////////////////////////////////////////////////////////////////////////////////////77
|
||||
//devo gestiore il % e sostituirlo con %25
|
||||
var st=searchTxtElement.value;
|
||||
st=st.replace('%','%25');
|
||||
svltRequest=svltRequest+st+"&cmd=ajSt&RI="+RI+"&nextField="+nextField+"&divList="+divLista;
|
||||
//alert(svltRequest);
|
||||
//request ajax
|
||||
//preparo prima il postProcess
|
||||
if(useMono)
|
||||
{
|
||||
postProcess=function()
|
||||
{
|
||||
//automazione mono record
|
||||
if(Ab.prendiElementoDaId(divLista+"_tnr").value==1)
|
||||
{
|
||||
Ab.prendiElementoDaId(divLista+"_1").onclick();
|
||||
}
|
||||
};
|
||||
}
|
||||
else{
|
||||
postProcess=function(){};
|
||||
}
|
||||
Ab.disabledEventPropagation(theEvent);
|
||||
Ab.sendAjaxGetLista(svltRequest,divLista,postProcess);
|
||||
}
|
||||
}else
|
||||
{
|
||||
//flusso standard
|
||||
if(useSubmit==true)
|
||||
{
|
||||
Ab.submitForm(theEvent);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(nextField!="")
|
||||
{
|
||||
//faccio il next focus o
|
||||
//eseguo lo script
|
||||
|
||||
Ab.postCr(nextField);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (evtKey==40)
|
||||
{
|
||||
//freccia giu' --> vado al primo elemento
|
||||
if(Ab.isListVisible(divLista))
|
||||
{
|
||||
Ab.selectTElement(divLista+"_"+1);
|
||||
Ab.prendiElementoDaId(divLista+"_1").focus();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//resetto l'id
|
||||
//mi serve per la ricerca con submit
|
||||
Ab.resetId(RI);
|
||||
//if(!Ab.isListVisible(divLista))
|
||||
//alert(evtKey);
|
||||
//in questo caso non faccio la richiesta perche' non ho premuto invio
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.getSTId=
|
||||
function (RI)
|
||||
{
|
||||
//resetto l'id che deve essere il primo della RI
|
||||
if(RI!="")
|
||||
{
|
||||
//returnItem è del tipo nomeModulo.nomeCampo
|
||||
nomeModulo=RI.substring(0,RI.indexOf('.'));
|
||||
nomeCampo=RI.substring(RI.indexOf('.')+1,RI.indexOf(','));
|
||||
//if(debug==true){
|
||||
// alert("nomeCampo:"+nomeCampo+" modulo: "+nomeModulo);
|
||||
//}
|
||||
return document[nomeModulo][nomeCampo];
|
||||
//prendiElementoDaId(nomeCampo).value="xx";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.resetAllRI=
|
||||
function (RI)
|
||||
{
|
||||
if(RI!="")
|
||||
{
|
||||
var arr = RI.split(",");
|
||||
var row;
|
||||
for (i=0; i<(arr.length); i++)
|
||||
{
|
||||
row=arr[i].split(".");
|
||||
nomeModulo=row[0];
|
||||
nomeCampo=row[1];
|
||||
$("#"+nomeModulo+" #"+nomeCampo).val("");
|
||||
//(document[nomeModulo][nomeCampo]).value="";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.resetId=
|
||||
function (RI)
|
||||
{
|
||||
//resetto l'id che deve essere il primo della RI
|
||||
Ab.getSTId(RI).value="";
|
||||
/*
|
||||
if(RI!="")
|
||||
{
|
||||
//returnItem è del tipo nomeModulo.nomeCampo
|
||||
nomeModulo=RI.substring(0,RI.indexOf('.'));
|
||||
nomeCampo=RI.substring(RI.indexOf('.')+1,RI.indexOf(','));
|
||||
//if(debug==true){
|
||||
// alert("nomeCampo:"+nomeCampo+" modulo: "+nomeModulo);
|
||||
//}
|
||||
document[nomeModulo][nomeCampo].value="";
|
||||
//prendiElementoDaId(nomeCampo).value="xx";
|
||||
}*/
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/* su l'onclick dell input selezionato.*/
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.selectAjKey=
|
||||
function ()
|
||||
{
|
||||
//in questo caso mi aspetto tante coppie del tipo valore,modulo.campo
|
||||
//07-02-2014 non passo mai un postprocess!!!
|
||||
// i valori in più sono 2!!!
|
||||
//il primo valore in piu se ha le parentesi è una funzione da eseguire
|
||||
//altrimenti è il campo su cui eseguire il nextField
|
||||
//il secondo valore la div lista che mi serve per
|
||||
//nasconderla
|
||||
var returnItemKey,returnItemDesc,nomeModulo,nomeCampo,args=Ab.selectAjKey.arguments;
|
||||
var i;
|
||||
for (i=0; i<(args.length-2); i+=2)
|
||||
{
|
||||
returnItemValue=args[i];
|
||||
returnItemField=args[i+1].trim();
|
||||
|
||||
//debug
|
||||
//alert("valore: "+returnItemValue+" campo: "+returnItemField);
|
||||
if(returnItemField!="")
|
||||
{
|
||||
//returnItem è del tipo nomeModulo.nomeCampo
|
||||
nomeModulo=returnItemField.substring(0,returnItemField.indexOf('.'));
|
||||
nomeCampo=returnItemField.substring(returnItemField.indexOf('.')+1,returnItemField.length);
|
||||
if(debug==true)
|
||||
alert(nomeCampo+": "+returnItemValue);
|
||||
// self.opener.document[nomeModulo][nomeCampo].value=returnItemValue;
|
||||
|
||||
if (!document[nomeModulo][nomeCampo])
|
||||
{
|
||||
alert("Impossibile recuperare il campo: " + nomeCampo + " nel modulo: " + nomeModulo);
|
||||
}
|
||||
else
|
||||
{
|
||||
document[nomeModulo][nomeCampo].value=returnItemValue;
|
||||
}
|
||||
|
||||
// document[nomeModulo][nomeCampo].value=returnItemValue;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//qui fare dei test chiamando uno script
|
||||
//gestione focus
|
||||
if(i<args.length)
|
||||
{
|
||||
//se magari trovo una parentesi, eseguo lo script corrispondente
|
||||
//se potessi...
|
||||
var divLista=args[i+1];
|
||||
//nascondo il div
|
||||
Ab.hideList(divLista);
|
||||
//faccio nextfocus o postprocess
|
||||
var lastArg=args[i];
|
||||
//alert(lastArg);
|
||||
//faccio il next focus o
|
||||
//eseguo lo script
|
||||
Ab.postCr(lastArg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/* scurisco l'elemento in cui sono entrato */
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.selectTElement=
|
||||
function (id)
|
||||
{
|
||||
$("#"+id).addClass("lookup-selected-item");
|
||||
$("#D"+id).addClass("lookup-selected-item");
|
||||
/*var tkStyle= Ab.prendiElementoDaId(id).style;
|
||||
tkStyle.color="#FF0000";
|
||||
tkStyle.backgroundColor="#ebe8d8";
|
||||
*/
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/* schiarisco il div che ho lasciato */
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.unselectTElement=
|
||||
function (id)
|
||||
{
|
||||
$("#"+id).removeClass("lookup-selected-item");
|
||||
$("#D"+id).removeClass("lookup-selected-item");
|
||||
|
||||
/*var tkStyle= Ab.prendiElementoDaId(id).style;
|
||||
tkStyle.color="#006699";
|
||||
tkStyle.backgroundColor="#FFFFFF";*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/* navigazione siulla lista in alto e in basso + invio */
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.selezione=
|
||||
function (divLista,id,theEvent)
|
||||
{
|
||||
evtKey=theEvent.keyCode;
|
||||
newId=id;
|
||||
if (evtKey==13)
|
||||
{
|
||||
//var sk= Ab.prendiElementoDaId(divLista+"_"+id);
|
||||
//sk.onclick();
|
||||
|
||||
if ($("#"+divLista+"_"+id))
|
||||
{
|
||||
console.log($("#"+divLista+"_"+id).val());
|
||||
|
||||
$("#"+divLista+"_"+id).trigger("click");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (evtKey==40)
|
||||
{
|
||||
//vado in basso
|
||||
tnr=Ab.prendiElementoDaId(divLista+"_tnr")
|
||||
if(id<tnr.value)
|
||||
newId=id+1;
|
||||
// else
|
||||
// alert('siamo arrivati in fondo'+tnr.value);
|
||||
}
|
||||
else if (evtKey==38)
|
||||
{
|
||||
//vado in alto
|
||||
if(id>1)
|
||||
newId=id-1;
|
||||
// else
|
||||
// alert('siamo arrivati in cima');
|
||||
}
|
||||
//alert(newId);
|
||||
Ab.unselectTElement(divLista+"_"+id);
|
||||
Ab.selectTElement(divLista+"_"+newId);
|
||||
Ab.prendiElementoDaId(divLista+"_"+newId).focus();
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.hideList=
|
||||
function (theDivList)
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
{
|
||||
//oltre a nasconderla, la svuoto anche....
|
||||
//questo perchè mi introduce un numero di campi in più
|
||||
//dipendente dalla fetch che possono darmi noia quando
|
||||
//ad esempio devo trovarmi il campo successivo
|
||||
//a quello da cui parte la lista
|
||||
/* {
|
||||
$("div#"+theDivList).hide(100);
|
||||
$("div#"+theDivList).html("");
|
||||
}
|
||||
else
|
||||
{
|
||||
var theDivListStyle= prendiElementoDaId(theDivList).style;
|
||||
theDivListStyle.visibility = "hidden";
|
||||
$("div#"+theDivList).html("");
|
||||
}*/
|
||||
//var theDivListStyle= prendiElementoDaId(theDivList).style;
|
||||
//theDivListStyle.visibility = "hidden";
|
||||
$("div#"+theDivList).parent().css("visibility","hidden");
|
||||
//console.log($("div#"+theDivList).parent().attr("class"));
|
||||
$("div#"+theDivList).html("");
|
||||
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.showList=
|
||||
function (theDivList)
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
{
|
||||
$("div#"+theDivList).parent().css("visibility","visible");
|
||||
$("div#"+theDivList).css("display","block");
|
||||
/*if (ns4 || mz7 || chro)
|
||||
{
|
||||
theDivListStyle.visibility = "visible";
|
||||
$("div#"+theDivList).show(1);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
theDivListStyle.visibility = "visible";
|
||||
//theDivListStyle.display = "block";
|
||||
}*/
|
||||
/*var theDivListStyle= prendiElementoDaId(theDivList).style;
|
||||
theDivListStyle.visibility = "visible";
|
||||
theDivListStyle.display = "block"; */
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
Ab.isListVisible=function (theDivList)
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
{
|
||||
|
||||
|
||||
/*if (ns4 || mz7 || chro)
|
||||
{
|
||||
if($("div#"+theDivList).is(':visible'))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
var theDivListStyle= prendiElementoDaId(theDivList).style;
|
||||
if(theDivListStyle.visibility == "hidden")
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}*/
|
||||
if($("div#"+theDivList).css("visibility")=="hidden")
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
/* var theDivListStyle= prendiElementoDaId(theDivList).style;
|
||||
if(theDivListStyle.visibility == "hidden")
|
||||
return false;
|
||||
else
|
||||
return true;*/
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// Ab.postCr: Dopo il Cr (key 13) faccio il setfocus oppure
|
||||
// eseguo una funzione javascript
|
||||
////////////////////////////////////////////////
|
||||
Ab.postCr=
|
||||
function (pproc)
|
||||
{
|
||||
var idx1=pproc.indexOf("(");
|
||||
if(idx1>0)
|
||||
{
|
||||
Ab.executeProcess(pproc, "");
|
||||
}
|
||||
else
|
||||
{
|
||||
Ab.setFocus(pproc);
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////
|
||||
/////////////////////////////////////////////
|
||||
// cosa succede se premo escape (27) sul campo
|
||||
/////////////////////////////////////////////
|
||||
/////////////////////////////////////////////
|
||||
Ab.escapeKey=function (divLista)
|
||||
{
|
||||
//esc
|
||||
if( $("div#"+divLista).parent().css("visibility")=="hidden")
|
||||
{
|
||||
//gestione comando per tornare indietro
|
||||
if($("#pageType").val()=="D"){
|
||||
if(typeof backEscape == 'function')
|
||||
{
|
||||
backEscape();
|
||||
}
|
||||
else
|
||||
{
|
||||
//Ab.dashboard();
|
||||
}
|
||||
}
|
||||
else if($("#pageType").val()=="R"){
|
||||
if(typeof backEscapeCR == 'function')
|
||||
{
|
||||
backEscapeCR();
|
||||
}
|
||||
else
|
||||
{
|
||||
//Ab.dashboard();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Ab.hideList(divLista);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue