diff options
| author | Fabien Meghazi <fme@openerp.com> | 2012-08-08 11:47:43 +0200 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2012-08-08 11:47:43 +0200 |
| commit | 7527c01df0ed264a8362576daf643f9d3bb75086 (patch) | |
| tree | c54c5bb2a46c85e77d8eb6af996ab1fb4585f795 /addons/web/static/src | |
| parent | 5d416152174d740aaa4b4e86a98f4dbd421ac541 (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.js | 29 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 13 |
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> |
