Bonjour!Bon çà fais maintenant 3 jours que je tourne...

cancel
Showing results for 
Search instead for 
Did you mean: 
noobfresco
Member II

Bonjour!Bon çà fais maintenant 3 jours que je tourne...

Bonjour!

Bon çà fais maintenant 3 jours que je tourne en rond et j'arrive pas a faire ce que je souhaiterai, malgré tous les exemples vu, lu, fais et refais du forum et des wiki Smiley Sad Dur dur d'être un débutant !

Ce que je voudrais c'est ajouter une/plusieurs propriétés à un contenu, ou un espace. En plus du nom, il y aurait un champs "propriété n°1", "propriété n°2", "propriété n°3"…  J'ai essayé de finir l'exemple http://wiki.alfresco.com/wiki/Step-By-Step:_Creating_A_Custom_Model, mais la config du web-client-config-custom.xml ne s'y trouve pas. J'ai créé un mageModel.xml et j'y ai collé le code indiqué dans la page. J'ai créé un mageModel-context.xml avec le code suivant dedans:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'
'http://www.springframework.org/dtd/spring-beans.dtd'>
   <beans>
   <!–registration of models–>
      <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
         <property name="models">
            <list>
               <value>alfresco/extension/mageModel.xml</value>
            </list>
         </property>
      </bean>
   </beans>
Et un peu au feeling j'avoue, car pas vraiment le choix, j'ai mis dans le web-client-config-custom.xml:
 <config evaluator="string-compare" condition="Content Wizards">
      <content-types>
         <type name="mage:meta" />
      </content-types>
   </config>
  
  
   <config evaluator="aspect-name" condition="mage:meta">
   <property-sheet>
      <show-property name="mage:projectName"/>
      <show-property name="mage:projectDescription"/>
      <show-property name="mage:projectCreationDate"/>
      <show-property name="mage:patientId"/>
      <show-property name="mage:patientAge"/>
   </property-sheet>
   </config>
  
    <config evaluator="string-compare" condition="Advanced Search">
      <advanced-search>
         <content-types>
            <type name="mage:meta" />
         </content-types>
         <custom-properties>
            <meta-data type="mage:meta" property="mage:projectName" />
            <meta-data type="mage:meta" property="mage:projectDescription" />
            <meta-data type="mage:meta" property="mage:projectCreationDate" />
            <meta-data type="mage:meta" property="mage:patientId" />
            <meta-data type="mage:meta" property="mage:patientAge" />
         </custom-properties>
      </advanced-search>
   </config>
Pas de prise en compte quand je clique sur Nouveau Contenu, rien non plus de visible dans Recherche avancée. Ici d'ailleurs dans les options de recherche avancée, j'ai l'erreur:
javax.faces.FacesException: org.apache.jasper.JasperException
caused by:
org.apache.jasper.JasperException
caused by:
java.lang.NullPointerException

Cacher les Détails

javax.faces.FacesException: org.apache.jasper.JasperException
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:429)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:211)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:132)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:140)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:395)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:419)
… 21 more
L'exemple du pdf "content-article" http://ecmarchitect.com/images/articles/alfresco-content/content-article.pdf a lui fonctionné (sauf pour la page des propriétés détaillées ou je ne vois pas les nouveaux champs). J'ai aussi essayé l'exemple exampleModel.xml mais il n'est apparemment pas pris en compte, peut-être tjrs à cause d'une mauvaise config du web-client-config-custom.xml.

Ce que je voudrais idéalement c'est créé un model de document accessible en cliquant sur "créer un contenu", puis en sélectionnant ce model dans la liste, et ensuite qu'on ait à remplir les champs "propriété n°1", "propriété n°2", "propriété n°3"…  avec des contraintes, comme une liste de valeur bien précise par exemple pour la prop n°2 par exemple. J'ai vu comment faire des contrainte, mais je ne sais pas comment créer mes propres model: les balises ne me parlent pas beaucoup, et même si l'exemple du pdf content-article marche, j'ai du mal à comprendre comment Smiley Happy

Help-me please Smiley Very Happy
5 Replies
rivarola
Active Member

