This question has been flagged
3 Replies
7204 Views

Hello there,

We are trying to override the start function in openerp/addons/web/static/src/js/search.js.



We have this in a XML file of our custom module and it seems to work well :

        <template id="override_js_search_view" name="override_js_search_view" inherit_id="web.assets_backend" >

                <xpath expr="." position="inside">

                        <script type="text/javascript" src="/website_lapagept/static/src/js/search.js"></script>

                </xpath>

        </template>



We have this in our custom js file /website_lapagept/static/src/js/search.js :

        openerp.website_lapagept = function(instance){

                instance.web.SearchView.include ({

                    start: function() {

                        var self = this;

                        var p = this._super();

                        this.$view_manager_header = this.$el.parents(".oe_view_manager_header").first();

                        this.setup_global_completion();

                        this.query = new my.SearchQuery()

                        .on('add change reset remove', this.proxy('do_search'))

                        .on('change', this.proxy('renderChangedFacets'))

                        .on('add reset remove', this.proxy('renderFacets'));

                        if (this.options.hidden) {

                            this.$el.hide();

                        }

                        if (this.headless) {

                            this.ready.resolve();

                        } else {

                            var load_view = instance.web.fields_view_get({

                            model: this.dataset._model,

                            view_id: this.view_id,

                            view_type: 'search',

                            context: this.dataset.get_context(),

                        });

                        this.alive($.when(load_view)).then(function (r) {

                        self.fields_view_get.resolve(r);

                        return self.search_view_loaded(r);

                   }).fail(function () {

                    self.ready.reject.apply(null, arguments);

                });

            }

                                var view_manager = this.getParent();

                                while (!(view_manager instanceof instance.web.ViewManager) &&

                                view_manager && view_manager.getParent) {

                                view_manager = view_manager.getParent();

                        }

                        if (view_manager) {

                            this.view_manager = view_manager;

                            view_manager.on('switch_mode', this, function (e) {

                            self.drawer.toggle(e !== 'form');

                        });

                    }

                    return $.when(p, this.ready);

                },

            })

        };



But we get this error (we have a problem with the my variable) :

        Uncaught ReferenceError: my is not defined

            http://localhost:8070/website_lapagept/static/src/js/search.js:13


Somebody could help please?


Avatar
Discard
Best Answer

As var my is defined in Odoo 8 as:

var my = instance.web.search = {}; 

Try redeclaring in your .js the var my as:

var my = instance.web.search; 


Avatar
Discard
Author

Thanks a lot for your answer. It works correctly.

Author Best Answer

The code is :

......

    openerp.website_lapagept = function(instance){

        var my = instance.web.search;

        instance.web.SearchView.include ({


......

Avatar
Discard