All files / web/bundles/pimui/js/job/common/edit upload-launch.js

88.24% Statements 15/17
50% Branches 2/4
100% Functions 7/7
88.24% Lines 15/17

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 69 70 71 72 73 74 75 76                207x                     207x         209x   209x             16x 16x   16x 16x 16x   16x                 15x     1x     1x       16x                     32x          
'use strict';
/**
 * Upload and launch button
 *
 * @author    Julien Sanchez <julien@akeneo.com>
 * @copyright 2016 Akeneo SAS (http://www.akeneo.com)
 * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
define(
    [
        'jquery',
        'underscore',
        'oro/translator',
        'pim/job/common/edit/launch',
        'pim/router',
        'oro/messenger',
        'oro/loading-mask'
    ],
    function ($, _, __, BaseLaunch, router, messenger, LoadingMask) {
        return BaseLaunch.extend({
            /**
             * {@inherit}
             */
            configure: function () {
                this.listenTo(this.getRoot(), 'pim_enrich:form:job:file_updated', this.render.bind(this));
 
                return BaseLaunch.prototype.configure.apply(this, arguments);
            },
 
            /**
             * {@inherit}
             */
            launch: function () {
                var loadingMask = new LoadingMask();
                loadingMask.render().$el.appendTo(this.getRoot().$el).show();
 
                Eif (this.getFormData().file) {
                    var formData = new FormData();
                    formData.append('file', this.getFormData().file);
 
                    $.ajax({
                        url: this.getUrl(),
                        method: 'POST',
                        data: formData,
                        contentType: false,
                        cache: false,
                        processData: false
                    })
                    .then((response) => {
                        router.redirect(response.redirectUrl);
                    })
                    .fail((response) => {
                        Iif (undefined !== response.responseJSON.message) {
                            messenger.notify('error', __(response.responseJSON.message));
                        } else {
                            messenger.notify('error', __('pim_import_export.form.job_instance.fail.launch'));
                        }
                    })
                    .always(() => {
                        loadingMask.hide().$el.remove();
                    });
                } else {
                    loadingMask.hide().$el.remove();
                }
            },
 
            /**
             * {@inherit}
             */
            isVisible: function () {
                return $.Deferred().resolve(this.getFormData().file).promise();
            }
        });
    }
);