[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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('index.php?logfile={$RapportDuPoste/@logfile}', '_blank');"> 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("', @profile-id, '")')" /> 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="', $RapportDuPoste/@ip, '";')" /> 221 <xsl:text> 222 onclickConsoleWpkg="javascript:window.open(&apos;consoleWpkg.php?clientIp=</xsl:text><xsl:value-of select="$RapportDuPoste/@ip" /><xsl:text>&apos;, &apos;_blank&apos;);"; 223 document.getElementById("consoleWpkg").innerHTML = "<img title='Console WPKG' src='img/consoleWpkg.png' style='cursor:pointer;' onclick='" + onclickConsoleWpkg + "');'/>"; 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="'Installée' ou 'Non installée'. 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 '{$idHost}'">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();
</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><tr style="background-color:</xsl:text><xsl:value-of select="$BGcouleur" /> 367 <xsl:text>;" > <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(&quot;</xsl:text> 370 <xsl:value-of select="@id" /><xsl:text>&quot;);"></xsl:text> 371 <xsl:value-of select="@id" /><xsl:text></td> <td align="center" ></xsl:text> 372 <xsl:value-of select="$status" /> 373 <xsl:text></td> <td align="right" ></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><font color="red" style="font-weight:bold;"></xsl:text> 380 <xsl:value-of select="$revision" /> 381 <xsl:text></font></xsl:text> 382 </xsl:otherwise> 383 </xsl:choose> 384 385 <xsl:text></td> <td align="center" ></xsl:text> 386 <xsl:value-of select="$reboot" /> 387 <xsl:text></td> <td > </xsl:text><xsl:copy-of select="$profilsImplyPackageHost" /> 388 <xsl:text></td> <td align="center" ></xsl:text> 389 <xsl:if test="$Package"> 390 <xsl:text> <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,&quot;</xsl:text> 411 <xsl:value-of select="concat($idHost, ':', @id)" /> 412 <xsl:text>&quot;,true);"</xsl:text> 413 </xsl:if> 414 <xsl:text>> </xsl:text> 415 <xsl:if test="not($canWrite)" > 416 <xsl:text>x</xsl:text> 417 </xsl:if> 418 <xsl:text></div></xsl:text> 419 </xsl:if> 420 <xsl:text> </td></tr> <!--','</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>,'-->');
</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><span class="postes" title="Parc &#39;</xsl:text><xsl:value-of select="$tmpProfile/@id" /><xsl:text>&#39;" onclick="defProfile(&quot;</xsl:text><xsl:value-of select="$tmpProfile/@id" /><xsl:text>&quot;);" ></xsl:text> 454 <xsl:value-of select="$tmpProfile/@id" /> 455 <xsl:text></span></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><span class="spanAppDepends" title="Application &#39;</xsl:text><xsl:value-of select="@id" /><xsl:text>&#39;" onclick="defPackage(&quot;</xsl:text><xsl:value-of select="@id" /><xsl:text>&quot;);" ></xsl:text> 483 <xsl:value-of select="@id" /> 484 <xsl:text></span> </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>
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 |