|
|
@ -33,6 +33,7 @@ openerp.web_widget_x2many_2d_matrix = function(instance) |
|
|
|
fields_att: {}, |
|
|
|
x_axis_clickable: true, |
|
|
|
y_axis_clickable: true, |
|
|
|
xy_many2one: false, |
|
|
|
|
|
|
|
// read parameters
|
|
|
|
init: function(field_manager, node) |
|
|
@ -41,6 +42,7 @@ openerp.web_widget_x2many_2d_matrix = function(instance) |
|
|
|
this.field_y_axis = node.attrs.field_y_axis || this.field_y_axis; |
|
|
|
this.x_axis_clickable = node.attrs.x_axis_clickable || this.x_axis_clickable; |
|
|
|
this.y_axis_clickable = node.attrs.y_axis_clickable || this.y_axis_clickable; |
|
|
|
this.xy_many2one = node.attrs.xy_many2one || this.xy_many2one; |
|
|
|
this.field_label_x_axis = node.attrs.field_label_x_axis || this.field_x_axis; |
|
|
|
this.field_label_y_axis = node.attrs.field_label_y_axis || this.field_y_axis; |
|
|
|
this.field_value = node.attrs.field_value || this.field_value; |
|
|
@ -371,7 +373,7 @@ openerp.web_widget_x2many_2d_matrix = function(instance) |
|
|
|
this.proxy(this.many2one_axis_click), |
|
|
|
this.field_y_axis, 'y')); |
|
|
|
} |
|
|
|
if(this.fields[this.field_value]) |
|
|
|
if(this.fields[this.field_value] && this.xy_many2one) |
|
|
|
{ |
|
|
|
this.$el.find('tbody tr td[data-x]').addClass('oe_link') |
|
|
|
.click(_.partial( |
|
|
@ -394,31 +396,35 @@ openerp.web_widget_x2many_2d_matrix = function(instance) |
|
|
|
|
|
|
|
xy_axis_click: function(field, e) |
|
|
|
{ |
|
|
|
var self = this; |
|
|
|
var pop = new instance.web.form.FormOpenPopup(self); |
|
|
|
var context = self.build_context().eval(); |
|
|
|
var model_obj = new instance.web.Model(self.field.relation); |
|
|
|
model_obj.call('get_formview_id', [self.get("value"), context]).then(function(view_id){ |
|
|
|
pop.show_element( |
|
|
|
self.field.relation, |
|
|
|
self.get_xy_id( |
|
|
|
jQuery(e.currentTarget).data('x'), |
|
|
|
jQuery(e.currentTarget).data('y') |
|
|
|
), |
|
|
|
self.build_context(), |
|
|
|
{ |
|
|
|
title: _t("Open: ") + self.string, |
|
|
|
view_id: view_id |
|
|
|
} |
|
|
|
); |
|
|
|
pop.on('write_completed', self, function(){ |
|
|
|
self.display_value = {}; |
|
|
|
self.display_value_backup = {}; |
|
|
|
self.render_value(); |
|
|
|
self.focus(); |
|
|
|
self.trigger('changed_value'); |
|
|
|
if (!this.get('effective_readonly')) |
|
|
|
{ |
|
|
|
var self = this; |
|
|
|
var pop = new instance.web.form.FormOpenPopup(self); |
|
|
|
var context = self.build_context().eval(); |
|
|
|
var model_obj = new instance.web.Model(self.field.relation); |
|
|
|
model_obj.call('get_formview_id', [self.get("value"), context]).then(function(view_id){ |
|
|
|
pop.show_element( |
|
|
|
self.field.relation, |
|
|
|
self.get_xy_id( |
|
|
|
jQuery(e.currentTarget).data('x'), |
|
|
|
jQuery(e.currentTarget).data('y') |
|
|
|
), |
|
|
|
self.build_context(), |
|
|
|
{ |
|
|
|
title: _t("Open: ") + self.string, |
|
|
|
view_id: view_id |
|
|
|
} |
|
|
|
); |
|
|
|
pop.on('write_completed', self, function(){ |
|
|
|
self.display_value = {}; |
|
|
|
self.display_value_backup = {}; |
|
|
|
self.render_value(); |
|
|
|
self.focus(); |
|
|
|
self.trigger('changed_value'); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
start: function() |
|
|
@ -459,13 +465,21 @@ openerp.web_widget_x2many_2d_matrix = function(instance) |
|
|
|
|
|
|
|
effective_readonly_change: function() |
|
|
|
{ |
|
|
|
this.$el |
|
|
|
.find('tbody td.oe_list_field_cell span.oe_form_field .edit') |
|
|
|
.toggle(!this.get('effective_readonly')); |
|
|
|
this.$el |
|
|
|
.find('tbody td.oe_list_field_cell span.oe_form_field .read') |
|
|
|
.toggle(this.get('effective_readonly')); |
|
|
|
this.$el.find('.edit').first().focus(); |
|
|
|
if(this.xy_many2one){ |
|
|
|
this.$el.find('input.widget_x2many_xy').addClass('widget_x2many_hide_xy') |
|
|
|
this.$el.find('span.widget_x2many_xy').removeClass('oe_read_only') |
|
|
|
this.$el.find('span.widget_x2many_xy').removeClass('read') |
|
|
|
}else |
|
|
|
{ |
|
|
|
this.$el |
|
|
|
.find('tbody td.oe_list_field_cell span.oe_form_field .edit') |
|
|
|
.toggle(!this.get('effective_readonly')); |
|
|
|
this.$el |
|
|
|
.find('tbody td.oe_list_field_cell span.oe_form_field .read') |
|
|
|
.toggle(this.get('effective_readonly')); |
|
|
|
this.$el.find('.edit').first().focus(); |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
is_syntax_valid: function() |
|
|
|