diff --git a/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
index b1d3ba9bc5d670cda51c35656f8dac26274c36a1..8c065e61e984b8a61df5f948fa42cac33e9d89bf 100644
--- a/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
+++ b/src/vitis/client/javascript/externs/formReader/formReaderDrtv.js
@@ -504,6 +504,7 @@ formReader.formReaderDirective = function ($q, formReaderService, propertiesSrvc
                     }
                 }
             }
+
             /**
              * Ajoute des watchers pour déclencher les dynamic values
              *
@@ -713,6 +714,20 @@ formReader.formReaderDirective = function ($q, formReaderService, propertiesSrvc
                 return parseFloat(sField);
             }
 
+            /**
+             * Transforme une date en timestamp
+             *
+             * @param  {type} sDate description
+             * @return {type}       description
+             */
+            scope['timestamp'] = function(sDate) {
+                var aDate=sDate.split("/");
+                var aTime=sDate.split(" ");
+                var isoDate = aDate[1] + '/' + aDate[0] + '/' + aDate[2];
+                var sTimestamp = new Date(isoDate).getTime();
+                return sTimestamp;
+            }
+
             // Attend la suppression du scope.
             scope.$on("$destroy", function () {
                 // Supprime toutes les données du formulaire.
diff --git a/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js b/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js
index c4dfddeb1f64979e0a7e8cd0529c290ab78eab81..968cad293fc5ccd4b929e97cc640952d919e7fee 100644
--- a/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js
+++ b/src/vitis/client/javascript/externs/formReader/formReaderSrvc.js
@@ -707,6 +707,8 @@ formReader.formReaderService = function ($translate, $rootScope, $q, $log, $time
          */
         "translateCustomTernaryString": function (sString, bIsCondition, oFormValues, sFormDefinitionName) {
 
+            var this_ = this;
+
             // Verif type
             if (!goog.isString(sString)) {
                 return null;
@@ -725,6 +727,7 @@ formReader.formReaderService = function ($translate, $rootScope, $q, $log, $time
 
             // Remplace les attributs
             var sReplacer;
+            var sValue;
             for (var i = 0; i < aAttrs.length; i++) {
                 if (goog.isDefAndNotNull(aAttrs[i][0]) && goog.isDefAndNotNull(aAttrs[i][1])) {
 
@@ -739,12 +742,26 @@ formReader.formReaderService = function ($translate, $rootScope, $q, $log, $time
                                     if (goog.isDefAndNotNull(oFormValues[sFormDefinitionName][aAttrs[i][1]]['selectedOption']['value'])) {
                                         sReplacer = 'oFormValues[sFormDefinitionName].' + aAttrs[i][1] + '.selectedOption.value';
                                     }
+                                    sValue = oFormValues[sFormDefinitionName][aAttrs[i][1]]['selectedOption']['value'];
+                                } else {
+                                    sValue = oFormValues[sFormDefinitionName][aAttrs[i][1]];
                                 }
                             }
                         }
                     }
 
+                    // log toutes les secondes
+                    var iLogCounter_ = Date.now();
+                    $rootScope.iLogCounter_ = angular.copy(iLogCounter_);
+                    setTimeout(angular.bind(this, function (sAttr, sValue) {
+                        if (iLogCounter_ === $rootScope.iLogCounter_ &&
+                            goog.isDefAndNotNull(sAttr) &&
+                            goog.isDefAndNotNull(sValue)) {
+                            $log.log(sAttr + ' : ' + sValue);
+                        }
+                    }, aAttrs[i][0], sValue), 1000);
 
+                    // Remplace
                     sString = sString.replace(aAttrs[i][0], sReplacer);
                 }
             }
diff --git a/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
index 86872e18c1b4e658d1b5f6c10839cd58df6e80d5..70d74a4b1a7c931753a447b7924b3d29ed5d404c 100755
--- a/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
+++ b/src/vitis/client/javascript/externs/studio/javascript/app/VisualizerMode/FormMode.js
@@ -147,7 +147,7 @@ nsVFB.nsVisualizerMode.FormMode.prototype.visualizerFormModeController = functio
 
             // Refresh le formReader
             angular.element($('#studio_form_reader').children()).scope()['ctrl'].refreshForm();
-            angular.element($('#studio_form_reader').children()).scope().$broadcast('loadForm');
+            angular.element($('#studio_form_reader').children()).scope()['setFormDynamicValues']();
 
         } else {
             oVFB.log('visualizerFormModeController. Load JSON form fail: ' + $scope['selected_form_type'] + ' undefined in ', data);
diff --git a/src/vitis/client/javascript/externs/studio/templates/ElementForm.html b/src/vitis/client/javascript/externs/studio/templates/ElementForm.html
index 05698ebca5c59b75a0341f5788d648db36c6f634..6d8afd0c2bdf057cae928390853988119c2e6e32 100755
--- a/src/vitis/client/javascript/externs/studio/templates/ElementForm.html
+++ b/src/vitis/client/javascript/externs/studio/templates/ElementForm.html
@@ -2193,7 +2193,7 @@
                         <span id="Element_Form_dynamic_value_label" class="input-group-addon">{{::ctrl.text.Component.General.Value}}</span>
                         <input ng-disabled="locker"
                                     ng-model="model.dynamic_value"
-                                    id="Element_Form_value_input"
+                                    id="Element_Form_dynamic_value_input"
                                     type="text"
                                     class="form-control"
                                     aria-describedby="Element_Form_dynamic_value_label"
@@ -2203,10 +2203,10 @@
                     <!-- Champ visible -->
                     <div ng-if="model.type != 'hidden'"
                         class="input-group element-margin input-group-xs">
-                        <span id="Element_Form_visible_label" class="input-group-addon">{{::ctrl.text.Component.General.Visible}}</span>
+                        <span id="Element_Form_dynamic_visible_label" class="input-group-addon">{{::ctrl.text.Component.General.Visible}}</span>
                         <input ng-disabled="locker"
                                     ng-model="model.visible"
-                                    id="Element_Form_visible_input"
+                                    id="Element_Form_dynamic_visible_input"
                                     type="text"
                                     class="form-control"
                                     aria-describedby="Element_Form_visible_label"