summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2012-08-08 11:47:43 +0200
committerFabien Meghazi <fme@openerp.com>2012-08-08 11:47:43 +0200
commit7527c01df0ed264a8362576daf643f9d3bb75086 (patch)
treec54c5bb2a46c85e77d8eb6af996ab1fb4585f795 /addons/web/static/src
parent5d416152174d740aaa4b4e86a98f4dbd421ac541 (diff)
[FIX] Restore translatable fields
bzr revid: fme@openerp.com-20120808094743-gw5boichxy3ka737
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views.js29
-rw-r--r--addons/web/static/src/xml/base.xml13
2 files changed, 19 insertions, 23 deletions
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index ae46d3d9ff1..e9e8bc500e5 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -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);
},
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 4e3ffa0acb4..35d42d624c5 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -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>