[CLEAN] web: cleaned priority widget implementation: cleaned xml / js code

bzr revid: tde@openerp.com-20140508140545-kkogxe1dhbh7ryrk
This commit is contained in:
Thibault Delavallée 2014-05-08 16:05:45 +02:00
parent dae5ee484a
commit 750cc768c1
3 changed files with 34 additions and 55 deletions

View File

@ -2420,28 +2420,27 @@ instance.web.form.Priority = instance.web.form.FieldChar.extend({
this._super(field_manager, node);
},
prepare_priority: function() {
var data = [];
var self = this;
var selection = this.field.selection || [];
_.map(selection, function(res) {
value = {
'name': res[0],
'legend_name': res[1]
var init_value = selection && selection[0][0] || 0;
var data = _.map(selection.slice(1), function(element, index) {
var value = {
'value': element[0],
'name': element[1],
'click_value': element[0],
}
if (res[0] == '0') {
value['legend']= '<span class="oe_e oe_star_off">7</span>';
} else {
value['legend']= '<span class="oe_e oe_star_on">7</span>';
if (index == 0 && self.get('value') == element[0]) {
value['click_value'] = init_value;
}
data.push(value)
return value;
});
return data;
},
render_value: function() {
var self = this;
var data = {'widget': self }
self.record_id = self.view.datarecord.id;
data['legends'] = self.prepare_priority();
this.$el.html(QWeb.render("Priority", data));
this.record_id = self.view.datarecord.id;
this.priorities = self.prepare_priority();
this.$el.html(QWeb.render("Priority", {'widget': this}));
this.$el.find('.oe_legend').click(self.do_action.bind(self));
},
do_action: function(e) {
@ -2449,14 +2448,7 @@ instance.web.form.Priority = instance.web.form.FieldChar.extend({
var li = $(e.target).closest( "li" );
if (li.length) {
var value = {};
if (self.val == li.data('value') && self.check_star) {
value[self.name] = String(li.data('value') - 1);
self.check_star = false
} else {
value[self.name] = String(li.data('value'));
self.check_star = true;
}
self.val = li.data('value')
value[self.name] = String(li.data('value'));
if (self.record_id) {
return self.view.dataset._model.call('write', [[self.record_id], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
} else {

View File

@ -1034,7 +1034,6 @@
<t t-foreach="widget.states" t-as="rec">
<a t-if="widget.get('value') === rec.name">
<a class="oe_legend dropdown-toggle" data-toggle="dropdown">
<!-- <img height="16" width="16" t-att-src="'/web/static/src/img/icons/' + rec.icon_name"/> -->
<span t-att-class="rec.state_class" t-if="widget.get('value') === rec.name" t-att-title="rec.tooltip"/>
<span class="sr-only">Toggle Dropdown</span>
</a>
@ -1045,7 +1044,6 @@
<t t-if="widget.get('value') !== rec.name">
<li class="oe_legend" t-att-data-value="rec.name" ><a href="#">
<span t-att-class="rec.state_class" t-att-title="rec.tooltip"/>
<!-- <img height="16" width="16" t-att-src="'/web/static/src/img/icons/' + rec.icon_name"/> -->
<t t-raw="rec.state_name" /></a>
</li>
</t>
@ -1055,15 +1053,12 @@
</t>
<t t-name="Priority">
<ul style="list-style: none; padding-left: 2px;">
<t t-foreach="legends" t-as="rec" >
<t t-if="widget.get('value') gte rec.name and !rec_first">
<li t-att-data-value="rec.name" class="pull-left oe_legend"><a href="#" t-att-title="rec.legend_name"><t t-raw="rec.legend"/></a></li>
</t>
</t>
<t t-foreach="legends" t-as="rec" >
<t t-if="widget.get('value') lt rec.name">
<li t-att-data-value="rec.name" class="pull-left oe_legend"><a href="#" t-att-title="rec.legend_name"><t t-raw="legends[0].legend"/></a></li>
</t>
<t t-foreach="widget.priorities" t-as="rec" >
<li t-att-data-value="rec.click_value" class="pull-left oe_legend">
<a href="#" t-att-title="rec.name">
<span t-att-class="widget.get('value') gte rec.value and 'oe_e oe_star_on' or 'oe_e oe_star_off'">7</span>
</a>
</li>
</t>
</ul>
</t>

View File

@ -1266,28 +1266,27 @@ instance.web_kanban.Priority = instance.web_kanban.AbstractField.extend({
this.parent = parent;
},
prepare_priority: function() {
var data = [];
var self = this;
var selection = this.field.selection || [];
_.map(selection, function(res) {
value = {
'name': res[0],
'legend_name': res[1]
var init_value = selection && selection[0][0] || 0;
var data = _.map(selection.slice(1), function(element, index) {
var value = {
'value': element[0],
'name': element[1],
'click_value': element[0],
}
if (res[0] == '0') {
value['legend'] = '<span class="oe_e oe_star_off">7</span>';
} else {
value['legend'] = '<span class="oe_e oe_star_on">7</span>';
if (index == 0 && self.get('value') == element[0]) {
value['click_value'] = init_value;
}
data.push(value)
return value;
});
return data;
},
renderElement: function() {
var self = this;
self.record_id = self.parent.id;
var data = {'widget': self }
data['legends'] = self.prepare_priority();
this.$el = $(QWeb.render("Priority", data));
this.record_id = self.parent.id;
this.priorities = self.prepare_priority();
this.$el = $(QWeb.render("Priority", {'widget': this}));
this.$el.find('.oe_legend').click(self.do_action.bind(self));
},
do_action: function(e) {
@ -1295,14 +1294,7 @@ instance.web_kanban.Priority = instance.web_kanban.AbstractField.extend({
var li = $(e.target).closest( "li" );
if (li.length) {
var value = {};
if (self.parent.val == li.data('value') && self.parent.check_star) {
value[self.name] = String(li.data('value') - 1);
self.parent.check_star = false
} else {
value[self.name] = String(li.data('value'));
self.parent.check_star = true;
}
self.parent.val = li.data('value')
value[self.name] = String(li.data('value'));
return self.parent.view.dataset._model.call('write', [[self.record_id], value, self.parent.view.dataset.get_context()]).done(self.reload_record.bind(self.parent));
}
},