这是Odoo(Python),在js中解释这种类型的函数 [英] this is Odoo(Python), explain about this type of function in js

查看:66
本文介绍了这是Odoo(Python),在js中解释这种类型的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

//- File & settings change section
        onfile_loaded: function () {
            this.$('.oe_import_button, .oe_import_file_reload')
                    .prop('disabled', true);
            if (!this.$('input.oe_import_file').val()) { return; }

            this.$el.removeClass('oe_import_preview oe_import_error');
            jsonp(this.$el, {
                url: '/base_import/set_file'
            }, this.proxy('settings_changed'));
        },
        onpreviewing: function () {
            var self = this;
            this.$('.oe_import_button, .oe_import_file_reload')
                    .prop('disabled', true);
            this.$el.addClass('oe_import_with_file');
            // TODO: test that write // succeeded?
            this.$el.removeClass('oe_import_preview_er//- File & settings change section
        onfile_loaded: function () {
            this.$('.oe_import_button, .oe_import_file_reload')
                    .prop('disabled', true);
            if (!this.$('input.oe_import_file').val()) { return; }

            this.$el.removeClass('oe_import_preview oe_import_error');
            jsonp(this.$el, {
                url: '/base_import/set_file'
            }, this.proxy('settings_changed'));
        },
        onpreviewing: function () {
            var self = this;
            this.$('.oe_import_button, .oe_import_file_reload')
                    .prop('disabled', true);
            this.$el.addClass('oe_import_with_file');
            // TODO: test that write // succeeded?
            this.$el.removeClass('oe_import_preview_error oe_import_error');
            this.$el.toggleClass(
                'oe_import_noheaders',
                !this.$('input.oe_import_has_header').prop('checked'));
            this.Import.call(
                'parse_preview', [this.id, this.import_options()])
                .done(function (result) {
                    var signal = result.error ? 'preview_failed' : 'preview_succeeded';
                    self[signal](result);
                });
        },
        onpreview_error: function (event, from, to, result) {
            this.$('.oe_import_options').show();
            this.$('.oe_import_file_reload').prop('disabled', false);
            this.$el.addClass('oe_import_preview_error oe_import_error');
            this.$('.oe_import_error_report').html(
                    QWeb.render('ImportView.preview.error', result));
        },
        onpreview_success: function (event, from, to, result) {
            this.$('.oe_import_import').removeClass('oe_highlight');
            this.$('.oe_import_validate').addClass('oe_highlight');
            this.$('.oe_import_button, .oe_import_file_reload')
                    .prop('disabled', false);
            this.$el.addClass('oe_import_preview');
            this.$('table').html(QWeb.render('ImportView.preview', result));

            if (result.headers.length === 1) {
                this.$('.oe_import_options').show();
                this.onresults(null, null, null, [{
                    type: 'warning',
                    message: _t("A single column was found in the file, this often means the file separator is incorrect")
                }]);
            }

            var $fields = this.$('.oe_import_fields input');
            this.render_fields_matches(result, $fields);
            var data = this.generate_fields_completion(result);
            var item_finder = function (id, items) {
                items = items || data;
                for (var i=0; i < items.length; ++i) {
                    var item = items[i];
                    if (item.id === id) {
                        return item;
                    }
                    var val;
                    if (item.children && (val = item_finder(id, item.children))) {
                        return val;
                    }
                }
                return '';
            };
            $fields.select2({
                allowClear: true,
                minimumInputLength: 0,
                data: data,
                initSelection: function (element, callback) {
                    var default_value = element.val();
                    if (!default_value) {
                        callback('');
                        return;
                    }

                    callback(item_finder(default_value));
                },
                placeholder: _t('Don\'t import'),
                width: 'resolve',
                dropdownCssClass: 'oe_import_selector'
            });
        },
        generate_fields_completion: function (root) {
            var basic = [];
            var regulars = [];
            var o2m = [];
            function traverse(field, ancestors, collection) {
                var subfields = field.fields;
                var field_path = ancestors.concat(field);
                var label = _(field_path).pluck('string').join(' / ');
                var id = _(field_path).pluck('name').join('/');

                // If non-relational, m2o or m2m, collection is regulars
                if (!collection) {
                    if (field.name === 'id') {
                        collection = basic
                    } else if (_.isEmpty(subfields)
                            || _.isEqual(_.pluck(subfields, 'name'), ['id', '.id'])) {
                        collection = regulars;
                    } else {
                        collection = o2m;
                    }
                }

                collection.push({
                    id: id,
                    text: label,
                    required: field.required
                });

                for(var i=0, end=subfields.length; i<end; ++i) {
                    traverse(subfields[i], field_path, collection);
                }
            }
            _(root.fields).each(function (field) {
                traverse(field, []);
            });

            var cmp = function (field1, field2) {
                return field1.text.localeCompare(field2.text);

            };
            regulars.sort(cmp);
            o2m.sort(cmp);
            return basic.concat([
                { text: _t("Normal Fields"), children: regulars },
                { text: _t("Relation Fields"), children: o2m }
            ]);
        },
        render_fields_matches: function (result, $fields) {
            if (_(result.matches).isEmpty()) { return; }
            $fields.each(function (index, input) {
                var match = result.matches[index];
                if (!match) { return; }

                var current_field = result;
                input.value = _(match).chain()
                    .map(function (name) {
                        // WARNING: does both mapping and folding (over the
                        //          ``field`` iterator variable)
                        return current_field = _(current_field.fields).find(function (subfield) {
                            return subfield.name === name;
                        });
                    })
                    .pluck('name')
                    .value()
                    .join('/');
            });
        },
ror oe_import_error');
            this.$el.toggleClass(
                'oe_import_noheaders',
                !this.$('input.oe_import_has_header').prop('checked'));
            this.Import.call(
                'parse_preview', [this.id, this.import_options()])
                .done(function (result) {
                    var signal = result.error ? 'preview_failed' : 'preview_succeeded';
                    self[signal](result);
                });
        },
        onpreview_error: function (event, from, to, result) {
            this.$('.oe_import_options').show();
            this.$('.oe_import_file_reload').prop('disabled', false);
            this.$el.addClass('oe_import_preview_error oe_import_error');
            this.$('.oe_import_error_report').html(
                    QWeb.render('ImportView.preview.error', result));
        },
        onpreview_success: function (event, from, to, result) {
            this.$('.oe_import_import').removeClass('oe_highlight');
            this.$('.oe_import_validate').addClass('oe_highlight');
            this.$('.oe_import_button, .oe_import_file_reload')
                    .prop('disabled', false);
            this.$el.addClass('oe_import_preview');
            this.$('table').html(QWeb.render('ImportView.preview', result));

            if (result.headers.length === 1) {
                this.$('.oe_import_options').show();
                this.onresults(null, null, null, [{
                    type: 'warning',
                    message: _t("A single column was found in the file, this often means the file separator is incorrect")
                }]);
            }

            var $fields = this.$('.oe_import_fields input');
            this.render_fields_matches(result, $fields);
            var data = this.generate_fields_completion(result);
            var item_finder = function (id, items) {
                items = items || data;
                for (var i=0; i < items.length; ++i) {
                    var item = items[i];
                    if (item.id === id) {
                        return item;
                    }
                    var val;
                    if (item.children && (val = item_finder(id, item.children))) {
                        return val;
                    }
                }
                return '';
            };
            $fields.select2({
                allowClear: true,
                minimumInputLength: 0,
                data: data,
                initSelection: function (element, callback) {
                    var default_value = element.val();
                    if (!default_value) {
                        callback('');
                        return;
                    }

                    callback(item_finder(default_value));
                },
                placeholder: _t('Don\'t import'),
                width: 'resolve',
                dropdownCssClass: 'oe_import_selector'
            });
        },
        generate_fields_completion: function (root) {
            var basic = [];
            var regulars = [];
            var o2m = [];
            function traverse(field, ancestors, collection) {
                var subfields = field.fields;
                var field_path = ancestors.concat(field);
                var label = _(field_path).pluck('string').join(' / ');
                var id = _(field_path).pluck('name').join('/');

                // If non-relational, m2o or m2m, collection is regulars
                if (!collection) {
                    if (field.name === 'id') {
                        collection = basic
                    } else if (_.isEmpty(subfields)
                            || _.isEqual(_.pluck(subfields, 'name'), ['id', '.id'])) {
                        collection = regulars;
                    } else {
                        collection = o2m;
                    }
                }

                collection.push({
                    id: id,
                    text: label,
                    required: field.required
                });

                for(var i=0, end=subfields.length; i<end; ++i) {
                    traverse(subfields[i], field_path, collection);
                }
            }
            _(root.fields).each(function (field) {
                traverse(field, []);
            });

            var cmp = function (field1, field2) {
                return field1.text.localeCompare(field2.text);

            };
            regulars.sort(cmp);
            o2m.sort(cmp);
            return basic.concat([
                { text: _t("Normal Fields"), children: regulars },
                { text: _t("Relation Fields"), children: o2m }
            ]);
        },
        render_fields_matches: function (result, $fields) {
            if (_(result.matches).isEmpty()) { return; }
            $fields.each(function (index, input) {
                var match = result.matches[index];
                if (!match) { return; }

                var current_field = result;
                input.value = _(match).chain()
                    .map(function (name) {
                        // WARNING: does both mapping and folding (over the
                        //          ``field`` iterator variable)
                        return current_field = _(current_field.fields).find(function (subfield) {
                            return subfield.name === name;
                        });
                    })
                    .pluck('name')
                    .value()
                    .join('/');
            });
        },

推荐答案

' 。oe_import_button,.oe_import_file_reload'
.prop(' 已禁用' true );
if (!this。
('.oe_import_button, .oe_import_file_reload') .prop('disabled', true); if (!this.


' input.oe_import_file')。val()){ return ; }

this
('input.oe_import_file').val()) { return; } this.


el.removeClass( ' oe_import_preview oe_import_error');
jsonp( this
el.removeClass('oe_import_preview oe_import_error'); jsonp(this.


这篇关于这是Odoo(Python),在js中解释这种类型的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