[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <html> 2 <!-- ## $Id: admin.html 6923 2012-02-23 19:15:30Z olikin $ ## --> 3 <head> 4 <meta http-equiv="content-style-type" content="text/css"> 5 <link href='../style.css' rel='StyleSheet' type='text/css'> 6 <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> 7 <title>Déploiement d'applications</title> 8 <link href='se3-wpkg.css' rel='StyleSheet' type='text/css'> 9 <script language="javascript" src="testConfigWpkg.php"></script> 10 <script language="javascript" src="WindowsUpdate.js"></script> 11 <script type = "text/javascript"> 12 13 var WindowObjectReference; // objet autre fenetre 14 var Debug=false; 15 // dans testConfigWpkg.php 16 // 17 var PageEnCours="PackagesProfiles"; 18 var PageDestination; 19 20 var wpkgXml="wpkg.php"; 21 var urlUpload="index.php?upload=1"; // http://se3:909/wpkg/index.php?upload=1 22 23 // url de la page fournissant les packages officiels SambaEdu 24 //var urlWawadeb="http://www.etab.ac-caen.fr/serveurmalherbe/se3/wpkg/packages/packages.html" 25 var urlWawadeb="http://svn.tice.ac-caen.fr/svn/SambaEdu3/wpkg-packages/stable"; 26 // url du fichier md5sum sur le secure serveur 27 //var urlWawadebMD5="http://www.etab.ac-caen.fr/serveurmalherbe/se3/wpkg/packages/packages.md5"; 28 var urlWawadebMD5="http://wawadeb.crdp.ac-caen.fr/unattended/se3_wpkglist.php"; 29 var se3urlWawadeb; 30 31 var UpdateEnCours=""; 32 // transformation pour afficher le tableau profiles x Apps 33 var PackagesProfiles="PackagesProfiles.xsl"; 34 // transformation bidon (en fait c'est du html fixe) pour afficher la page upload des applis 35 var AjoutPackage="AjoutPackage.xsl"; 36 // transformation pour afficher la définition d'un profile 37 var AfficheProfile="AfficheProfile.xsl"; 38 //var ProfileEnCours="_TousLesPostes"; 39 var ProfileEnCours=""; 40 // transformation pour afficher la définition d'un package 41 var AffichePackage="AffichePackage.xsl"; 42 var PackageEnCours=""; 43 // transformation pour afficher le détail d'un poste (host) 44 var AfficheHost="AfficheHost.xsl"; 45 var HostEnCours="", ipHost; 46 47 var nav="inconnu"; 48 var nCmdWait = 0; 49 var iCmd = 0; 50 var wpkgDoc; // Contiendra le document wpkg.xml 51 var Profiles; // Liste des profiles (dans /wpkg/profiles/profile) 52 var ListProfiles; // Liste des profiles (dans /wpkg/profiles/profile) 53 54 var documentEnCours; 55 var inChangePageEnCours = false; // indique si un calcule de rafraichissement de page est en cours 56 57 var Tableau, ordre ; 58 var headTableau=''; // pour IE 59 var nChamps; 60 var KeyActuel; 61 62 var sortPackages='ascending'; //ordre de tri des Packages sur la page 'Associations Appli.<->Parcs' 63 var sortProfiles='ascending'; //ordre de tri des Parcs sur la page 'Associations Appli.<->Parcs' 64 65 var busy = 0; // cursor busy 66 var noReloadWpkgXml = false; //pour empêcher la relecture de wpkg.xml 67 var AssocierOperation, AssocierIdProfile, AssocierIdPackage; 68 var aXmlDoc = new Array(); // wpkg.php (contient hosts, packages, rapports) , profiles.php, timeStamps.php, wpkglist.php, wpkgtesting.php 69 //var aUrl = new Array('wpkg.php', 'profiles.php', 'timeStamps.php', 'wpkglist.php', 'wpkgtesting.php'); // wpkg.php (contient hosts, packages, rapports) , profiles.php, timeStamps.php, wpkglist.php, wpkgtesting.php 70 var aLastModified = new Array(); // date de modif des fichiers 71 var aIsModified = new Array(); // aXmlDoc a été mis à jour 72 var aXmlNeeded = new Array(); // array des xml nécessaires à la construction de wpkgDoc 73 74 var decalX=0, decalY=0, H, L, X, Y; // scrolling de la page PackagesProfiles 75 76 var MAJPackages = 0; 77 78 if (window.ActiveXObject) var LastModified = new ActiveXObject("Scripting.Dictionary"); 79 80 /////////////////////////////////// 81 function FirstLoad(evt){ 82 //processParameters(); 83 // Teste si la configuration de wpkg a été effectuée par l'admin 84 var i, j; 85 var s="", t, lien; 86 var destPage; 87 try { 88 if (window.XSLTProcessor && window.XMLHttpRequest) { 89 // Navigateur type Firefox 90 window.nav='firefox' 91 } else if (window.ActiveXObject) { 92 window.nav = "ie"; 93 } else { 94 alert("Pas de processeur xml pour ce navigateur"); 95 return 0; 96 } 97 } catch (e) { 98 alert("FirstLoad\n" + e); 99 return e; 100 } 101 102 //alert("In Firstload\nwpkgAdmin=" + wpkgAdmin + "\nwpkgUser=" + wpkgUser + "\nlogin=" + login); 103 alertConfigWpkg(); 104 if ( ShowParcsUpdateLink ) document.getElementById("liensUpdateParcs").style.display = "block"; 105 106 document.getElementById("Debian").innerHTML = Debian; 107 //document.getElementById("bonjour").innerHTML = "Bonjour " + login + ( wpkgAdmin ? " (wpkgAdmin)" : wpkgUser ? " (wpkgUser)" : " (?)" ); 108 document.getElementById("bonjour").innerHTML = "Bonjour " + login ; 109 destPage = processParameters(); 110 var TagA; 111 var TmpPageDest; 112 113 //alert( "typeof(parent.frames['menu']=" + typeof parent.frames["menu"]); 114 if ( (typeof parent.frames["menu"]) != 'undefined' ) { 115 // Changement des liens du menu 116 documentEnCours = parent.frames["main"].document; 117 parent.frames["main"].onunload = quitter; 118 //alert("in FirstLoad : onunload=\n" + onunload); 119 TagA = parent.frames["menu"].document.getElementsByTagName("a"); 120 //alert("testencours=" + typeof(TagA) + " length=" + TagA.length); 121 for (i = 0; i< TagA.length; i++) { 122 t = TagA[i]; 123 lien = t.getAttribute("href"); 124 j = lien.indexOf("wpkg/admin.html?PageEnCours="); 125 if ( j >= 0 ) { 126 //alert("in FirstLoad, lien=" + lien + ", j=" + j); 127 TmpPageDest = lien.substr(j+28); 128 t.setAttribute("href", "javascript:ChangePageEnCoursFromMenu('" + TmpPageDest + "');"); 129 } 130 } 131 } else { 132 documentEnCours = document; 133 } 134 135 ChangePageEnCours(destPage, true); 136 137 } 138 function testUpdatedXml() { 139 //var forceRefresh = documentEnCours.getElementById("forceRefresh").checked; 140 // Appelé à partir de AjoutPackage.xsl 141 MAJPackages = 1; 142 //alert("In testUpdatedXml() MAJPackages=" + MAJPackages + ", forceRefresh=" + forceRefresh); 143 var target = documentEnCours.getElementById("transform"); 144 target.innerHTML = "Accès au serveur svn.tice.ac-caen.fr. Veuillez patienter ..."; 145 // Mise à jour des applis du forum 146 var http = null; 147 if(window.nav=='firefox') // Firefox 148 http = new XMLHttpRequest(); 149 else if(window.nav=='ie') // Internet Explorer 150 http = new ActiveXObject("Microsoft.XMLHTTP"); 151 else { // XMLHttpRequest non supporté par le navigateur 152 alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 153 return false; 154 } 155 // Requete en mode asynchrone 156 //var url = "wpkgtesting.php"; 157 var url = "wpkglist.php"; 158 //if ( forceRefresh ) { 159 // url += "?refresh=1"; 160 //} 161 //if (urlWawadebMD5 == "http://wawadeb.crdp.ac-caen.fr/unattended/se3_wpkglist.php" ) { 162 // url = "wpkglist.php"; 163 //} 164 http.open("GET", url , true); 165 http.onreadystatechange = function() { 166 if (http.readyState == 4) { 167 if ( http.status == "200" ) { 168 //alert("http.status = " + http.status + "\n" + http.responseText); 169 ChangePageEnCours('AjoutPackage'); 170 } else { 171 target.innerHTML = http.responseText; 172 alert("http.status = " + http.status + "\n" + http.responseText); 173 ChangePageEnCours('AjoutPackage'); 174 } 175 } 176 } 177 http.send(null); 178 179 180 } 181 function dateFromIso8601(iso8601) { 182 //var d = new Date('06/09/2007 23:51:18+0200'); 183 //2007-06-07T21:35:36+0000 184 if (iso8601 == "") { 185 return ""; 186 } else { 187 var d0; 188 d0 = iso8601.substr(5 , 2) + '/' + iso8601.substr(8 , 2) + '/' + iso8601.substr(0 , 4) + ' ' + iso8601.substr(11, 8) + ' ' + iso8601.substr(19, 5) ; 189 //alert ("iso8601=" + iso8601 + ", d0=" + d0); 190 //var dInt = Date.parse(d0); 191 var d = new Date(Date.parse(d0)); 192 //return "iso8601="+iso8601+"<br>d0='"+d0+"'<br>" + d.toLocaleString(); 193 return d.toLocaleString(); 194 } 195 } 196 197 function updateTableau() { 198 //alert("In updateTableau"); 199 var i, l; 200 var idScriptTableau = document.getElementById('ScriptTableau'); 201 if ( idScriptTableau != null ) { 202 var InitTableau = idScriptTableau.innerHTML; 203 // initialise le tableau en exécutant le script 204 eval(InitTableau); 205 //alert("In updateTableau : typeof Tableau=" + (typeof Tableau) + "\nTableau.length=" + Tableau.length); 206 if ( Tableau.length > 0 ) { 207 if (nav == 'ie') { 208 try { 209 if (headTableau == '') headTableau = document.getElementById('headTableau').innerHTML; 210 var r = '<table class="postes"><thead id="headTableau">' + headTableau + '</thead><tbody id="bodyTableau">' + Tableau.join("") + '</tbody></table>'; 211 try { 212 document.getElementById('divTableau').innerHTML = r; 213 nChamps = Tableau[0].length - 2; // indice du champ n° 214 } catch (e) { 215 alert( "Erreur updateTableau : innerText : r=\n" + r + "\n" +e + "\n" + e.description); 216 } 217 } catch (e) { 218 alert("Erreur updateTableau InitTableau : InitTableau=\n" + InitTableau + "\n" +e); 219 return e; 220 } 221 } else { 222 var idTableau = documentEnCours.getElementById('bodyTableau'); 223 if ( idTableau != null ) { 224 225 idTableau.innerHTML = Tableau.join(""); 226 //alert("updateTableau : Tableau.length=" + Tableau.length); 227 nChamps = Tableau[0].length - 2; // indice du champ n° 228 } 229 } 230 if ( (typeof ordre) == 'object' ) { 231 //alert("In updateTableau ordre.length=" + ordre.length + "\nordre=" + ordre + "\nnChamps=" + nChamps); 232 tri(nChamps+1); // tri pour rétablir l'ordre du tableau avant le rafraichissement de la page 233 } else { 234 // alert("In updateTableau typeof ordre=" + (typeof ordre)); 235 l = Tableau.length; 236 ordre = new Array(l); 237 for (i=0; i<l; i++ ) ordre[i] = i; 238 //alert("In updateTableau avant tri nChamps=" + nChamps); 239 try { 240 tri(nChamps + 1); 241 } catch (e) { 242 alert("Erreur updateTableau tri : nChamps=" + nChamps + "\n" +e); 243 return e; 244 } 245 //alert("In updateTableau apres tri"); 246 } 247 } 248 } 249 250 } 251 function processParameters() { 252 // lit les paramètres passés lors de l'appel de la page html 253 var destPage = PageEnCours; 254 var parameters = location.search.substring(1).split("&"); 255 256 var temp = parameters[0].split("="); 257 var varName; 258 var varVal; 259 varName = unescape(temp[0]); 260 varVal = unescape(temp[1]); 261 if ( varName == 'PageEnCours' ) destPage = unescape(temp[1]); 262 //alert("varName=" + varName + ", varVal=" + varVal); 263 return destPage; 264 } 265 function to_utf8 (doc) { 266 // Function inutilisée 267 if (window.nav=='firefox') { 268 // Navigateur type Firefox 269 //window.nav='firefox' 270 var processor; 271 //alert("typeof(doc)=" + typeof(doc)); 272 var xslt= document.implementation.createDocument("", "", null); 273 //alert("xsl=" +xsl + ", xslt défini!"); 274 xslt.async=false; 275 xslt.load(to_utf8.xsl); 276 if (Debug) alert(xsl + " chargé ! , typeof(xslt)=" + typeof(xslt)); 277 processor = new XSLTProcessor(); 278 try { 279 processor.importStylesheet(xslt); 280 try { 281 //var resultat = processor.transformToFragment(doc, document); 282 var resultat = processor.transformToDocument(doc); 283 return resultat; 284 285 } catch (e) { 286 alert("processor.transformToDocument(doc)\n" + e); 287 return e; 288 } 289 } catch (e) { 290 alert("processor.importStylesheet(xslt)\n" + e); 291 return e; 292 } 293 } 294 } 295 296 297 function GetHTML(url){ 298 var XmlHttp; 299 if (window.nav=='firefox') // Firefox 300 XmlHttp = new XMLHttpRequest(); 301 else if(window.nav=='ie') // Internet Explorer 302 XmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 303 304 XmlHttp.open('GET', url, true); 305 XmlHttp.onreadystatechange = function() { 306 var runfunction2 = runfunction; 307 if ( XmlHttp.readyState == 4 ) { 308 alert(url + " XmlHttp.readyState == 4, XmlHttp.status=" + XmlHttp.status); 309 window.aLastModified[url] = XmlHttp.getResponseHeader('Last-Modified'); 310 window.aXmlDoc[url] = XmlHttp.responseXML; 311 window.aIsModified[url] = true; 312 window.aXmlNeeded[url] = false; 313 //buildWpkgXml(runfunction); 314 } 315 } 316 XmlHttp.send(null); 317 } 318 function PP(evt, idSrc, redraw) { 319 // appellé lors d'un click sur une case du Tableau profiles/packages (de la page PackageProfile) 320 // ou lors d'un clic sur une case 'Installer sur ce poste' (de la page AfficheHost ou AffichePackage) 321 // idSrc de la forme : "idProfile:idPackage" 322 if (typeof redraw == "undefined") redraw = false; 323 324 var e = (evt ? evt : window.event); 325 var eltsrc = (e.target ? e.target : e.srcElement); 326 327 var a; 328 a = idSrc.split(":"); 329 //alert("a.length=" + a.length + "\nidSrc=" + idSrc); 330 var idProfile = a[0]; 331 var idPackage = a[1]; 332 var status; 333 PackageEnCours=idPackage; 334 status = eltsrc.style.zIndex; 335 // zIndex = 3 : Non installé 336 // zIndex = 4 : installé 337 338 var checked = (status==4 ) ? true : false; 339 //alert("in PP idPackage=" + idPackage + "\nidProfile=" + idProfile + "\nredraw=" + redraw + "\nchecked=" + checked); 340 341 try { 342 343 if (status==4) { 344 // On retire l'association 345 try { 346 associer(eltsrc, idProfile, idPackage, 'Dissocier', redraw); 347 } catch (e) { 348 alert("Suppression association\n" + e + "\n" + e.description); 349 return e; 350 } 351 } else { 352 // On ajoute l'association 353 try { 354 try { 355 //updateCmdWait ( ++nCmdWait ); 356 associer(eltsrc, idProfile, idPackage, 'Associer', redraw); 357 } catch (e) { 358 alert("Cmd Associer\n" + e); 359 return e; 360 } 361 } catch (e) { 362 alert("Ajout association\n" + e); 363 return e; 364 } 365 } 366 } catch (e) { 367 alert("PP()\n" + e); 368 return e; 369 } 370 // alert ("Sortie PP()"); 371 return true; 372 } 373 function modeDebug() { 374 Debug = document.getElementById("idDebug").checked; 375 ChangePageEnCours('PackagesProfiles'); 376 } 377 function defPackage(idPackage) { 378 // Affichage de la page de définition du Package 379 PackageEnCours=idPackage; 380 ChangePageEnCours('AffichePackage'); 381 //setTimeout("document.getElementById('idPackage').focus();", 200); 382 } 383 function defParcPackage(idPackage) { 384 // Affichage de la page de définition du Package 385 PackageEnCours=idPackage; 386 ChangePageEnCours('AffichePackage'); 387 setTimeout("document.getElementById('idParcPackage').focus();", 200); 388 } 389 function defProfile(idProfile) { 390 // Affichage de la page de définition du Profile 391 ProfileEnCours=idProfile; 392 ChangePageEnCours('AfficheProfile'); 393 //setTimeout("document.getElementById('idProfile').focus();", 200); 394 } 395 function defHost(idHost) { 396 // Affichage de la page de détail d'un poste 397 HostEnCours=idHost; 398 ChangePageEnCours('AfficheHost'); 399 //setTimeout("document.getElementById('idHost').focus();", 200); 400 } 401 function posteini(NomPoste, Param, Valeur) { 402 var url, contentHtml; 403 url = "posteconf.php?Poste=" + NomPoste + "&Param=" + Param + "&Valeur=" + Valeur; 404 // alert("NomPoste=" + NomPoste + ", Param=" + Param + ", Valeur=" + Valeur + "\nurl=" + url); 405 documentEnCours.getElementById("posteparam").innerHTML = getHttp( url, "html" ); 406 } 407 function startHost(NomPoste, AddIp, Masque, Mac) { 408 var Broadcast, i; 409 var ArrAddIp, ArrMasque, ArrBroadcast = new Array(); 410 // Nettoyage des chaines par prudence 411 AddIp = AddIp.replace( /[^0-9\.]/g , "" ); 412 Masque = Masque.replace( /[^0-9\.]/g , "" ); 413 ArrAddIp = AddIp.split("."); 414 if ((typeof(Masque) == 'undefined') || (Masque == '')) { 415 Masque = "255.255.255.0"; 416 } 417 ArrMasque = Masque.split("."); 418 419 //alert("ArrAddIp.length=" + ArrAddIp.length + ", ArrMasque.length=" + ArrMasque.length ); 420 for ( i in ArrAddIp) { 421 ArrBroadcast[i] = eval( "(" + ArrAddIp[i] + " | ( ~ " + ArrMasque[i] + ") & 0xFF )" ); 422 } 423 Broadcast = ArrBroadcast.join("."); 424 // alert("Envoi d'une trame réseau pour démarrer le poste '" + NomPoste + "'.\n" + "\nwakeonlan -i " + Broadcast + " " + Mac); 425 getHttp( "restart-client.php?Poste=" + NomPoste + "&Broadcast=" + Broadcast + "&Mac=" + Mac + "&Ip=" + AddIp ); 426 427 } 428 function getHttp( url, content) { 429 // envoi une requête http et affiche le résultat dans une alert 430 var http = null; 431 if(window.nav=='firefox') // Firefox 432 http = new XMLHttpRequest(); 433 else if(window.nav=='ie') // Internet Explorer 434 http = new ActiveXObject("Microsoft.XMLHTTP"); 435 else { // XMLHttpRequest non supporté par le navigateur 436 alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 437 return false; 438 } 439 440 if (typeof(content) == "undefined") { 441 // Requete en mode asynchrone 442 http.open("GET", url , true); 443 http.onreadystatechange = function() { 444 if (http.readyState == 4) { 445 if ( http.status != "200" ) { 446 alert("http.status = " + http.status + "\n" + http.responseText); 447 } else { 448 alert(http.responseText); 449 } 450 } 451 } 452 http.send(null); 453 } else if (content == "html"){ 454 // Requete en mode synchrone 455 http.open("GET", url , false); 456 http.send(null); 457 if(http.readyState == 4) { 458 if ( http.status != "200" ) { 459 alert("http.status = " + http.status + "\n" + http.responseText); 460 } else { 461 return http.responseText; 462 } 463 } 464 } 465 } 466 467 function tri(key, evt) { 468 469 var evnt = (evt ? evt : window.event); 470 //alert("In tri apres var evnt : typeof evnt=" + (typeof evnt)); 471 try { 472 var eltsrc = ((typeof evnt == "undefined") ? undefined : (evnt.target ? evnt.target : evnt.srcElement)); 473 } catch (e) { 474 //var eltsrc = "undefined"; 475 } 476 var sens=0; 477 478 //alert("In tri apres var eltsrc"); 479 480 KeyActuel = key; 481 //alert("In tri : nav=" + nav); 482 if (nav == "ie") { 483 headTableau = ''; 484 //alert("In tri apres var : typeof eltsrc=" + typeof eltsrc); 485 if ((typeof eltsrc) != "undefined" ) { 486 if ( eltsrc.id == '') { 487 if (eltsrc.style.cursor == "ne-resize") { 488 Tableau.sort(triTableau); 489 eltsrc.style.cursor = "nw-resize"; 490 } else { 491 Tableau.sort(triRevTableau); 492 eltsrc.style.cursor = "ne-resize"; 493 } 494 } 495 } else { 496 // tri pour remettre le résultat du dernier tri 497 //alert("In tri : KeyActuel=" + KeyActuel + ", nChamps=" + nChamps + " typeof ordre=" + typeof ordre); 498 try { 499 Tableau.sort(triTableau); 500 } catch (e) { 501 alert("Erreur Tableau.sort \n" + e + "\n" + e.description); 502 } 503 //alert("In tri apres Tableau.sort"); 504 } 505 } else { 506 // firefox 507 if ((typeof eltsrc) != "undefined" ) { 508 if (eltsrc.style.cursor == "ne-resize") { 509 Tableau.sort(triTableau); 510 eltsrc.style.cursor = "nw-resize"; 511 } else { 512 Tableau.sort(triRevTableau); 513 eltsrc.style.cursor = "ne-resize"; 514 } 515 } else { 516 // tri pour remettre le résultat du dernier tri 517 Tableau.sort(triTableau); 518 } 519 } 520 521 var i; 522 var nli = Tableau.length; 523 524 //alert("In tri : Tableau.length=" + Tableau.length + "\nsens=" + sens + "\nkey=" + key); 525 for (i=0; i<nli; i++) ordre[Tableau[i][nChamps]] = i; 526 if (nav == 'ie') { 527 if (headTableau == '') headTableau = documentEnCours.getElementById('headTableau').innerHTML; 528 var r = '<table class="postes"><thead id="headTableau">' + headTableau + '</thead><tbody id="bodyTableau">' + Tableau.join("") + '</tbody></table>'; 529 documentEnCours.getElementById('divTableau').innerHTML = r; 530 } else { 531 var idTableau = documentEnCours.getElementById('bodyTableau'); 532 idTableau.innerHTML = Tableau.join(""); 533 } 534 } 535 function triTableau(a, b) { 536 //alert("a[" + KeyActuel+"]="+a[KeyActuel]+" <> "+b[KeyActuel]+"=b[" + KeyActuel + "]"); 537 try { 538 if(a[KeyActuel] > b[KeyActuel]) { 539 return 1; 540 } else if(a[KeyActuel] < b[KeyActuel]) { 541 return -1; 542 } else { 543 //alert("a[" + KeyActuel+"]="+a[KeyActuel]+" <> "+b[KeyActuel]+"=b[" + KeyActuel + "]\n" + (typeof ordre[a[nChamps]]) + "\n" + (typeof ordre[b[nChamps]])); 544 if ( (typeof ordre[a[nChamps]]) == 'undefined' ) { 545 return 0; 546 } else { 547 if ( (typeof ordre[b[nChamps]]) == 'undefined' ) { 548 return 0; 549 } else { 550 return ordre[a[nChamps]] - ordre[b[nChamps]] ; 551 } 552 } 553 } 554 } catch(e) { 555 alert("Erreur : triTableau e=" + e + "\n" + e.description); 556 } 557 558 } 559 function triRevTableau(a, b) { 560 try { 561 if(a[KeyActuel] > b[KeyActuel]) return -1; 562 if(a[KeyActuel] < b[KeyActuel]) return 1; 563 return ordre[a[nChamps]] - ordre[b[nChamps]] ; 564 } catch(e) { 565 alert("Erreur : triRevTableau e=" + e + "\n" + e.description); 566 } 567 } 568 function associer(eltsrc, idProfile, idPackage, Associer, redraw) { 569 var http = null; 570 if(window.nav=='firefox') // Firefox 571 http = new XMLHttpRequest(); 572 else if(window.nav=='ie') // Internet Explorer 573 http = new ActiveXObject("Microsoft.XMLHTTP"); 574 else { // XMLHttpRequest non supporté par le navigateur 575 alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 576 return false; 577 } 578 579 updateCmdWait ( ++nCmdWait ); 580 581 if ( Associer == "Associer" ) { 582 eltsrc.style.zIndex = 4; 583 eltsrc.style.backgroundColor = "#6699CC"; 584 } else { 585 eltsrc.style.zIndex = 3; 586 eltsrc.style.backgroundColor = "#F0F8FF"; 587 } 588 eltsrc.style.borderColor = "#FF80A0"; 589 with (documentEnCours.getElementById("idBusy").style) { 590 cursor = "wait"; 591 zIndex = "10"; 592 height = documentEnCours.body.scrollHeight; 593 display = "block"; 594 } 595 596 if (redraw) { 597 //alert("in associer Appel ChangePageEnCours(" + PageEnCours + ")"); 598 with (documentEnCours.getElementById("idBusy").style) { 599 cursor = "default"; 600 zIndex = "-1"; 601 height = documentEnCours.body.scrollHeight; 602 display = "none"; 603 } 604 } 605 //alert("associer(idProfile=" + idProfile + ", idPackage=" + idPackage + ", Associer=" + Associer + ",redraw=" + redraw + "\neltsrc.onclick=" + eltsrc.onclick + ")"); 606 607 try { 608 http.open("GET", "index.php?iCmd=" + iCmd + "&associer=" + Associer + "&idPackage=" + idPackage + "&idProfile=" + idProfile, true); 609 // http.setRequestHeader("Content-Type","text/xml"); 610 try { 611 http.onreadystatechange = function(Associer, idPackage, idProfile) { 612 if (http.readyState == 4) { 613 var localRedraw = redraw; 614 var localPageEnCours = PageEnCours; 615 var Appli = idPackage; 616 var Parc = idProfile; 617 var Operation = Associer; 618 var src = eltsrc; 619 var NomPackage = idPackage; 620 if ( http.status == "200" ) { 621 src.style.borderColor = "#8080A0"; 622 // Mise à jour du doc Xml 623 updateCmdWait ( --nCmdWait ); 624 if (localRedraw && (nCmdWait == 0)) { 625 //alert("in associer Appel ChangePageEnCours(" + PageEnCours + ")"); 626 ChangePageEnCours(localPageEnCours, true); 627 } 628 //alert("Les données ont été sauvegardées!\nhttp.status=" + http.status + "\n" + http.responseText+ "\nAppli=" + Appli + "\nParc=" + Parc+ "\nOperation=" + Operation +"\nnCmdWait=" + nCmdWait); 629 } else { 630 // Refus de la modif => on remet comme c'était 631 632 if ( http.status == "403" ) { 633 alert("Vous n'êtes pas autorisé à effectuer cette opération.\n\n" + http.responseText + "\nLa modification demandée a été refusée.\n"); 634 } else { 635 alert("Erreur : Les données n'ont pas été sauvegardées!\nhttp.status=" + http.status + "\n" + http.responseText); 636 } 637 //alert("typeof CePackage = " + (typeof CePackage) + "\nsrc.style.zIndex = " + src.style.zIndex + "\nsrc.style.zIndex=" + src.style.zIndex + "\nAppli=" + Appli + "\nParc=" + Parc+ "\nOperation=" + Operation); 638 // Rafraichissement de la page 639 ChangePageEnCours(localPageEnCours, true); 640 updateCmdWait ( --nCmdWait ); 641 } 642 with (documentEnCours.getElementById("idBusy").style) { 643 cursor = "default"; 644 zIndex = "-1"; 645 //height = documentEnCours.body.scrollHeight; 646 height = 1; 647 display = "none"; 648 //height = "0px"; 649 } 650 } else { 651 //alert( "http.readyState=" + http.readyState); 652 } 653 } 654 655 try { 656 http.send(""); 657 658 } catch (e) { 659 alert("http.send('')\n" + e); 660 return e; 661 } 662 } catch (e) { 663 alert("http.onreadystatechange = function()\n" + e); 664 return e; 665 } 666 } catch (e) { 667 alert("http.open('POST', 'index.php?....', true)\n" + e); 668 return e; 669 } 670 return 671 } 672 function cursorBusy(busy) { 673 //alert("busy=" + busy); 674 if ( busy > 0 ) { 675 //documentEnCours.body.style.cursor = "wait"; 676 with (documentEnCours.getElementById("idBusy").style) { 677 cursor = "wait"; 678 zIndex = "10"; 679 height = documentEnCours.body.scrollHeight; 680 //display = "none"; 681 //height = "0px"; 682 } 683 } else { 684 //documentEnCours.body.style.cursor = "default"; 685 //documentEnCours.getElementById("idBusy").style.display = "none"; 686 with (documentEnCours.getElementById("idBusy").style) { 687 cursor = "pointer"; 688 zIndex = "-10"; 689 height = documentEnCours.body.scrollHeight; 690 display = "block"; 691 //height = "0px"; 692 } 693 } 694 } 695 function updateCmdWait (nCmdWait) { 696 // Indique si les données du serveur sont à jour 697 if (nCmdWait == 0 ) { 698 documentEnCours.getElementById("Etat").src = "img/etat_ok.gif"; 699 //ChangePageEnCours(PageEnCours, false); 700 } else { 701 documentEnCours.getElementById("Etat").src = "img/etat_transfert.gif"; 702 } 703 //documentEnCours.getElementById("nCmdWait").innerHTML = nCmdWait; 704 } 705 706 function ChangePageEnCours(destPage, forceReload) { 707 var url="AffichePage.php?page=" + destPage; 708 //alert("In ChangePageEnCours(destPage=" + destPage + ", forceReload=" + forceReload); 709 //busy++ ; 710 //documentEnCours.body.style.cursor = "wait"; 711 //documentEnCours.getElementById("transform").innerHTML = "Construction de la page en cours ..."; 712 documentEnCours.getElementById("ImgBusy").style.display = "block"; 713 if (typeof forceReload == "undefined") forceReload = false; 714 if ( typeof destPage == "undefined" ) destPage = PageEnCours; 715 PageDestination = destPage; 716 717 var http = null; 718 if(window.nav=='firefox') { // Firefox 719 http = new XMLHttpRequest(); 720 url += "&Navigateur=firefox" + "&stamp=" + Math.round(100000*Math.random( )); 721 } else if(window.nav=='ie') { // Internet Explorer 722 http = new ActiveXObject("Microsoft.XMLHTTP"); 723 url += "&Navigateur=ie" + "&stamp=" + Math.round(100000*Math.random( )); 724 } else { // XMLHttpRequest non supporté par le navigateur 725 alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 726 return false; 727 } 728 729 switch (destPage) { 730 case "WindowsUpdate" : 731 732 break; 733 case "PackagesProfiles" : 734 url += "&sortPackages=" + sortPackages + "&sortProfiles=" + sortProfiles; 735 break; 736 case "AjoutPackage" : 737 url += "&urlWawadebMD5=" + urlWawadebMD5 + "&urlWawadeb=" + urlWawadeb + "&MAJPackages=" + MAJPackages; 738 MAJPackages=0; 739 break; 740 case "AfficheProfile" : 741 url += "&idProfile=" + ProfileEnCours; 742 break; 743 case "AffichePackage" : 744 url += "&idPackage=" + PackageEnCours + "&idProfile=" + ProfileEnCours; 745 break; 746 case "AfficheHost" : 747 url += "&idHost=" + HostEnCours; 748 break; 749 } 750 751 if (destPage != PageEnCours) ordre = undefined; 752 headTableau=''; 753 window.inChangePageEnCours = true; 754 with (documentEnCours.getElementById(PageEnCours)) { 755 src = "img/" + PageEnCours + "0.gif"; 756 with (parentNode) { 757 style.zIndex = 1; 758 } 759 } 760 // Requete en mode asynchrone 761 //alert("In ChangePageEnCours url=" + url); 762 http.open("GET", url , true); 763 http.onreadystatechange = function() { 764 if (http.readyState == 4) { 765 if ( http.status != "200" ) { 766 alert("http.status = " + http.status + "\n" + http.responseText); 767 } else { 768 // alert("http.status = " + http.status + "\n" + http.responseText); 769 documentEnCours.getElementById("transform").innerHTML = http.responseText; 770 with (documentEnCours.getElementById(destPage)) { 771 src = "img/" + destPage + ".gif"; 772 with (parentNode) { 773 style.zIndex = 2; 774 } 775 } 776 PageEnCours = destPage; 777 updateTableau(); 778 window.inChangePageEnCours = false; 779 documentEnCours.getElementById("ImgBusy").style.display = "none"; 780 with (documentEnCours.getElementById("idBusy").style) { 781 cursor = "default"; 782 zIndex = "-1"; 783 height = documentEnCours.body.scrollHeight; 784 display = "none"; 785 } 786 if ( PageEnCours == 'AfficheHost' ) { 787 //alert("typeof initConsoleWpkg = " + typeof initConsoleWpkg + "\nipHost=" + ipHost); 788 var idinitConsoleWpkg = document.getElementById('initConsoleWpkg'); 789 if ( idinitConsoleWpkg != null ) { 790 var initConsoleWpkg = idinitConsoleWpkg.innerHTML; 791 // initialise la console 792 //alert("initConsoleWpkg = " + initConsoleWpkg); 793 eval(initConsoleWpkg); 794 } 795 } 796 } 797 } 798 } 799 http.send(null); 800 } 801 function onclickSelectMajAppli(appliIsChk, numero, forumEnCours, autreforumExiste) { 802 // Mise à jour des checkboxes du tableau pour actualisation OK si un tri est demandé 803 //alert("appliIsChk=" + appliIsChk + ", numero=" + numero + "\nTableau[numero][0]=" + Tableau[numero][0] + "\n" + Tableau[numero][1]); 804 //alert("appliIsChk=" + appliIsChk + ", numero=" + numero + "\nforumEnCours=" + forumEnCours + "\nautreforumExiste=" + autreforumExiste); 805 if (appliIsChk) { 806 if ( autreforumExiste == 'test' || autreforumExiste == 'stable') { 807 alert("Attention : cette application est également disponible en version '" + autreforumExiste + "'\nSoyez sûr que la version que vous installez est bien celle que vous souhaitez"); 808 } 809 Tableau[numero][0] = Tableau[numero][0].replace('<input ', '<input checked="true" '); 810 Tableau[numero][1] = true; 811 } else { 812 Tableau[numero][0] = Tableau[numero][0].replace('<input checked="true" ', '<input '); 813 Tableau[numero][1] = false; 814 } 815 } 816 function ChangePageEnCoursFromMenu(destPage) { 817 //alert("in ChangePageEnCoursFromMenu=" + typeof parent.frames["main"].document); 818 documentEnCours = parent.frames["main"].document; 819 with (parent.frames["main"] ) { 820 ChangePageEnCours(destPage); 821 } 822 } 823 function aurevoir (event) { 824 825 if ( ! nCmdWait == 0 ) { 826 return "Les données saisies n'ont pas été complètement sauvegardées !\n" + 827 "\nVoulez-vous quand même quitter cette page ?\n" ; 828 } 829 } 830 window.onunload = quitter; 831 window.onresize = scroll; 832 function quitter (event) { 833 var TagA, t; 834 var i, j , k; 835 //alert("in quitter : typeof parent.frames['menu']=" + typeof parent.frames["menu"]); 836 if ( (typeof parent.frames["menu"]) != 'undefined' ) { 837 //remet les liens d'origine dans le menu 838 TagA = parent.frames["menu"].document.getElementsByTagName("a"); 839 //alert("in quitter : " + typeof(TagA) + " length=" + TagA.length); 840 for (i = 0; i< TagA.length; i++) { 841 t = TagA[i]; 842 lien = t.getAttribute("href"); 843 j = lien.indexOf("ChangePageEnCoursFromMenu"); 844 //alert("typeof lien=" + typeof lien + ", lien=" + lien); 845 if ( j >= 0 ) { 846 k = lien.indexOf("');"); 847 //alert("in quitter, Nouveau lien=\n" + "/wpkg/admin.html?PageEnCours=" + lien.substring(27+j, k) + "\nj=" + j + ", k=" + k); 848 if (k > 0) { 849 t.setAttribute("href", "/wpkg/admin.html?PageEnCours=" + lien.substring(27+j, k)); 850 } else { 851 alert("quitter : Error lien non conforme :\nlien=" + lien); 852 } 853 } 854 } 855 } 856 } 857 858 859 function scroll() { 860 //alert("document.readyState=" + document.readyState); 861 if ( PageEnCours == 'PackagesProfiles' ) { 862 var idOnglets = documentEnCours.getElementById("Onglets"); 863 864 with (documentEnCours.body) { 865 H = (clientHeight)?clientHeight:documentEnCours.documentElement.clientHeight; 866 L = (clientWidth)?clientWidth:documentEnCours.documentElement.clientWidth; 867 X = (scrollLeft)?scrollLeft:documentEnCours.documentElement.scrollLeft; 868 Y = (scrollTop)?scrollTop:documentEnCours.documentElement.scrollTop; 869 } 870 var refX = idOnglets.offsetLeft; 871 var refY = idOnglets.offsetTop + 50; 872 decalX = X - refX; 873 decalY = Y - refY; 874 875 876 var PosX = documentEnCours.getElementById("PosX"); 877 var PosY = documentEnCours.getElementById("PosY"); 878 var PosXY = documentEnCours.getElementById("PosXY"); 879 var ClipX = documentEnCours.getElementById("ClipX"); 880 var ClipY = documentEnCours.getElementById("ClipY"); 881 var ClipXY = documentEnCours.getElementById("ClipXY"); 882 var ScrollX = documentEnCours.getElementById("ScrollX"); 883 var ScrollY = documentEnCours.getElementById("ScrollY"); 884 var ScrollXY = documentEnCours.getElementById("ScrollXY"); 885 886 if ( ScrollY == null ) { 887 //alert("setTimeout(scroll();, 500)"); 888 setTimeout("scroll();", 500); 889 return false; 890 } 891 892 // scroll vertical 893 if (decalY < 0) decalY = 0; 894 895 Vscroll = ScrollY.offsetHeight; 896 //alert("Vscroll=" + Vscroll); 897 /* alert("In scroll Avant : refX=" + refX + ", refY=" + refY + "\nX=" + X + ", Y=" + Y + ", H=" + H + ", L=" + L + 898 "\nTdecalY=" + decalY + "\nPosY.style.top=" + PosY.style.top + ", PosX.style.top=" + PosX.style.top + ", ScrollY.style.top=" + ScrollY.style.top); 899 */ PosY.style.top = (decalY -10) + 'px'; 900 PosX.style.top = (decalY +122)+ 'px'; 901 PosXY.style.top = decalY + 'px'; 902 ScrollY.style.top = -decalY + 'px'; 903 ScrollXY.style.top = -decalY + 'px'; 904 if (Vscroll > decalY) { 905 ClipY.style.height = (Vscroll - decalY) +'px'; 906 ClipXY.style.height = (Vscroll - decalY) +'px'; 907 } 908 /* 909 alert("In scroll : refX=" + refX + ", refY=" + refY + "\nX=" + X + ", Y=" + Y + ", H=" + H + ", L=" + L + 910 "\nTdecalY=" + decalY + "\nPosY.style.top=" + PosY.style.top + ", ScrollY.style.top=" + ScrollY.style.top + 911 "\nPosXY.style.top=" + PosXY.style.top + ", ScrollXY.style.top=" + ScrollXY.style.top ); 912 */ 913 // scroll horizontal 914 if (decalX < 0) decalX = 0; 915 916 Hscroll = ScrollX.offsetWidth; 917 //alert("Hscroll=" + Hscroll); 918 PosX.style.left = decalX + 'px'; 919 PosY.style.left = (decalX + 124) + 'px'; 920 PosXY.style.left = decalX + 'px'; 921 ScrollX.style.left = -decalX + 'px'; 922 ScrollXY.style.left = -decalX + 'px'; 923 if (Hscroll > decalX) { 924 ClipX.style.width = (Hscroll - decalX ) +'px'; 925 ClipXY.style.width = (Hscroll - decalX ) +'px'; 926 } 927 /* 928 alert("In scroll : refX=" + refX + ", refY=" + refY + "\nX=" + X + ", Y=" + Y + ", H=" + H + ", L=" + L + 929 "\nTdecalX=" + decalX + "\nPosX.style.left=" + PosX.style.left + ", ScrollX.style.left=" + ScrollX.style.left + 930 "\nPosXY.style.left=" + PosXY.style.left + ", ScrollXY.style.left=" + ScrollXY.style.left ); 931 */ 932 return true; 933 } 934 } 935 </script> 936 </head> 937 <body onload="javascript:FirstLoad(event);" onbeforeunload="return aurevoir(event);" onunload="return quitter(event);" onscroll="scroll();"> 938 <h3 align="right" id="bonjour" style="font-family:Arial,Helvetica,sans-serif;font-size:12px;color:#6699cc;font-weight:bold;letter-spacing:4px;">Bonjour </H3> 939 <div id="idBusy" onclick="javascript:alert('debug : In idBusy');return false;" class="busy" ></div> 940 <div id="idDivDebug" style="background-color:#FFA07A;display:none;"> 941 <table> 942 <tr> 943 <td><font size="1">Ce bandeau sera supprimé.<br>quand tout sera au point... </font></td> 944 <td > </td> 945 <td >Options : </td> 946 <td> 947 <input id="idDebug" name="chkboxDebug" type="checkbox" value="1" onclick="modeDebug();">Debug 948 <input id="idText" type="checkbox" value="1" onclick="ChangePageEnCours('PackagesProfiles');">Debug Texte (IE seulemt) 949 </td> 950 </tr> 951 </table> 952 <hr> 953 </div> 954 <div id="liensUpdateParcs" style="display:none;"> 955 <a style="font-size:xx-small;" title="A virer dès que la mise à jour sera effectuée dans l'interface de gestion des parcs" href="index.php?updateProfiles=1">Mettre à jour les fichiers hosts.xml et profiles.xml pour prendre en compte les modifications des parcs</a><br> 956 <a style="font-size:xx-small;" title="A virer dès que la mise à jour sera effectuée dans l'interface de gestion des parcs" href="index.php?updateDroits=1">Mettre à jour le fichier droits.xml pour prendre en compte les modifications de délégation de parcs</a> 957 </div> 958 <h1 align="center">Déploiement d'applications <font size="3">( sur Win2000, WinXP, Vista et Win7 )</font></h1> 959 <div id="Onglets" style="border-bottom:3px solid black;height:37px;width:100%;"> 960 <script type = "text/javascript"> 961 if ( (typeof(lsusInstalled) != "undefined") && lsusInstalled ) { 962 document.write("<div style='position:absolute;left:690px;z-index:1;cursor:pointer;' onclick='ChangePageEnCours("WindowsUpdate");'><img id='WindowsUpdate' alt='Mises à jour Microsoft' src='img/WindowsUpdate0.gif'></div>"); 963 } 964 </script> 965 <div style="position:absolute;left:568px;z-index:1;cursor:pointer;" onclick="ChangePageEnCours('AfficheHost');"><img id="AfficheHost" alt="Afficher les données d'un poste" src="img/AfficheHost0.gif"></div> 966 <div style="position:absolute;left:446px;z-index:1;cursor:pointer;" onclick="ChangePageEnCours('AffichePackage');"><img id="AffichePackage" alt="Afficher les données d'une application" src="img/AffichePackage0.gif"></div> 967 <div style="position:absolute;left:324px;z-index:1;cursor:pointer;" onclick="ChangePageEnCours('AfficheProfile');"><img id="AfficheProfile" alt="Afficher les données d'un parc" src="img/AfficheProfile0.gif"></div> 968 <div style="position:absolute;left:202px;z-index:1;cursor:pointer;" onclick="ChangePageEnCours('AjoutPackage');"><img id="AjoutPackage" alt="Ajouter une application" src="img/AjoutPackage0.gif"></div> 969 <div style="position:absolute;left:80px;z-index:2;cursor:pointer;" onclick="ChangePageEnCours('PackagesProfiles');"><img id="PackagesProfiles" alt="Associer les Applications aux Parcs" src="img/PackagesProfiles.gif"></div> 970 971 <div style="position:absolute;width:35px;left:68px;font-size:xx-small;padding-top:8px;z-index:9;" title="Etat de synchronisation des données sur le serveur"> 972 <img id="Etat" src="img/etat_ok.gif"></img><span> </span><span title="Nombre de requêtes en attente" id="nCmdWait"></span> 973 </div> 974 <div id="ImgBusy" style="display:none;position:absolute;width:35px;left:62px;font-size:xx-small;padding-top:2px;z-index:10;" title="Calcul en cours..."> 975 <img src="img/busy.gif"></img> 976 </div> 977 <div align="right" id="Debian" style="position:relative;width:100%;height:12px;font-size:xx-small;padding-top:24px;z-index:0;">Version deb</div> 978 </div> 979 <br> 980 <div id="transform" align="left"> 981 </div> 982 </body> 983 </html>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |