[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-wpkg/sources/www/ -> AfficheHost.xsl (source)

   1  <?xml version="1.0" encoding="iso-8859-1"?>
   2  
   3  <!--  Affichage détaillé de l'état d'un poste
   4          S'applique à wpkg.xml
   5          
   6          ## $Id: AfficheHost.xsl 3106 2008-07-14 13:45:37Z jlebail $ ##
   7  -->
   8  
   9  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  10      <xsl:key name = "keyPack" match = "package" use = "@package-id" />
  11      
  12  
  13      <xsl:output method="html" encoding="iso-8859-1" />
  14      <xsl:param name="Navigateur" select="'inconnu'" />
  15      <xsl:param name="Debug" select="false()" />
  16      <xsl:param name="Local" select="false()" />
  17      <xsl:param name="idHost" select="''" />
  18  
  19      <xsl:variable name="PROFILES" select="/wpkg/profiles"/>
  20      <xsl:variable name="PACKAGES" select="/wpkg/packages"/>
  21      <xsl:variable name="HOSTS" select="/wpkg/hosts"/>
  22      
  23      <!-- Liste des postes autorisés en lecture par l'utilisateur -->
  24      <xsl:variable name="ListPostes" select="$PROFILES/profile[depends/@profile-id = '_TousLesPostes']"/>
  25      <xsl:variable name="RapportDuPoste" select="$HOSTS/host[@name = $idHost]/rapport"/>
  26      
  27      <!-- Profile à partir de l'@id -->
  28      <xsl:key name="ProfileFromHostid" match="/wpkg/profiles/profile" use="@id" />
  29      
  30      <!-- Package à partir de l'@id -->
  31      <xsl:key name="PackageFromId" match="/wpkg/packages/package" use="@id" />
  32      <xsl:key name="RapportRevision" match="/wpkg/hosts/host/rapport/package" use="concat(../@id, ':', @id)" />
  33      
  34      <xsl:variable name="profileHost" select="key('ProfileFromHostid', $idHost)" />
  35      <xsl:variable name="canWrite" select="$profileHost[@canWrite = '1']"/>
  36      <!-- Nombre de packages à installer demandés pour idHost -->
  37      <!-- <xsl:variable name="DemandePackages" select="$PROFILES/profile/package[(generate-id() = generate-id(key('keyPack',@package-id)[(../@id = $idHost) or (../@id = $profileHost/depends/@profile-id)]))]" /> -->
  38      <xsl:variable name="PackagesFromRapport" select="$RapportDuPoste/package" />
  39      <xsl:variable name="PackagesNotInRapport" select="$PACKAGES/package[not(@id = $RapportDuPoste/package/@id)]" />
  40      <!-- Liste des profils dont dépend l'Host -->
  41      <!-- xsl:key name="profileDependant" match="/wpkg/profiles/profile" use="depends/@profile-id" / -->
  42      
  43      <xsl:variable name="ToTalProfile" select="key('ProfileFromHostid', $profileHost/depends/@profile-id) | $profileHost" />
  44      <!-- Package dont l'install est demandée -->
  45      <xsl:variable name="DemandPackages" select="key('PackageFromId', $ToTalProfile/package/@package-id)" />
  46      <!-- Packages à installer à cause des dépendances de packages maxi 3 niveaux de profondeur -->
  47      <xsl:variable name="PackageDepends1" select="key('PackageFromId', $DemandPackages/depends/@package-id)" />
  48      <xsl:variable name="PackageDepends2" select="key('PackageFromId', $PackageDepends1/depends/@package-id)" />
  49      <xsl:variable name="PackageDepends3" select="key('PackageFromId', $PackageDepends2/depends/@package-id)" />
  50      <xsl:variable name="ToTalPackageDepends" select="$PackageDepends1 | $PackageDepends2 | PackageDepends3" />
  51    
  52      <xsl:variable name="AskPackages" select="$DemandPackages | $ToTalPackageDepends" />
  53      <xsl:variable name="nDemandPackages" select="count($AskPackages)" />
  54    
  55      <xsl:variable name="PackagesNotSynchro" select="(count($PackagesFromRapport[(@status = 'Installed') and not(@id = $AskPackages/@id)]) + count($AskPackages[not(@id = $PackagesFromRapport[@status = 'Installed']/@id)])) > 0" />
  56      <xsl:variable name="PackagesBadVersion" select="$AskPackages[not(@revision = key('RapportRevision', concat($idHost, ':', @id))/@revision)]" />
  57      <xsl:variable name="Synchro">
  58          <xsl:choose>
  59              <xsl:when test="not($PackagesFromRapport)">-2</xsl:when>
  60              <xsl:when test="$PackagesNotSynchro">-1</xsl:when>
  61              <xsl:when test="$PackagesBadVersion">0</xsl:when>
  62              <xsl:otherwise>1</xsl:otherwise>
  63          </xsl:choose>
  64      </xsl:variable>
  65      
  66      <xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
  67      <xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
  68      
  69      <xsl:template match="/">
  70          <xsl:comment>
  71              <xsl:text> ToTalProfile = </xsl:text>
  72              <xsl:for-each select="$ToTalProfile">
  73                  <xsl:value-of select="concat(@id, ' ')" /> 
  74              </xsl:for-each>
  75              <xsl:text>
  76  DemandPackages = </xsl:text>
  77              <xsl:for-each select="$DemandPackages">
  78                  <xsl:value-of select="concat(@id, ' ')" /> 
  79              </xsl:for-each>
  80          </xsl:comment>
  81          <xsl:if test="$Debug">
  82              <pre>
  83                  idHost=<xsl:value-of select="$idHost" />
  84                  Navigateur=<xsl:value-of select="$Navigateur" />
  85              </pre>
  86          </xsl:if>
  87          <xsl:element name="div">
  88              <!-- Sélection d'un autre poste -->
  89              <h3>Poste à afficher : 
  90                  <select class="SelectH3" id="idHost" name="idHost" >
  91                      <xsl:attribute name="onchange">
  92                          <xsl:value-of select="'defHost(this.value);'" />
  93                      </xsl:attribute>
  94                      <xsl:if test="$idHost = ''">
  95                          <option value="''" selected="true()"><xsl:value-of select="'Choisir le poste...'" /></option>
  96                      </xsl:if>
  97                      <xsl:for-each select="$ListPostes">
  98                          <xsl:sort select="translate(@id, $ucletters, $lcletters)" />
  99                          <xsl:choose>
 100                              <xsl:when test="@id = $idHost">
 101                                  <option value="{@id}" selected="true()"><xsl:value-of select="@id" /></option>
 102                              </xsl:when>
 103                              <xsl:otherwise>
 104                                  <option value="{@id}"><xsl:value-of select="@id" /></option>
 105                              </xsl:otherwise>
 106                          </xsl:choose>
 107                      </xsl:for-each>
 108                  </select>
 109               </h3>
 110          </xsl:element>
 111          <xsl:choose>
 112              <xsl:when test="$idHost = ''">
 113                  <!-- Pas de poste sélectionné -->
 114              </xsl:when>
 115              <xsl:otherwise>
 116                  
 117                  <div class="TitreNom" ><xsl:value-of select="$idHost" /></div>
 118                  <br />
 119                  <xsl:variable name="nInstalled" select="count($RapportDuPoste/package[@status = 'Installed'])"/>
 120                  <xsl:element name="div" >
 121                      <table class="postes">
 122                          <tr>
 123                              <th>Poste</th>
 124                              <th title="Nbre d'appli. installées / Nbre d'appli. souhaitées" >Nbre d'appli.</th>
 125                              <th title="Cliquer sur la date du rapport pour voir le fichier de log d'exécution de ce poste">Date du dernier rapport</th>
 126                              <th>Adresse MAC</th>
 127                              <th>Adresse IP</th>
 128                              <th>Appartient aux parcs</th>
 129                              <th title="(re)démarrer le poste par le réseau">(Re)démarrer</th>
 130                          </tr>
 131                          <tr>
 132                              <td style="font-weight: bold;"><xsl:value-of select="$idHost" /></td>
 133                              <xsl:choose>
 134                                  <xsl:when test="$RapportDuPoste">
 135                                      <!-- Si un rapport existe pour ce poste -->
 136                                      <xsl:choose>
 137                                          <xsl:when test="$RapportDuPoste/erreur">
 138                                              <td style="font-size:10px;background-color:#FFA500;" ><xsl:value-of select="$RapportDuPoste/erreur/@str" /></td>
 139                                          </xsl:when>
 140                                          <xsl:when test="($Synchro = '-2') or ($Synchro = '-1')">
 141                                              <td style="background-color:#FFA500;font-weight: bold;" align="center">
 142                                                  <xsl:value-of select="$nInstalled" />
 143                                                  <xsl:text> / </xsl:text>
 144                                                  <xsl:value-of select="$nDemandPackages" />
 145                                              </td>
 146                                          </xsl:when>
 147                                          <xsl:when test="$Synchro = '0'">
 148                                              <!-- Bad version -->
 149                                              <td style="background-color:#ffd07a;font-weight: bold;" align="center">
 150                                                  <xsl:value-of select="$nInstalled" />
 151                                                  <xsl:text> / </xsl:text>
 152                                                  <xsl:value-of select="$nDemandPackages" />
 153                                              </td>
 154                                          </xsl:when>
 155                                          <xsl:otherwise>
 156                                              <td align="center" style="font-weight: bold;">
 157                                                  <xsl:value-of select="$nInstalled" />
 158                                                  <xsl:text> / </xsl:text>
 159                                                  <xsl:value-of select="$nDemandPackages" />
 160                                              </td>
 161                                          </xsl:otherwise>
 162                                      </xsl:choose>
 163                                      <xsl:choose>
 164                                          <xsl:when test="$RapportDuPoste/@logfile">
 165                                              <!-- Fichier log disponible -->
 166                                              <td>
 167                                                  <span class="tdlien" title="{$RapportDuPoste/@logfile}" onclick="javascript:window.open(&apos;index.php?logfile={$RapportDuPoste/@logfile}&apos;, &apos;_blank&apos;);">
 168                                                      <xsl:value-of select="$RapportDuPoste/@date" /> à <xsl:value-of select="$RapportDuPoste/@time" />
 169                                                  </span>
 170                                              </td>
 171                                          </xsl:when>
 172                                          <xsl:otherwise>
 173                                              <td title="Pas de fichier de log disponible.">
 174                                                  <xsl:value-of select="$RapportDuPoste/@date" /> à <xsl:value-of select="$RapportDuPoste/@time" />
 175                                              </td>
 176                                          </xsl:otherwise>
 177                                      </xsl:choose>
 178                                      <td><xsl:value-of select="$RapportDuPoste/@mac" /></td>
 179                                      <xsl:choose>
 180                                          <xsl:when test="$RapportDuPoste/@ip and $RapportDuPoste/@mask">
 181                                              <td title="{concat('Masque : ', $RapportDuPoste/@mask)}">
 182                                                  <xsl:value-of select="$RapportDuPoste/@ip" />
 183                                              </td>
 184                                          </xsl:when>
 185                                          <xsl:otherwise>
 186                                              <td><xsl:value-of select="$RapportDuPoste/@ip" /></td>
 187                                          </xsl:otherwise>
 188                                      </xsl:choose>
 189                                  </xsl:when>
 190                                  <xsl:otherwise>
 191                                      <td colspan="4" style="font-size:10px;" ><xsl:text> Pas de rapport disponible. Attendez qu'un utilisateur s'authentifie sur ce poste. </xsl:text></td>
 192                                  </xsl:otherwise>
 193                              </xsl:choose>
 194                              <td>
 195                                  <!-- Liste des Parcs auxquels appartient $idHost -->
 196                                  <xsl:for-each select="$profileHost/depends[not(@profile-id = '_TousLesPostes')]">
 197                                      <span class="postes">
 198                                          <xsl:attribute name="onclick">
 199                                              <xsl:value-of select="concat('javascript:defProfile(&quot;', @profile-id, '&quot;)')" />
 200                                          </xsl:attribute>
 201                                          <xsl:value-of select="@profile-id" />
 202                                      </span>
 203                                      <xsl:choose>
 204                                          <xsl:when test="not(position()=last())">
 205                                              <xsl:text>, </xsl:text>
 206                                          </xsl:when>
 207                                          <xsl:otherwise>
 208                                              <xsl:text>.</xsl:text>
 209                                          </xsl:otherwise>
 210                                      </xsl:choose>
 211                                  </xsl:for-each>
 212                              </td>
 213                              <td valign="top" align="center">
 214                                  <xsl:if test="$RapportDuPoste/@ip and $RapportDuPoste/@mask">
 215                                      <table border="0"><tr style="border:0;">
 216                                      <td style="border:0;"><button style="font-size:smaller;" title="Démarrer '{$idHost}'" onclick="startHost('{$idHost}', '{$RapportDuPoste/@ip}', '{$RapportDuPoste/@mask}' , '{$RapportDuPoste/@mac}' );">(Re)Boot !</button></td>
 217                                      <xsl:if test="key('RapportRevision', concat($idHost, ':consoleWpkg'))/@status = 'Installed'">
 218                                          <td id="consoleWpkg" style="border:0;"/>
 219                                          <script id="initConsoleWpkg" type="text/javascript" >
 220                                              <xsl:value-of select="concat('ipHost=&#34;', $RapportDuPoste/@ip, '&#34;;')" />
 221  <xsl:text>
 222  onclickConsoleWpkg="javascript:window.open(&amp;apos;consoleWpkg.php?clientIp=</xsl:text><xsl:value-of select="$RapportDuPoste/@ip" /><xsl:text>&amp;apos;, &amp;apos;_blank&amp;apos;);";
 223  document.getElementById("consoleWpkg").innerHTML = "&lt;img title='Console WPKG' src='img/consoleWpkg.png' style='cursor:pointer;' onclick='" + onclickConsoleWpkg + "');'/&gt;";
 224  </xsl:text>
 225                                          </script>
 226                                      </xsl:if>
 227                                      </tr></table>
 228                                  </xsl:if>
 229                              </td>
 230                          </tr>
 231                      </table>
 232                  </xsl:element>
 233                  <div id="posteparam">
 234                      <a style="font-size:small;" onclick="posteini('{$idHost}');">Définir la valeur des options passées au client wpkg</a>
 235                      <!--font size="2">
 236                          <button style="font-size:x-small;" title="Infos de déboggage" onclick="posteini('{$idHost}', 'debug', '-' );">/debug</button>Pour avoir des log plus détaillées. 
 237                          <button style="font-size:x-small;" title="Déboggage temps réel" onclick="posteini('{$idHost}', 'logdebug', '-' );">/logdebug</button>Met à jour le fichier de log sur le serveur en temps réel. 
 238                          <button style="font-size:x-small;" title="Vérifier l'état" onclick="posteini('{$idHost}', 'force', '-' );">/force</button> Vérifie l'état installé ou non des applis.<br/>
 239                          <button title="Changer pour ce poste" onclick="posteini('{$idHost}', 'DELETE', '-' );">Supprimer</button> Supprime les options particulière à ce poste.
 240                      </font -->
 241                  </div>
 242                  <xsl:element name="div" >
 243                      <!-- Etat des applications sur ce poste -->
 244                      <xsl:if test="$RapportDuPoste">
 245                          <!-- Un rapport est disponible pour ce poste -->
 246                          <xsl:variable name="nAppli" select="count($RapportDuPoste/package)"/>
 247                          <xsl:variable name="profileDeCetHost" select="key('ProfileFromHostid', $idHost)"/>
 248  
 249                          <h3>Applications sur le poste '<b><xsl:value-of select="$idHost" /></b>'.</h3>
 250                          <div id="divTableau">
 251                              <table class="postes">
 252                                  <thead id="headTableau">
 253                                      <!-- Tableau des applis installées sur ce poste -->
 254                                      <tr>
 255                                          <th style="cursor:ne-resize;" onclick="tri(1,event);" >Application</th>
 256                                          <th style="cursor:ne-resize;" onclick="tri(2,event);" title="&apos;Installée&apos; ou &apos;Non installée&apos;.   En rouge si l'état ne correspond pas à la demande">Etat</th>
 257                                          <th style="cursor:ne-resize;" onclick="tri(3,event);" >Version</th>
 258                                          <th style="cursor:ne-resize;" onclick="tri(4,event);" title="L'installation nécessite-t-elle un reboot ?">Reboot</th>
 259                                          <th style="cursor:ne-resize;" onclick="tri(5,event);" title="Parcs, poste ou appli. à l'origine de la demande d'installation">Install. demandée pour</th>
 260                                          <th style="cursor:ne-resize;" onclick="tri(6,event);" title="Installation d'une application uniquement sur &apos;{$idHost}&apos;">Installer sur ce poste</th>
 261                                      </tr>
 262                                  </thead>
 263  
 264                                  <tbody id="bodyTableau">
 265                                  </tbody>
 266                              </table>
 267                          </div>
 268                          <script id="ScriptTableau" type="text/javascript"><xsl:text>Tableau = new Array();&#xa;</xsl:text>
 269                              <xsl:for-each select="$PackagesFromRapport | $PackagesNotInRapport" >
 270                                  <xsl:sort select="translate(@id, $ucletters, $lcletters)" />
 271                                  <xsl:variable name="idPackage" select="@id"/>
 272                                  <xsl:variable name="Package" select="key('PackageFromId', $idPackage)"/>
 273                                  <xsl:variable name="profilsImplyPackageHost" >
 274                                      <xsl:call-template name="profilsImplyPackageHost" >
 275                                          <xsl:with-param name="tmpProfile" select="$profileDeCetHost" />
 276                                          <xsl:with-param name="tmpPackage" select="$idPackage" />
 277                                      </xsl:call-template>
 278                                      <xsl:call-template name="packagesImplyPackage" >
 279                                          <xsl:with-param name="tmpPackage" select="$idPackage" />
 280                                          <xsl:with-param name="withLink" select="true()" />
 281                                      </xsl:call-template>
 282                                  </xsl:variable>
 283                                  <xsl:variable name="requestInstallHostOnly" select="count($profileDeCetHost/package[@package-id = $idPackage])" />
 284                                  <xsl:variable name="isInstallRequested" select="(not($profilsImplyPackageHost = '')) or ($requestInstallHostOnly > 0)"/>
 285                                  <xsl:variable name="status" >
 286                                      <xsl:choose>
 287                                          <xsl:when test="@status = 'Installed'">
 288                                              <xsl:text>Installé</xsl:text>
 289                                          </xsl:when>
 290                                          <xsl:when test="@status = 'Not Installed'">
 291                                              <xsl:text>Non installé</xsl:text>
 292                                          </xsl:when>
 293                                          <xsl:when test="not(@status)">
 294                                              <xsl:text>Inconnu</xsl:text>
 295                                          </xsl:when>
 296                                          <xsl:otherwise>
 297                                              <xsl:value-of select="@status" />
 298                                          </xsl:otherwise>
 299                                      </xsl:choose>
 300                                  </xsl:variable>
 301                                  <xsl:variable name="reboot" >
 302                                      <xsl:choose>
 303                                          <xsl:when test="not(@status)"></xsl:when>
 304                                          <xsl:when test="@reboot = 'false'">
 305                                              <xsl:text>Non</xsl:text>
 306                                          </xsl:when>
 307                                          <xsl:when test="@reboot = 'true'">
 308                                              <xsl:text>Oui</xsl:text>
 309                                          </xsl:when>
 310                                          <xsl:otherwise>
 311                                              <xsl:value-of select="@reboot" />
 312                                          </xsl:otherwise>
 313                                      </xsl:choose>
 314                                  </xsl:variable>
 315                                  <xsl:variable name="revision" >
 316                                      <xsl:choose>
 317                                          <xsl:when test="not(@status)"></xsl:when>
 318                                          <xsl:otherwise>
 319                                              <xsl:value-of select="@revision" />
 320                                          </xsl:otherwise>
 321                                      </xsl:choose>
 322                                  </xsl:variable>
 323                                  <xsl:variable name="BGcouleur" >
 324                                      <xsl:choose>
 325                                          <xsl:when test="not(@status)">
 326                                              <!-- appli au status inconnu -->
 327                                              <xsl:text>ghostwhite</xsl:text>
 328                                          </xsl:when>
 329                                          <xsl:when test="(not(@status = 'Installed')) and (not($isInstallRequested))">
 330                                              <!-- appli NON installée avec demande identique bleu grisclair -->
 331                                              <xsl:text>#dee2e5</xsl:text>
 332                                          </xsl:when>
 333                                          <xsl:when test="(@status = 'Installed') and ($isInstallRequested)">
 334                                              <!-- appli installée avec demande identique -->
 335                                              <xsl:choose>
 336                                                  <xsl:when test="@revision = $Package/@revision">
 337                                                      <!-- N° de version OK -->
 338                                                      <xsl:text>#b3cce5</xsl:text>
 339                                                  </xsl:when>
 340                                                  <xsl:otherwise>
 341                                                      <!-- appli installée dans une autre version -->
 342                                                      <xsl:text>#ffd07a</xsl:text>
 343                                                  </xsl:otherwise>
 344                                              </xsl:choose>
 345                                          </xsl:when>
 346                                          <xsl:when test="@status = 'Installed'">
 347                                              <!-- appli installée avec install non demandée -->
 348                                              <xsl:text>#FFA500</xsl:text>
 349                                          </xsl:when>
 350                                          <xsl:when test="@status = 'Not Installed'">
 351                                              <!-- appli non installée et install demandée #FF7F50-->
 352                                              <xsl:text>#FFA500</xsl:text>
 353                                          </xsl:when>
 354                                          <xsl:otherwise>
 355                                              <!-- autre cas ? -->
 356                                              <xsl:text>ghostwhite</xsl:text>
 357                                          </xsl:otherwise>
 358                                      </xsl:choose>
 359                                  </xsl:variable>
 360  
 361  
 362  
 363  
 364  
 365                                  <xsl:text>Tableau[</xsl:text><xsl:value-of select="position() - 1" /><xsl:text>] = new Array('</xsl:text>
 366  <xsl:text>&lt;tr style="background-color:</xsl:text><xsl:value-of select="$BGcouleur" />
 367  <xsl:text>;" &gt; &lt;td class="tdlien" title="' + "</xsl:text>
 368  <xsl:value-of select="concat($Package/@name, ' (Rev:', $Package/@revision,')')" />
 369  <xsl:text>" + '" style="font-weight: bold;cursor:pointer;" onclick="defPackage(&amp;quot;</xsl:text>
 370      <xsl:value-of select="@id" /><xsl:text>&amp;quot;);"&gt;</xsl:text>
 371      <xsl:value-of select="@id" /><xsl:text>&lt;/td&gt; &lt;td align="center" &gt;</xsl:text>
 372          <xsl:value-of select="$status" />
 373      <xsl:text>&lt;/td&gt; &lt;td align="right" &gt;</xsl:text>
 374      <xsl:choose>
 375          <xsl:when test="@revision = key('PackageFromId', $idPackage)/@revision">
 376              <xsl:value-of select="$revision" />
 377          </xsl:when>
 378          <xsl:otherwise>
 379              <xsl:text>&lt;font color="red" style="font-weight:bold;"&gt;</xsl:text>
 380              <xsl:value-of select="$revision" />
 381              <xsl:text>&lt;/font&gt;</xsl:text>
 382          </xsl:otherwise>
 383      </xsl:choose>
 384      
 385      <xsl:text>&lt;/td&gt; &lt;td align="center" &gt;</xsl:text>
 386      <xsl:value-of select="$reboot" />
 387      <xsl:text>&lt;/td&gt; &lt;td &gt; </xsl:text><xsl:copy-of select="$profilsImplyPackageHost" />
 388      <xsl:text>&lt;/td&gt; &lt;td align="center" &gt;</xsl:text>
 389      <xsl:if test="$Package">
 390          <xsl:text> &lt;div class="</xsl:text>
 391          <xsl:choose>
 392              <xsl:when test="$canWrite" >
 393                  <xsl:text>CasePackageProfile</xsl:text>
 394              </xsl:when>
 395              <xsl:otherwise>
 396                  <xsl:text>CasePackageProfileReadOnly</xsl:text>
 397              </xsl:otherwise>
 398          </xsl:choose>
 399          <xsl:text>" style="</xsl:text>
 400          <xsl:choose>
 401              <xsl:when test="$requestInstallHostOnly">
 402                  <xsl:value-of select="'position:relative;background-color:#6699cc;z-index:4;'"/>
 403              </xsl:when>
 404              <xsl:otherwise>
 405                  <xsl:value-of select="'position:relative;background-color:#f0f8ff;z-index:3;'"/>
 406              </xsl:otherwise>
 407          </xsl:choose>
 408          <xsl:text>" </xsl:text>
 409          <xsl:if test="$canWrite" >
 410              <xsl:text>onclick="PP(event,&amp;quot;</xsl:text>
 411              <xsl:value-of select="concat($idHost, ':', @id)" />
 412              <xsl:text>&amp;quot;,true);"</xsl:text>
 413          </xsl:if>
 414          <xsl:text>&gt; </xsl:text>
 415          <xsl:if test="not($canWrite)" >
 416              <xsl:text>x</xsl:text>
 417          </xsl:if>
 418          <xsl:text>&lt;/div&gt;</xsl:text>
 419      </xsl:if>
 420      <xsl:text> &lt;/td&gt;&lt;/tr&gt; &lt;!--','</xsl:text>
 421  <!-- Clé de tri1 idPackage-->
 422  <xsl:value-of select="translate(@id, $ucletters, $lcletters)" /><xsl:text>','</xsl:text>
 423  <!-- Clé de tri2 Etat -->
 424  <xsl:value-of select="$status" /><xsl:text>',</xsl:text>
 425  <!-- Clé de tri3 Revision (numérique) -->
 426  <xsl:choose><xsl:when test="$revision = ''">0</xsl:when><xsl:otherwise><xsl:value-of select="0 + $revision" /></xsl:otherwise></xsl:choose><xsl:text>,'</xsl:text>
 427  <!-- Clé de tri4 reboot -->
 428  <xsl:value-of select="$reboot" /><xsl:text>','</xsl:text>
 429  <!-- Clé de tri5 install. demandée par -->
 430  <xsl:value-of select="string($profilsImplyPackageHost)" /><xsl:text>','</xsl:text>
 431  <!-- Clé de tri6 install host only-->
 432  <xsl:value-of select="$requestInstallHostOnly" /><xsl:text>',</xsl:text>
 433  <!-- Numéro de la ligne -->
 434  <xsl:value-of select="position() - 1" /><xsl:text>,'--&gt;');&#xa;</xsl:text>
 435                              </xsl:for-each>
 436                          </script>
 437                          
 438                      </xsl:if>
 439                  </xsl:element>
 440              </xsl:otherwise>
 441          </xsl:choose>
 442      </xsl:template>
 443      
 444      <xsl:template name="profilsImplyPackageHost" >
 445          <!-- Retourne les profils qui ont réclamé l'installation de ce package sur cet host -->
 446          <xsl:param name="tmpProfile" /> <!-- initialement : profile du poste, puis profils dont dépend l'host -->
 447          <xsl:param name="tmpPackage" /> <!-- Id de l'appli cherchée -->
 448          <xsl:param name="withLink" select="false()"/> <!-- Faut-il ajouter un lien vers le profile (Non si idProfile=idHost) -->
 449          <xsl:if test="$tmpProfile/package[@package-id = $tmpPackage]">
 450              <!-- Ce profile réclame l'installation de l'appli -->
 451              <xsl:choose>
 452                  <xsl:when test="$withLink">
 453                      <xsl:text>&lt;span class="postes" title="Parc &amp;#39;</xsl:text><xsl:value-of select="$tmpProfile/@id" /><xsl:text>&amp;#39;" onclick="defProfile(&amp;quot;</xsl:text><xsl:value-of select="$tmpProfile/@id" /><xsl:text>&amp;quot;);" &gt;</xsl:text>
 454                          <xsl:value-of select="$tmpProfile/@id" />
 455                      <xsl:text>&lt;/span&gt;</xsl:text>
 456                  </xsl:when>
 457                  <xsl:otherwise>
 458                      <xsl:value-of select="$tmpProfile/@id" />
 459                  </xsl:otherwise>
 460              </xsl:choose>
 461              <xsl:text> </xsl:text>
 462          </xsl:if>
 463          <xsl:for-each select="$tmpProfile/depends[@profile-id]">
 464              <xsl:variable name="profilSuivant" select="@profile-id"/>
 465              <xsl:call-template name = "profilsImplyPackageHost" >
 466                  <xsl:with-param name="tmpProfile" select="key('ProfileFromHostid', $profilSuivant)" />
 467                  <xsl:with-param name="tmpPackage" select="$tmpPackage" />
 468                  <xsl:with-param name="withLink" select="true()" />
 469              </xsl:call-template>
 470          </xsl:for-each>
 471      </xsl:template>
 472      
 473      <xsl:template name="packagesImplyPackage" >
 474          <!-- Retourne les packages qui ont réclamé l'installation de ce package sur cet host (dépendances de packages) -->
 475          <xsl:param name="tmpPackage" /> <!-- Id de l'appli cherchée -->
 476          <xsl:param name="withLink" select="false()"/> <!-- Faut-il ajouter un lien vers le package  -->
 477          <xsl:variable name="packagesImply" select="$ToTalPackageDepends[@id = $tmpPackage]" />
 478          <xsl:if test="$packagesImply">
 479              <xsl:choose>
 480                  <xsl:when test="$withLink">
 481                      <xsl:for-each select="($AskPackages)[$tmpPackage = depends/@package-id]">
 482                          <xsl:text>&lt;span class="spanAppDepends" title="Application &amp;#39;</xsl:text><xsl:value-of select="@id" /><xsl:text>&amp;#39;" onclick="defPackage(&amp;quot;</xsl:text><xsl:value-of select="@id" /><xsl:text>&amp;quot;);" &gt;</xsl:text>
 483                              <xsl:value-of select="@id" />
 484                          <xsl:text>&lt;/span&gt; </xsl:text>
 485                      </xsl:for-each>
 486                  </xsl:when>
 487                  <xsl:otherwise>
 488                      <xsl:for-each select="($AskPackages)[$tmpPackage = depends/@package-id]">
 489                          <xsl:value-of select="@id" />
 490                          <xsl:text> </xsl:text>
 491                      </xsl:for-each>
 492                  </xsl:otherwise>
 493              </xsl:choose>
 494          </xsl:if>
 495      </xsl:template>
 496      
 497  </xsl:stylesheet>


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1