summaryrefslogtreecommitdiff
path: root/addons/web/static/src
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
parent4b768b3ba0f5b9af6a01054628d2e39e6bda3346 (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.js28
-rw-r--r--addons/web/static/src/xml/base.xml9
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>