Search code examples
jqueryajaxonclickjsonpodoo

how to use ajax call with jQuery toggle button


I am working with OpenERP-odoo module.

In which toggle button is used to display publish-unpublish on click. on each click there is some background process to fetch data using json rpc

I want to .hide() this toggle button for the duration while background process [Inshort: i dont want to toggle this button instantly]

​        $(document).on('click', '.js_publish_management .js_publish_btn', function () {
            var $data = $(this).parents(".js_publish_management:first");
            var self=this;
            openerp.jsonRpc($data.data('controller') || '/website/publish', 'call', {'id': +$data.data('id'), 'object': $data.data('object')})
                .then(function (result) {
                    $data.toggleClass("css_unpublished css_published");
                    $data.parents("[data-publish]").attr("data-publish", +result ? 'on' : 'off');
                }).fail(function (err, data) {
                    website.error(data, '/web#return_label=Website&model='+$data.data('object')+'&id='+$data.data('id'));
                });
        });

I am not familiar with Ajax call. can anybody guide me! TIA.


Solution

  •             $('.btn-group').ready( function () {
                    $('.btn-group').button('loading');
                    openerp.jsonRpc($data.data('controller') || '/website/publish', 'call', {'id': +$data.data('id'), 'object': $data.data('object')})
                        .then(function (result) {
                            $data.toggleClass("css_unpublished css_published");
                            //do something
                            $('.btn-group').button('reset');
                        }).fail(function (err, data) {
                            //do something
                            $('.btn-group').button('reset');
                        });
                });
    

    you can try to use bootstrap ready class to display 'loading..' status instead