changeset 38bd2d0827f2 in sao:default
details: https://hg.tryton.org/sao?cmd=changeset;node=38bd2d0827f2
description:
Use locale format for data export and import
issue8196
review255151002
diffstat:
CHANGELOG | 1 +
src/window.js | 40 ++++++++++++++++++++++++++++++++++++----
2 files changed, 37 insertions(+), 4 deletions(-)
diffs (75 lines):
diff -r f2c69d6d24bc -r 38bd2d0827f2 CHANGELOG
--- a/CHANGELOG Thu Mar 28 12:26:19 2019 +0100
+++ b/CHANGELOG Thu Mar 28 19:22:49 2019 +0100
@@ -1,3 +1,4 @@
+* Use locale format for data export
* Add day view on calendar
* Add CSV exports into print toolbar
* Display unread and total of notes
diff -r f2c69d6d24bc -r 38bd2d0827f2 src/window.js
--- a/src/window.js Thu Mar 28 12:26:19 2019 +0100
+++ b/src/window.js Thu Mar 28 19:22:49 2019 +0100
@@ -1479,18 +1479,28 @@
}).css('cursor', 'pointer')
.appendTo(predefined_exports_column);
+ this.el_csv_locale = jQuery('<input/>', {
+ 'type': 'checkbox',
+ 'checked': 'checked',
+ });
+
+ jQuery('<div/>', {
+ 'class': 'checkbox',
+ }).append(jQuery('<label/>', {
+ 'text': ' ' + Sao.i18n.gettext("Use locale format"),
+ }).prepend(this.el_csv_locale)).appendTo(this.expander_csv);
+ this.expander_csv.append(' ');
+
this.el_add_field_names = jQuery('<input/>', {
'type': 'checkbox',
'checked': 'checked'
});
jQuery('<div/>', {
- 'class': 'form-group'
- }).append(jQuery('<div/>', {
'class': 'checkbox',
}).append(jQuery('<label/>', {
'text': ' '+Sao.i18n.gettext('Add Field Names')
- }).prepend(this.el_add_field_names))).appendTo(this.expander_csv);
+ }).prepend(this.el_add_field_names)).appendTo(this.expander_csv);
this.expander_csv.append(' ');
},
view_populate: function(parent_node, parent_view) {
@@ -1801,8 +1811,30 @@
},
export_csv: function(fields, data) {
var encoding = this.el_csv_encoding.val();
+ var locale_format = this.el_csv_locale.prop('checked');
var unparse_obj = {};
- unparse_obj.data = data;
+ unparse_obj.data = [];
+ data.forEach(function(line) {
+ var row = [];
+ line.forEach(function(val) {
+ if (locale_format) {
+ if (val.isDateTime) {
+ val = val.format(
+ Sao.common.date_format() + ' ' +
+ Sao.common.moment_format('%X'));
+ } else if (val.isDate) {
+ val = val.format(Sao.common.date_format());
+ } else if (!isNaN(Number(val))) {
+ val = val.toLocaleString(
+ Sao.i18n.BC47(Sao.i18n.getlang()));
+ }
+ } else if (typeof(val) == 'boolean') {
+ val += 0;
+ }
+ row.push(val);
+ });
+ unparse_obj.data.push(row);
+ });
if (this.el_add_field_names.is(':checked')) {
unparse_obj.fields = fields;
}