Fixed bug in XosFormHelpers._getFieldFormat and correctly parsing data in xosSmartTable

Change-Id: Iee9875d7bcbdac2bf2b716244f0dd16de5fbfc99
diff --git a/src/services/helpers/ui/form.helpers.js b/src/services/helpers/ui/form.helpers.js
index 582cb8a..28d4a18 100644
--- a/src/services/helpers/ui/form.helpers.js
+++ b/src/services/helpers/ui/form.helpers.js
@@ -43,7 +43,12 @@
       }
 
       // check if is date
-      if (_.isDate(value) || (!Number.isNaN(Date.parse(value)) && new Date(value).getTime() > 631180800000)){
+      if (
+        angular.isDate(value) ||
+        (
+          !Number.isNaN(Date.parse(value)) && // Date.parse is a number
+          /^\d+-\d+-\d+\D\d+:\d+:\d+\.\d+\D/.test(value) // the format match ISO dates
+        )){
         return 'date';
       }
 
diff --git a/src/ui_components/dumbComponents/table/table.component.js b/src/ui_components/dumbComponents/table/table.component.js
index e8f66b4..ed038fd 100644
--- a/src/ui_components/dumbComponents/table/table.component.js
+++ b/src/ui_components/dumbComponents/table/table.component.js
@@ -388,7 +388,7 @@
             <tbody>
               <tr ng-repeat="item in vm.data | filter:vm.query:vm.comparator | orderBy:vm.orderBy:vm.reverse | pagination:vm.currentPage * vm.config.pagination.pageSize | limitTo: (vm.config.pagination.pageSize || vm.data.length) track by $index">
                 <td ng-repeat="col in vm.columns" xos-link-wrapper>
-                  <span ng-if="!col.type">{{item[col.prop]}}</span>
+                  <span ng-if="!col.type || col.type === 'text'">{{item[col.prop]}}</span>
                   <span ng-if="col.type === 'boolean'">
                     <i class="glyphicon"
                       ng-class="{'glyphicon-ok': item[col.prop], 'glyphicon-remove': !item[col.prop]}">
diff --git a/src/ui_components/smartComponents/smartTable/smartTable.component.js b/src/ui_components/smartComponents/smartTable/smartTable.component.js
index 1fbc9d0..c2cb49f 100644
--- a/src/ui_components/smartComponents/smartTable/smartTable.component.js
+++ b/src/ui_components/smartComponents/smartTable/smartTable.component.js
@@ -233,17 +233,13 @@
               props = _.difference(props, this.config.hiddenFields)
             }
 
-            let labels = props.map(p => LabelFormatter.format(p));
-
-            props.forEach((p, i) => {
+            props.forEach(p => {
               let fieldConfig = {
-                label: labels[i],
+                label: LabelFormatter.format(p),
                 prop: p
               };
 
-              if(angular.isString(item[p]) && typeof item[p] !== 'undefined'){
-                fieldConfig.type = typeof item[p];
-              }
+              fieldConfig.type = XosFormHelpers._getFieldFormat(item[p]);
 
               this.tableConfig.columns.push(fieldConfig);
             });
@@ -252,11 +248,10 @@
             // TODO move in a pure function for testing purposes
             props.forEach((p, i) => {
               this.formConfig.fields[p] = {
-                label: LabelFormatter.format(labels[i]).replace(':', ''),
+                label: LabelFormatter.format(p).replace(':', ''),
                 type: XosFormHelpers._getFieldFormat(item[p])
               };
             });
-
             this.data = res;
           });
         }