Changeset 9334


Ignore:
Timestamp:
07/11/07 18:38:20 (5 years ago)
Author:
anp
Message:

gestion pb d'apparition de la fenetre de login sous FF

Location:
trunk/Xul_Cms
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Xul_Cms/chrome/content/scenaricms/deskwsp/deskwsp.js

    r9184 r9334  
    205205                        } 
    206206                        var vReload = false; 
    207                         var vStatusReload = vServer.getDomFromService("/u/adminWsp?cdaction=StatusLoadedAllItems&param="+vCdWsp).documentElement.getAttribute("status"); 
     207                        var vStatusReloadDom = vServer.getDomFromService("/u/adminWsp?cdaction=StatusLoadedAllItems&param="+vCdWsp); 
     208                        var vStatusReload = vStatusReloadDom ? vStatusReloadDom.documentElement.getAttribute("status") : null; 
    208209                        if(vStatusReload=="no" && ! ("fDontAskRelaodItems" in this)) { 
    209210                                //var vMess = "Pour un affichage exhaustif de l'arborescence ascendante, il est nécessaire de charger préalablement les items de l'atelier. Attention, cette opération peut-être longue !"; 
  • trunk/Xul_Cms/chrome/content/scenaricms/uriobject/uriobject.js

    r9133 r9334  
    570570                delete this.fTextContent; 
    571571                this.fItem = this.fServer.getDomFromService("/u/vueObjet?cdaction=GetItem&param="+window.encodeURIComponent(this.fUri)); 
    572                 this.fPack = this.fItem.documentElement.getAttribute("pack"); 
    573                 this.fModel = this.fItem.documentElement.getAttribute("model"); 
     572                this.fPack = this.fItem ? this.fItem.documentElement.getAttribute("pack") : null; 
     573                this.fModel = this.fItem ? this.fItem.documentElement.getAttribute("model") : null; 
    574574        } catch(e){ut.debug("UriObjectItem.activateSynch="+e);} 
    575575} 
  • trunk/Xul_Cms/chrome/content/scenaricms/wspmgr/wspconfig/wspModeles.overlay.xul

    r8850 r9334  
    170170                                                var vCounter = 0; 
    171171                                                function fInfoWsp(){ 
    172                                                         var vInfoWsp = vServerWspObj.getDomFromService("/u/adminWsp?cdaction=InfoWsp&param="+vIdWsp).documentElement; 
    173                                                         var vStatus = vInfoWsp.getAttribute('status'); 
     172                                                        var vRespInfoWsp = vServerWspObj.getDomFromService("/u/adminWsp?cdaction=InfoWsp&param="+vIdWsp); 
     173                                                        var vInfoWsp = vRespInfoWsp ? vRespInfoWsp.documentElement : null; 
     174                                                        var vStatus = vInfoWsp ? vInfoWsp.getAttribute('status') : null; 
    174175                                                        if(vStatus=='noWsp' || vStatus=='noActiveWsp' || vStatus=='noRepository' || vStatus=='failed'){ 
    175176                                                                vWspChoiceModelMgr.xSetError("Le modèle d'atelier '"+vIdWsp+"' est indisponible ou en erreur."); 
  • trunk/Xul_Cms/chrome/content/scenaricms/wspmgr/wspmgr.js

    r9309 r9334  
    176176                                        var cb = function (pEvent){ 
    177177                                                try { 
    178                                                         if(pEvent.target.responseXML && pEvent.target.status == 200){ 
    179                                                                 var vListWspServer = pEvent.target.responseXML; 
     178                                                        var vTarget = pEvent.target.QueryInterface(Components.interfaces.nsIXMLHttpRequest) ? pEvent.target.QueryInterface(Components.interfaces.nsIXMLHttpRequest) : null; 
     179                                                        if(vTarget.responseXML && vTarget.status == 200){ 
     180                                                                var vListWspServer = vTarget.responseXML; 
    180181                                                                if(vListWspServer.documentElement.hasAttribute('defaultPath')) wspMgr.fListServer[vCurrentUrl].fWspList = vListWspServer.documentElement; 
    181182                                                                wspMgr.xSynchRegistryServer(vServer.getIniUrl(), vListWspServer); 
     
    200201                                                                vCounter++; 
    201202                                                                window.setTimeout(function(pServer, pUrl, pCb){pServer.loadFromService(pUrl, pCb, pCb);}, 1000, vServer, "/u/adminWsp?cdaction=List", cb);  
    202                                                         }else if(pEvent.target.responseText.length > 0 && pEvent.target.status == 401){ 
     203                                                        }else if(vTarget.status == 401){//vTarget.responseText.length > 0 &&  
    203204                                                                ut.alert("Vous ne disposez pas des droits suffisants pour accéder au serveur '"+vCurrentUrl+"' ("+vTreeView.fContexte.fListServer[vCurrentUrl].fTitle+")."); 
    204205                                                                vItem.firstChild.firstChild.removeAttribute("properties"); 
    205206                                                        } else { 
    206                                                                 ut.alert("La connexion au serveur '"+vCurrentUrl+"' ("+vTreeView.fContexte.fListServer[vCurrentUrl].fTitle+") a échoué. \n Vérifiez vos connexions réseau."); 
    207207                                                                vItem.firstChild.firstChild.removeAttribute("properties"); 
    208                                                                 throw {toString:function(){return "server "+ (vServer.isServerLocal() ? "local " : "distant ") +"indisponible aprés "+vCounter+" tentatives. statusResponse="+pEvent.target.responseText}}; 
     208                                                                throw {toString:function(){return "server "+ (vServer.isServerLocal() ? "local " : "distant ") +"indisponible aprés "+vCounter+" tentatives. " + vTarget ? ("statusResponse="+vTarget.responseText) : ""}}; 
    209209                                                        } 
    210210                                                } catch(e){ 
     
    452452WspMgr.prototype.modifyServerConnexion = function(){ 
    453453        try { 
    454         var vCurrentIndex = document.getElementById(this.fIdTree).currentIndex; 
    455         var vUrlServer =document.getElementById(this.fIdTree).fView.getItemAtIndex(vCurrentIndex).getAttribute('serverUrl'); 
    456         var vLogin = document.getElementById('idServerLoginInput').value; 
    457         var vPassword = document.getElementById('idServerPasswdInput').value; 
    458         var vBtnSave = document.getElementById('idServerConnexionSave'); 
    459         // on modifie les proprietes locales 
    460         this.fListServer[vUrlServer].fIsOpen =false; 
    461         this.fListServer[vUrlServer].fObjServer = null; 
    462         this.fListServer[vUrlServer].fLogin = vLogin; 
    463         this.fListServer[vUrlServer].fPassword = vPassword; 
    464         // on enregistre ces proprietes coté client 
    465         this.fWspReg.setServerConnexionSetting(vUrlServer, vLogin, vPassword); 
    466         this.fWspReg.fireUpdateEvent(vUrlServer, null); 
    467         this.refreshView(); 
    468         vBtnSave.setAttribute('disabled', true); 
    469         }catch(e){ut.debug(e);} 
     454                var vCurrentIndex = document.getElementById(this.fIdTree).currentIndex; 
     455                var vUrlServer =document.getElementById(this.fIdTree).fView.getItemAtIndex(vCurrentIndex).getAttribute('serverUrl'); 
     456                var vLogin = document.getElementById('idServerLoginInput').value; 
     457                var vPassword = document.getElementById('idServerPasswdInput').value; 
     458                var vBtnSave = document.getElementById('idServerConnexionSave'); 
     459                // on modifie les proprietes locales 
     460                this.fListServer[vUrlServer].fIsOpen =false; 
     461                this.fListServer[vUrlServer].fObjServer = null; 
     462                this.fListServer[vUrlServer].fLogin = vLogin; 
     463                this.fListServer[vUrlServer].fPassword = vPassword; 
     464                // on enregistre ces proprietes coté client 
     465                this.fWspReg.setServerConnexionSetting(vUrlServer, vLogin, vPassword); 
     466                this.refreshView(); 
     467                //this.fWspReg.fireUpdateEvent(vUrlServer, null); 
     468                vBtnSave.setAttribute('disabled', true); 
     469        }catch(e){ 
     470                ut.debug("WspMgr.prototype.modifyServerConnexion :: " + e); 
     471        } 
    470472} 
    471473 
  • trunk/Xul_Cms/chrome/content/scenaricms/wspmgr/wsput.js

    r9308 r9334  
    290290                                                window.setTimeout(function(pServer, pUrl, pCb){pServer.loadFromService(pUrl, pCb, pCb);}, 500, pServerObj, "/u/adminWsp?cdaction=InfoWsp&param="+pCodeWsp, cb); 
    291291                                        }else{ 
    292                                                 if(pErrorCb) pErrorCb(vResponse); 
     292                                                if(pErrorCb) pErrorCb(pEvent.target.responseXML ? pEvent.target.responseXML.documentElement : null); 
    293293                                        } 
    294294                                } 
  • trunk/Xul_Cms/chrome/content/scenaricms/wspview/wspview.js

    r9170 r9334  
    352352                                if(vIsCut) { 
    353353                                        if( ! ut.confirm("Confirmez le déplacement de "+vUri+ " vers "+vUriDst, "Déplacements de fichiers", "Déplacer", "Annuler")) return; 
    354                                         var vStatusReload = vViewMgr.fServer.getDomFromService("/u/adminWsp?cdaction=StatusLoadedAllItems&param="+vViewMgr.fCdWsp).documentElement.getAttribute("status"); 
     354                                        var vStatusReloadDom = vViewMgr.fServer.getDomFromService("/u/adminWsp?cdaction=StatusLoadedAllItems&param="+vViewMgr.fCdWsp); 
     355                                        var vStatusReload = vStatusReloadDom ? vStatusReloadDom.documentElement.getAttribute("status") : null; 
    355356                                        if(vStatusReload=="no" && ! ("fDontAskRelaodItems" in vViewMgr)) { 
    356357                                                //var vMess = "Pour que tous les items référençant les items déplacés soient aussi modifiés, il est nécessaire de charger préalablement les items de l'atelier. Attention, cette opération peut-être longue !"; 
     
    867868                                                } 
    868869                                        } else { 
    869                                                 if(pEvent.type!='error' && pEvent && pEvent.target && pEvent.target.status == 401){ 
     870                                                pEvent.target.QueryInterface(Components.interfaces.nsIXMLHttpRequest); 
     871                                                if(pEvent && pEvent.type!='error'&& pEvent.target && pEvent.target.QueryInterface(Components.interfaces.nsIXMLHttpRequest) && pEvent.target.QueryInterface(Components.interfaces.nsIXMLHttpRequest).status == 401){ 
    870872                                                        sWspView.xResetTreeMessage("Vous ne disposez pas des droits suffisants! Veuillez vous identifier dans le fenêtre de gestion des ateliers."); 
    871873                                                        //ut.alert("Le serveur d'ateliers \""+sWspView.fServer.getIniUrl()+"\" n'est pas accessible. Vous ne disposez pas des droits suffisants. Veuillez vous identifier dans le fenêtre de gestion des ateliers.", "Identification requise"); 
     
    15671569                        var vReload = false; 
    15681570                        if(vIsCut) { 
    1569                                 var vStatusReload = vViewMgr.fServer.getDomFromService("/u/adminWsp?cdaction=StatusLoadedAllItems&param="+vViewMgr.fCdWsp).documentElement.getAttribute("status"); 
     1571                                var vStatusReloadDom = vViewMgr.fServer.getDomFromService("/u/adminWsp?cdaction=StatusLoadedAllItems&param="+vViewMgr.fCdWsp); 
     1572                                var vStatusReload = vStatusReloadDom ? vStatusReloadDom.documentElement.getAttribute("status") : null; 
    15701573                                if(vStatusReload=="no" && ! ("fDontAskRelaodItems" in vViewMgr)) { 
    15711574                                        //var vMess = "Pour que tous les items référençant les items déplacés soient aussi modifiés, il est nécessaire de charger préalablement les items de l'atelier. Attention, cette opération peut-être longue !"; 
  • trunk/Xul_Cms/components/scHttpDataServer.js

    r8936 r9334  
    9898                this.fPathService = "/s"; 
    9999                this.fPathAgent = "/a"; 
     100                this.fConnectionStatus = "undefined";//[undefined|connected|unauthorized] 
    100101                 
    101102                this.fUser = {fAccount:pAccount, fPassword:pPassword}; 
     
    327328        isServerReady : function (){ 
    328329                try{ 
    329                         var vReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); 
    330                         var vUrl = this.fUrlServer+this.fPathService+"/"+this.fCdUnivers+"/u/ping"; 
    331                         vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
    332                         this.xSetReqHeaders(vReq); 
    333                         vReq.send(null); 
    334                         this.xGetRespHeadersAsynch(vReq); 
    335                         if(vReq.status == 200) return true; 
     330                        if(this.fConnectionStatus!="unauthorized"){ 
     331                                var vReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); 
     332                                var vUrl = this.fUrlServer+this.fPathService+"/"+this.fCdUnivers+"/u/ping"; 
     333                                vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
     334                                this.xSetReqHeaders(vReq); 
     335                                vReq.send(null); 
     336                                this.xGetRespHeadersAsynch(vReq); 
     337                                if(vReq.status == 200){ 
     338                                        this.fConnectionStatus = "connected"; 
     339                                        return true; 
     340                                        } 
     341                                if(vReq.status == 401){ 
     342                                        this.fConnectionStatus = "unauthorized"; 
     343                                        return false; 
     344                                } 
     345                        } 
    336346                } catch(e){} 
    337347                return false; 
     
    402412         
    403413        getDomFromService : function (pUrlDialogAndParams) { 
    404                 var vUrl = this.fUrlService+pUrlDialogAndParams; 
    405                 var vReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); 
    406                 //vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
    407                 vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
    408                 this.xSetReqHeaders(vReq); 
    409                 vReq.send(null); 
    410                 this.xGetRespHeadersAsynch(vReq); 
    411                 var vResp = vReq.responseXML; 
    412                 return vResp; 
     414                if(this.fConnectionStatus!="unauthorized"){ 
     415                        var vUrl = this.fUrlService+pUrlDialogAndParams; 
     416                        var vReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); 
     417                        //vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
     418                        vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
     419                        this.xSetReqHeaders(vReq); 
     420                        vReq.send(null); 
     421                        if(vReq.status != 401){ 
     422                                this.fConnectionStatus = "connected"; 
     423                                this.xGetRespHeadersAsynch(vReq); 
     424                                var vResp = vReq.responseXML; 
     425                                return vResp; 
     426                        }else{ 
     427                                this.fConnectionStatus = "unauthorized"; 
     428                                return null; 
     429                        } 
     430                }else{// non autorisé. En attente d'un changement de login/password 
     431                        return null; 
     432                } 
    413433        }, 
    414434 
    415435        getTextFromService : function (pUrlDialogAndParams) { 
    416                 var vUrl = this.fUrlService+pUrlDialogAndParams; 
    417                 var vReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); 
    418                 vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
    419                 this.xSetReqHeaders(vReq); 
    420                 vReq.send(null); 
    421                 this.xGetRespHeadersAsynch(vReq); 
    422                 var vResp = vReq.responseText; 
    423                 return vResp; 
     436                if(this.fConnectionStatus!="unauthorized"){ 
     437                        var vUrl = this.fUrlService+pUrlDialogAndParams; 
     438                        var vReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); 
     439                        vReq.open("GET", vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
     440                        this.xSetReqHeaders(vReq); 
     441                        vReq.send(null); 
     442                        if(vReq.status != 401){ 
     443                                this.fConnectionStatus = "connected"; 
     444                                this.xGetRespHeadersAsynch(vReq); 
     445                                var vResp = vReq.responseText; 
     446                                return vResp; 
     447                        }else{ 
     448                                this.fConnectionStatus = "unauthorized"; 
     449                                return null; 
     450                        } 
     451                }else{// non autorisé. En attente d'un changement de login/password 
     452                        return null; 
     453                } 
    424454        }, 
    425455         
    426456        setUser : function(pAccount, pPassword){ 
    427457                this.fUser = {fAccount:pAccount, fPassword:pPassword}; 
     458                this.fConnectionStatus = "undefined"; 
    428459        }, 
    429460 
     
    434465                vReq.open(pMethod, vUrl, false, this.fUser.fAccount, this.fUser.fPassword); 
    435466                this.xSetReqHeaders(vReq); 
    436                 if(pBody!=null) { 
    437                         var vFile; 
    438                         try{vFile = (pBody.QueryInterface) ? pBody.QueryInterface(Components.interfaces.nsIFile) : null;}catch(e){} 
    439                         if(vFile) { 
    440                                 //nsIUri source 
    441                                 //var vUriFrom = null; 
    442                                 //nsIUri destination 
    443                                 //var vUriTo = null;                             
    444                                 //var vPersist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist); 
    445                                 //vPersist.saveURI(vUriFrom, null, null, null, null, vUriTo); 
    446                                 //vReq.setRequestHeader("Content-Type", "application/octet-stream"); 
    447                                 vReq.setRequestHeader("Content-Length", vFile.fileSize); 
    448                                 var vStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream); 
    449                                 vStream.init(vFile, 1, 0, 0); 
    450                                 try { 
    451                                         //var vReader =  Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream); 
    452                                         //vReader.init(vStream); 
    453                                         //var vText = vReader.read(1000); 
    454                                         //debug("dialogSynchWithService with file = "+vText); 
    455                                         //vReq.send(vText); 
    456                                         //vReader.close(); 
    457                                         vReq.send(vStream); 
    458                                          
    459                                         //vReq.send("testcontenu"); 
    460                                 } finally{ 
    461                                         //vReader.close(); 
    462                                         vStream.close(); 
     467                if(this.fConnectionStatus!="unauthorized"){ 
     468                        if(pBody!=null) { 
     469                                var vFile; 
     470                                try{vFile = (pBody.QueryInterface) ? pBody.QueryInterface(Components.interfaces.nsIFile) : null;}catch(e){} 
     471                                if(vFile) { 
     472                                        //nsIUri source 
     473                                        //var vUriFrom = null; 
     474                                        //nsIUri destination 
     475                                        //var vUriTo = null;                             
     476                                        //var vPersist = Components.classes["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Components.interfaces.nsIWebBrowserPersist); 
     477                                        //vPersist.saveURI(vUriFrom, null, null, null, null, vUriTo); 
     478                                        //vReq.setRequestHeader("Content-Type", "application/octet-stream"); 
     479                                        vReq.setRequestHeader("Content-Length", vFile.fileSize); 
     480                                        var vStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream); 
     481                                        vStream.init(vFile, 1, 0, 0); 
     482                                        try { 
     483                                                //var vReader =  Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream); 
     484                                                //vReader.init(vStream); 
     485                                                //var vText = vReader.read(1000); 
     486                                                //debug("dialogSynchWithService with file = "+vText); 
     487                                                //vReq.send(vText); 
     488                                                //vReader.close(); 
     489                                                vReq.send(vStream); 
     490                                                 
     491                                                //vReq.send("testcontenu"); 
     492                                        } finally{ 
     493                                                //vReader.close(); 
     494                                                vStream.close(); 
     495                                        } 
     496                                } else { 
     497                                        //debug("Content-Type = "+pContentType+"  - Body = "+pBody); 
     498                                        if(pContentType) vReq.setRequestHeader("Content-Type", pContentType); 
     499                                        //vReq.setRequestHeader("Content-Type", pContentType || "text; charset=ISO-8859-1");// 
     500                                        vReq.send(pBody);//pBody 
    463501                                } 
    464502                        } else { 
    465                                 //debug("Content-Type = "+pContentType+"  - Body = "+pBody); 
    466                                 if(pContentType) vReq.setRequestHeader("Content-Type", pContentType); 
    467                                 //vReq.setRequestHeader("Content-Type", pContentType || "text; charset=ISO-8859-1");// 
    468                                 vReq.send(pBody);//pBody 
    469                         } 
    470                 } else { 
    471                         //debug("NoBody"); 
    472                         vReq.send(null); 
    473                 } 
    474                 this.xGetRespHeadersAsynch(vReq); 
    475                 return vReq; 
    476         }, 
    477          
    478          
    479          
    480          
     503                                //debug("NoBody"); 
     504                                vReq.send(null); 
     505                        } 
     506                        if(vReq && vReq.status != 401){ 
     507                                this.fConnectionStatus = "connected"; 
     508                                this.xGetRespHeadersAsynch(vReq); 
     509                                return vReq; 
     510                        }else{ 
     511                                this.fConnectionStatus = "unauthorized"; 
     512                                return vReq; 
     513                        } 
     514                }else{// non autorisé. En attente d'un changement de login/password 
     515                        return new XMLHttpRequestWrapper("unauthorized", vReq); 
     516                } 
     517        }, 
     518                 
    481519        loadFromService : function (pUrlDialogAndParams, pFctCallBack, pFctCallBackError) { 
    482520                try { 
     
    484522                        var vUrl = this.fUrlService+pUrlDialogAndParams; 
    485523                        var vReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest); 
    486                         //debug("ssss::"+listProperties(vReq)); 
    487524                        vReq.open("GET", vUrl, true, this.fUser.fAccount, this.fUser.fPassword); 
    488525                        this.xSetReqHeaders(vReq); 
    489526                        //debug("this.fUser.fAccount:: "+this.fUser.fAccount+", this.fUser.fPassword:: "+this.fUser.fPassword); 
    490527                        this.xSetCallBacks(vReq, pFctCallBack, pFctCallBackError); 
    491                         vReq.send(null); 
     528                        if(this.fConnectionStatus!="unauthorized"){ 
     529                                var vWReq = new XMLHttpRequestWrapper("checkRights", vReq, this); 
     530                                vWReq.send(null); 
     531                        }else{// non autorisé. En attente d'un changement de login/password 
     532                                if(pFctCallBackError) pFctCallBackError.handleEvent(new nsIDOMEventUnauthorized()); 
     533                        } 
    492534                } catch(e){ 
    493535                        debug("scHttpDataServer.loadFromService '"+this.fUrlServer+"': "+pUrlDialogAndParams+" : "+e); 
     
    505547                        this.xSetCallBacks(vReq, pFctCallBack, pFctCallBackError); 
    506548                        if(pContentType) vReq.setRequestHeader("Content-Type", pContentType); 
    507                         vReq.send(pBody); 
     549                        if(this.fConnectionStatus!="unauthorized"){ 
     550                                var vWReq = new XMLHttpRequestWrapper("checkRights", vReq, this); 
     551                                vWReq.send(pBody); 
     552                        }else{// non autorisé. En attente d'un changement de login/password 
     553                                if(pFctCallBackError) pFctCallBackError.handleEvent(new nsIDOMEventUnauthorized()); 
     554                        } 
    508555                } catch(e){ 
    509556                        debug("scHttpDataServer.dialogAsynchWithService "+pMethod+" - "+pUrlDialogAndParams+" : "+e); 
     
    520567                        this.xSetReqHeaders(vReq); 
    521568                        this.xSetCallBacks(vReq, pFctCallBack, pFctCallBackError); 
    522                         vReq.send(null); 
     569                        if(this.fConnectionStatus!="unauthorized"){ 
     570                                var vWReq = new XMLHttpRequestWrapper("checkRights", vReq, this); 
     571                                vWReq.send(null); 
     572                        }else{// non autorisé. En attente d'un changement de login/password 
     573                                if(pFctCallBackError) pFctCallBackError.handleEvent(new nsIDOMEventUnauthorized()); 
     574                        } 
    523575                } catch(e){ 
    524576                        debug("scHttpDataServer.loadFromAgent "+pIdInstance+" - "+pUrlDialogAndParams+" : "+e); 
     
    719771 
    720772 
     773 
     774/* Wrapper de XMLHttpRequest */ 
     775function nsIDOMEventUnauthorized(){ 
     776         
     777} 
     778nsIDOMEventUnauthorized.prototype = { 
     779        /** nsIRequest **/ 
     780        get target() { 
     781                return new XMLHttpRequestWrapper("unauthorized"); 
     782        }, 
     783         
     784    QueryInterface: function(pIId) { 
     785        if (!pIId.equals(Components.interfaces.nsISupports) && 
     786            !pIId.equals(Components.interfaces.nsIDOMEvent)) 
     787            throw Components.results.NS_ERROR_NO_INTERFACE; 
     788        return this; 
     789    } 
     790} 
     791 
     792/* Wrapper de XMLHttpRequest */ 
     793function XMLHttpRequestWrapper(pMode, pXMLHttpRequest, pHttpDataServer){ 
     794        this.fMode = pMode;// [null|unauthorized|checkRights] 
     795        this.fXMLHttpRequest = pXMLHttpRequest ? pXMLHttpRequest : Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Components.interfaces.nsIXMLHttpRequest);; 
     796        this.fServer = pHttpDataServer; 
     797        try{ 
     798                if(pMode=="checkRights"){ 
     799                        var vXmlHttpRequest = this; 
     800                        this.fXMLHttpRequest.addEventListener( 
     801                                        "load",  
     802                                        function(pEvent){ 
     803                                                //debug("load!!!"+pEvent.target.status); 
     804                                                switch(pEvent.target.status) { 
     805                                                        case 401 : vXmlHttpRequest.fServer.fConnectionStatus = "unauthorized"; break; 
     806                                                        case 200 : vXmlHttpRequest.fServer.fConnectionStatus = "connected"; break; 
     807                                                        default : vXmlHttpRequest.fServer.fConnectionStatus = "undefined"; 
     808                                                } 
     809                                        },  
     810                                        false); 
     811                        this.fXMLHttpRequest.addEventListener( 
     812                                                "error",  
     813                                                function(pEvent){ 
     814                                                        //debug("error!!!"+pEvent.target.status); 
     815                                                        if(pEvent.target.status==401) vXmlHttpRequest.fServer.fConnectionStatus = "unauthorized"; 
     816                                                },  
     817                                                false); 
     818                } 
     819                 
     820                if(pMode=="unauthorized"){ 
     821                        /* 
     822                        debug("non autorisé::::"); 
     823                        var vDocument = Components.classes["@mozilla.org/xml/xml-document;1"].createInstance(Components.interfaces.nsIDOMDocumentEvent); 
     824                        var vEvent = vDocument.createEvent('Events'); 
     825                        vEvent.initEvent("error", false, true);                  
     826                        this.fXMLHttpRequest.abort(); 
     827                        this.fXMLHttpRequest.QueryInterface(Components.interfaces.nsIDOMEventTarget).dispatchEvent(vEvent);// anp TODO. marche pas... 
     828                        //debug("eeeeeeeee"+this.fXMLHttpRequest.onerror); 
     829                        */ 
     830                } 
     831        }catch(e){ 
     832                debug("scHttpDataServer.XMLHttpRequestWrapper : " + e); 
     833        } 
     834         
     835} 
     836XMLHttpRequestWrapper.prototype = { 
     837        /** nsIRequest **/ 
     838        get channel() {return this.fXMLHttpRequest.channel;}, 
     839        get multipart() {return this.fXMLHttpRequest.multipart;}, 
     840        set multipart(value) {this.fXMLHttpRequest.multipart = value;}, 
     841        get readyState() {return this.fXMLHttpRequest.readyState;}, 
     842        get responseText() {return this.fXMLHttpRequest.responseText;}, 
     843        get responseXML() {return this.fXMLHttpRequest.responseXML;}, 
     844        get status() {return this.fMode!="unauthorized" ? this.fXMLHttpRequest.status : 401}, 
     845        get statusText() {return this.fMode!="unauthorized" ? this.fXMLHttpRequest.statusText : "Vous ne disposez pas des droits suffisants";}, 
     846        abort                                   : function(){this.fXMLHttpRequest.abort();}, 
     847        getAllResponseHeaders   : function(){return this.fXMLHttpRequest.getAllResponseHeaders();}, 
     848        getResponseHeader               : function(pHeader){return this.fXMLHttpRequest.getResponseHeader(pHeader);}, 
     849        open                                    : function(pMethod, pUrl){this.fXMLHttpRequest.open(pMethod, pUrl);}, 
     850        overrideMimeType                : function(pMime){this.fXMLHttpRequest.overrideMimeType(pMime);}, 
     851        send                                    : function(pBody){this.fXMLHttpRequest.send(pBody);}, 
     852        setRequestHeader                : function(pHeader, pValue){this.fXMLHttpRequest.setRequestHeader(pHeader, pValue);}, 
     853        onload                                  : function(pEvent){return this.fXMLHttpRequest.onload(pEvent);}, 
     854        onerror                                 : function(pEvent){return this.fXMLHttpRequest.onerror(pEvent);}, 
     855         
     856        /** nsIDOMEventTarget **/ 
     857        addEventListener                : function(pType, pListener, pUseCapture){this.fXMLHttpRequest.addEventListener(pType, pListener, pUseCapture);}, 
     858        dispatchEvent                   : function(pEvent){return this.fXMLHttpRequest.dispatchEvent(pEvent);}, 
     859        removeEventListener             : function(pType, pListener, pUseCapture){this.fXMLHttpRequest.removeEventListener(pType, pListener, pUseCapture);}, 
     860    QueryInterface: function(pIId) { 
     861        if (!pIId.equals(Components.interfaces.nsISupports) && 
     862                !pIId.equals(Components.interfaces. nsIDOMEventTarget) && 
     863            !pIId.equals(Components.interfaces.nsIXMLHttpRequest)) 
     864            throw Components.results.NS_ERROR_NO_INTERFACE; 
     865        return this; 
     866    } 
     867} 
     868 
    721869/* Wrapper du callback pour traiter le header de la response. */ 
    722870function CallbackWrapper(pDataServer, pCb){ 
     
    733881                                this.fDataServer.xGetRespHeaders(pEvent.target); 
    734882        }, 
    735  
    736883    QueryInterface: function(pIId) { 
    737884        if (!pIId.equals(Components.interfaces.nsISupports) && 
  • trunk/Xul_Cms/components/scWspRegistryService.js

    r9327 r9334  
    320320                        debug("vLogin :: "+vLogin+" , vPassword :: "+vPassword); 
    321321                        */ 
    322                          
    323322                        this.xFireWspRegEvents("update", pUrlServer, null); 
    324323                        return true; 
Note: See TracChangeset for help on using the changeset viewer.