cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Salvetti <m...@notremanou.net>
Subject Re: cforms / JX generator
Date Tue, 14 Jun 2005 09:57:02 GMT

>
> Je ne comprends pas bien le "jx generator ne transmet pas directement 
> les événements" (ce qu'il fait bien) et la relation avec l'attribut 
> action.

Ce qui me fait dire ca, c'est que si je fait un pipe test
<map:match pattern="test">
    <map:generate type="jx" src="template.xml"/>
    <map:serialize type="xml"/>

et que j'appelle ce pipe dans le navigateur, seul la racine du fichier 
est affichee.
mon fichier template commence comme ca. peut etre que j'ai oublié qq chose.

<form xmlns:ft="http://apache.org/cocoon/forms/1.0#template"
        xmlns:fi="http://apache.org/cocoon/forms/1.0#instance"
        xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
        xmlns:i18n="http://apache.org/cocoon/i18n/2.1">

    <jx:import 
uri="resource://org/apache/cocoon/forms/generation/jx-macros.xml"/>

    <ft:form-template 
action="cart.continue?continuation=#{$cocoon/continuation/id}" 
method="POST">


> Pour info, mon approche sur cet attribut a évolué au cours du temps:
>
> - au début, je faisais un action="" (on renvoie à la même URL) avec un 
> sélecteur sur la méthode http (get/post) pour choisir entre le call 
> function ou le call continuation. Très pratique en apparence (on ne se 
> soucie plus de l'url) cette méthode a montré ses limites le jour où 
> l'URL appelée avait un paramètre qui existait aussi dans la form, 
> aboutissant à avoir plusieurs valeurs pour ce champ.
>
> - maintenant, j'ai action="continue" ou action="continue.html". Ca 
> résoud le problème précédent en conservant le fait de ne pas se 
> préoccuper de l'URL où le formulaire est posté.
>
Jusqu'ici j'avais ca :

    <ft:form-template action="#{$cocoon/continuation/id}" method="POST">
et une template xsl apres le generateur :

    <xsl:param name="action"/>
    <xsl:template match="ft:form-template">
        <xsl:copy>
            <xsl:copy-of select="@enctype"/>
            <xsl:attribute name="action"><xsl:value-of 
select="$action"/>?continuation=<xsl:value-of 
select="@action"/></xsl:attribute>
            <xsl:copy-of select="./*"/>
        </xsl:copy>
    </xsl:template>

et je passais le nom du form par la sitemap, mais apparement ca ne 
marche pas avec jx

> Bien sûr ! Les repeater-action et row-action, tout comme les actions 
> normales, peuvent avoir des handler <on-action>. Voir par exemple 
> exemples "dynamicrepater.xml". Et depuis un handler en javascript, tu 
> peux appeler non seulement du code Java, mais aussi les fonctions du 
> flowscript qui a affiché la form.
>

Ca y est, j'ai crée le handler, ca a l'air de fonctionner, par contre je 
n'arrive pas a recuperer l'id de la ligne supprimée dans ma fonction. je 
suppose que ca commence par event.getSource().... mais si l'evenement 
est envoyé par le repeater, comment connaitre la ligne ?
Et y a t'il une possibilité d'avoir un evenement après la suppression ? 
le but de la fonction est de recalculer la facture a partir du caddie, 
j'ai donc besoin de calculer ca apres que la ligne ai été suprimée, .ou 
alors la supprimer manuellement dans le handler avant de lancer le 
calcul, mais je me demande comment reagira le binding a la sortie de 
l'evenement, quand il devra supprimer la ligne ?

Merci encore.

Marc

	

	
		
___________________________________________________________________________ 
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger 
Téléchargez cette version sur http://fr.messenger.yahoo.com

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message