summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views
diff options
context:
space:
mode:
authorDavid Monjoie <dmo@odoo.com>2017-04-12 08:40:44 +0200
committerDavid Monjoie <dmo@odoo.com>2017-04-21 13:25:36 +0200
commit25f5f556c89915cdfa4f7ccd7519ff1b8a04bd18 (patch)
tree0136def1a817c07ff9292b1f757d878c3f9b05e5 /addons/web/static/src/js/views
parent2d251a6c280fea285fd28aa3d20be2da3f43fdaa (diff)
[FIX] web: fix expand all button in pivot view
Also took this opportunity to refactor the code of pivot to adapt the parts that were not up to date and remove the useless deferred in sortRows, courtesy of aab. The exportData function still needs reworking.
Diffstat (limited to 'addons/web/static/src/js/views')
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_controller.js31
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_model.js24
2 files changed, 21 insertions, 34 deletions
diff --git a/addons/web/static/src/js/views/pivot/pivot_controller.js b/addons/web/static/src/js/views/pivot/pivot_controller.js
index f53e0f9db7c..f132704a475 100644
--- a/addons/web/static/src/js/views/pivot/pivot_controller.js
+++ b/addons/web/static/src/js/views/pivot/pivot_controller.js
@@ -81,15 +81,12 @@ var PivotController = AbstractController.extend({
* @returns {Object}
*/
getContext: function () {
- if (this.handle) {
- var state = this.model.get(this.handle);
- return {
- pivot_measures: state.measures,
- pivot_column_groupby: state.data.main_col.groupbys,
- pivot_row_groupby: state.data.main_row.groupbys,
- };
- }
- return {};
+ var state = this.model.get();
+ return {
+ pivot_measures: state.measures,
+ pivot_column_groupby: state.data.main_col.groupbys,
+ pivot_row_groupby: state.data.main_row.groupbys,
+ };
},
/**
* Render the buttons according to the PivotView.buttons template and
@@ -217,13 +214,12 @@ var PivotController = AbstractController.extend({
_onButtonClick: function (event) {
var $target = $(event.target);
if ($target.hasClass('o_pivot_flip_button')) {
- this.model.flip(this.handle);
- this.update(null, {reload: false});
+ this.model.flip();
+ this.update({}, {reload: false});
}
if ($target.hasClass('o_pivot_expand_button')) {
- this.model
- .expandAll(this.handle)
- .then(this.update_state.bind(this));
+ this.model.expandAll();
+ this.update({reload: false});
}
if ($target.parents('.o_pivot_measures_list').length) {
var parent = $target.parent();
@@ -344,9 +340,8 @@ var PivotController = AbstractController.extend({
var col_id = $target.data('id');
var measure = $target.data('measure');
var isAscending = $target.hasClass('o_pivot_measure_row_sorted_asc');
- this.model
- .sortRows(this.handle, col_id, measure, isAscending)
- .then(this.update.bind(this, {}, {reload: false}));
+ this.model.sortRows(col_id, measure, isAscending);
+ this.update({}, {reload: false});
},
/**
* This method is called when someone clicks on an open header. When that
@@ -359,7 +354,7 @@ var PivotController = AbstractController.extend({
event.preventDefault();
event.stopImmediatePropagation();
var headerID = $(event.target).data('id');
- this.model.closeHeader(headerID)
+ this.model.closeHeader(headerID);
this.update({}, {reload: false});
},
diff --git a/addons/web/static/src/js/views/pivot/pivot_model.js b/addons/web/static/src/js/views/pivot/pivot_model.js
index d5b226b27da..ab4a2eb0314 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -52,12 +52,10 @@ var PivotModel = AbstractModel.extend({
header.root.groupbys.splice(newGroupbyLength);
},
/**
- * @param {string} id
* @returns {Deferred}
*/
- expandAll: function (id) {
- var record = this.localData[id];
- return this._loadData(record);
+ expandAll: function () {
+ return this._loadData();
},
/**
* Expand (open up) a given header, be it a row or a column.
@@ -132,7 +130,7 @@ var PivotModel = AbstractModel.extend({
* @returns {Object}
*/
exportData: function () {
- var record = this.model.get(this.handle);
+ var record = this.data;
var measureNbr = record.measures.length;
var headers = this.renderer._computeHeaders();
var measureRow = measureNbr > 1 ? _.last(headers) : [];
@@ -236,7 +234,7 @@ var PivotModel = AbstractModel.extend({
measures: this.initialMeasures,
sorted_column: {},
};
- return this._loadData(params);
+ return this._loadData();
},
/**
* @override
@@ -255,12 +253,12 @@ var PivotModel = AbstractModel.extend({
this.data.groupedBy = params.groupBy;
}
if (!this.data.has_data) {
- return this._loadData(params);
+ return this._loadData();
}
var old_row_root = this.data.main_row.root;
var old_col_root = this.data.main_col.root;
- return this._loadData(params).then(function () {
+ return this._loadData().then(function () {
var new_groupby_length;
if (!('groupBy' in params)) {
// we only update the row groupbys according to the old groupbys
@@ -280,18 +278,13 @@ var PivotModel = AbstractModel.extend({
* Sort the rows, depending on the values of a given column. This is an
* in-memory sort.
*
- * Note that it returns a deferred. @todo: makes sure this does not return a
- * deferred.
- *
- * @param {any} id
* @param {any} col_id
* @param {any} measure
* @param {any} descending
- * @returns {Deferred}
*/
- sortRows: function (id, col_id, measure, descending) {
+ sortRows: function (col_id, measure, descending) {
var cells = this.data.cells;
- this._traverseTree(this.data.main_row.root, function (header) {
+ this._traverseTree(this.data.main_row.root, function (header) {
header.children.sort(compare);
});
this.data.sorted_column = {
@@ -313,7 +306,6 @@ var PivotModel = AbstractModel.extend({
value2 = values2 ? values2[measure] : 0;
return descending ? value1 - value2 : value2 - value1;
}
- return $.when(id);
},
/**
* Toggle the active state for a given measure, then reload the data.