2017-09-27 9 views
0

Salut, j'ai écrit une extension de forme de ressorts de printemps pour le logiciel alfresco, dans la liste déroulante spécifique où je veux mettre la valeur de façon dynamique en lisant la valeur à partir alfresco ou un fichier de propriétés ici le myaction-share-amp-actions-extension-modules:Comment configurer la forme de surf printanier Alfresco partager avec des variables dinamic à partir d'un fichier de propriétés

<extension> 
................................................................. 
<config evaluator="string-compare" condition="signed"> 
     <forms> 
      <form> 
       <field-visibility> 
         ............................................ 
         <show id="my_form_sign_firma.tipo"/> 
         ...................................  
       </field-visibility> 
       <appearance> 
..................... 



<field id="my_form_sign_firma.tipo" label-id="property.form.sign.my_form_sign_firma.tipo"> 
<control template="/org/alfresco/components/form/controls/selectone.ftl"> 
<control-param name="options">${value1},${value2},${value3}</control-param> 
</control> 
</field>  
.................... 

ou dans d'autres

.................... 

<field id="my_form_sign_firma.tipo" label-id="property.form.sign.my_form_sign_firma.tipo"> 
<control-param name="options">${valueX}</control-param> 
<!-- where valueX= "value1,value2,value3" --> 
</control> 
</field> 
.................... 
         </appearance> 
        </form> 
       </forms> 
      </config> 

........................................... 

</extension> 

et le haricot pour la charge des propriétés est défini sur le fichier share-config.xml:

<bean id="configurazioniBeanCompletoLocale" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
<property name="locations"> 
<list> 
<value>classpath*:it/test/properties/myalfresco.properties</value> 
</list> 
</property> 
<property name="ignoreResourceNotFound" value="true" /> 
<property name="ignoreUnresolvablePlaceholders" value="true" /> 
<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> 
<property name="propertiesPersister"> 
<bean class="org.alfresco.config.AlfrescoPropertiesPersister" /> 
</property> 
</bean> 

Et le fichier de propriétés est défini sur le fichier share-config.xml:

classpath*:it/test/properties/myalfresco.properties 

Et le fichier myalfresco.properties contient:

value1=hello 
value2=hi 
value3=goodbye 
valueX=hello,hi,goodbye 

en remplacement je peux accepter d'utiliser la propriété d'un fichier spécifique sur alfresco si quelqu'un sait comment faire par exemple:

Repository/Data Dictionary/configuration.txt avec des propriétés d'un aspect « Configurator » propriétés:

value1=hello 
value2=hi 
value3=goodbye 
valueX=hello,hi,goodbye 

Il y a une façon de faire un de ces?

MISE À JOUR:

Je vais maintenant essayer d'écrire sur le papier une solution complète sur ce lien: https://community.alfresco.com/thread/233246-how-setup-spring-surf-form-with-dinamic-variables-from-a-properties-file

Ici vous pouvez trouver un autre exemple similaire à ce cas: https://community.alfresco.com/thread/209460-dynamic-selectone-in-alfresco-share

Répondre

1

Comme l'a dit Vikash, je vous suggère de créer votre contrôle de formulaire personnalisé (le mettre dans le dossier src/main/amp/config/alfresco/web-extension/site-webscripts/org /alfresco /components/form/controls/mycontrol.ftl). A l'intérieur, vous appelez un webscript personnalisé que vous avez créé (qui va obtenir les valeurs de votre fichier). C'est la partie triviale, je ne ressens pas le besoin de vous montrer un exemple.

Vous pouvez regarder ce (simplifié) par exemple pour la partie FTL:

... 
<select id="${fieldHtmlId}" name="${field.name}" tabindex="0" 
    <#if field.description??>title="${field.description}"</#if> 
</select> 
... 
<script type="text/javascript">//<![CDATA[ 
YAHOO.util.Event.onContentReady("${fieldHtmlId}", function() 
{ 
    Alfresco.util.Ajax.jsonGet({ 
     url: encodeURI(Alfresco.constants.PROXY_URI + '/myserviceuri'), 
     successCallback: 
     { 
      fn: function loadWebscript_successCallback(response, config) 
      { 
       var obj = eval('(' + response.serverResponse.responseText + ')'); 
       if (obj) 
       { 
        for (i = 0; i < obj.length; i++) { 
          var newOption = document.createElement('option'); 
          newOption.value = obj[i].id; 
          newOption.text = obj[i].name; 
          YAHOO.util.Dom.get("${fieldHtmlId}").options.add(newOption); 
        } 
       } 
      } 
     } 
    }); 

}, this); 
//]]></script> 

Vous pouvez ensuite l'utiliser de cette façon:

<field id="my_form_sign_firma.tipo" label-id="property.form.sign.my_form_sign_firma.tipo"> 
<control template="/org/alfresco/components/form/controls/mycontrol.ftl"> 
</control> 
</field> 
1

Vous pouvez utiliser votre fichier ftl personnalisé comme contrôle de formulaire

Donnez le chemin du modèle à votre fichier ftl personnalisé sous forme de partage

<form> 
     <appearance> 
      <field id="cm:name"> 
       <control template="/my-textfield.ftl" /> 
      </field> 
     </appearance> 
     </form> 

Conseiller cet Documentation

+0

Oui, je l'ai essayé, mais puis-je récupérer la fichier de propriétés du fichier .ftl? Je n'ai pas trouvé de code javascript pour récupérer les propriétés de mon template.ftl, si vous pouvez me montrer un exemple qui peut être la solution parfaite. – 4535992