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/js/views/form_view.js | |
| parent | 4b768b3ba0f5b9af6a01054628d2e39e6bda3346 (diff) | |
[IMP] web: display message to edit translations when translated fields have been modified
Diffstat (limited to 'addons/web/static/src/js/views/form_view.js')
| -rw-r--r-- | addons/web/static/src/js/views/form_view.js | 28 |
1 files changed, 28 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 |
