summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/form_view.js
diff options
context:
space:
mode:
authorRavi Gadhia <rga@openerp.com>2015-08-11 19:47:20 +0530
committerRaphael Collet <rco@openerp.com>2015-11-02 10:57:18 +0100
commitcb835f8a3b762f79a824d85579863c3c0c5584e9 (patch)
tree9d1770d432e3deed79c4e9855d07a9dd98e3df4e /addons/web/static/src/js/views/form_view.js
parent4b768b3ba0f5b9af6a01054628d2e39e6bda3346 (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.js28
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