diff options
| author | Khoi Nguyen <bng@odoo.com> | 2017-07-19 16:20:49 +0200 |
|---|---|---|
| committer | Khoi Nguyen <bng@odoo.com> | 2017-07-20 09:14:46 +0200 |
| commit | 104dfe3c07d36a6487f045f31d0999cc429cb5bb (patch) | |
| tree | bf68fc8439183bd26d450b935e492494f5f5c3b3 /addons/web/static/src/js/views | |
| parent | 6fa9ea14faf14cac5ad7962f3526c9b7b15e8da3 (diff) | |
[FIX] web: don't fold quickcreate after adding a column in Kanban view
This commit aims to replicate saas-15 behaviour when adding columns in
a Kanban view by not folding the column quick create widget when
creating a new column, thereby allowing users to add multiple columns in
one go.
Diffstat (limited to 'addons/web/static/src/js/views')
3 files changed, 28 insertions, 17 deletions
diff --git a/addons/web/static/src/js/views/kanban/kanban_controller.js b/addons/web/static/src/js/views/kanban/kanban_controller.js index b5c60fe9ab3..2592e3d96ec 100644 --- a/addons/web/static/src/js/views/kanban/kanban_controller.js +++ b/addons/web/static/src/js/views/kanban/kanban_controller.js @@ -164,9 +164,10 @@ var KanbanController = BasicController.extend({ _onAddColumn: function (event) { var self = this; this.model.createGroup(event.data.value, this.handle).then(function () { - self.update({}, {reload: false}); + return self.update({}, {reload: false}); + }).then(function () { self._updateButtons(); - self.trigger_up('scrollTo', {selector: '.o_column_quick_create'}); + self.renderer.quickCreateToggleFold(); }); }, /** diff --git a/addons/web/static/src/js/views/kanban/kanban_quick_create.js b/addons/web/static/src/js/views/kanban/kanban_quick_create.js index a87ac76d53f..4761255f7a3 100644 --- a/addons/web/static/src/js/views/kanban/kanban_quick_create.js +++ b/addons/web/static/src/js/views/kanban/kanban_quick_create.js @@ -159,7 +159,7 @@ var RecordQuickCreate = AbstractQuickCreate.extend({ var ColumnQuickCreate = AbstractQuickCreate.extend({ template: 'KanbanView.ColumnQuickCreate', events: _.extend({}, AbstractQuickCreate.prototype.events, { - 'click': '_onClick', + 'click': 'toggleFold', 'click input': '_onInputClicked', 'focusout': '_onFocusout', }), @@ -181,6 +181,22 @@ var ColumnQuickCreate = AbstractQuickCreate.extend({ }, //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * Toggle fold/unfold the Column quick create widget + */ + toggleFold: function () { + this.folded = !this.folded; + this._update(); + if (!this.folded) { + this.$input.focus(); + this.trigger_up('scrollTo', {selector: '.o_column_quick_create'}); + } + }, + + //-------------------------------------------------------------------------- // Private //-------------------------------------------------------------------------- @@ -210,18 +226,6 @@ var ColumnQuickCreate = AbstractQuickCreate.extend({ /** * @private - * @param {MouseEvent} event - */ - _onClick: function () { - this.folded = !this.folded; - this._update(); - if (!this.folded) { - this.$input.focus(); - this.trigger_up('scrollTo', {selector: '.o_column_quick_create'}); - } - }, - /** - * @private */ _onFocusout: function () { var hasFocus = this.$(':focus').length > 0; diff --git a/addons/web/static/src/js/views/kanban/kanban_renderer.js b/addons/web/static/src/js/views/kanban/kanban_renderer.js index 87275260b01..ea2f0270017 100644 --- a/addons/web/static/src/js/views/kanban/kanban_renderer.js +++ b/addons/web/static/src/js/views/kanban/kanban_renderer.js @@ -113,6 +113,12 @@ var KanbanRenderer = BasicRenderer.extend({ this.widgets[0].addQuickCreate(); }, /** + * Toggle fold/unfold the Column quick create widget + */ + quickCreateToggleFold: function () { + this.quickCreate.toggleFold(); + }, + /** * Removes a widget (record if ungrouped, column if grouped) from the view. * * @param {Widget} widget the instance of the widget to remove @@ -244,8 +250,8 @@ var KanbanRenderer = BasicRenderer.extend({ // Enable column quickcreate if (this.columnOptions.group_creatable) { - var quickCreate = new ColumnQuickCreate(this); - quickCreate.appendTo(fragment); + this.quickCreate = new ColumnQuickCreate(this); + this.quickCreate.appendTo(fragment); } } |
