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;
});
}