{"version":3,"sources":["progressbar.js","specRequest.js"],"names":["$","progressBar","el","options","self","this","$el","extend","defaultOptions","init","html","pb","find","attr","minValue","maxValue","value","width","text","hideOnStart","hide","show","changeText","b2b","jQuery","createSpecRequest","articul","urlCreateSpecRequest","urlGetChangeQueryStatus","comment","trim","val","fileIds","each","index","push","prop","ajax","url","type","data","param","success","queryId","parseInt","setTimeout","checkQueryState","internalError","jqXhr","errors","showAjaxError","attemptCount","requestId","status","toastNotificationService","showSuccess","then","window","location","requestListUrl","requestUrl","showError","createUploader","element","qq","FileUploader","action","fileTemplate","params","fileId","GuidGenerator","onComplete","id","fileName","responseJson","fileDeleteInput","qqFileId","on","parent","hasClass","clearDeletedFileElements","deleteFileAjaxRequest","ajaxResponse","deleteButon","deletionElement","remove","initUploadFileBlock","length","domElement","error","S4","Math","random","toString","substring"],"mappings":"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","file":"../articles-get-4d870eb9.js","sourcesContent":["\"use strict\";\n\n(function ($) {\n var defaultOptions = {\n value: 100,\n minValue: 0,\n maxValue: 100,\n text: 'Загрузка...',\n width: '100%',\n hideOnStart: true\n };\n var progressBar = function progressBar(el, options) {\n var self = this;\n var template = '
Загрузка...
';\n self.$el = $(el);\n self.el = el;\n self.options = $.extend({}, defaultOptions, options);\n self.init = function () {\n self.$el.html(template);\n var pb = self.$el.find('.progress-bar');\n pb.attr('aria-valuemin', self.options.minValue);\n pb.attr('aria-valuemax', self.options.maxValue);\n pb.attr('aria-valuenow', self.options.value);\n pb.width(self.options.width);\n var txt = self.$el.find('.sr-only');\n txt.text(self.options.text);\n if (self.options.hideOnStart) {\n self.$el.hide();\n }\n };\n self.show = function () {\n self.$el.show();\n };\n self.hide = function () {\n self.$el.hide();\n };\n self.changeText = function (text) {\n var txt = self.$el.find('.sr-only');\n txt.text(text);\n };\n self.init();\n };\n\n // check namespace\n $.b2b = $.b2b || {};\n\n // set wrapper\n $.b2b.progressBar = function (el, options) {\n return new progressBar(el, options);\n };\n})(jQuery);","\"use strict\";\n\nvar progressBar;\n$(function () {\n // Очищаем комментарий перед отображением модального окна пользователю\n $('#specRequestModal').on('show.bs.modal', function () {\n $('#specRequestComment').val('');\n });\n progressBar = $.b2b.progressBar($('#progressBar'));\n initUploadFileBlock();\n});\n\n// Создает спековый запрос\nfunction createSpecRequest(articul, urlCreateSpecRequest, urlGetChangeQueryStatus) {\n progressBar.show();\n var comment = $.trim($('#specRequestComment').val());\n var fileIds = [];\n $('.upl').find('ul.qq-upload-list li').each(function (index, value) {\n fileIds.push($(value).prop('fileId'));\n });\n $.b2b.ajax({\n url: urlCreateSpecRequest,\n type: 'POST',\n data: $.param({\n 'articul': articul,\n 'comment': comment,\n 'fileIds': fileIds\n }, true),\n success: function success(data) {\n var queryId = parseInt(data, 10);\n if (queryId > 0) {\n var attemptCount = 0;\n setTimeout(function () {\n checkQueryState(queryId, urlGetChangeQueryStatus, attemptCount);\n }, 1000);\n } else {\n progressBar.hide();\n }\n },\n internalError: function internalError(jqXhr) {\n progressBar.hide();\n $.b2b.errors.showAjaxError(jqXhr);\n }\n });\n}\n\n// Проверяет статус созданного ранее спекового запроса\nfunction checkQueryState(queryId, urlGetChangeQueryStatus, attemptCount) {\n $.b2b.ajax({\n url: urlGetChangeQueryStatus,\n type: 'POST',\n data: $.param({\n 'queryId': queryId\n }, true),\n success: function success(data) {\n var requestId = parseInt(data.requestId, 10);\n var status = parseInt(data.status, 10);\n switch (status) {\n // Запрос в обработке - редирект на страницу списка запросов\n case 1:\n case 3:\n attemptCount++;\n\n // Ограничимся 10 попытками проверки статуса запроса с интервалом в секунду\n // Если за это время запрос не создался, то редиректим на страницу списка запросов\n if (attemptCount < 10) {\n setTimeout(function () {\n checkQueryState(queryId, urlGetChangeQueryStatus, attemptCount);\n }, 1000);\n } else {\n $.b2b.toastNotificationService.showSuccess('Создание запроса находится в очереди. Пожалуйста, дождитесь email-сообщения о завершении операции.').then(function () {\n window.location = data.requestListUrl;\n });\n }\n break;\n // Запрос сформирован - редирект на страницу запроса\n case 2:\n if (requestId > 0) {\n window.location = data.requestUrl;\n } else {\n $.b2b.toastNotificationService.showSuccess('Запрос создан. Если в течение нескольких минут Вы не увидите его в списке, обратитесь к менеджеру').then(function () {\n window.location = data.requestListUrl;\n });\n }\n break;\n // Ошибка создания запроса\n case 4:\n progressBar.hide();\n $.b2b.toastNotificationService.showError('Пpоизошла внутренняя ошибка при обработке команды на создание запроса. Просьба обращаться по адресу b2b-info@treolan.ru');\n break;\n // Запрос отклонен\n case 5:\n case 6:\n progressBar.hide();\n $.b2b.toastNotificationService.showError('Команда на создание запроса была отклонена. Просьба обращаться по адресу b2b-info@treolan.ru');\n break;\n }\n },\n internalError: function internalError(jqXhr) {\n progressBar.hide();\n $.b2b.errors.showAjaxError(jqXhr);\n }\n });\n}\nfunction createUploader(element) {\n var uploader = new qq.FileUploader({\n element: element,\n action: $('.upl').attr('data-uploadFileUrl'),\n fileTemplate: '
  • ' + '' + '' + '' + 'Отменить' + '' + 'Не загружен' + '
  • ',\n params: {\n fileId: GuidGenerator\n },\n onComplete: function onComplete(id, fileName, responseJson) {\n var fileId = responseJson.fileId;\n\n // Находим только тот элемент для которого пришел файл\n $(element).find('ul.qq-upload-list li').each(function (index, value) {\n if (value.qqFileId === id) {\n var fileDeleteInput = $(value).find('a.closeItem');\n $(value).prop('fileId', fileId);\n fileDeleteInput.on('click', function () {\n if ($(this).parent('li').hasClass('qq-upload-fail')) {\n clearDeletedFileElements(fileDeleteInput, element);\n return;\n }\n deleteFileAjaxRequest($(value).prop('fileId'), function (ajaxResponse) {\n if (!ajaxResponse.success) {\n $.b2b.toastNotificationService.showError('Удаление файла закончилось неудачей');\n return;\n }\n clearDeletedFileElements(fileDeleteInput, element);\n });\n });\n }\n });\n }\n });\n}\nfunction clearDeletedFileElements(deleteButon, deletionElement) {\n $(deleteButon).parent().remove();\n}\nfunction initUploadFileBlock() {\n if ($('.upl').length > 0) {\n $('.upl').each(function (index, domElement) {\n createUploader(domElement);\n });\n }\n}\nfunction deleteFileAjaxRequest(fileId, onComplete) {\n $.ajax({\n type: 'POST',\n url: $('.upl').attr('data-deleteFileUrl'),\n data: {\n fileId: fileId\n },\n success: function success(data) {\n onComplete(data);\n },\n error: function error() {\n $.b2b.toastNotificationService.showError('Ошибка при удалении файла. Не удалось получить ответ от сервера.');\n }\n });\n}\nfunction GuidGenerator() {\n var S4 = function S4() {\n return ((1 + Math.random()) * 0x10000 | 0).toString(16).substring(1);\n };\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\n}"]}