mirror of https://github.com/OCA/web.git
Read the fields of the current language from the view, not from a read() in the database
parent
9190feed1b
commit
01845071cd
|
@ -126,7 +126,24 @@ openerp.web_translate_dialog = function (instance) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
do_load_fields_values: function(callback) {
|
set_fields_values: function(lang, values) {
|
||||||
|
var self = this;
|
||||||
|
_.each(this.translatable_fields_keys, function(f) {
|
||||||
|
self.$el.find('.oe_translation_field[name="' + lang.code + '-' + f + '"]')
|
||||||
|
.val(values[f] || '')
|
||||||
|
.attr('data-value', values[f] || '');
|
||||||
|
|
||||||
|
var $tarea = self.$el.find('.oe_form_field_html .oe_translation_field[name="' + lang.code + '-' + f + '"]');
|
||||||
|
if ($tarea.length) {
|
||||||
|
$tarea.cleditor()[0].updateFrame();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var $textarea = this.$el.find('textarea.oe_translation_field');
|
||||||
|
$textarea.css({minHeight:'100px'});
|
||||||
|
$textarea.autosize();
|
||||||
|
$(window).resize(); // triggers the autosize
|
||||||
|
},
|
||||||
|
do_load_fields_values: function() {
|
||||||
var self = this,
|
var self = this,
|
||||||
deferred = [];
|
deferred = [];
|
||||||
|
|
||||||
|
@ -134,31 +151,25 @@ openerp.web_translate_dialog = function (instance) {
|
||||||
_.each(self.languages, function(lg) {
|
_.each(self.languages, function(lg) {
|
||||||
var deff = $.Deferred();
|
var deff = $.Deferred();
|
||||||
deferred.push(deff);
|
deferred.push(deff);
|
||||||
var callback = function(values) {
|
if (lg.code === self.view_language) {
|
||||||
};
|
var values = {};
|
||||||
|
_.each(self.translatable_fields_keys, function(field) {
|
||||||
|
values[field] = self.view.fields[field].get_value();
|
||||||
|
});
|
||||||
|
self.set_fields_values(lg, values);
|
||||||
|
deff.resolve();
|
||||||
|
} else {
|
||||||
self.view.dataset.call(
|
self.view.dataset.call(
|
||||||
'read',
|
'read',
|
||||||
[[self.view.datarecord.id],
|
[[self.view.datarecord.id],
|
||||||
self.translatable_fields_keys,
|
self.translatable_fields_keys,
|
||||||
self.view.dataset.get_context({
|
self.view.dataset.get_context({
|
||||||
'lang': lg.code
|
'lang': lg.code
|
||||||
})]).done(function (values) {
|
})]).done(function (rows) {
|
||||||
_.each(self.translatable_fields_keys, function(f) {
|
self.set_fields_values(lg, rows[0]);
|
||||||
self.$el.find('.oe_translation_field[name="' + lg.code + '-' + f + '"]')
|
|
||||||
.val(values[0][f] || '')
|
|
||||||
.attr('data-value', values[0][f] || '');
|
|
||||||
|
|
||||||
var $tarea = self.$el.find('.oe_form_field_html .oe_translation_field[name="' + lg.code + '-' + f + '"]');
|
|
||||||
if ($tarea.length) {
|
|
||||||
$tarea.cleditor()[0].updateFrame();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var $textarea = self.$el.find('textarea.oe_translation_field');
|
|
||||||
$textarea.css({minHeight:'100px'});
|
|
||||||
$textarea.autosize();
|
|
||||||
$(window).resize(); // triggers the autosize
|
|
||||||
deff.resolve();
|
deff.resolve();
|
||||||
});
|
});
|
||||||
|
};
|
||||||
});
|
});
|
||||||
return deferred;
|
return deferred;
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue