Liste de données Share

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

Liste de données Share

Bonjour,

Lorsqu'on crée un item dans une liste de données avec une propriété de type d:date (dictionary model) , est-il possible de mettre une valeur par défaut qui soit la date du jour ? J'ai vu que la balise <default> peut être utilisée pour mettre une date statique (par exemple : <default>2007-01-01T00:00:00.000Z</default>), mais je ne vois pas comment faire pour une date dynamique.

Merci pour votre aide.
5 Replies
jeanjot
Active Member

Re: Liste de données Share

Bonsoir

Peut-être trouverez vous des pistes sur ce projet.
Attention, celui-ci concerne la version 3.4.x d'Alfresco.

http://code.google.com/p/fme-alfresco-extensions/wiki/DatalistExtension

Bonne lecture.
jeanjot
Active Member

Re: Liste de données Share

Ici, vous y trouverez la version en 4.x

http://www.contentreich.de/alfresco-extended-datalists-migrated-to-4-0

Bonne lecture.
myriam
Member II

Re: Liste de données Share

Bonjour,

Merci pour d'avoir répondu jeanjot.  (j'ai oublié de préciser que je travaille sur la version 3.3)

J'ai un peu avancé sur le sujet mais maintenant j'ai un problème avec freemarker.

Mon but est donc d'avoir la date du jour comme date par défaut à la création d'un item dans une liste de données qui comporte un champ "monChampDate".

Le modèle qui récupère les champs (et leurs valeurs par défaut) à afficher dans le formulaire de création d'un item est "formdefinition.lib.ftl". J'ai donc choisi de préciser à ce moment la valeur par défaut pour "monChampDate".


….
<#if field.defaultValue??>"defaultValue": "${field.defaultValue}",</#if>
<#assign dateDuJour = nowDate>
<#assign aDate = dateDuJour?date >
<#if field.name = "madl:monChampDate"> "defaultValue": "${aDate}",</#if>
….

La date nowDate est calculé dans le fichier formdefinition.post.json.js (var date = new Date()Smiley Wink et envoyé dans le modèle (model.nowDate= dateSmiley Wink.

Voilà l'erreur qui est renvoyée :

Can't convert the date to string, because it is not known which parts of the date variable are in use. Use ?date, ?time or ?datetime built-in, or ?string.<format> or ?string(format) built-in with this date.==> ${aDate} escaped ${jsonUtils.encodeJSONString(aDate)} [on line 23, column 74 in org/alfresco/repository/forms/formdefinition.lib.ftl]
in user-directive formDefLib.formDefJSON [on line 2, column 1 in org/alfresco/repository/forms/formdefinition.post.json.ftl]

Le fait de mettre dans le fichier ftl : <#if field.name = "madl:monChampDate"> "defaultValue": "2007-01-01T00:00:00.000Z",</#if>  m'affiche bien la date 1/1/2007 dans mon champ.

Merci pour toute indication que vous pourriez me donner.

Cordialement.
myriam
Member II

Re: Liste de données Share

En fait il fallait juste formater la date dans le fichier formdefinition.post.json.js de cette façon : model.nowDate = utils.toISO8601(date);
Et dans le fichier formdefinition.lib.ftl cette ligne suffit : <#if field.name == "madl:monChampDate"">"defaultValue": "${nowDate}",</#if>
jayjayecl
Active Member II

Re: Liste de données Share

Bravo, et merci encore d'avoir mis à jour le sujet avec votre solution, pour la partager !
Smiley Happy