{"version":3,"file":"Feedback_fileupload.min.js","sources":["Feedback_fileupload.js"],"sourcesContent":["(function (w, $) {\r\n const assetId = '~/Controls/MsForm/Feedback_fileupload.min.js';\r\n\r\n if (!w.umwAssets || !w.umwAssets[assetId]) {\r\n console.error('No context found for ' + assetId);\r\n return;\r\n }\r\n\r\n w.require(['plupload'], function (plupload) {\r\n for (let ctx of w.umwAssets[assetId]) {\r\n $(function() {\r\n const fileList = $('#' + ctx.fileListId);\r\n const selectFiles = $('#' + ctx.selectFilesId);\r\n const currentFileCount = $('#' + ctx.currentFileCountId);\r\n const fileListBody = $('#' + ctx.fileListBodyId);\r\n const fileListContainer = $('#' + ctx.fileListContainerId);\r\n const fileListFooter = $('#' + ctx.fileListFooterId);\r\n const btnSend = $('#' + ctx.btnSendId);\r\n\r\n //Plupload\r\n var uploadedFiles = [];\r\n var uploader = new plupload.Uploader({\r\n browse_button: ctx.selectFilesId,\r\n drop_element: ctx.fileListId,\r\n container: ctx.fileListContainerId,\r\n url: w.R +\r\n 'Startup/Archive/Plupload.ashx?action=feedback&FolderID=' +\r\n ctx.fileUploadFolderId +\r\n '&Publish=true',\r\n max_file_size: '10mb',\r\n chunk_size: '1mb',\r\n multipart: false,\r\n multi_selection: false,\r\n maxFileCount: ctx.fileUploadCount,\r\n flash_swf_url: w.R + 'js/plupload-2.3.6/Moxie.swf',\r\n silverlight_xap_url: w.R + 'js/plupload-2.3.6/Moxie.xap'\r\n });\r\n\r\n uploader.bind('Init',\r\n function(up, params) {\r\n fileList.html(\"
  • Current runtime: \" + params.runtime + \"
  • \");\r\n if (params.runtime == 'html5') {\r\n fileList.append('
  • Drag files here
  • ');\r\n } else {\r\n fileList.css('display', 'none');\r\n }\r\n });\r\n\r\n uploader.bind('QueueChanged',\r\n function(up) {\r\n // Called when files are added to queue\r\n const isLimitReached = up.files.length < up.settings.maxFileCount;\r\n up.disableBrowse(!isLimitReached);\r\n selectFiles.toggle(isLimitReached);\r\n\r\n currentFileCount.text(up.files.length);\r\n fileList.toggle(!(up.runtime !== 'html5' && up.files.length === 0));\r\n fileList.find(' .DragHereMessage').toggle(up.runtime === 'html5' && up.files.length === 0);\r\n });\r\n\r\n uploader.init();\r\n\r\n uploader.bind('FilesAdded',\r\n function(up, files) {\r\n $.each(files,\r\n function(i, file) {\r\n const listIemElem = $('
  • ',\r\n {\r\n 'class': up.files.length === 1 ? 'FileItem first' : 'FileItem',\r\n id: file.id\r\n });\r\n\r\n const removeLinkElem = $('',\r\n {\r\n 'class': 'RemoveFileLink',\r\n href: '#',\r\n title: 'Remove file',\r\n click: function(e) {\r\n $('#' + file.id).remove();\r\n up.removeFile(file);\r\n e.preventDefault();\r\n }\r\n });\r\n fileList.append(listIemElem.append(removeLinkElem,\r\n file.name +\r\n ' (' +\r\n plupload.formatSize(file.size) +\r\n ') '));\r\n });\r\n\r\n up.refresh(); // Reposition Flash/Silverlight\r\n });\r\n\r\n uploader.bind('UploadProgress',\r\n function(up, file) {\r\n $('#' + file.id + \" .UploadPercentage\").html(file.percent + \"%\");\r\n });\r\n\r\n uploader.bind('Error',\r\n function(up, err) {\r\n const simpleErrorMessage = err.file\r\n ? 'Failed to upload the file: ' + err.file.name\r\n : 'An error has occured while uploading the file';\r\n\r\n fileListBody.html('
    ' +\r\n simpleErrorMessage +\r\n '
    More info
    Error: ' +\r\n err.code +\r\n ', Message: ' +\r\n err.message +\r\n '
    ');\r\n fileListContainer.addClass('ErrorStatus');\r\n fileListFooter.hide();\r\n uploader.stop();\r\n up.refresh(); // Reposition Flash/Silverlight\r\n });\r\n\r\n uploader.bind('FileUploaded',\r\n function(up, file, resp) {\r\n if (file.status === plupload.DONE) {\r\n const response = $.parseJSON(resp.response.replace(/\\\\/g, \"\\\\\\\\\"));\r\n if (response && response.error) {\r\n const ex = response.error;\r\n ex.file = file;\r\n up.trigger(\"Error\", ex);\r\n } else {\r\n uploadedFiles.push('\"' + response + '\":\"' + file.name + '\"');\r\n }\r\n }\r\n });\r\n\r\n // Upload files before Sending feedback\r\n btnSend.click(function(e) {\r\n if (uploader.total.queued == 0) return true;\r\n // Validate page first\r\n var validationResult = true;\r\n if (typeof (w.Page_ClientValidate) == 'function') {\r\n validationResult = w.Page_ClientValidate(ctx.validationGroup);\r\n }\r\n if (validationResult) {\r\n // Disable Send button to prevent accidental multiple click whil uploading the files\r\n $(this).addClass('disabled').attr('disabled', 'disabled');\r\n uploader.start();\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n uploader.bind('UploadComplete',\r\n function(up) {\r\n // Perform simple serialization to JSON\r\n if (up.total.failed > 0) return;\r\n const json = '{' + uploadedFiles.join(',') + '}';\r\n $('#' + ctx.uploadedFilesId).val(json);\r\n w.__doPostBack(ctx.btnSendUid, '');\r\n });\r\n\r\n // Cancel uploading if user navigates away from the page\r\n $(w).unload(function() {\r\n uploader.stop();\r\n });\r\n });\r\n }\r\n });\r\n})(window, jQuery);"],"names":["w","$","assetId","umwAssets","require","plupload","let","ctx","fileList","fileListId","selectFiles","selectFilesId","currentFileCount","currentFileCountId","fileListBody","fileListBodyId","fileListContainer","fileListContainerId","fileListFooter","fileListFooterId","btnSend","btnSendId","uploadedFiles","uploader","Uploader","browse_button","drop_element","container","url","R","fileUploadFolderId","max_file_size","chunk_size","multipart","multi_selection","maxFileCount","fileUploadCount","flash_swf_url","silverlight_xap_url","bind","up","params","html","runtime","append","css","isLimitReached","files","length","settings","disableBrowse","toggle","text","find","init","each","i","file","listIemElem","class","id","removeLinkElem","href","title","click","e","remove","removeFile","preventDefault","name","formatSize","size","refresh","percent","err","simpleErrorMessage","code","message","addClass","hide","stop","resp","ex","status","DONE","response","parseJSON","replace","error","trigger","push","total","queued","validationResult","Page_ClientValidate","validationGroup","this","attr","start","failed","json","join","uploadedFilesId","val","__doPostBack","btnSendUid","unload","console","window","jQuery"],"mappings":"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"}