From 37d86382a6de3e5dfa000491be1a770075b070ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 12 Apr 2020 23:10:30 +0200 Subject: [PATCH] Add export CSV data route issue9090 review261011002 --- CHANGELOG | 2 + src/screen.js | 24 ++++--- src/tab.js | 6 +- src/window.js | 172 +++++++++++++++++++++++++++++++++++++++++++------- 4 files changed, 166 insertions(+), 38 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6d733cb0e1..c2c3d86adc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,5 @@ +* Add URL for the current export +* Add option to export listed records * Set treeview header sticky on top * Add noreferrer noopener to external URL (issue9089) * Manage readonly dates in calendar view diff --git a/src/screen.js b/src/screen.js index d57ace7679..49f0862f98 100644 --- a/src/screen.js +++ b/src/screen.js @@ -999,14 +999,7 @@ } var domain = this.search_domain(search_string, true); - if (this.context_domain) { - var decoder = new Sao.PYSON.Decoder(this.context); - domain = ['AND', domain, decoder.decode(this.context_domain)]; - } - var tab_domain = this.screen_container.get_tab_domain(); - if (!jQuery.isEmptyObject(tab_domain)) { - domain = ['AND', domain, tab_domain]; - } + var context = this.context; if (this.screen_container.but_active.hasClass('active')) { context.active_test = false; @@ -1058,8 +1051,9 @@ }.bind(this)); }.bind(this)); }, - search_domain: function(search_string, set_text) { + search_domain: function(search_string, set_text, with_tab) { set_text = set_text || false; + with_tab = with_tab === undefined ? true : with_tab; var domain = []; // Test first parent to avoid calling unnecessary domain_parser @@ -1104,11 +1098,21 @@ domain = this.current_view.current_domain(); } } + if (this.context_domain) { + var decoder = new Sao.PYSON.Decoder(this.context); + domain = ['AND', domain, decoder.decode(this.context_domain)]; + } + if (with_tab) { + var tab_domain = this.screen_container.get_tab_domain(); + if (!jQuery.isEmptyObject(tab_domain)) { + domain = ['AND', domain, tab_domain]; + } + } return domain; }, count_tab_domain: function() { var screen_domain = this.search_domain( - this.screen_container.get_text()); + this.screen_container.get_text(), false, false); this.screen_container.tab_domain.forEach(function(tab_domain, i) { if (tab_domain[2]) { var domain = ['AND', tab_domain[1], screen_domain]; diff --git a/src/tab.js b/src/tab.js index 0a52b70c3b..f81be05a45 100644 --- a/src/tab.js +++ b/src/tab.js @@ -1279,11 +1279,7 @@ this.modified_save().then(function() { new Sao.Window.Export( this.title.text(), this.screen, - this.screen.current_view.selected_records.map(function(r) { - return r.id; - }), - this.screen.current_view.get_fields(), - this.screen.context); + this.screen.current_view.get_fields()); }.bind(this)); }, do_export: function(export_) { diff --git a/src/window.js b/src/window.js index 842308d672..914e5ae16c 100644 --- a/src/window.js +++ b/src/window.js @@ -1003,31 +1003,27 @@ .appendTo(column_fields_selected.find('.panel')); this.chooser_form = jQuery('
', { - 'class': 'row form-inline' + 'class': 'form-inline' }).appendTo(this.dialog.body); var row_csv_param = jQuery('
', { - 'class': 'row' - }).appendTo(this.dialog.body); - - var expander_icon = jQuery('', { - 'class': 'caret', - }).css('cursor', 'pointer').html(' '); + }).on('click', function(){ + this.expander_csv.collapse('toggle'); + }.bind(this)).appendTo(this.dialog.body); var csv_param_label = jQuery('