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

75% Statements 12/16
75% Branches 3/4
80% Functions 4/5
75% Lines 12/16

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             32x           32x   32x             16x 16x       16x   16x   16x                              
'use strict';
 
/**
 * Displays a drop zone to upload a file.
 *
 * @author    Julien Sanchez <julien@akeneo.com>
 * @copyright 2017 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/form',
    'pim/template/export/common/edit/upload'
], function ($, _, __, BaseForm, template) {
    return BaseForm.extend({
        template: _.template(template),
        events: {
            'change input[type="file"]': 'addFile',
            'click .clear-field': 'removeFile'
        },
 
        /**
         * {@inheritdoc}
         */
        initialize: function (config) {
            this.config = config.config;
 
            BaseForm.prototype.initialize.apply(this, arguments);
        },
 
        /**
         * {@inheritdoc}
         */
        render: function () {
            this.$el.html(this.template({
                file: this.getFormData().file,
                type: this.config.type,
                __
            }));
 
            this.delegateEvents();
 
            return this;
        },
 
        /**
         * When a file is added to the dom input
         */
        addFile: function () {
            var input = this.$('input[type="file"]').get(0);
            Iif (!input || 0 === input.files.length) {
                return;
            }
 
            this.setData({file: input.files[0]});
 
            this.getRoot().trigger('pim_enrich:form:job:file_updated');
 
            this.render();
        },
 
        /**
         * When the user remove the file from the input
         */
        removeFile: function () {
            this.setData({file: null});
 
            this.getRoot().trigger('pim_enrich:form:job:file_updated');
 
            this.render();
        }
    });
});