[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?xml version="1.0" encoding="iso-8859-1"?> 2 3 <!-- Définition d'un profile avec affichage de l'état des postes de ce profile 4 S'applique à wpkg.xml 5 6 ## $Id: AfficheProfile.xsl 3081 2008-07-03 21:55:03Z jlebail $ ## 7 --> 8 9 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 10 <!--xsl:output method="html" encoding="utf-8" / --> 11 <xsl:output method="html" encoding="iso-8859-1" /> 12 <xsl:param name="login" select="''" /> 13 <xsl:param name="Navigateur" select="'inconnu'" /> 14 <xsl:param name="Debug" select="false()" /> 15 <xsl:param name="idProfile" select="''" /> 16 17 <xsl:variable name="PROFILES" select="/wpkg/profiles"/> 18 <xsl:variable name="RAPPORTS" select="/wpkg/rapports"/> 19 <xsl:variable name="PACKAGES" select="/wpkg/packages" /> 20 21 <xsl:key name="rapportFromHostid" match="/wpkg/hosts/host/rapport" use="../@name" /> 22 <xsl:key name="PackageFromId" match="/wpkg/packages/package" use="@id" /> 23 <xsl:key name="ProfileFromId" match="/wpkg/profiles/profile" use="@id" /> 24 <xsl:key name="RapportRevision" match="/wpkg/hosts/host/rapport/package" use="concat(../@id, ':', @id)" /> 25 26 <xsl:variable name="isWpkgAdmin" select="key('ProfileFromId', '_TousLesPostes')/@canWrite = '1'"/> 27 28 <xsl:variable name="ListProfilesCanRead" select="$PROFILES/profile[not(depends/@profile-id = '_TousLesPostes')]"/> 29 <xsl:variable name="ListProfilesCanWrite" select="$ListProfilesCanRead[@canWrite = '1']"/> 30 <!-- Liste des postes de ce profile --> 31 <xsl:variable name="ListPostes" select="$PROFILES/profile[depends/@profile-id = $idProfile]"/> 32 33 <xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable> 34 <xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable> 35 36 <xsl:template match="/"> 37 <xsl:if test="$Debug"> 38 <pre> 39 idProfile=<xsl:value-of select="$idProfile" /> 40 nbListProfilesCanRead=<xsl:value-of select="count($ListProfilesCanRead)" /> 41 Navigateur=<xsl:value-of select="$Navigateur" /> 42 </pre> 43 </xsl:if> 44 <xsl:element name="div"> 45 <xsl:attribute name="id">Resultat</xsl:attribute> 46 <!-- Sélection d'un autre profile --> 47 <h2>Parc à afficher : 48 <select class="SelectH3" id="idProfile" name="idProfile" > 49 <xsl:attribute name="onchange"> 50 <xsl:value-of select="'defProfile(this.value);'" /> 51 </xsl:attribute> 52 <xsl:if test="$idProfile = ''"> 53 <option value="''" selected="true()"><xsl:value-of select="'Choisir le parc...'" /></option> 54 </xsl:if> 55 <xsl:choose> 56 <xsl:when test="$idProfile = '_TousLesPostes'"> 57 <option value="_TousLesPostes" selected="true()"><xsl:value-of select="'_TousLesPostes'" /></option> 58 </xsl:when> 59 <xsl:otherwise> 60 <option value="_TousLesPostes"><xsl:value-of select="'_TousLesPostes'" /></option> 61 </xsl:otherwise> 62 </xsl:choose> 63 <xsl:for-each select="$ListProfilesCanRead"> 64 <xsl:sort select="translate(@id, $ucletters, $lcletters)" order="ascending" /> 65 <xsl:choose> 66 <xsl:when test="@id = '_TousLesPostes'"> 67 </xsl:when> 68 <xsl:when test="@id = $idProfile"> 69 <option value="{@id}" selected="true()"><xsl:value-of select="@id" /></option> 70 </xsl:when> 71 <xsl:otherwise> 72 <option value="{@id}"><xsl:value-of select="@id" /></option> 73 </xsl:otherwise> 74 </xsl:choose> 75 </xsl:for-each> 76 </select> 77 </h2> 78 </xsl:element> 79 <xsl:element name="div"> 80 <xsl:choose> 81 <xsl:when test="$idProfile = ''"> 82 <!-- Pas de Parc sélectionné --> 83 <xsl:text> Pas de Parc sélectionné </xsl:text> 84 </xsl:when> 85 <xsl:otherwise> 86 <!-- Parc $idProfile sélectionné --> 87 <xsl:variable name="CeProfile" select="key('ProfileFromId', $idProfile)" /> 88 <xsl:variable name="nbPostes" select="count($ListPostes)" /> 89 <div style="font-size:small;" > 90 <xsl:choose> 91 <xsl:when test="$nbPostes = '0'"> 92 <xsl:text> 0 poste Windows 2000 ou XP dans le parc </xsl:text><b><xsl:value-of select="$idProfile" /></b><br></br> 93 </xsl:when> 94 <xsl:when test="$nbPostes = '1'"> 95 <xsl:text> 1 poste Windows 2000 ou XP dans le parc </xsl:text><b><xsl:value-of select="$idProfile" /></b><br></br> 96 </xsl:when> 97 <xsl:otherwise> 98 <xsl:value-of select="$nbPostes" /><xsl:text> poste(s) Windows 2000 ou XP dans le parc </xsl:text><b><xsl:value-of select="$idProfile" /></b><br></br> 99 </xsl:otherwise> 100 </xsl:choose> 101 </div> 102 <!-- Liste des postes concernés par ce profile (=Parc) --> 103 <div id="divTableau"> 104 <!-- Nom du profile et dépendances --> 105 <table class="postes"> 106 <thead id="headTableau"> 107 <tr> 108 <th style="cursor:ne-resize;" onclick="tri(1,event);">Poste</th> 109 <th style="cursor:ne-resize;" onclick="tri(2,event);" title="Nbre d'appli. installées / Nbre d'appli. souhaitées" >Nbre d'appli.</th> 110 <th style="cursor:ne-resize;" onclick="tri(3,event);" title="Correspondance entre l'état souhaité et actuel du poste">Synchro.</th> 111 <th style="cursor:ne-resize;" onclick="tri(4,event);">Date du dernier rapport</th> 112 <th style="cursor:ne-resize;" onclick="tri(5,event);">Adresse MAC</th> 113 <th style="cursor:ne-resize;" onclick="tri(6,event);">Adresse IP</th> 114 </tr> 115 </thead> 116 <tbody id="bodyTableau"> 117 </tbody> 118 </table> 119 </div> 120 <script id="ScriptTableau" type="text/javascript"><xsl:text>Tableau = new Array();
</xsl:text> 121 <xsl:for-each select="$ListPostes" > 122 <xsl:sort select="translate(@id, $ucletters, $lcletters)" /> 123 <xsl:variable name="idPoste" select="@id"/> 124 <xsl:variable name="CePoste" select="key('rapportFromHostid', $idPoste)"/> 125 126 <!-- Profile de idHost --> 127 <xsl:variable name="profileHost" select="key('ProfileFromId', $idPoste)" /> 128 <xsl:variable name="profileDependsId" select="key('ProfileFromId', ($idPoste | $profileHost/depends/@profile-id))/package/@package-id" /> 129 <!-- Nombre de packages à installer demandés pour idHost --> 130 131 <!-- xsl:variable name="PackagesToHost" select="$PACKAGES/package[@id = $PROFILES/profile/package[(generate-id() = generate-id(key('keyPack',@package-id)[(../@id = $idPoste) or (../@id = $profileHost/depends/@profile-id)]))]/@package-id]" / --> 132 <xsl:variable name="PackagesToHost" select="key('PackageFromId', $profileDependsId)" /> 133 <xsl:variable name="PackagesDepends1" select="key('PackageFromId', $PackagesToHost/depends/@package-id)" /> 134 <xsl:variable name="PackagesDepends2" select="key('PackageFromId', $PackagesDepends1/depends/@package-id)" /> 135 <xsl:variable name="PackagesDependants" select="$PackagesDepends1 | $PackagesDepends2" /> 136 137 <!-- xsl:variable name="nPackagesToHost" select="count($PackagesToHost | $PackagesDependants)" / --> 138 <xsl:variable name="AskPackages" select="$PackagesToHost | $PackagesDependants" /> 139 <xsl:variable name="nPackagesToHost" select="count($AskPackages)" /> 140 141 <xsl:variable name="nPackagesInstalled" select="count($CePoste/package[@status = 'Installed'])" /> 142 143 <xsl:variable name="PackagesNotSynchro" select="(count($CePoste/package[(@status = 'Installed') and not(@id = $AskPackages/@id)]) + count($AskPackages[not(@id = $CePoste/package[@status = 'Installed']/@id)])) > 0" /> 144 145 <xsl:variable name="PackagesBadVersion" select="$AskPackages[not(@revision = key('RapportRevision', concat($idPoste, ':', @id))/@revision)]" /> 146 <xsl:variable name="Synchro"> 147 <xsl:choose> 148 <xsl:when test="not($CePoste)"></xsl:when> 149 <xsl:when test="$PackagesNotSynchro">NON</xsl:when> 150 <xsl:when test="$PackagesBadVersion">Non</xsl:when> 151 <xsl:otherwise>OUI</xsl:otherwise> 152 </xsl:choose> 153 </xsl:variable> 154 155 <xsl:variable name="BGcouleur" > 156 <xsl:choose> 157 <xsl:when test="$CePoste"> 158 <!-- Rapport disponible --> 159 <xsl:choose> 160 <xsl:when test="$PackagesNotSynchro"> 161 <xsl:text>#FFA500</xsl:text> 162 </xsl:when> 163 <xsl:when test="$PackagesBadVersion"> 164 <xsl:text>#ffd07a</xsl:text> 165 </xsl:when> 166 <xsl:otherwise> 167 <xsl:text>#b3cce5</xsl:text> 168 </xsl:otherwise> 169 </xsl:choose> 170 </xsl:when> 171 <xsl:otherwise> 172 <!-- pas de rapport dispo --> 173 <xsl:text>ghostwhite</xsl:text> 174 </xsl:otherwise> 175 </xsl:choose> 176 </xsl:variable> 177 178 <xsl:text>Tableau[</xsl:text><xsl:value-of select="position() - 1" /><xsl:text>] = new Array('</xsl:text> 179 <xsl:text><tr style="background-color:</xsl:text><xsl:value-of select="$BGcouleur" /><xsl:text>;" ><td class="tdlien" style="font-weight: bold;cursor:pointer;" onclick="defHost(&quot;</xsl:text> 180 <xsl:value-of select="$idPoste" /> 181 <xsl:text>&quot;)"></xsl:text> 182 <xsl:value-of select="$idPoste" /> 183 <xsl:text></td></xsl:text> 184 <xsl:choose> 185 <xsl:when test="$CePoste"> 186 <xsl:choose> 187 <xsl:when test="$CePoste/erreur"> 188 <xsl:text><td style="font-size:10px;background-color:#FFA500;" ><div style="width:120;color:red;">' + "</xsl:text> 189 <xsl:value-of select="$CePoste/erreur/@str" /> 190 <xsl:text>" + '</div></td></xsl:text> 191 </xsl:when> 192 <xsl:otherwise> 193 <xsl:text><td align="center" style="font-weight: bold;"></xsl:text> 194 <xsl:value-of select="$nPackagesInstalled" /><xsl:text> / </xsl:text><xsl:value-of select="$nPackagesToHost" /> 195 <xsl:text></td></xsl:text> 196 </xsl:otherwise> 197 </xsl:choose> 198 <xsl:text><td></xsl:text> 199 <xsl:choose> 200 <xsl:when test="$CePoste/@logfile"> 201 <xsl:value-of select="$Synchro" /><xsl:text></td><td></xsl:text> 202 <!-- Fichier log disponible --> 203 <xsl:text><span class="tdlien" title="</xsl:text> 204 <xsl:value-of select="$CePoste/@logfile" /> 205 <xsl:text>" onclick="javascript:window.open(&quot;index.php?logfile=</xsl:text> 206 <xsl:value-of select="$CePoste/@logfile" /> 207 <xsl:text>&quot;, &quot;_blank&quot;);"></xsl:text> 208 <xsl:value-of select="$CePoste/@date" /><xsl:text> à </xsl:text><xsl:value-of select="$CePoste/@time" /> 209 <xsl:text></span></xsl:text> 210 </xsl:when> 211 <xsl:otherwise> 212 <!-- Pas de fichier log disponible --> 213 <xsl:value-of select="$CePoste/@date" /><xsl:text> à </xsl:text><xsl:value-of select="$CePoste/@time" /> 214 </xsl:otherwise> 215 </xsl:choose> 216 <xsl:text></td><td></xsl:text> 217 <xsl:value-of select="$CePoste/@mac" /> 218 <xsl:text></td><td></xsl:text> 219 <xsl:value-of select="$CePoste/@ip" /> 220 <xsl:text></td></xsl:text> 221 222 </xsl:when> 223 <xsl:otherwise> 224 <xsl:text><td colspan="5" style="font-size:10px;" > Pas de rapport disponible. Attendez qu&#39;un utilisateur s&#39;authentifie sur ce poste. </td></xsl:text> 225 </xsl:otherwise> 226 </xsl:choose> 227 <xsl:text></tr> <!--','</xsl:text> 228 229 <!-- Clé de tri1 idHost --> 230 <xsl:value-of select="$idPoste" /><xsl:text>',</xsl:text> 231 <!-- Clé de tri2 Nb appli ou msg erreur--> 232 <xsl:choose> 233 <xsl:when test="$CePoste/erreur"> 234 <xsl:text>-1,'</xsl:text> 235 </xsl:when> 236 <xsl:otherwise> 237 <xsl:value-of select="$nPackagesInstalled" /><xsl:text>,'</xsl:text> 238 </xsl:otherwise> 239 </xsl:choose> 240 <!-- Clé de tri3 Synchro. --> 241 <xsl:value-of select="$Synchro" /><xsl:text>','</xsl:text> 242 <!-- Clé de tri4 DateRapport --> 243 <xsl:value-of select="$CePoste/@datetime" /><xsl:text>','</xsl:text> 244 <!-- Clé de tri5 add MAC --> 245 <xsl:value-of select="$CePoste/@mac" /><xsl:text>','</xsl:text> 246 <!-- Clé de tri6 add IP --> 247 <xsl:value-of select="$CePoste/@ip" /><xsl:text>',</xsl:text> 248 <!-- Numéro de la ligne --> 249 <xsl:value-of select="position() - 1" /><xsl:text>,'-->');
</xsl:text> 250 251 </xsl:for-each> 252 </script> 253 </xsl:otherwise> 254 </xsl:choose> 255 </xsl:element> 256 </xsl:template> 257 </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 |