niv-openerp 2012-05-25 14:09:47 +02:00
parent d79b4a1720
commit 120dfb5fff
4 changed files with 41 additions and 8 deletions

View File

@ -3338,7 +3338,7 @@ instance.web.form.Many2ManyListView = instance.web.ListView.extend(/** @lends in
}
});
instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend({
instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend(_.extend({}, instance.web.form.CompletionFieldMixin, {
disable_utility_classes: true,
init: function(field_manager, node) {
this._super(field_manager, node);
@ -3455,13 +3455,38 @@ instance.web.form.FieldMany2ManyKanban = instance.web.form.AbstractField.extend(
});
}
},
});
}));
function m2m_kanban_lazy_init() {
if (instance.web.form.Many2ManyKanbanView)
return;
instance.web.form.Many2ManyKanbanView = instance.web_kanban.KanbanView.extend({
_is_quick_create_enabled: function() {
return this._super() && ! this.group_by;
},
});
instance.web.form.Many2ManyQuickCreate = instance.web.Widget.extend({
template: 'Many2ManyKanban.quick_create',
/**
* close_btn: If true, the widget will display a "Close" button able to trigger
* a "close" event.
*/
init: function(parent, dataset, context, buttons) {
this._super(parent);
instance.web.form.CompletionFieldMixin.init.call(this);
this.m2m = this.getParent().view.m2m;
this._dataset = dataset;
this._buttons = buttons || false;
this._context = context || {};
},
start: function () {
var self = this;
self.$input = this.$element.find('input');
},
focus: function() {
this.$element.find('input').focus();
},
});
}

View File

@ -1816,5 +1816,12 @@
<pre><t t-esc="error.preview"/></pre>
</t>
</t>
<div t-name="Many2ManyKanban.quick_create" class="oe_kanban_quick_create">
<input t-att-placeholder="_t('Type name to create')"/>
<t t-if="widget._buttons">
<button class="oe-kanban-quick_create_add">Add</button>
<button class="oe-kanban-quick_create_close">Close</button>
</t>
</div>
</templates>

View File

@ -10,6 +10,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
display_name: _lt('Kanban'),
default_nr_columns: 3,
view_type: "kanban",
quick_create_class: "instance.web_kanban.QuickCreate",
number_of_color_schemes: 10,
init: function (parent, dataset, view_id, options) {
this._super(parent, dataset, view_id, options);
@ -350,6 +351,10 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
}
});
function get_class(name) {
return new instance.web.Registry({'tmp' : name}).get_object("tmp");
}
instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
template: 'KanbanView.group_header',
init: function (parent, records, group, dataset) {
@ -403,7 +408,7 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
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)
self.quick = new (get_class(self.view.quick_create_class))(this, self.dataset, {}, false)
.on('added', self, self.proxy('quick_created'));
self.quick.replace($(".oe_kanban_no_group_qc_placeholder"));
}
@ -418,7 +423,7 @@ instance.web_kanban.KanbanGroup = instance.web.OldWidget.extend({
if (self.quick) { return; }
var ctx = {};
ctx['default_' + self.view.group_by] = self.value;
self.quick = new instance.web_kanban.QuickCreate(this, self.dataset, ctx, true)
self.quick = new (get_class(self.view.quick_create_class))(this, self.dataset, ctx, true)
.on('added', self, self.proxy('quick_created'))
.on('close', self, function() {
this.quick.destroy();

View File

@ -65,9 +65,5 @@
</t>
<div t-name="KanbanView.quick_create" class="oe_kanban_quick_create">
<input t-att-placeholder="_t('Type name to create')"/>
<t t-if="widget._buttons">
<button class="oe-kanban-quick_create_add">Add</button>
<button class="oe-kanban-quick_create_close">Close</button>
</t>
</div>
</template>