diff options
| author | Ravi Gadhia <rga@openerp.com> | 2015-08-11 19:47:20 +0530 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2015-11-02 10:57:18 +0100 |
| commit | cb835f8a3b762f79a824d85579863c3c0c5584e9 (patch) | |
| tree | 9d1770d432e3deed79c4e9855d07a9dd98e3df4e /addons/web/static/src | |
| parent | 4b768b3ba0f5b9af6a01054628d2e39e6bda3346 (diff) | |
[IMP] web: display message to edit translations when translated fields have been modified
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views/form_view.js | 28 | ||||
| -rw-r--r-- | addons/web/static/src/xml/base.xml | 9 |
2 files changed, 37 insertions, 0 deletions
diff --git a/addons/web/static/src/js/views/form_view.js b/addons/web/static/src/js/views/form_view.js index 9720ed14a8c..e6b2390c35d 100644 --- a/addons/web/static/src/js/views/form_view.js +++ b/addons/web/static/src/js/views/form_view.js @@ -905,6 +905,7 @@ var FormView = View.extend(common.FieldManagerMixin, { if (!self.datarecord.id) { // Creation save save_deferral = self.dataset.create(values, {readonly_fields: readonly_values}).then(function(r) { + self.display_translation_alert(values); return self.record_created(r, prepend_on_create); }, null); } else if (_.isEmpty(values)) { @@ -913,6 +914,7 @@ var FormView = View.extend(common.FieldManagerMixin, { } else { // Write save save_deferral = self.dataset.write(self.datarecord.id, values, {readonly_fields: readonly_values}).then(function(r) { + self.display_translation_alert(values); return self.record_saved(r); }, null); } @@ -1072,6 +1074,32 @@ var FormView = View.extend(common.FieldManagerMixin, { sidebar_eval_context: function () { return $.when(this.build_eval_context()); }, + /* + * Show a warning message if the user modified a translated field. For each + * field, the notification provides a link to edit the field's translations. + */ + display_translation_alert: function(values) { + if (_t.database.multi_lang) { + var alert_fields = _.filter(this.translatable_fields, function(field) { + return _.has(values, field.name) + }); + if (alert_fields.length) { + var $content = $(QWeb.render('translation-alert', { + fields: alert_fields, + lang: _t.database.parameters.name + })); + // bind click event on "Update translations" links + $content.find('.oe_field_translate').click(function(ev) { + ev.preventDefault(); + _.find(alert_fields, {'name': ev.target.name}).on_translate(); + }); + // show notification + this.once('to_view_mode', this, function () { + this.notify_in_form($content); + }); + } + } + }, /** * Add a notification box inside the form. The notification automatically * goes away (by default when switching to edit mode or changing the form diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 4ad7312d40c..fa9dadc0c72 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1464,4 +1464,13 @@ </div> </t> +<t t-name="translation-alert"> + <t t-foreach="fields" t-as="field"> + <div> + You have updated <strong><t t-esc="field.string"/></strong> (<t t-esc="lang"/>). + <a class="oe_field_translate" t-att-name="field.name" href="#">Update translations</a> + </div> + </t> +</t> + </templates> |
