cancel
Showing results for 
Search instead for 
Did you mean: 

Appel d'un webscript depuis le web-client-config

christophes
Champ in-the-making
Champ in-the-making
Bonjour,

Je cherche à appeler un webscript depuis une action codée dans le web-client-config-custom.xml. Le problème est au niveau du passage de paramètres. En effet, j'aimerais passer 2 arguments (dans un premier temps) qui seraient l'id du document et un argument de type entier qui définirait l'action à réaliser (dans ce cas-ci, l'ajout ou la suppression d'un aspect).

Voici mon code actuel qui envoie déjà le node id du document:
<config>
      <actions>
         <action id="add_aspect">
               <permissions>
                  <permission allow="true">Write</permission>
               </permissions>
            <label>Ajouter un aspect</label>
            <image>/images/icons/add.gif</image>
            <onclick>window.open('/alfresco/wcservice/nom_webscript?id=#{actionContext.id}'); return false;</onclick>
            <params>
               <param name="id">#{actionContext.id}</param>
            </params>
         </action>

         <action-group id="doc_details_actions">
            <action idref="add_aspect" />
         </action-group>
      </actions>
   </config>
Le problème est : comment ajouter le deuxième argument?

J'ai essayé :
            <onclick>window.open('/alfresco/wcservice/nom_webscript?id=#{actionContext.id}&type=1'); return false;</onclick>
mais ça ne fonctionne pas et dans les log, j'ai une erreur qui me dit qu'Alfresco n'arrive pas à parser le fichier xml…

Merci d'avance,

Christophe
6 REPLIES 6

rguinot
Confirmed Champ
Confirmed Champ
Cela est normal , '&' est une entité en XML. Vous devez l'échapper en utilsant &amp; , ou bien placer votre URL dans un bloc CDATA.

christophes
Champ in-the-making
Champ in-the-making
Ok merci, ça marche. J'avais déjà testé cette solution mais apparemment l'erreur que j'avais eue à ce moment-là dans mon webscript était due à autre chose.

Christophe

christophes
Champ in-the-making
Champ in-the-making
Bonjour,

Je réouvre ce sujet car j'ai remarqué un truc bizarre avec mon action : selon l'endroit où je l'appelle, elle fonctionne ou pas. J'ai défini l'action dans les groupes d'actions "document_browse" et "doc_details_actions". Dans le premier cas, j'ai bien mon webscript qui s'affiche mais pas dans le second. En regardant la source HTML, j'ai deux appels différents mais je ne sais pas pourquoi.

Voici le code de l'action :
<!– Launch Add Aspect Dialog –>
   <config>
      <actions>
         <action id="add_aspect">
               <permissions>
                  <permission allow="true">Write</permission>
               </permissions>
            <label>Ajouter un aspect</label>
            <image>/images/icons/add.gif</image>
            <onclick>window.open('/alfresco/wcservice/nom_webscript?id=#{actionContext.id}&amp;t=1','_blank','resizable=no, location=no, top=100, left=300, width=600, height=200, menubar=no, status=no, scrollbars=no'); return false;</onclick>
            <params>
               <param name="id">#{actionContext.id}</param>
            </params>
         </action>

         <action-group id="document_browse">
            <action idref="add_aspect" />
         </action-group>
         <action-group id="doc_details_actions">
            <action idref="add_aspect" />
         </action-group>
      </actions>
   </config>
et voici le code généré dans l'interface WEB :
Dans document_browse :

<a href="#" onclick="window.open('/alfresco/wcservice/nom_webscript?id=31ef0f57-1c1e-11dd-938e-fd0c80463189&amp;t=2','_blank','resizable=no, location=no, top=100, left=300, width=600, height=200, menubar=no, status=no, scrollbars=no'); return false;" id="nom_webscriptid_140" class="inlineAction">…</a>

Dans doc_details_actions :

<a href="#" onclick="document.forms['document-details']['document-details:act'].value='document-details:nom_webscriptid_543';document.forms['document-details']['id'].value='31ef0f57-1c1e-11dd-938e-fd0c80463189';document.forms['document-details'].submit();return false;" style="white-space: nowrap;">…</a>
Si quelqu'un a une explication, je suis preneur.

Merci d'avance,

Christophe

christophes
Champ in-the-making
Champ in-the-making
Personne n'a une idée?

clementus
Champ in-the-making
Champ in-the-making
Salut Christophe,
Je rencontre le même souci. As tu trouvé une explication à cette différence de comportement ?

clementus
Champ in-the-making
Champ in-the-making
Christophe,
le pb est identifié et résolu pour ma part.
La classe a overrider est : ActionLinkRenderer.java

La génération des menus verticaux et horizontaux n'est pas générée de la même façon.
Dans le menu vertical, la condition sur la présence d'une action sur le onclick a été oubliée par Alfresco.