[IMP]add blocked reason dialog
bzr revid: rlu@tinyerp.com-20140411122320-o0zmebvaz0985mrx
This commit is contained in:
parent
850b4f198a
commit
daf69ced12
|
@ -2367,7 +2367,42 @@ instance.web.form.DropdownSelection = instance.web.form.FieldChar.extend({
|
|||
this.$el.on('mouseenter mouseleave', function(e) {
|
||||
self.$el.find('.caret').toggleClass('hidden', e.type == 'mouseleave');
|
||||
});
|
||||
|
||||
},
|
||||
on_click_block_reason: function(event) {
|
||||
var self = this;
|
||||
var li = $(event.target).closest( "li" );
|
||||
$('div.oe_edit_actions').remove();
|
||||
self.$dialog = new instance.web.dialog($('<div class="oe_edit_actions"><textarea id="txtReason"rows="3" cols="40"></textarea></div>'), {
|
||||
modal: true,
|
||||
width: 'auto',
|
||||
height: 'auto',
|
||||
title: _t('Reason for blocking'),
|
||||
buttons: [
|
||||
{
|
||||
class: 'oe_highlight',
|
||||
text: _t("Block"), click: function() {
|
||||
if ($("#txtReason").val() == "") {
|
||||
alert('Reason Required');
|
||||
} else {
|
||||
value[self.name] = String(li.data('value'));
|
||||
var reason = $("#txtReason").val()
|
||||
$(this).dialog("close");
|
||||
if (self.record_id) {
|
||||
self.view.dataset._model.call('write', [[self.record_id], value, self.view.dataset.get_context()])
|
||||
return self.view.dataset._model.call('message_post', [[self.record_id], reason]).done(self.reload_record.bind(self));
|
||||
} else {
|
||||
return self.view.on_button_save().done(function(result) {
|
||||
if (result) {
|
||||
self.view.dataset._model.call('write', [[result], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
},
|
||||
{ text: _t("Cancel"), click: function() { $(this).dialog("close"); }}
|
||||
],
|
||||
});
|
||||
},
|
||||
do_action: function(e) {
|
||||
var self = this;
|
||||
|
@ -2375,12 +2410,22 @@ instance.web.form.DropdownSelection = instance.web.form.FieldChar.extend({
|
|||
if (li.length) {
|
||||
var 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 {
|
||||
return self.view.on_button_save().done(function(result) {
|
||||
if (result) {
|
||||
self.view.dataset._model.call('write', [[result], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
|
||||
if (self.view.datarecord.stage_id) {
|
||||
var stage_id = _.isArray(self.view.datarecord.stage_id) ? self.view.datarecord.stage_id[0] : self.view.datarecord.stage_id
|
||||
new openerp.web.Model(self.view.fields.stage_id.field.relation).query([])
|
||||
.filter([["id", "=", stage_id]]).first().then(function(res) {
|
||||
if ((res.block_reason) && value[self.name] == 'blocked') {
|
||||
self.on_click_block_reason(e);
|
||||
} else {
|
||||
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 {
|
||||
return self.view.on_button_save().done(function(result) {
|
||||
if (result) {
|
||||
self.view.dataset._model.call('write', [[result], value, self.view.dataset.get_context()]).done(self.reload_record.bind(self));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -1334,15 +1334,54 @@ instance.web_kanban.DropdownSelection = instance.web_kanban.AbstractField.extend
|
|||
self.$el.find('.caret').toggleClass('hidden', e.type == 'mouseleave');
|
||||
});
|
||||
},
|
||||
|
||||
on_click_block_reason: function(event) {
|
||||
var self = this;
|
||||
var li = $(event.target).closest( "li" );
|
||||
$('div.oe_edit_actions').remove();
|
||||
self.$dialog = new instance.web.dialog($('<div class="oe_edit_actions"><textarea id="txtReason"rows="3" cols="40"></textarea></div>'), {
|
||||
modal: true,
|
||||
width: 'auto',
|
||||
height: 'auto',
|
||||
title: _t('Reason for blocking'),
|
||||
buttons: [
|
||||
{
|
||||
class: 'oe_highlight',
|
||||
text: _t("Block"), click: function() {
|
||||
if ($("#txtReason").val() == "") {
|
||||
alert('Reason Required');
|
||||
} else {
|
||||
value[self.name] = String(li.data('value'));
|
||||
var reason = $("#txtReason").val();
|
||||
$(this).dialog("close");
|
||||
self.parent.view.dataset._model.call('write', [[self.record_id], value, self.parent.view.dataset.get_context()]).done(self.reload_record.bind(self.parent));
|
||||
return self.parent.view.dataset._model.call('message_post', [[self.record_id], reason]);
|
||||
};
|
||||
}},
|
||||
{ text: _t("Cancel"), click: function() { $(this).dialog("close"); }}
|
||||
],
|
||||
});
|
||||
},
|
||||
do_action: function(e) {
|
||||
var self = this;
|
||||
var li = $(e.target).closest( "li" );
|
||||
if (li.length) {
|
||||
var 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));
|
||||
}
|
||||
},
|
||||
if (self.parent.group.value) {
|
||||
var stage_id = self.parent.group.value
|
||||
new openerp.web.Model(self.parent.record.stage_id.relation).query([])
|
||||
.filter([["id", "=", stage_id]]).first().then(function(res) {
|
||||
if ((res.block_reason) && value[self.name] == 'blocked') {
|
||||
self.on_click_block_reason(e);
|
||||
} else {
|
||||
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));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
reload_record: function() {
|
||||
this.do_reload();
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue