cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Salvetti <salvetti.m...@gmail.com>
Subject Re: Ajaxeries
Date Mon, 07 Nov 2005 11:01:19 GMT
Je vais essayer de coller le code de la sitemap qui rentre dans l'affichage
du form, tu verras peut etre mieux quel est mon probleme, car je ne vois
vraiment pas comment rappeler la continuation sans passer par l'aggregation.


Dans la sitemap :

La resource d'aggregation :

<map:resource name="composite">
<map:aggregate element="site" label="xml">
<map:part src="cocoon:/get-login"/>
<map:part src="cocoon:/book-{URI}.xml"/>
<map:part src="cocoon:/body-{URI}.xml"/>
</map:aggregate>
<map:transform src="stylesheets/site2xhtml.xsl">
<map:parameter name="resource" value="{request-param:resource}"/>
<map:parameter name="requestURI" value="{request-uri:requestURI}"/>
<map:parameter name="page" value="{URI}"/>
<map:parameter name="use-request-parameters" value="true"/>
</map:transform>
<map:select type="parameter">
<map:parameter name="parameter-selector-test" value="{form}"/>
<map:when test="true">
<map:transform src="resources/forms-samples-styling.xsl"/>
</map:when>
</map:select>
<map:transform type="i18n">
<map:parameter name="locale" value="{locale}"/>
</map:transform>
<map:select type="ajax-request">
<map:when test="true">
<map:serialize type="xml"/>
</map:when>
<map:otherwise>
<map:transform type="omitns"/>
<map:serialize type="html"/>
</map:otherwise>
</map:select>
<map:serialize type="xml"/>
</map:resource>

La resource form :
<map:resource name="form">
<map:generate type="jx" src="{form-template}"/>
<map:transform type="browser-update"/>
<map:transform type="i18n">
<map:parameter name="locale" value="{locale}"/>
</map:transform>
<map:transform src="resources/forms-samples-styling.xsl"/>
<map:transform type="i18n">
<map:parameter name="locale" value="{locale}"/>
</map:transform>
<map:select type="ajax-request">
<map:when test="true">
<map:serialize type="xml"/>
</map:when>
<map:otherwise>
<map:transform type="omitns"/>
<map:serialize type="html"/>
</map:otherwise>
</map:select>
</map:resource>

La resource d'appel de la fonction flowscript :

<map:resource name="view-cart">
<map:call function="form_cart2xml">
<map:parameter name="definitionURI" value="forms/cart-definition.xml"/>
<map:parameter name="bindingURI" value="forms/cart-binding.xml"/>
<map:parameter name="displayPipeline" value="view-cart-{suffix}.html"/>
</map:call>
</map:resource>

Le matcher de continuation :

<map:match pattern="**continue.html">
<map:act type="auth-loggedIn">
<map:parameter name="handler" value="cfmhandler"/>
<map:act type="auth-protect">
<map:parameter name="handler" value="cfmhandler"/>
<map:call continuation="{request-param:continuation-id}"/>
</map:act>
</map:act>
<map:call continuation="{request-param:continuation-id}"/>
</map:match>

Le matcher de la page du form sur lequel pointe la continuation
(display-pipeline ds la fct flowscript) :

<map:match pattern="view-cart-*.html">
<map:call resource="composite">
<map:parameter name="URI" value="view-cart-{1}"/>
<map:parameter name="locale" value="{../locale}"/>
<map:parameter name="form" value="true"/>
</map:call>
</map:match>

Le matcher du contenu de la page formulaire :

<map:match pattern="body-view-cart-*.xml">
<map:aggregate element="form_document">
<map:part src="xdocs/forms/cart.xml"/>
<map:part src="cocoon:/cart.form"/>
</map:aggregate>
<map:transform src="stylesheets/form_document2document.xsl"/>
<map:transform src="stylesheets/document2html.xsl"/>
<map:transform type="i18n">
<map:parameter name="locale" value="{../locale}"/>
</map:transform>
<map:transform src="resources/forms-samples-styling.xsl"/>

<map:serialize type="xml"/>
</map:match>

Le matcher interne commun a tous les formulaires :

<map:match pattern="*.form">
<map:call resource="form">
<map:parameter name="form-template" value="forms/{1}-template.xml"/>
<map:parameter name="action" value="{1}"/>
<map:parameter name="locale" value="{../locale}"/>
</map:call>
</map:match>

Dans ma template j'ai ça :
<ft:form-template action="continue.html" method="post" ajax="true"
ajax-action="??">

Et le probleme est donc que continue.html appele la continuation, qui
relance showForm(displayPipeline), et ce displayPipeline doit correspondre à
l'aggregation pour le premier appel (creation de la continuation) puis à un
autre pipeline (oui mais lequel et comment changer la valeur de
displayPipeline pendant l'execution de showForm ?) pour les appels suivants.

Est-ce que j'ai bon ?

Marc


Le 07/11/05, Marc Salvetti <salvetti.marc@gmail.com> a écrit :
>
> Dans ajax-action, tu dois mettre l'action qui rappelle la continuation,
> > qui elle même, après traitement de la form, rappelera le pipeline
> > d'affichage.
> >
> > Sylvain
>
>
> Désolé, mais là je suis tout perdu :(
> L'action qui est actuellement dans le parametre action est l'action qui
> appelle la continuation.
> Donc je comprend pas ce que ça va changer de mettre la meme action dans
> ajax-action ?
>
> Marc
>



Le 07/11/05, Sylvain Wallez <sylvain@apache.org> a écrit :
>
> Marc Salvetti wrote:
> >> Dans ajax-action, tu dois mettre l'action qui rappelle la continuation,
> >> qui elle même, après traitement de la form, rappelera le pipeline
> >> d'affichage.
> >>
> >> Sylvain
> >>
> >
> >
> > Désolé, mais là je suis tout perdu :(
> > L'action qui est actuellement dans le parametre action est l'action qui
> > appelle la continuation.
> > Donc je comprend pas ce que ça va changer de mettre la meme action dans
> > ajax-action ?
> >
>
> Où se trouve ton aggrégation? Est-elle dans le pipeline appelé par
> form.showForm()? Si oui, c'est là qu'est le problème: les requêtes Ajax
> doivent rappeler la continuation, mais ne doivent pas passer par
> l'aggrégation.
>
> Sylvain
>
> --
> Sylvain Wallez Anyware Technologies
> http://people.apache.org/~sylvain http://www.anyware-tech.com
> Apache Software Foundation Member Research & Technology Director
>
>
> ---------------------------------------------------------------------
> 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
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message