Modification de l'entrée par le soumissionaire


Cette page ne doit être appliquée que si le script vous demande de passer la migration manuelle skin.20240730.FORMS.FormSubmitterEdit

L'utilisateur qui a soumis au formulaire peut maintenant modifier sa soumission via le tableau de bord "Mes soumissions" (si le cycle de vie l'autorise)

Suite à cela, des changements sont à faire sur vos skins :

Pour le service "Mes soumissions" (pages/services/form-dashboard)

La structure du template common-service-body-nonempty-content-content a changé. La div <div data-ametys-dashboard-role="results"> est obligatoire !

<xsl:template name="common-service-body-nonempty-content-content">
        <div data-dashboard="{$uniqueId}">
            <div data-ametys-dashboard-role="results">
                <!-- Here will be form's dashbord in JS -->
            </div>
            <xsl:call-template name="loading-indicator"/>
        </div>
</xsl:template>

Maintenant si vous avez surchargé les template common-service-head-css et common-service-head-js pour ajouter vos propres css ou js, ils ont besoin de faire un seul appel à un template dasboard (respectivement dashboard-css et dashboard-js)

<xsl:template name="common-service-head-css">
      <xsl:call-template name="dashboard-css"/>
<!-- Vos propres css -->
</xsl:template>
<xsl:template name="common-service-head-js">
      <xsl:call-template name="dashboard-js"/>
<!-- Vos propres JS -->
</xsl:template>

La structure des templates dashboard-css et dashboard-js ont été modifiés et il est déconseillé de les surcharger !

<xsl:template name="dashboard-css">
<xsl:call-template name="select2-css" />
</xsl:template>
<xsl:template name="dashboard-js">
        <xsl:call-template name="select2-js"/>
        <xsl:call-template name="dashboard-helper-js" />
        <xsl:call-template name="dashboard-dialog-js" />
        <xsl:call-template name="dashboard-initialize-js"/>
</xsl:template>

Le template dashboard-initialize-js est celui qui fait appel à DashboardHelper.initialize. Il est maintenant déconseillé de le surcharger, il faut juste respecter le nom des méthodes JS en cas de surcharge

<xsl:template name="dashboard-initialize-js">
        <script type="text/javascript">
        $j().ready(function() {
            DashboardHelper.initialize("<xsl:value-of select="$uniqueId" />", {
                siteName: "<xsl:value-of select="$site"/>",
                lang: "<xsl:value-of select="$lang"/>",
                contextPath: "<xsl:value-of select="$site-uri-prefix"/>",
                entryUrl: "<xsl:value-of select="$get-entry-fields-url"/>",
                onShowDashboard: onShowDashboard_<xsl:value-of select="$uniqueId"/>,
                onShowEntry: onShowEntry_<xsl:value-of select="$uniqueId" />,
                onShowHistory: onShowHistory_<xsl:value-of select="$uniqueId" />,
                onShowError: onShowError_<xsl:value-of select="$uniqueId" />,
                onShowActionDialog: onShowActionDialog_<xsl:value-of select="$uniqueId" />,
                onHideActionDialog: onHideActionDialog_<xsl:value-of select="$uniqueId" />,
                dashboardView: "<xsl:value-of select="$dashboard-view"/>",
                zoneItemId: "<xsl:value-of select="ametys:zoneItemId()" />"
            });
        });
        </script>
</xsl:template>

Toute surcharge des boites de dialogue lors des actions (historique, voir les entrées, actions de workflow, ...) doit se trouver dans une template "dashboard-dialog-js".

Vous devez également déplacer toutes les méthodes JS concernant les actions, qui se trouvait dans le template admin-dashboard-js dans le template "dashboard-dialog-js" de pages/services/common/dashboard.
En effet les méthodes deviennent communes.

En cas de doute, référez-vous à l'issue JIRA https://issues.ametys.org/browse/FORMS-655 et notamment au commit associé à la charte intranet.

Pour le service "Tableau de bord" (pages/services/form-admin-dashboard)

si vous avez surchargé les template common-service-head-css et common-service-head-js pour ajouter vos propres css ou js, ils ont besoin de faire un seul appel à un template dasboard (respectivement admin-dashboard-css et admin-dashboard-js)

<xsl:template name="common-service-head-css">
  <xsl:call-template name="admin-dashboard-css"/>
<!-- Vos propres CSS -->
</xsl:template>
<xsl:template name="common-service-head-js">
  <xsl:call-template name="admin-dashboard-js"/>
   <!-- Vos propres JS -->
</xsl:template>

La structure des templates admin-dashboard-css et admin-dashboard-js ont été modifiés et il est déconseillé de les surcharger !

<xsl:template name="admin-dashboard-css">
        <xsl:call-template name="select2-css" />
</xsl:template>
<xsl:template name="admin-dashboard-js">
        <xsl:call-template name="select2-js" />
        <xsl:call-template name="dashboard-helper-js" />
        <xsl:call-template name="dashboard-dialog-js" />
        <xsl:call-template name="admin-dashboard-initialize-js" />
</xsl:template>

Le template admin-dashboard-initialize-js est celui qui fait appel à DashboardHelper.initializeAdmin. Il est maintenant déconseillé de le surcharger, il faut juste respecter le nom des méthodes JS en cas de surcharge

<xsl:template name="admin-dashboard-initialize-js">
        <script type="text/javascript">
    
        $j().ready(function() {
            DashboardHelper.initializeAdmin("<xsl:value-of select="$uniqueId" />", {
                siteName: "<xsl:value-of select="$site"/>",
                lang: "<xsl:value-of select="$lang"/>",
                contextPath: "<xsl:value-of select="$site-uri-prefix"/>",
                entryUrl: "<xsl:value-of select="$get-entry-fields-url"/>",
                onShowDashboard: onShowDashboard_<xsl:value-of select="$uniqueId"/>,
                onShowEntry: onShowEntry_<xsl:value-of select="$uniqueId" />,
                onShowHistory: onShowHistory_<xsl:value-of select="$uniqueId" />,
                onShowError: onShowError_<xsl:value-of select="$uniqueId" />,
                onShowActionDialog: onShowActionDialog_<xsl:value-of select="$uniqueId" />,
                onHideActionDialog: onHideActionDialog_<xsl:value-of select="$uniqueId" />,
                dashboardView: "<xsl:value-of select="$dashboard-view"/>",
                nbEntriesByPage: "<xsl:value-of select='$nb-entries-by-page' />",
                entriesSortOrder: "<xsl:value-of select='$entries-sort-order' />",
                zoneItemId: "<xsl:value-of select="ametys:zoneItemId()" />"
            });
        });
        
        </script>
</xsl:template>

Toute surcharge des boites de dialogue lors des actions (historique, voir les entrées, actions de workflow, ...) doit se trouver dans une template "dashboard-dialog-js", normalement déjà migré dans le précédent chapitre.

En cas de doute, référez-vous à l'issue JIRA https://issues.ametys.org/browse/FORMS-655 et notamment au commit associé à la charte intranet.

Retour en haut