All files / web/bundles/pimui/js/controller form.js

100% Statements 14/14
87.5% Branches 7/8
100% Functions 4/4
100% Lines 14/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68    32x                           32x                         17x   17x   17x   17x       17x                 17x 2x     15x 7x           8x 8x 8x            
'use strict';
 
define([
        'jquery',
        'underscore',
        'oro/mediator',
        'pim/controller/template',
        'pim/router',
        'jquery.form'
    ], function (
        $,
        _,
        mediator,
        TemplateController,
        router
    ) {
        return TemplateController.extend({
            events: {
                'submit form': 'submitForm'
            },
 
            /**
             * Handle form submission on the page
             *
             * @param {Event} event
             *
             * @return {boolean}
             */
            submitForm: function (event) {
                var $form = $(event.currentTarget);
 
                router.showLoadingMask();
 
                $form.ajaxSubmit({
                    complete: (xhr) => {
                        this.afterSubmit(xhr, $form);
                    }
                });
 
                return false;
            },
 
            /**
             * Called after a successful submit (after a submitForm)
             *
             * @param {Object} xhr
             */
            afterSubmit: function (xhr) {
                if (!this.active) {
                    return;
                }
 
                if (xhr.responseJSON && xhr.responseJSON.route) {
                    router.redirectToRoute(
                        xhr.responseJSON.route,
                        xhr.responseJSON.params ? xhr.responseJSON.params : {},
                        {trigger: true}
                    );
                } else {
                    this.renderTemplate(xhr.responseText);
                    mediator.trigger('route_complete pim:reinit');
                    router.hideLoadingMask();
                }
            }
        });
    }
);