Re: Bonjour!Bon çà fais maintenant 3 jours que je tourne...

mage:meta ne peut pas à la fois être un aspect-name et un content type. C'est un aspect ou un type ?
alexist
Member II

Re: Bonjour!Bon çà fais maintenant 3 jours que je tourne...

Juste un conseil. Procède par étape. D'abord, teste ton nouvel aspect. Une fois que c'est ok, ajoute l'aspect sur un noeud etvérifie que ca fonctionne.  Ensuite modifie la recherche simple et ensuite la recherche avancé.
noobfresco
Member II

Re: Bonjour!Bon çà fais maintenant 3 jours que je tourne...

Le soucis c'est qu'entre tous ces termes je me mélange les pinceaux, et au final vos questions, bien que très pertinentes je pense, ressemblent a du chinois Smiley Tongue

Alors déjà les termes:
- ce qu'est un content type pour moi: ce serait un modèle de plus haut niveau d'un contenu (d'un document), d'un plus haut niveau encore que sont extension (.doc, .xml, .txt…). Un modèle de content type pourrait par conséquent se composer à l'extrême d'un dossier (alias un espace ou répertoire) contenant un document .doc et un document .xls. Et ce modèle devrait apparaitre quand on clique sur créer un nouveau contenu, dans la liste déroulante. En validant la création de ce "document", j'aurais alors un espace avec les 2 documents:

         * Mon Espace
                 - Mon document doc
                 - Mon document xls

- ce qu'est un aspect pour moi: c'est déjà plus flou, j'hésite à dire que pour moi un aspect représenterait une propriété de l'un des 3 élément ci-dessus: par exemple l'aspect Mini-Name de Mon Espace, qui serait un champ supplémentaire à remplir lors de la création de l'espace (mais cette vision ressemble + à une propriété non ?). Je ne pense pas que ce soit la bonne manière de voir les choses, suivant le post http://forum.alfresco-fr.org/viewtopic.php?id=543.

Du coup, tester un nouvel aspect, je suis d'accord mais comment ? Et ajouter un aspect sur un noeud, même question Smiley Sad J'ai l'impression de devoir gravir l'Himalaya, pieds nus, sans corde et en maillot de bain! lol
Aussi, rivarola, où est-ce que vous voyez que j'ai défini le modèle mage:meta en tant qu'aspect-name et content-type ? Désolé par avance pour toutes ces questions qui doivent vous paraitre élémentaires…
alexist
Member II

Re: Bonjour!Bon çà fais maintenant 3 jours que je tourne...

Pour ajouter un aspect sur un document : allez sur le détail d'un document, faire "Run action…" ou "Lancer action…" disponible dans la barre d'outil de droite sur l'interface web. Si ton aspect définit de nouvelles propriétés, tu dois les voir en mode consultation/edition si le paramétrage web-client est correcte. Tu peux aussi allez dans le navigateur de noeud pour recherche le noeud et voir si l'aspect est bien définit ….


Un Type : c'est des propriétés et des associations (child association et  associations). En objet, tu peux voir ca comme une classe. Les types de bases d'alfresco sont par exemples  les folder, les personnes, les contents….
Un Aspect : c'est aussi des propriétés, et des associations (pas de child associations), mais c'est un role transverse. Mais ce n'est pas que ca, un aspect permet surtout de customisé le comportement du repositoty.  Par exemple, l'aspect versionnable prend en charge la gestion des versions sur un document.


Mais mon dernier conseil, avant de se lancer dans la customisation, c'est de bien maitriser les fonctionnalités d'alfresco d'un point de vue utilisateur final. Le wiki est ton ami, les tutoriels aussi.

Ensuite, tu te lance dans la customisation en partant d'exemples fournit dans le SDK d'alfresco. Je te conseil d'abord de faire des customisations par Aspect, car les Types sont plus complexes à mettre en oeuvre.
noobfresco
Member II

Re: Bonjour!Bon çà fais maintenant 3 jours que je tourne...

Ok je vais essayer de commencer par les aspects alors. Merci pour tes réponses très réactives =)