[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

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

   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();&#xa;</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>&lt;tr style="background-color:</xsl:text><xsl:value-of select="$BGcouleur" /><xsl:text>;" &gt;&lt;td class="tdlien" style="font-weight: bold;cursor:pointer;" onclick="defHost(&amp;quot;</xsl:text>
 180  <xsl:value-of select="$idPoste" />
 181  <xsl:text>&amp;quot;)"&gt;</xsl:text>
 182  <xsl:value-of select="$idPoste" />
 183  <xsl:text>&lt;/td&gt;</xsl:text>
 184  <xsl:choose>
 185      <xsl:when test="$CePoste">
 186          <xsl:choose>
 187              <xsl:when test="$CePoste/erreur">
 188                  <xsl:text>&lt;td style="font-size:10px;background-color:#FFA500;" &gt;&lt;div style="width:120;color:red;"&gt;' + "</xsl:text>
 189                  <xsl:value-of select="$CePoste/erreur/@str" />
 190                  <xsl:text>" + '&lt;/div&gt;&lt;/td&gt;</xsl:text>
 191              </xsl:when>
 192              <xsl:otherwise>
 193                  <xsl:text>&lt;td align="center" style="font-weight: bold;"&gt;</xsl:text>
 194  <xsl:value-of select="$nPackagesInstalled" /><xsl:text> / </xsl:text><xsl:value-of select="$nPackagesToHost" />
 195                  <xsl:text>&lt;/td&gt;</xsl:text>
 196              </xsl:otherwise>
 197          </xsl:choose>
 198          <xsl:text>&lt;td&gt;</xsl:text>
 199          <xsl:choose>
 200              <xsl:when test="$CePoste/@logfile">
 201  <xsl:value-of select="$Synchro" /><xsl:text>&lt;/td&gt;&lt;td&gt;</xsl:text>
 202                  <!-- Fichier log disponible -->
 203                  <xsl:text>&lt;span class="tdlien" title="</xsl:text>
 204  <xsl:value-of select="$CePoste/@logfile" />
 205                  <xsl:text>" onclick="javascript:window.open(&amp;quot;index.php?logfile=</xsl:text>
 206  <xsl:value-of select="$CePoste/@logfile" />
 207                  <xsl:text>&amp;quot;, &amp;quot;_blank&amp;quot;);"&gt;</xsl:text>
 208  <xsl:value-of select="$CePoste/@date" /><xsl:text> à </xsl:text><xsl:value-of select="$CePoste/@time" />
 209                  <xsl:text>&lt;/span&gt;</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>&lt;/td&gt;&lt;td&gt;</xsl:text>
 217  <xsl:value-of select="$CePoste/@mac" />
 218          <xsl:text>&lt;/td&gt;&lt;td&gt;</xsl:text>
 219  <xsl:value-of select="$CePoste/@ip" />
 220          <xsl:text>&lt;/td&gt;</xsl:text>
 221                  
 222      </xsl:when>
 223      <xsl:otherwise>
 224          <xsl:text>&lt;td colspan="5" style="font-size:10px;" &gt; Pas de rapport disponible. Attendez qu&amp;#39;un utilisateur s&amp;#39;authentifie sur ce poste. &lt;/td&gt;</xsl:text>
 225      </xsl:otherwise>
 226  </xsl:choose>
 227  <xsl:text>&lt;/tr&gt; &lt;!--','</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>,'--&gt;');&#xa;</xsl:text>
 250  
 251                          </xsl:for-each>
 252                      </script>
 253                  </xsl:otherwise>
 254              </xsl:choose>
 255          </xsl:element>
 256      </xsl:template>
 257  </xsl:stylesheet>


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