public function init()
    {
        JuiAsset::register($this->view);
        parent::init();
        FileHelper::removeDirectory($this->getModule()->getUserDirPath());
        // Delete all uploaded files in past
        $this->pluginOptions = array_replace($this->pluginOptions, ['uploadUrl' => Url::toRoute('/file/file/upload'), 'initialPreview' => $this->model->isNewRecord ? [] : $this->model->getInitialPreview(), 'initialPreviewConfig' => $this->model->isNewRecord ? [] : $this->model->getInitialPreviewConfig(), 'uploadAsync' => false, 'otherActionButtons' => '<button type="button" class="js-caption-rename rename-button btn btn-xs btn-default" title="Переименовать" {dataKey}><i class="glyphicon glyphicon-comment text-danger"></i></button>' . '<input type="checkbox" class="jsFileMain" title="Главная" {dataKey}>', 'slugCallback' => new JsExpression(<<<JS
function(text) {return text.split(/(\\|\\/)/g).pop();}
JS
), 'layoutTemplates' => ['footer' => '
<div class="file-thumbnail-footer">
    <div style="margin:5px 0">
        <input  class="form-control js-custom-caption" value="{caption}" />
    </div>{actions}
</div>']]);
        $this->options = array_replace($this->options, ['id' => $this->id]);
        $urlSetMain = Url::toRoute('/file/file/set-main');
        $urlRenameFile = Url::toRoute('/file/file/rename');
        $js = <<<JS
var fileInput = \$('#file-input');
var form = fileInput.closest('form');
var filesUploaded = false;
var filesToUpload = 0;
var uploadButtonClicked = false;
form.on('beforeSubmit', function() { // form submit event
    if (!filesUploaded && filesToUpload) {
        console.log('upload');
        \$('#file-input').fileinput('upload').fileinput('lock');

        return false;
    }
});

fileInput.on('filebatchpreupload', function() {
    uploadButtonClicked = true;
});

fileInput.on('filebatchuploadsuccess', function() {
    filesUploaded = true;
    \$('#file-input').fileinput('unlock');
    if (uploadButtonClicked) {
        form.submit();
    } else {
        uploadButtonClicked = false;
    }
});

fileInput.on('filebatchselected', function(event, files) {
    filesToUpload = files.length
});

fileInput.on('filecleared', function() {
    filesToUpload = 0;
});
\$('.formInput-{$this->getId()}').on('change', '.jsFileMain', function() {
    var element = \$(this);
    var key = element.data('key');
    \$.ajax(
        '{$urlSetMain}',
        {
            method: "POST",
            data: {
                id:key,
                value:element.prop('checked')
            },
            success: function(data) {
                \$('.formInput-{$this->getId()} .jsFileMain').prop('checked', false);
                if(data.id) {
                     \$('.formInput-{$this->getId()} .jsFileMain[data-key="' + data.id + '"]').prop('checked', true);
                }
            }
        }
    );
});

\$('.formInput-{$this->getId()}').on('click', '.js-caption-rename', function() {
    var element = \$(this);
    var key = element.data('key');
    var input = \$(this).parents('.file-preview-frame').find('.js-custom-caption');
    var name = input.val();
    \$.ajax(
        '{$urlRenameFile}',
        {
            method: "POST",
            data: {
                id: key,
                name: name
            },
            success: function(data) {
            }
        }
    );
});
JS;
        Yii::$app->view->registerJs($js);
    }