changeset ae48f74b001a in sao:5.2
details: https://hg.tryton.org/sao?cmd=changeset;node=ae48f74b001a
description:
        Read value and fuzzy value in parallel to compare both

        issue8500
        review283741002
        (grafted from 1f13f663a75990e5a8793649b60042b65c84ee79)
diffstat:

 src/view/form.js |  63 ++++++++++++++++++++++++--------------------------------
 1 files changed, 27 insertions(+), 36 deletions(-)

diffs (82 lines):

diff -r fe7503b3f7a1 -r ae48f74b001a src/view/form.js
--- a/src/view/form.js  Sat Jul 20 21:45:28 2019 +0200
+++ b/src/view/form.js  Sat Jul 20 21:53:12 2019 +0200
@@ -1035,18 +1035,10 @@
             dialog.modal.modal('hide');
         },
         read: function(widget, dialog) {
+            function field_value(result) {
+                return result[0][widget.field_name] || '';
+            }
             this.languages.forEach(function(lang){
-                var context = {};
-                context.language = lang.code;
-                var params = [
-                    [widget.record.id],
-                    [widget.field_name],
-                    context
-                ];
-                var args = {
-                    'method': 'model.' + widget.model.name  + '.read',
-                    'params': params
-                };
                 var value;
                 var row = jQuery('<div/>', {
                     'class':'row form-group'
@@ -1065,32 +1057,31 @@
                     'disabled': true,
                     'title': Sao.i18n.gettext('Fuzzy')
                 });
-                var prm = Sao.rpc(args, widget.model.session)
-                        .then(function(result) {
-                    value = result[0][widget.field_name];
-                }.bind(this));
-                params = [
-                    [widget.record.id],
-                    [widget.field_name],
-                    context
-                ];
-                context.fuzzy_translation = true;
-                args = {
+                var prm1 = Sao.rpc({
+                    'method': 'model.' + widget.model.name  + '.read',
+                    'params': [
+                        [widget.record.id],
+                        [widget.field_name],
+                        {language: lang.code},
+                    ],
+                }, widget.model.session).then(field_value);
+                var prm2 = Sao.rpc({
                     'method': 'model.' + widget.model.name  + '.read',
-                    'params': params
-                };
-                prm.then(function() {
-                    Sao.rpc(args, widget.model.session)
-                            .then(function(fuzzy_value) {
-                        value = fuzzy_value[0][widget.field_name] || '';
-                        widget.translate_widget_set(
-                            input, value);
-                        widget.translate_widget_set_readonly(
-                            input, true);
-                        fuzzy_box.attr('checked',
-                               fuzzy_value[0].name != value);
-                    }.bind(this));
-                }.bind(this));
+                    'params': [
+                        [widget.record.id],
+                        [widget.field_name],
+                        {
+                            language: lang.code,
+                            fuzzy_translation: true,
+                        },
+                    ],
+                }, widget.model.session).then(field_value);
+
+                jQuery.when(prm1, prm2).done(function(value, fuzzy_value) {
+                    widget.translate_widget_set(input, fuzzy_value);
+                    widget.translate_widget_set_readonly( input, true);
+                    fuzzy_box.attr('checked', value !== fuzzy_value);
+                });
                 checkbox.click(function() {
                     widget.translate_widget_set_readonly(
                         input, !jQuery(this).prop('checked'));

Reply via email to