open-orchestra/open-orchestra-cms-bundle

View on GitHub
BackofficeBundle/Resources/public/ecmascript/OpenOrchestra/Service/Form/Behavior/InputFile.js

Summary

Maintainability
A
0 mins
Test Coverage
import AbstractBehavior from 'OpenOrchestra/Service/Form/Behavior/AbstractBehavior'

/**
 * @class InputFile
 */
class InputFile extends AbstractBehavior
{
    /**
     * get extra events
     *
     * @return {Object}
     */
    getExtraEvents() {
        return {
            'change input[type="file"]': '_showFileInfo'
        }
    }

    /**
     * @param event
     *
     * @private
     */
    _showFileInfo(event) {
        let $inputFile = event.currentTarget;
        let $fileInfo = $('.upload-file-info', $inputFile.closest('.oo-input-file'));
        let fileName = '';

        if ($inputFile.files && $inputFile.files.length == 1) {
            fileName = $inputFile.files[0].name;
        } else if ($inputFile.files && $inputFile.files.length > 1) {
            fileName = Translator.trans('open_orchestra_backoffice.form.file.multiple', {length: $inputFile.files.length});
        }

        $fileInfo.html(fileName);
    }

    /**
     * return selector
     *
     * @return {String}
     */
    getSelector() {
        return '.oo-input-file';
    }
}

export default (new InputFile);