[FIX] Restore translatable fields
bzr revid: fme@openerp.com-20120808094743-gw5boichxy3ka737
This commit is contained in:
@@ -1079,14 +1079,15 @@ instance.web.TranslateDialog = instance.web.Dialog.extend({
|
||||
this['on_button_' + _t("Close")] = this.on_btn_close;
|
||||
this._super(view, {
|
||||
width: '80%',
|
||||
height: '80%'
|
||||
height: '80%',
|
||||
destroy_on_close: false,
|
||||
});
|
||||
this.view = view;
|
||||
this.view_type = view.fields_view.type || '';
|
||||
this.$fields_form = null;
|
||||
this.$view_form = null;
|
||||
this.$sidebar_form = null;
|
||||
this.translatable_fields_keys = _.map(this.view.translatable_fields || [], function(i) { return i.name });
|
||||
this.translatable_fields_keys = _.map(this.view.translatable_fields || [], function(i) { return i.name; });
|
||||
this.languages = null;
|
||||
this.languages_loaded = $.Deferred();
|
||||
(new instance.web.DataSetSearch(this, 'res.lang', this.view.dataset.get_context(),
|
||||
@@ -1117,7 +1118,8 @@ instance.web.TranslateDialog = instance.web.Dialog.extend({
|
||||
deffered.push(deff);
|
||||
var callback = function(values) {
|
||||
_.each(self.translatable_fields_keys, function(f) {
|
||||
self.$fields_form.find('.oe_trad_field[name="' + lg.code + '-' + f + '"]').val(values[0][f] || '').attr('data-value', values[0][f] || '');
|
||||
var value = values[0][f] || '';
|
||||
self.$fields_form.find('.oe_trad_field[name="' + lg.code + '-' + f + '"]').val(value).attr('data-value', value);
|
||||
});
|
||||
deff.resolve();
|
||||
};
|
||||
@@ -1128,31 +1130,24 @@ instance.web.TranslateDialog = instance.web.Dialog.extend({
|
||||
});
|
||||
callback([values]);
|
||||
} else {
|
||||
self.rpc('/web/dataset/get', {
|
||||
model: self.view.dataset.model,
|
||||
ids: [self.view.datarecord.id],
|
||||
fields: self.translatable_fields_keys,
|
||||
context: self.view.dataset.get_context({
|
||||
'lang': lg.code
|
||||
})}, callback);
|
||||
self.view.dataset.read_ids([self.view.datarecord.id], self.translatable_fields_keys, {
|
||||
context: { 'lang': lg.code }
|
||||
}).then(callback);
|
||||
}
|
||||
});
|
||||
$.when.apply(null, deffered).then(callback);
|
||||
},
|
||||
open: function(field) {
|
||||
var self = this,
|
||||
sup = this._super;
|
||||
var self = this;
|
||||
this._super();
|
||||
$.when(this.languages_loaded).then(function() {
|
||||
if (self.view.translatable_fields && self.view.translatable_fields.length) {
|
||||
self.do_load_fields_values(function() {
|
||||
sup.call(self);
|
||||
// desactivated because it created an exception, plus it does not seem very useful
|
||||
/*
|
||||
if (field) {
|
||||
var $field_input = self.$element.find('tr[data-field="' + field.name + '"] td:nth-child(2) *:first-child');
|
||||
self.$element.scrollTo($field_input);
|
||||
$field_input.focus();
|
||||
}*/
|
||||
}
|
||||
});
|
||||
} else {
|
||||
sup.call(self);
|
||||
@@ -1241,7 +1236,7 @@ instance.web.View = instance.web.Widget.extend({
|
||||
},
|
||||
open_translate_dialog: function(field) {
|
||||
if (!this.translate_dialog) {
|
||||
this.translate_dialog = new instance.web.TranslateDialog(this).start();
|
||||
this.translate_dialog = new instance.web.TranslateDialog(this);
|
||||
}
|
||||
this.translate_dialog.open(field);
|
||||
},
|
||||
|
||||
@@ -930,9 +930,10 @@
|
||||
t-att-tabindex="widget.node.attrs.tabindex"
|
||||
t-att-autofocus="widget.node.attrs.autofocus"
|
||||
t-att-placeholder="! widget.get('effective_readonly') ? widget.node.attrs.placeholder : ''"
|
||||
></textarea>
|
||||
<img class="oe_field_translate oe_input_icon" t-if="widget.field.translate"
|
||||
t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
|
||||
></textarea><img class="oe_field_translate oe_input_icon"
|
||||
t-if="widget.field.translate and !widget.get('effective_readonly')"
|
||||
t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"
|
||||
/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="web.datepicker">
|
||||
@@ -1193,11 +1194,11 @@
|
||||
</tr>
|
||||
<tr t-foreach="widget.view.translatable_fields" t-as="field" t-att-data-field="field.name">
|
||||
<td class="oe_form_group_cell" width="1%" nowrap="nowrap">
|
||||
<label class="oe_label"><t t-esc="field.node.attrs.string"/>:</label>
|
||||
<label class="oe_label"><t t-esc="field.string"/>:</label>
|
||||
</td>
|
||||
<td t-foreach="widget.languages" t-as="lg" class="oe_form_group_cell">
|
||||
<input t-if="field.type == 'char'" type="text" t-attf-name="#{lg.code}-#{field.name}" value="" data-value="" class="oe_trad_field" style="width: 100%"/>
|
||||
<textarea t-if="field.type == 'text'" t-attf-name="#{lg.code}-#{field.name}" data-value="" class="oe_trad_field" style="width: 100%"></textarea>
|
||||
<input t-if="field.field.type == 'char'" type="text" t-attf-name="#{lg.code}-#{field.name}" value="" data-value="" class="oe_trad_field" style="width: 100%"/>
|
||||
<textarea t-if="field.field.type == 'text'" t-attf-name="#{lg.code}-#{field.name}" data-value="" class="oe_trad_field" style="width: 100%"></textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Reference in New Issue
Block a user