Mode:

Compact lists

Showing:

Documentation
Parameters
Used by
References
Included modules
Included from
Source
Stylesheet ph_main.xsl
Included modules
Included from
Stylesheet version 1.0
Template dbg-var
Documentation

Description

 #H4# VARIABLES 
 #H2# TEMPLATE 
 #H4# TEMPLATE GEN 
Namespace No namespace
Used by
Template
References
Parameter
Variables
Import precedence 0
Source
<xsl:template name="dbg-var">
  <xsl:text>
</xsl:text>
  <xsl:choose>
    <xsl:when test="true() and contains($pDebug, '_var_')">
      <dbg-i_doc_type>
        <xsl:copy-of select="$i_doc_type"/>
      </dbg-i_doc_type>
      <dbg-date v="{$i_doc_date}"/>
      <dbg-vLang>
        <xsl:copy-of select="$vLang"/>
      </dbg-vLang>
      <xsl:if test="false()">
        <dbg-vLabels>
          <xsl:copy-of select="$vLabels"/>
        </dbg-vLabels>
      </xsl:if>
    </xsl:when>
  </xsl:choose>
  <xsl:text>
</xsl:text>
</xsl:template>
Template break
Documentation

Description

 Template générique pour les CR 
Namespace No namespace
Used by
References
Template
Parameters
QName Namespace Select
replace No namespace ' '
text No namespace
Import precedence 0
Source
<xsl:template name="break">
  <!-- Fonction pour preserver les CR dans le corps du XML (comments) -->
  <xsl:param name="text"/>
  <xsl:param name="replace" select="'
'"/>
  <xsl:choose>
    <xsl:when test="contains($text, $replace)">
      <xsl:value-of select="substring-before($text, $replace)"/>
      <br/>
      <xsl:call-template name="break">
        <xsl:with-param name="text" select="substring-after($text, $replace)"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$text"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template tplHtmlLike
Namespace No namespace
Used by
References
Template
Parameters
QName Namespace
aVal No namespace
Import precedence 0
Source
<xsl:template name="tplHtmlLike">
  <xsl:param name="aVal"/>
  <xsl:choose>
    <xsl:when test="0 < count($aVal/*)">
      <xsl:apply-templates select="$aVal"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:call-template name="break">
        <xsl:with-param name="text" select="$aVal/text()"/>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template ce:a | ce:abbr | ce:b | ce:br | ce:cite | ce:code | ce:dfn | ce:div | ce:em | ce:hr | ce:i | ce:ol | ce:pre | ce:q | ce:small | ce:span | ce:strong | ce:sub | ce:sup | ce:ul | ce:u
Namespace No namespace
Match ce:a | ce:abbr | ce:b | ce:br | ce:cite | ce:code | ce:dfn | ce:div | ce:em | ce:hr | ce:i | ce:ol | ce:pre | ce:q | ce:small | ce:span | ce:strong | ce:sub | ce:sup | ce:ul | ce:u
Mode #default
Import precedence 0
Source
<xsl:template match="ce:a | ce:abbr | ce:b | ce:br | ce:cite | ce:code | ce:dfn | ce:div | ce:em | ce:hr | ce:i | ce:ol | ce:pre | ce:q | ce:small | ce:span | ce:strong | ce:sub | ce:sup | ce:ul | ce:u">
  <!--cmt: htmlLike implies copy  -->
  <xsl:element name="{local-name()}">
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>
Template tplAddDocTypeHml5
Documentation

Description

 Template pour le début du fichier HTML et la gestion du HTML5 (sans copie du doctype!!)
Namespace No namespace
Used by
Template
References
Parameter
Import precedence 0
Source
<xsl:template name="tplAddDocTypeHml5">
  <xsl:variable name="optHml5Doctype">noHml5Doctype</xsl:variable>
  <xsl:choose>
    <xsl:when test="contains($pDebug, '_docty_') or 'noHml5Doctype' = $optHml5Doctype">
      <!-- no html5 doctype -->
    </xsl:when>
    <xsl:when test="'addHml5Doctype' != $optHml5Doctype">
      <xsl:text disable-output-escaping="yes"><!DOCTYPE html>
</xsl:text>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Template tplAddCeJs
Documentation

Description

 Template pour ajouter l'appel au script js previewHtml.js dans la balise  ?? (pas présent dans le fichier HTML) 
Namespace No namespace
References
Parameter
Import precedence 0
Source
<xsl:template name="tplAddCeJs">
  <xsl:variable name="optJs">noJs</xsl:variable>
  <xsl:choose>
    <xsl:when test="contains($pDebug, '_noJs_') or 'noJs' = $optJs">
      <!-- no Js -->
    </xsl:when>
    <xsl:when test="'localJs' = $optJs">
      <link crossorigin="anonymous" href="../js/previewHtml.js" rel="stylesheet"/>
    </xsl:when>
    <xsl:otherwise>
      <error msg="{concat('tplAddCeJs $pDebug (', $pDebug, ') $optJs (', $optJs, ')' )}"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template tplAddCeCss
Documentation

Description

 Template qui ajoute l'appel à la librairie previewHtml.css dans la balise <head> 
 Deux syntaxes selon en ligne (lien https) ou en local (c'est le $pDirPrefXsl qui selon web ou local qui ajoute le début de chemin, en ligne ou local)
Namespace No namespace
Used by
Template
References
Parameter
Import precedence 0
Source
<xsl:template name="tplAddCeCss">
  <xsl:variable name="optCss">webCss</xsl:variable>
  <meta content="width=device-width, initial-scale=1" name="viewport"/>
  <xsl:choose>
    <xsl:when test="'localCss' = $optCss">
      <link crossorigin="anonymous" href="{concat($pDirPrefXsl, '/previewHtml/css/previewHtml.css')}" rel="stylesheet"/>
    </xsl:when>
    <xsl:when test="'webCss' = $optCss">
      <link crossorigin="anonymous" href="{concat($pDirPrefXsl, '/previewHtml/css/previewHtml.css')}" rel="stylesheet"/>
    </xsl:when>
    <xsl:otherwise>
      <error msg="{concat('tplAddCeCss $optCss (', $optCss, ')' )}"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template tplAddBootstapCss
Documentation

Description

 Template qui ajoute l'appel à la librairie css Bootstrap dans la balise <head> 
 Deux syntaxes selon en ligne (lien https) ou en local (on recherche un chemin relatif) à l'aide du test web-v4 | local-v4 
Namespace No namespace
Used by
Template
References
Import precedence 0
Source
<xsl:template name="tplAddBootstapCss">
  <meta content="width=device-width, initial-scale=1" name="viewport"/>
  <xsl:choose>
    <xsl:when test="'web-v4' = $optBootstrap">
      <link crossorigin="anonymous" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" rel="stylesheet"/>
    </xsl:when>
    <xsl:when test="'local-v4' = $optBootstrap">
      <link crossorigin="anonymous" href="{concat($pDirBootStrap, '/css/bootstrap.min.css')}" rel="stylesheet"/>
    </xsl:when>
    <xsl:otherwise>
      <error msg="{concat('tplAddBootstapCss $optBootstrap (', $optBootstrap, ')' )}"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template tplAddBootstapJs
Documentation

Description

 Template qui ajoute l'appel au librairie js dans la balise <script> sous </footer> 
Namespace No namespace
References
Parameters
QName Namespace
aMyJs No namespace
Import precedence 0
Source
<xsl:template name="tplAddBootstapJs">
  <xsl:param name="aMyJs"/>
  <script crossorigin="anonymous" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" src="https://code.jquery.com/jquery-3.3.1.slim.min.js"/>
  <script crossorigin="anonymous" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"/>
  <xsl:copy-of select="$aMyJs"/>
  <xsl:choose>
    <xsl:when test="'web-v4' = $optBootstrap">
      <script crossorigin="anonymous" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js"/>
    </xsl:when>
    <xsl:when test="'local-v4' = $optBootstrap">
      <script src="{concat($pDirBootStrap, '/js/bootstrap.min.js')}"/>
    </xsl:when>
    <xsl:otherwise>
      <error msg="{concat('tplAddBootstapJs $optBootstrap (', $optBootstrap, ')' )}"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template tplDocHeader
Documentation

Description

 #H4# TEMPLATES ce_header 
 Template du tplDocHeader qui permet d'afficher tous le contenu des contextes ci-dessous 
Namespace No namespace
Used by
Template
References
Template
Import precedence 0
Source
<xsl:template name="tplDocHeader">
  <!-- apply mode mdHeader on 1 of all document header -->
  <xsl:choose>
    <!-- On test tous les contextes possible selon le type de document et on applique le mode mdHeader à tous ces contextes (voir quelle information est ajoutée et comment)-->
    <xsl:when test="      /ce:ClicEdit/ce:Request/ce:OrderRequest/ce:OrderRequestHeader      or /ce:ClicEdit/ce:Request/ce:OrderNoticeRequest/ce:OrderRequestHeader      or /ce:ClicEdit/ce:Request/ce:OrderRequestResponse      or /ce:ClicEdit/ce:Request/ce:StatusRequest      or /ce:ClicEdit/ce:Request/ce:StatusResponse      or /ce:ClicEdit/ce:Request/ce:InvoiceDetailRequest/ce:InvoiceDetailRequestHeader      or /ce:ClicEdit/ce:Request/ce:InvoiceDetailRequestResponse      or /ce:ClicEdit/ce:Request/ce:DeliveryRequest/ce:DeliveryRequestHeader      or /ce:ClicEdit/ce:Request/ce:DeliveryCallRequest/ce:DeliveryRequestHeader      or /ce:ClicEdit/ce:Request/ce:SupplyNoticeRequest/ce:DeliveryRequestHeader      or /ce:ClicEdit/ce:Request/ce:MovementRequest/ce:MovementRequestHeader      or /ce:ClicEdit/ce:Request/ce:PaperAppointment/ce:DeliveryRequestHeader      or /ce:ClicEdit/ce:Request/ce:SplitDeliveryRequest/ce:BookSupplyingHeader      or /ce:ClicEdit/ce:Request/ce:SplitDelivery/ce:BookSupplyingHeader      or /ce:ClicEdit/ce:Request/ce:DistributionAppointmentRequest/ce:BookSupplyingHeader      or /ce:ClicEdit/ce:Request/ce:DistributionAppointmentRequestResponse/ce:BookSupplyingHeader      or /ce:ClicEdit/ce:Request/ce:ShippingNotice/ce:BookSupplyingHeader      or /ce:ClicEdit/ce:Request/ce:ReceptionNotice/ce:BookSupplyingHeader      or /ce:ClicEdit/ce:Request/ce:PlanningRequest/ce:OrderRequestHeader">
      <xsl:apply-templates mode="mdHeader" select="       /ce:ClicEdit/ce:Request/ce:OrderRequest/ce:OrderRequestHeader |       /ce:ClicEdit/ce:Request/ce:OrderNoticeRequest/ce:OrderRequestHeader |       /ce:ClicEdit/ce:Request/ce:OrderRequestResponse |       /ce:ClicEdit/ce:Request/ce:StatusRequest |       /ce:ClicEdit/ce:Request/ce:StatusResponse |       /ce:ClicEdit/ce:Request/ce:InvoiceDetailRequest/ce:InvoiceDetailRequestHeader |       /ce:ClicEdit/ce:Request/ce:InvoiceDetailRequestResponse |       /ce:ClicEdit/ce:Request/ce:DeliveryRequest/ce:DeliveryRequestHeader |       /ce:ClicEdit/ce:Request/ce:DeliveryCallRequest/ce:DeliveryRequestHeader |       /ce:ClicEdit/ce:Request/ce:SupplyNoticeRequest/ce:DeliveryRequestHeader |       /ce:ClicEdit/ce:Request/ce:MovementRequest/ce:MovementRequestHeader |       /ce:ClicEdit/ce:Request/ce:PaperAppointment/ce:DeliveryRequestHeader |       /ce:ClicEdit/ce:Request/ce:SplitDeliveryRequest/ce:BookSupplyingHeader |       /ce:ClicEdit/ce:Request/ce:SplitDelivery/ce:BookSupplyingHeader |       /ce:ClicEdit/ce:Request/ce:DistributionAppointmentRequest/ce:BookSupplyingHeader |       /ce:ClicEdit/ce:Request/ce:DistributionAppointmentRequestResponse/ce:BookSupplyingHeader |       /ce:ClicEdit/ce:Request/ce:ShippingNotice/ce:BookSupplyingHeader |       /ce:ClicEdit/ce:Request/ce:ReceptionNotice/ce:BookSupplyingHeader |       /ce:ClicEdit/ce:Request/ce:PlanningRequest/ce:OrderRequestHeader"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:call-template name="tplEmptyCell"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template ce:OrderRequestHeader | ce:OrderRequestResponse | ce:StatusRequest | ce:StatusResponse | ce:InvoiceDetailRequestHeader | ce:InvoiceDetailRequestResponse | ce:DeliveryRequestHeader | ce:MovementRequestHeader | ce:BookSupplyingHeadermdHeader
Documentation

Description

 template avec un mode mdHeader (applicable plusieurs fois) 
Namespace No namespace
Match ce:OrderRequestHeader | ce:OrderRequestResponse | ce:StatusRequest | ce:StatusResponse | ce:InvoiceDetailRequestHeader | ce:InvoiceDetailRequestResponse | ce:DeliveryRequestHeader | ce:MovementRequestHeader | ce:BookSupplyingHeader
Mode mdHeader
References
Template
Variables
Import precedence 0
Source
<xsl:template match="    ce:OrderRequestHeader |    ce:OrderRequestResponse |    ce:StatusRequest |    ce:StatusResponse |    ce:InvoiceDetailRequestHeader |    ce:InvoiceDetailRequestResponse |    ce:DeliveryRequestHeader |    ce:MovementRequestHeader |    ce:BookSupplyingHeader" mode="mdHeader">
  <div>
    <!-- Affichage de type de document -->
    <xsl:call-template name="getSpanLabel">
      <xsl:with-param name="aVal" select="$i_doc_dt"/>
    </xsl:call-template>
    <!-- Affichage de la référence du document -->
    <xsl:value-of select="$i_doc_id"/>
  </div>
  <div class="ce_stDetail">
    <!-- cmt : all attribut except the one for the date -->
    <xsl:apply-templates mode="mdAttOpt" select="@*[local-name() != substring-before($i_doc_date, '.')]"/>
  </div>
  <div>
    <xsl:call-template name="getSpanLabel">
      <xsl:with-param name="aVal" select="substring-before($i_doc_date, '.')"/>
    </xsl:call-template>
    <xsl:value-of select="substring-after($i_doc_date, '.')"/>
  </div>
</xsl:template>
Template ce:From | ce:TomdHeader
Documentation

Description

 template avec un mode mdHeader (applicable plusieurs fois) 
Namespace No namespace
Match ce:From | ce:To
Mode mdHeader
Import precedence 0
Source
<xsl:template match="ce:From | ce:To" mode="mdHeader">
  <xsl:apply-templates mode="mdHeader" select="./ce:Correspondent/ce:Contact">
    <xsl:with-param name="aTag" select="local-name()"/>
    <xsl:with-param name="aIdentity" select="./ce:Credential[1]/ce:Identity[1]"/>
  </xsl:apply-templates>
</xsl:template>
Template ce:Contact | ce:Buyer | ce:BillTo | ce:ShipTo | ce:Supplier | ce:CarrierDetailsmdHeader
Documentation

Description

 template avec un mode mdHeader (applicable plusieurs fois) 
 Cmt_inlineBr: [niv]  'ce:Contact_type+' 
Namespace No namespace
Match ce:Contact | ce:Buyer | ce:BillTo | ce:ShipTo | ce:Supplier | ce:CarrierDetails
Mode mdHeader
References
Parameters
QName Namespace
aIdentity No namespace
aTag No namespace
Import precedence 0
Source
<xsl:template match="ce:Contact | ce:Buyer | ce:BillTo | ce:ShipTo | ce:Supplier | ce:CarrierDetails" mode="mdHeader">
  <xsl:param name="aTag"/>
  <xsl:param name="aIdentity"/>
  <xsl:variable name="iTag">
    <xsl:choose>
      <xsl:when test="'' != $aTag">
        <xsl:value-of select="$aTag"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="local-name()"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <!-- Application du mdHeader dans cette boucle autant de fois que l'on a de ce:Contact | ce:Buyer | ce:BillTo | ce:ShipTo | ce:Supplier | ce:CarrierDetails -->
  <div ce="Contact_type mdHeader">
    <xsl:call-template name="getSpanLabel">
      <xsl:with-param name="aVal" select="$iTag"/>
    </xsl:call-template>
    <span ce="display-6" class="">
      <xsl:value-of select="$aIdentity"/>
      <xsl:text> </xsl:text>
      <xsl:apply-templates select="ce:Name"/>
    </span>
    <br/>
    <xsl:apply-templates select="ce:Society | ce:Department"/>
    <xsl:apply-templates select="ce:PostalAddress">
      <xsl:with-param name="aName" select="ce:Name"/>
    </xsl:apply-templates>
    <xsl:apply-templates select="ce:Email"/>
    <xsl:call-template name="n33_CarrierIdentifier"/>
    <div class="ce_stDetail">
      <xsl:call-template name="nLoopExceptBr">
        <xsl:with-param name="aExcept">!Name!Society!Department!PostalAddress!Email!</xsl:with-param>
      </xsl:call-template>
    </div>
  </div>
</xsl:template>
Template tplContactList_multiCol
Namespace No namespace
Used by
References
Key
Template
Import precedence 0
Source
<xsl:template name="tplContactList_multiCol">
  <!-- cmt: liste contact by role -->
  <xsl:for-each select="/ce:ClicEdit//ce:Contact[generate-id() = generate-id(key('kContactByRole', @role)[1])]">
    <!-- for each key or key[1] -->
    <xsl:variable name="vLabelRole">
      <xsl:choose>
        <xsl:when test="'' != @role">
          <xsl:call-template name="getLabel">
            <xsl:with-param name="aList" select="'contact_role_list_type'"/>
            <xsl:with-param name="aVal" select="@role"/>
          </xsl:call-template>
        </xsl:when>
        <xsl:otherwise>
          <xsl:call-template name="getLabel">
            <xsl:with-param name="aVal">unknownRole</xsl:with-param>
          </xsl:call-template>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <p class="mt-4">
      <u>
        <xsl:value-of select="$vLabelRole"/>
      </u>
    </p>
    <xsl:for-each select="key('kContactByRole', @role)">
      <!-- for each node-set with the key1  -->
      <xsl:apply-templates mode="mdHeader" select="."/>
    </xsl:for-each>
  </xsl:for-each>
</xsl:template>
Template /ce:ClicEdit
Documentation

Description

 #H2# MAIN TEMPLATE 
 Ajout du template de départ pour le document HTML 
 soit la balise html, head et son contenu, body et son contenu (avec tous les paths et le texte), puis le footer 
 On recherhe donc le noeud root dans le fichier XML, soit ClicEdit 
Namespace No namespace
Match /ce:ClicEdit
Mode #default
References
Import precedence 0
Source
<xsl:template match="/ce:ClicEdit">
  <xsl:call-template name="tplAddDocTypeHml5"/>
  <html lang="{$vLang}">
    <head>
      <title>
        <xsl:text>Clic.EDIt - </xsl:text>
        <xsl:call-template name="getLabel">
          <xsl:with-param name="aVal" select="$i_doc_dt"/>
        </xsl:call-template>
        <xsl:text> - </xsl:text>
        <xsl:call-template name="getLabel">
          <xsl:with-param name="aVal" select="$i_doc_id"/>
        </xsl:call-template>
      </title>
      <meta charset="utf-8"/>
      <!-- Appel du template tplAddBootstapCss pour ajouter dans head de l'appel à la CSS de Bootstrap -->
      <xsl:call-template name="tplAddBootstapCss"/>
      <!-- Appel du template tplAddBootstapCss pour ajouter dans head de l'appel à la CSS de Clic.Edit -->
      <xsl:call-template name="tplAddCeCss"/>
    </head>
    <body class="ce_sbTopBarParent">
      <!-- Tous le contenu de la barre nav -->
      <nav class="shadow fixed-top navbar navbar-expan navbar-light bg-light rounded align-middle container">
        <xsl:choose>
          <!-- Si mode test, affichage d'un bouton jaune (class bootstrap bg-warning) dans la balise <a> -->
          <xsl:when test="'test' = $i_doc_mode">
            <a class="navbar-brand bg-warning px-4" href="http://www.clicedit.com/">Test Clic.EDIt</a>
          </xsl:when>
          <!-- sinon on affiche juste du texte dans la balise <a>-->
          <xsl:otherwise>
            <a class="navbar-brand" href="http://www.clicedit.com/">Clic.EDIt</a>
          </xsl:otherwise>
        </xsl:choose>
        <a class="nav-link disabled" href="#">
          <!-- On affiche le type de document (commande par exemple) -->
          <!-- le template getLabel est défini dans le fichier i18n_xsl.xsl -->
          <xsl:call-template name="getLabel">
            <xsl:with-param name="aVal" select="$i_doc_dt"/>
          </xsl:call-template>
          <!-- Ici on place un séparateur (deux points entre le nom du document (commande par exemple) et la référene de la commande -->
          <!-- Le séparateur est définie dans le fichier common_xsl.xsl (fin de fichier) -->
          <xsl:call-template name="getLabelSeprator"/>
          <!-- On affiche les données de la facture à partir du orderId="9999999R" (voir fichier i18n_xsl.xsl et ph_docVar.xsl) -->
          <xsl:value-of select="$i_doc_id"/>
        </a>
        <!-- On affiche la flèche avec le lien qui remonte en haut de page avec une ancre # -->
        <xsl:if test="'dt_ack' != $i_doc_dt">
          <a class="nav-item nav-link" href="#">
            <span aria-hidden="true"></span>
            <!-- On n'affiche pas ce message -->
            <span class="visually-hidden">(current)</span>
          </a>
        </xsl:if>
        <xsl:choose>
          <!-- Test si structure avec dt_OrderRequest ou dt_OrderNoticeRequest (document title (dt_) OrderRequest ou OrderNoticeRequest) -->
          <!-- On affiche les items -->
          <xsl:when test="'dt_OrderRequest' = $i_doc_dt or 'dt_OrderNoticeRequest' = $i_doc_dt">
            <a class="nav-item nav-link" href="#aItems">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'OrderRequest_Item'"/>
              </xsl:call-template>
            </a>
            <a class="nav-item nav-link" href="#aItemOut">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'ItemOut'"/>
              </xsl:call-template>
            </a>
          </xsl:when>
          <!-- Test sur titre avec dt_SplitDeliveryRequest | SplitDelivery | DistributionAppointmentRequest | DistributionAppointmentRequestResponse | ShippingNotice | ReceptionNotice (document title (dt_)) -->
          <!-- On affiche les items -->
          <xsl:when test="'dt_SplitDeliveryRequest' = $i_doc_dt or 'dt_SplitDelivery' = $i_doc_dt or 'dt_DistributionAppointmentRequest' = $i_doc_dt or 'dt_DistributionAppointmentRequestResponse' = $i_doc_dt or 'dt_ShippingNotice' = $i_doc_dt or 'dt_ReceptionNotice' = $i_doc_dt">
            <a class="nav-item nav-link" href="#aItems">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'OrderRequest_Item'"/>
              </xsl:call-template>
            </a>
            <a class="nav-item nav-link" href="#aItemOut">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'ItemOut'"/>
              </xsl:call-template>
            </a>
          </xsl:when>
          <!-- Test si structure avec InvoiceDetailRequest (document title (dt_) InvoiceDetailRequest) -->
          <!-- On affiche les livraisons -->
          <xsl:when test="'dt_InvoiceDetailRequest' = $i_doc_dt">
            <xsl:if test="/ce:ClicEdit/ce:Request[1]/ce:InvoiceDetailRequest[1]/ce:InvoiceDetailOrder[1]">
              <a class="nav-item nav-link" href="#aItems">
                <xsl:call-template name="getLabel">
                  <xsl:with-param name="aList" select="'nav'"/>
                  <xsl:with-param name="aVal" select="'InvoiceDetailOrder'"/>
                </xsl:call-template>
              </a>
            </xsl:if>
            <xsl:if test="/ce:ClicEdit/ce:Request[1]/ce:InvoiceDetailRequest[1]/ce:InvoiceDetailSummary[1]">
              <a class="nav-item nav-link" href="#aSummary">
                <xsl:call-template name="getLabel">
                  <xsl:with-param name="aList" select="'nav'"/>
                  <xsl:with-param name="aVal" select="'InvoiceDetailSummary'"/>
                </xsl:call-template>
              </a>
            </xsl:if>
          </xsl:when>
          <xsl:when test="'dt_PlanningRequest' = $i_doc_dt">
            <a class="nav-item nav-link" href="#aItems">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'OrderRequest_Item'"/>
              </xsl:call-template>
            </a>
            <a class="nav-item nav-link" href="#aItemOut">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'ItemOut'"/>
              </xsl:call-template>
            </a>
          </xsl:when>
          <xsl:when test="'dt_PlanningRequestResponse' = $i_doc_dt">
            <a class="nav-item nav-link" href="#aItems">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'OrderRequest_Item'"/>
              </xsl:call-template>
            </a>
            <a class="nav-item nav-link" href="#aItemOut">
              <xsl:call-template name="getLabel">
                <xsl:with-param name="aList" select="'nav'"/>
                <xsl:with-param name="aVal" select="'ItemOut'"/>
              </xsl:call-template>
            </a>
          </xsl:when>
        </xsl:choose>
        <!-- Affichage d'un bouton qui permet d'afficher ou pas le détail de certaines données (data-target=".ce_stDetail") et data-toggle="collapse"-->
        <!--<button aria-controls="main" aria-expanded="false"
						class="navbar btn btn-info btn-sm"
						data-target=".ce_stDetail" data-toggle="collapse"
						type="button">Détails</button>-->
      </nav>
      <!--Cmt DocHeader: * Logo, Commande, date,  From,  To -->
      <!-- On affiche le Header du document (commun à tous les documents (commande, facture, etc.) -->
      <xsl:for-each select="./ce:Header">
        <!-- On commence par le docHeader -->
        <div class="shadow container p-3 mb-3 rounded bg-light" id="docHeader">
          <div class="row justify-content-between">
            <!-- cmt: main docu.type  -->
            <div class="col-4" id="logo">
              <h1 class="text-uppercase">
                <!-- On affiche le type de document de la colonne 1 à 3 avec getLabel -->
                <xsl:call-template name="getLabel">
                  <xsl:with-param name="aVal" select="$i_doc_dt"/>
                </xsl:call-template>
              </h1>
            </div>
            <!-- cmt: docu.type + details  -->
            <!-- On affiche l'entête du dcoument (menu dépliable) sur 9 colonnes, soit 12 au total, le total que permet Bootstrap -->
            <div class="col-8">
              <xsl:call-template name="tplDocHeader"/>
            </div>
          </div>
          <!-- Cmt: [//] From + To -->
          <xsl:call-template name="fromTo_mdRow"/>
        </div>
      </xsl:for-each>
      <!-- Cmt: docBody one rule only match of the 7 requests type and 1 response/Status -->
      <xsl:apply-templates select="./ce:Response/ce:Status"/>
      <xsl:apply-templates select="./ce:Response/ce:Details"/>
      <xsl:choose>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:OrderRequest or /ce:ClicEdit/ce:Request/ce:PlanningRequest or /ce:ClicEdit/ce:Request/ce:OrderNoticeRequest">
          <xsl:call-template name="tplOrderRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:PlanningRequestResponse">
          <xsl:call-template name="tplPlanningRequestResponse"/>
        </xsl:when>
      </xsl:choose>
      <!-- @depracated
                	<xsl:call-template name="tplOrderRequest"/>
            	-->
      <xsl:apply-templates select="./ce:Request/ce:OrderRequestResponse"/>
      <xsl:call-template name="tplInvoiceDetailRequest"/>
      <xsl:apply-templates select="./ce:Request/ce:InvoiceDetailRequestResponse"/>
      <xsl:choose>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:DeliveryRequest">
          <xsl:call-template name="tplDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:DeliveryCallRequest">
          <xsl:call-template name="tplDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:PaperAppointment">
          <xsl:call-template name="tplDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:SupplyNoticeRequest">
          <xsl:call-template name="tplSupplyNoticeRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:SplitDeliveryRequest">
          <xsl:call-template name="tplSplitDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:SplitDelivery">
          <xsl:call-template name="tplSplitDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:DistributionAppointmentRequest">
          <xsl:call-template name="tplSplitDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:DistributionAppointmentRequestResponse">
          <xsl:call-template name="tplSplitDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:ShippingNotice">
          <xsl:call-template name="tplSplitDeliveryRequest"/>
        </xsl:when>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:ReceptionNotice">
          <xsl:call-template name="tplSplitDeliveryRequest"/>
        </xsl:when>
      </xsl:choose>
      <xsl:choose>
        <xsl:when test="/ce:ClicEdit/ce:Request/ce:PlanningRequestResponse">
          <xsl:call-template name="tplOrderRequest"/>
        </xsl:when>
      </xsl:choose>
      <xsl:call-template name="tplStatusRequest"/>
      <xsl:call-template name="tplMovementRequest"/>
      <!-- Cmt: DocEnd-->
      <div class="container border-bottom" id="borderEnd">
        <div class="row">
          <div class="col-12"/>
        </div>
      </div>
      <footer class="text-muted pt-4">
        <div class="shadow p-3 navbar navbar-expan navbar-light bg-light rounded align-middle container">
          <div class="row bg-light">
            <div class="col-4 align-middle">
              <img alt="" crossorigin="anonymous" id="responsive-image" src="{concat($pDirImg, '/logo_clicedit_footer.png')}"/>
            </div>
            <div class="col-4 align-middle mt-4">
              <p>Designed by Clic.EDIt</p>
            </div>
            <div class="col-4"/>
          </div>
        </div>
      </footer>
      <!-- Appel du template tplAddBootstapJs après le footer -->
      <!--<xsl:call-template name="tplAddBootstapJs"/> -->
      <!-- Appel du template tplAddCeJs après le footer -->
      <!--<xsl:call-template name="tplAddCeJs"/> -->
      <xsl:call-template name="dbg-var"/>
    </body>
  </html>
</xsl:template>
Template ce:InvoiceInstructions
Documentation

Description

 #H2# DEFAULT TEMPLATES 
 Cmt : 'apply on content'
Namespace No namespace
Match ce:InvoiceInstructions
Mode #default
Import precedence 0
Source
<xsl:template match="ce:InvoiceInstructions">
  <xsl:apply-templates/>
</xsl:template>
Template *mdHeader
Namespace No namespace
Match *
Mode mdHeader
Import precedence 0
Source
<xsl:template match="*" mode="mdHeader">
  <xsl:apply-templates mode="mdNYI" select="."/>
</xsl:template>
Template *mdInlineBr
Namespace No namespace
Match *
Mode mdInlineBr
References
Parameter
Import precedence 0
Source
<xsl:template match="*" mode="mdInlineBr">
  <xsl:choose>
    <xsl:when test="contains($pDebug, '_mode_')">
      <xsl:apply-templates mode="mdNYI" select="."/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates select="."/>
      <br/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Template *mdRow
Namespace No namespace
Match *
Mode mdRow
Import precedence 0
Source
<xsl:template match="*" mode="mdRow">
  <xsl:apply-templates mode="mdNYI" select="."/>
</xsl:template>
Template *mdTxt
Namespace No namespace
Match *
Mode mdTxt
Import precedence 0
Source
<xsl:template match="*" mode="mdTxt">
  <xsl:apply-templates mode="mdNYI" select="."/>
</xsl:template>
Template *
Namespace No namespace
Match *
Mode #default
Import precedence 0
Source
<xsl:template match="*">
  <xsl:apply-templates mode="mdNYI" select="."/>
</xsl:template>
Parameter pDebug
Documentation

Description

 the 'xsl:output/@method' is define in the parent xsl 
 #H2# PARAMETERS 
 $pDebug : all debug values as : _noJs_  _var_ ...
Namespace No namespace
Used by
Source
<xsl:param name="pDebug"/>
Parameter pDirPrefXsl
Namespace No namespace
Used by
Template
Variables
References
Variable
Source
<xsl:param name="pDirPrefXsl">
  <xsl:choose>
    <xsl:when test="'web' = $optResources">https://clicedit.github.io/ce_public/xsl</xsl:when>
    <xsl:otherwise>../../xsl</xsl:otherwise>
  </xsl:choose>
</xsl:param>
Variable optResources
Documentation

Description

 #H4# RESOURCES 
Cmt: common resouces in "xsl/lib" 
 $pDirPrefXsl : prefix path to 'Schema/xsl' dir  
 $optResources contient le début de l'adresse du site puis on ajoute les documents que l'on veut derrière avec la concaténation avec pDirImg et pDirBootStrap 
Namespace No namespace
Used by
Parameter
Source
<xsl:variable name="optResources">web</xsl:variable>
Variable pDirImg
Documentation

Description

 Définition de la variable pDirImg qui est une concaténation de $pDirPrefXsl avec '/lib/img' 
Namespace No namespace
Select concat($pDirPrefXsl, '/lib/img')
Used by
Template
References
Parameter
Source
<xsl:variable name="pDirImg" select="concat($pDirPrefXsl, '/lib/img')"/>
Variable optBootstrap
Documentation

Description

 Définition de la variable web-v4 qui est ensuite testé pour afficher les librairies JS ou CSS 
Namespace No namespace
Used by
Source
<xsl:variable name="optBootstrap">web-v4</xsl:variable>
Variable pDirBootStrap
Documentation

Description

 Si on passe en local-v4, la CSS est celle en locale et l'affichage n'est plus correct, donc a priori, on reste en web-v4, l'appel à la CSS renvoi vers une adresse erronée 
<xsl:variable name="optBootstrap">local-v4</xsl:variable>
 Définition de la variable pDirBootStrap qui est une concaténation de $pDirPrefXsl avec '/lib/bootstrap-5.1.3-dist' 
Namespace No namespace
Select concat($pDirPrefXsl, '/lib/bootstrap-5.1.3-dist')
Used by
References
Parameter
Source
<xsl:variable name="pDirBootStrap" select="concat($pDirPrefXsl, '/lib/bootstrap-5.1.3-dist')"/>
Key kContactByRole
Documentation

Description

 #H4# KEY FOR SORT 
Namespace No namespace
Match /ce:ClicEdit//ce:Contact
Use @role
Used by
Source
<xsl:key match="/ce:ClicEdit//ce:Contact" name="kContactByRole" use="@role"/>
Decimal format euro
Documentation

Description

 [test] 
    <xsl:include href="./sub_xsl/ph_main.xsl"/>
    <xsl:include href="./sub_xsl/ph_main.i.min.xsl"/>
    <xsl:include href="../_test.ign.i18n/test_browser_xsl.xsl"/>
    
    ****************************************************
    *                                                  *
	*                    CLIC.EDIT                     *
	*                                                  *
    *            http://www.clicedit.com/              *
    *                                                  *
    ****************************************************
 
#fic# 'ce/Schema/xsl/lib_xsl/ph_main.xsl'
#input/namespace# 'http://www.clicedit.org/schema_1.0'
#aim# 'main Preview Html Xsl' convert "Clic.Edit xml instance" to an HTML document'
#usage# to be include for 'output/@method'
#namespace# 
#limitation for browser
* xslt v1.0
* no xinclude
 
#history# (see also github comment)
YYYYMMJJ VER  COMMENT
201907   V.O.
 some stylesheet attibutes :
xpath-default-namespace="http://www.clicedit.org/schema_1.0"
xmlns:i_f="http://internal/functions"
xmlns:i_d="http://internal/data"
 syntaxe
* Cmt: before element 
* cmt: inside element
* Cmt_value : value
* Cmt_inline : label + value + unit?
* Cmt_inlineBr : Cmt_inline + <br>
* Cmt_inlineDiv : Cmt_inline + <div>
* Cmt_inlineLi : Cmt_inline + "List" 
* Cmt_Row : boobstrap row (12 part)     
    
Namespace No namespace
Decimal format properties
decimal-separator grouping-separator
,
Source
<xsl:decimal-format decimal-separator="," grouping-separator=" " name="euro"/>