From 68da8089a877bc18fc44e02c1997b5f75166d708 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 14 May 2012 16:42:46 +0200 Subject: [PATCH] [imp] added quick create when there is no group by too bzr revid: nicolas.vanhoren@openerp.com-20120514144246-wm0y62dskqkqeuxq --- addons/web_kanban/static/src/css/kanban.css | 4 +++ addons/web_kanban/static/src/js/kanban.js | 34 +++++++++++++------ .../web_kanban/static/src/xml/web_kanban.xml | 11 ++++-- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index c74b038d1a6..a875b3ffc16 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -238,6 +238,10 @@ /* apply block formatting context */ overflow: hidden; } +.openerp .oe_kanban_no_group .oe_kanban_quick_create { + width: 200px; + padding: 10px; +} .openerp .oe_kanban_quick_create input { display: block; /* margins within width */ diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 7cdd0b6de56..660ad4c746d 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -341,6 +341,12 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({ start: function() { var self = this, def = this._super(); + if (! self.view.group_by) { + self.$element.addClass("oe_kanban_no_group"); + self.quick = new instance.web_kanban.QuickCreate(this, self.dataset, {}, false) + .on('added', self, self.proxy('quick_created')); + self.quick.replace($(".oe_kanban_no_group_qc_placeholder")); + } this.$records = $(QWeb.render('KanbanView.group_records_container', { widget : this})); this.$records.appendTo(this.view.$element.find('.oe_kanban_groups_records')); this.$element.find(".oe_kanban_fold_icon").click(function() { @@ -353,7 +359,11 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({ var ctx = {}; ctx['default_' + self.view.group_by] = self.value; self.quick = new instance.web_kanban.QuickCreate(this, self.dataset, ctx, true) - .on('added', self, self.proxy('quick_created')); + .on('added', self, self.proxy('quick_created')) + .on('close', self, function() { + this.quick.destroy(); + delete this.quick; + }); self.quick.appendTo(self.$element.find('.oe_kanban_group_header')); self.quick.focus(); }); @@ -420,8 +430,6 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({ */ quick_created: function (record) { var id = record[0], self = this; - this.quick.destroy(); - delete this.quick; new instance.web.Model(this.dataset.model).call( 'read', [[id], this.view.fields_keys], {}) .then(function (records) { @@ -646,17 +654,22 @@ instance.web_kanban.QuickCreate = instance.web.Widget.extend({ * close_btn: If true, the widget will display a "Close" button able to trigger * a "close" event. */ - init: function(parent, dataset, context, close_btn) { + init: function(parent, dataset, context, buttons) { this._super(parent); this._dataset = dataset; - this._close_btn = close_btn || false; + this._buttons = buttons || false; this._context = context || {}; }, start: function () { var self = this; - var $input = this.$element.find('input'); + self.$input = this.$element.find('input'); + self.$input.keyup(function(event){ + if(event.keyCode == 13){ + self.quick_add(); + } + }); $(".oe-kanban-quick_create_add", this.$element).click(function () { - self.quick_add($input.val()); + self.quick_add(); }); $(".oe-kanban-quick_create_close", this.$element).click(function () { self.trigger('close'); @@ -667,16 +680,15 @@ instance.web_kanban.QuickCreate = instance.web.Widget.extend({ }, /** * Handles user event from nested quick creation view - * - * @param {String} name name to give to the new record */ - quick_add: function (name) { + quick_add: function () { var self = this; // FIXME: what if name_create fails? this._dataset.call( - 'name_create', [name, new instance.web.CompoundContext( + 'name_create', [self.$input.val(), new instance.web.CompoundContext( this._dataset.get_context(), this._context)]) .then(function(record) { + self.$input.val(""); self.trigger('added', record); }); }, diff --git a/addons/web_kanban/static/src/xml/web_kanban.xml b/addons/web_kanban/static/src/xml/web_kanban.xml index c4e191d8f4c..d04e240bfcc 100644 --- a/addons/web_kanban/static/src/xml/web_kanban.xml +++ b/addons/web_kanban/static/src/xml/web_kanban.xml @@ -35,6 +35,9 @@

+ + + @@ -64,8 +67,10 @@
- - - + + + + +