// form core.js /* global isEmpty, errorHandler, showFeedbackMessage, MessageTypesEnum */ /* exported FileLoader */ function FileLoader(args) { var MAX_FILE_SIZE_MB = 20; var SIZE_TO_MB = 1048576; var CHOOSE_FILE_TEXT = "Выберите файл"; var ALERT_CHOOSE_FILE = "Необходимо выбрать файл"; var ALERT_UNKNOWN_FILE_EXT = "Неизвестный тип файлов"; var ALERT_MAX_FILE = "Файл превышает разрешенный размер"; var ALERT_EMPTY_FILE = "Файл пуст"; var ERROR = "Ошибка загрузки файла"; if (isEmpty(args)) { throw "Empty arguments"; } var divId = args.div; if (isEmpty(divId)) { throw "Div id parameter is not set"; } var url = args.url; if (isEmpty(url)) { throw "URL parameter is not set"; } var callback = args.callback; var maxFileSize = args.maxSize; MAX_FILE_SIZE_MB = Math.min((isEmpty(maxFileSize) ? MAX_FILE_SIZE_MB : maxFileSize), MAX_FILE_SIZE_MB); var fileExtensions = args.extensions; fileExtensions = isEmpty(fileExtensions) ? [] : fileExtensions; var div = $("#" + divId).addClass("input-group"); if (isEmpty(div)) { throw "Div with id " + divId + " is not found"; } var fileLabel = $("") .attr("type", "text") .attr("placeholder", CHOOSE_FILE_TEXT) .attr("disabled", true) .addClass("form-control"); div.append(fileLabel); var fileInput = $("") .attr("type", "file") .hide(); fileInput.change(function () { var files = $(this).prop("files"); if (isEmpty(files)) { return; } fileLabel.val(files[0].name); }); div.append(fileInput); var buttonGroup = $("