cancel
Showing results for 
Search instead for 
Did you mean: 

Liste de données Share

myriam
Champ in-the-making
Champ in-the-making
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 5

jeanjot
Confirmed Champ
Confirmed Champ
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
Confirmed Champ
Confirmed Champ
Ici, vous y trouverez la version en 4.x

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

Bonne lecture.

myriam
Champ in-the-making
Champ in-the-making
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():smileywink: 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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
Bravo, et merci encore d'avoir mis à jour le sujet avec votre solution, pour la partager !
Smiley Happy