{"version":3,"sources":["webpack:///./src/wizards/uploadVideos/uploadVideos.scss?4da4","webpack:///./src/wizards/uploadVideos/uploadVideos.vue?67b6","webpack:///./src/wizards/uploadVideos/uploadVideos.ts","webpack:///./src/wizards/uploadVideos/uploadVideos.ts?6039","webpack:///./src/wizards/uploadVideos/uploadVideos.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","_m","attrs","directives","name","rawName","value","expression","domProps","on","$event","target","composing","study","browseDisabled","addVideos","staticStyle","onFilesSelected","addVideosFromFolder","uploads","_l","upload","state","removeUpload","_e","class","progressClassName","style","width","progress","_s","className","canEdit","$set","fileName","size","duration","finished","uploadDisabled","startUploads","done","showDone","cancel","closeDialog","cancelCloseDialog","staticRenderFns","NewUploadingVideo","title","streamPath","file","uploaded","encoding","busy","encodeResult","startTime","interval","UploadVideosComponent","_StudioPageBase","_inherits","_super","_createSuper","_this","_classCallCheck","options","doneDisabled","uploading","allEncoding","errors","updateDurationsInterval","_createClass","key","val","oldVal","_this2","updateButtons","forEach","get","length","Debug","setDebugModule","serverData","isDeveloper","_get","_getPrototypeOf","prototype","call","parent","wizard","loadPreviousJobs","clearInterval","anyPending","$modal","show","close","_loadPreviousJobs","_asyncToGenerator","regeneratorRuntime","mark","_callee","backgroundJobs","message","_this3","wrap","_context","prev","next","PlayerApi","uploadVideosList","studio","sent","log","job","Object","assign","display","Math","round","push","completedUpload","completed","checkUploadProgress","monitorUploadProgress","t0","error","abrupt","finish","stop","apply","arguments","closeWithCheck","back","hide","evt","_this4","files","idx","type","startsWith","replace","Util","formatNumberWithCommas","streams","stream","getUploadTitles","$files","$","validateInput","click","_this5","uploadFile","updateDurations","indexOf","splice","_getUploadTitles","_callee2","response","_context2","_x","_x2","_uploadFile","_callee3","uploadInfo","url","encodeVideoDto","_context3","Date","getUploadUrl","uploadToStorageBlob","encodeUploadedVideo","completedEncode","_x3","parts","split","Error","baseUrl","sas","accountUrl","container","blobService","AzureStorage","Blob","createBlobServiceWithSas","createPromise","resolve","reject","customBlockSize","singleBlobPutThresholdInBytes","monitor","createBlockBlobFromBrowserFile","blockSize","result","isSuccessful","getCompletePercent","max","_getUploadUrl","_callee4","_context4","showToast","_x4","_encodeUploadedVideo","_callee5","streamName","_context5","_x5","_this6","setInterval","_checkUploadProgress","_callee6","_args6","_context6","undefined","checkBackgroundJob","succeeded","_x6","EventBus","Instance","$emit","VideosChanged","isValidInput","anyUploading","anyNotEncoding","countRunning","countEncoding","countFinished","sanitizeName","_this7","now","end","start","console","StudioPageBase","__decorate","Prop","default","Watch","immediate","Component","component"],"mappings":"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","file":"js/chunk-2b142f6e.6cbe26c0.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./uploadVideos.scss?vue&type=style&index=0&prod&lang=scss&external\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"upload-videos-wrapper\"},[_c('div',{staticClass:\"upload-videos-content\"},[_c('h3',[_vm._v(\"Upload Videos\")]),_vm._m(0),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"name\":\"Study\",\"for\":\"study\",\"title\":\"Study\"}},[_vm._v(\"Study\")]),_c('br'),_c('div',{staticClass:\"ui-row\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.study),expression:\"study\"}],staticClass:\"form-control\",attrs:{\"name\":\"study\",\"type\":\"text\",\"placeholder\":\"Study name (My Study)\",\"title\":\"Study for upload video\",\"tabindex\":\"1\",\"autofocus\":\"\"},domProps:{\"value\":(_vm.study)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.study=$event.target.value}}}),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.browseDisabled,\"title\":\"Select 1 or more video files to upload\",\"tabindex\":\"2\"},on:{\"click\":function($event){_vm.addVideos()}}},[_vm._v(\"\\n Add Videos(s)\\n \")]),_c('input',{staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":\"files\",\"name\":\"files[]\",\"accept\":\".mp4,.wmv\",\"multiple\":\"\",\"tabindex\":\"3\"},on:{\"change\":_vm.onFilesSelected}}),_c('button',{staticClass:\"btn btn-default folder-browse\",attrs:{\"disabled\":_vm.browseDisabled,\"title\":\"Select folder containing videos to upload\",\"tabindex\":\"4\"},on:{\"click\":function($event){_vm.addVideosFromFolder()}}},[_vm._v(\"\\n Add Videos(s) from Folder\\n \")]),_c('input',{staticStyle:{\"display\":\"none\"},attrs:{\"type\":\"file\",\"id\":\"folder\",\"accept\":\"video/mp4,video/wmv\",\"webkitdirectory\":\"\",\"mozdirectory\":\"\",\"multiple\":\"\",\"tabindex\":\"5\"},on:{\"change\":_vm.onFilesSelected}})])]),_c('div',[(_vm.uploads.length)?_c('div',{staticClass:\"uploading-table\"},[_c('table',[_vm._m(1),_vm._l((_vm.uploads),function(upload){return _c('tr',[_c('td',[(upload.state == 'Pending')?_c('a',{staticClass:\"remove-video-hover\",attrs:{\"href\":\"javascript:void(0)\",\"title\":\"Remove video\"},on:{\"click\":function($event){_vm.removeUpload(upload)}}},[_vm._m(2,true)]):_vm._e()]),_c('td',{staticClass:\"state\"},[(upload.busy)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped active\",class:upload.progressClassName,staticStyle:{\"min-width\":\"2.5em\"},style:({width: upload.progress + '%'}),attrs:{\"role\":\"progressbar\",\"aria-valuenow\":\"0\",\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"}},[_vm._v(\"\\n \"+_vm._s(upload.progress)+\"%\\n \")])]):_c('span',{class:upload.className},[_vm._v(_vm._s(upload.state))])]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(upload.title),expression:\"upload.title\"}],staticClass:\"form-control\",attrs:{\"name\":\"name\",\"type\":\"text\",\"placeholder\":\"Name of video to upload\",\"title\":\"Enter name of video to upload.\",\"disabled\":upload.canEdit == false},domProps:{\"value\":(upload.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(upload, \"title\", $event.target.value)}}})]),_c('td',[_c('span',[_vm._v(_vm._s(upload.fileName))])]),_c('td',[_c('span',[_vm._v(_vm._s(upload.study))])]),_c('td',[_c('span',[_vm._v(_vm._s(upload.size))])]),_c('td',[_c('span',[_vm._v(_vm._s(upload.duration))])])])})],2)]):_c('div',{staticClass:\"no-videos-added\"},[_c('p',[_vm._v(\"No videos\")])])]),_c('footer',[_c('div',{staticClass:\"ui-row bottom-row\"},[(!_vm.finished)?_c('button',{staticClass:\"btn btn-success\",attrs:{\"disabled\":_vm.uploadDisabled,\"title\":\"Click to start uploading videos.\",\"tabindex\":\"6\",\"accesskey\":\"t\"},on:{\"click\":function($event){_vm.startUploads()}}},[_vm._v(\"\\n Upload\\n \"),_c('i',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.uploading),expression:\"uploading\"}],staticClass:\"fa fa-spinner fa-spin fa-fw\"})]):_vm._e(),(_vm.showDone)?_c('button',{staticClass:\"btn btn-primary\",attrs:{\"title\":\"Click when finished selecting videos to upload. Encoding videos will continue in background when closed.\",\"tabindex\":\"7\"},on:{\"click\":function($event){_vm.done()}}},[_vm._v(\"\\n Done\\n \")]):_vm._e(),(!_vm.finished && !_vm.showDone)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"tabindex\":\"8\"},on:{\"click\":function($event){_vm.cancel()}}},[_vm._v(\"\\n Cancel\\n \")]):_vm._e(),_c('div',{staticClass:\"final-instructions\"},[(_vm.doneDisabled)?_c('p',{staticClass:\"instructions\"},[_vm._v(\"\\n Please wait while videos are uploading.\"),_c('br')]):_vm._e(),(_vm.allEncoding)?_c('p',{staticClass:\"instructions\"},[_vm._v(\"\\n You're all set! You can click 'Done' to close this window, \"),_c('br'),_vm._v(\"\\n and the videos will encode in the background.\"),_c('br'),_c('br'),_vm._v(\"\\n Note that large videos may take 2-3 hours to encode.\"),_c('br')]):_vm._e()])])])]),_c('modal',{attrs:{\"name\":\"leave-page\",\"clickToClose\":false}},[_c('div',{staticClass:\"leave-page\"},[_c('form',{attrs:{\"action\":\"javascript:void(0)\",\"novalidate\":\"true\"}},[_c('h3',[_vm._v(\" Uploads not started\")]),_c('div',{staticClass:\"form-group\"},[_c('p',[_vm._v(\"\\n Not all videos have been uploaded.\"),_c('br'),_c('br'),_vm._v(\"\\n Are you sure you want to close the dialog?\"),_c('br')])]),_c('footer',[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"submit\"},on:{\"click\":function($event){_vm.closeDialog()}}},[_vm._v(\"\\n Yes\\n \")]),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){_vm.cancelCloseDialog()}}},[_vm._v(\"No\")])])])])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('p',{staticClass:\"top-instructions\"},[_vm._v(\"\\n 1. Fill in study name.\"),_c('br'),_vm._v(\"\\n 2. Click Add videos.\"),_c('br'),_vm._v(\"\\n 3. Click Upload.\"),_c('br')])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('th'),_c('th',[_vm._v(\"Progress\")]),_c('th',[_vm._v(\"Rename (Optional)\")]),_c('th',[_vm._v(\"File\")]),_c('th',[_vm._v(\"Study\")]),_c('th',[_vm._v(\"Size (KB)\")]),_c('th',[_vm._v(\"Duration\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('i',{staticClass:\"ms-Icon ms-Icon--Delete image-icon\",attrs:{\"aria-hidden\":\"true\"}})])}]\n\nexport { render, staticRenderFns }","import { Component, Prop, Watch } from 'vue-property-decorator';\r\nimport $ from 'jquery';\r\nimport PlayerApi from '@/support/playerApi';\r\nimport StudioPageBase from '@/support/studioPageBase';\r\nimport Util from '@/support/utility';\r\nimport { IWizardManager } from '@/interfaces';\r\nimport { EventBus } from '@/support/eventBus';\r\n\r\ndeclare var AzureStorage: any;\r\n\r\ninterface IUploadingVideo {\r\n study: string;\r\n name: string;\r\n title: string;\r\n streamPath: string;\r\n file: any;\r\n fileName: string;\r\n size: string;\r\n state: string;\r\n uploaded: boolean;\r\n encoding: boolean;\r\n busy: boolean;\r\n canEdit: boolean;\r\n className: string;\r\n encodeResult: SUR.BackgroundJobDto;\r\n progress: number;\r\n progressClassName: string;\r\n startTime: any;\r\n duration: string;\r\n interval: any;\r\n}\r\n\r\nlet NewUploadingVideo: IUploadingVideo = {\r\n study: null,\r\n name: null,\r\n title: null,\r\n streamPath: null,\r\n file: null,\r\n fileName: null,\r\n size: null,\r\n state: 'Pending',\r\n uploaded: false,\r\n encoding: false,\r\n busy: false,\r\n canEdit: true,\r\n className: null,\r\n encodeResult: null,\r\n progress: 0,\r\n progressClassName: 'progress-bar-warning',\r\n startTime: null,\r\n duration: null,\r\n interval: 0,\r\n};\r\n\r\n@Component\r\nexport default class UploadVideosComponent extends StudioPageBase {\r\n options = {\r\n };\r\n\r\n study: string = null;\r\n name: string = null;\r\n uploads: IUploadingVideo[] = [];\r\n doneDisabled: boolean = false;\r\n uploadDisabled: boolean = true;\r\n uploading: boolean = false;\r\n allEncoding: boolean = false;\r\n browseDisabled = true;\r\n finished = false;\r\n errors: string[] = [];\r\n updateDurationsInterval: any = null;\r\n\r\n @Prop({ default: null })\r\n wizard: IWizardManager;\r\n\r\n @Prop({ default: {} })\r\n parent: any;\r\n\r\n @Watch('study', { immediate: true })\r\n onStudyChanged(val: string, oldVal: string) {\r\n this.updateButtons();\r\n\r\n this.uploads.forEach(upload => {\r\n if (upload.state == 'Pending')\r\n upload.study = this.study;\r\n });\r\n\r\n }\r\n\r\n @Watch('name', { immediate: true })\r\n onNameChanged(val: string, oldVal: string) {\r\n this.updateButtons();\r\n }\r\n\r\n get showDone() {\r\n return this.finished || (this.uploads.length && this.allEncoding);\r\n }\r\n\r\n created() {\r\n Debug.setDebugModule('UploadVideos', this);\r\n if (this.serverData.isDeveloper) {\r\n this.study = 'Test';\r\n //this.name = 'Test' + Util.getRandomInt(1000);\r\n }\r\n\r\n super.created('uploadVideos', true);\r\n }\r\n\r\n mounted() {\r\n super.mounted();\r\n this.parent = this.wizard.parent;\r\n this.loadPreviousJobs();\r\n }\r\n\r\n beforeDestroy() {\r\n this.uploads.forEach(upload => {\r\n if (upload.interval) {\r\n clearInterval(upload.interval);\r\n upload.interval = 0;\r\n }\r\n });\r\n }\r\n\r\n closeWithCheck() {\r\n let anyPending = false;\r\n\r\n this.uploads.forEach(upload => {\r\n if (upload.state == 'Pending') {\r\n anyPending = true;\r\n return;\r\n }\r\n });\r\n\r\n if (anyPending) {\r\n (this.$modal).show('leave-page');\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n async loadPreviousJobs() {\r\n try {\r\n let backgroundJobs = await PlayerApi.uploadVideosList(this.studio.studio);\r\n\r\n Debug.log('uploadVideos load', this.studio.studio, backgroundJobs.length);\r\n\r\n backgroundJobs.forEach(job => {\r\n let upload = Object.assign({}, NewUploadingVideo);\r\n upload.study = job.study;\r\n upload.title = job.display;\r\n upload.fileName = job.fileName;\r\n upload.busy = true;\r\n upload.canEdit = false;\r\n upload.progress = Math.round(25.0 + (job.progress * 0.75));\r\n upload.encoding = true;\r\n upload.encodeResult = job;\r\n upload.progressClassName = 'progress-bar-success';\r\n this.uploads.push(upload);\r\n\r\n this.completedUpload(upload, true);\r\n if (job.completed)\r\n this.checkUploadProgress(upload, false);\r\n else\r\n this.monitorUploadProgress(upload);\r\n });\r\n\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('load failed', message);\r\n return false;\r\n } finally {\r\n this.updateButtons();\r\n }\r\n }\r\n\r\n done() {\r\n this.closeWithCheck();\r\n }\r\n\r\n cancel() {\r\n this.closeWithCheck();\r\n }\r\n\r\n close() {\r\n this.wizard.back();\r\n }\r\n\r\n closeDialog() {\r\n (this.$modal).hide('leave-page');\r\n\r\n this.close();\r\n }\r\n\r\n cancelCloseDialog() {\r\n (this.$modal).hide('leave-page');\r\n }\r\n\r\n /*\r\nfile Info: {\r\n File(594568115)\r\n lastModified: 1523654215888\r\n lastModifiedDate:Fri Apr 13 2018 14:16:55 GMT-0700 (Pacific Daylight Time) {}\r\n name:\"4KVideo.mp4\"\r\n size:594568115\r\n type:\"video/mp4\"\r\n webkitRelativePath:\"videos/4KVideo.mp4\"\r\n}\r\n */\r\n onFilesSelected(evt) {\r\n if (!evt.target.files || !evt.target.files.length || !evt.target.files[0] || !evt.target.files[0].name)\r\n return;\r\n\r\n let fileName = evt.target.files.length == 1 ? this.name : null;\r\n this.name = null;\r\n\r\n let uploads: IUploadingVideo[] = [];\r\n\r\n let files = evt.target.files;\r\n for (let idx = 0; idx < files.length; idx++) {\r\n let file = files[idx];\r\n\r\n if (!file.type.startsWith('video/'))\r\n continue;\r\n\r\n let name = fileName || file.name.replace(/\\.[^/.]+$/, \"\");\r\n\r\n let upload = Object.assign({}, NewUploadingVideo);\r\n upload.study = this.study;\r\n upload.name = name;\r\n upload.title = name;\r\n upload.streamPath = this.studio.studio + '\\\\' + this.study + '\\\\' + name;\r\n upload.file = file;\r\n upload.size = Util.formatNumberWithCommas(file.size / 1024);\r\n upload.fileName = file.name;\r\n upload.className = 'state-in-progress';\r\n\r\n uploads.push(upload);\r\n this.uploads.push(upload);\r\n this.uploadDisabled = false;\r\n }\r\n\r\n let streams = [];\r\n uploads.forEach(upload => {\r\n let stream = {\r\n studio: this.studio.studio,\r\n study: upload.study,\r\n stream: upload.name,\r\n title: upload.name,\r\n };\r\n streams.push(stream);\r\n });\r\n\r\n this.getUploadTitles(uploads, streams);\r\n\r\n // clear files input\r\n let $files = $(\"#files\");\r\n if ($files && $files[0])\r\n ($files[0]).value = null;\r\n\r\n this.updateButtons();\r\n }\r\n\r\n addVideos() {\r\n if (this.validateInput()) {\r\n $(\"#files\").click();\r\n }\r\n }\r\n\r\n addVideosFromFolder() {\r\n if (this.validateInput()) {\r\n $(\"#folder\").click();\r\n }\r\n }\r\n\r\n startUploads() {\r\n this.uploadDisabled = true;\r\n\r\n this.uploads.forEach(upload => {\r\n if (upload.state != 'Pending') return;\r\n\r\n this.uploadFile(upload);\r\n });\r\n\r\n this.updateDurations();\r\n }\r\n\r\n removeUpload(upload: IUploadingVideo) {\r\n let idx = this.uploads.indexOf(upload);\r\n if (idx != -1) {\r\n this.uploads.splice(idx, 1);\r\n }\r\n\r\n this.updateButtons();\r\n }\r\n\r\n async getUploadTitles(uploads: IUploadingVideo[], streams) {\r\n\r\n try {\r\n let response = await PlayerApi.getUploadTitles(this.studio.studio, streams);\r\n\r\n for (let idx = 0; idx < uploads.length; idx++) {\r\n let upload = uploads[idx];\r\n let stream = response.streams[idx];\r\n if (stream.title)\r\n upload.title = stream.title;\r\n }\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('getUploadTitles failed', streams, uploads, message);\r\n return false;\r\n } finally {\r\n\r\n }\r\n }\r\n\r\n async uploadFile(upload: IUploadingVideo) {\r\n Debug.log('uploadFile', upload.streamPath, upload.file);\r\n upload.state = 'Starting';\r\n upload.className = 'state-in-progress flashing-text';\r\n upload.canEdit = false;\r\n upload.busy = true;\r\n upload.startTime = new Date();\r\n this.updateButtons();\r\n\r\n try {\r\n let uploadInfo = await this.getUploadUrl(upload);\r\n if (uploadInfo) {\r\n let url = uploadInfo.url;\r\n\r\n let uploaded = await this.uploadToStorageBlob(upload, url);\r\n\r\n this.completedUpload(upload, uploaded);\r\n uploadInfo.uploaded = uploaded;\r\n\r\n let encodeVideoDto = await this.encodeUploadedVideo(uploadInfo);\r\n\r\n if (encodeVideoDto) {\r\n Debug.log('uploadFile encoding', upload.streamPath, encodeVideoDto);\r\n\r\n upload.encoding = true;\r\n upload.encodeResult = encodeVideoDto;\r\n upload.progressClassName = 'progress-bar-success';\r\n this.updateButtons();\r\n this.monitorUploadProgress(upload);\r\n return true;\r\n }\r\n }\r\n\r\n this.completedUpload(upload, false);\r\n this.completedEncode(upload, 'Error');\r\n return false;\r\n\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n this.completedUpload(upload, false);\r\n this.completedEncode(upload, 'Error');\r\n return null;\r\n } finally {\r\n\r\n }\r\n }\r\n\r\n uploadToStorageBlob(upload: IUploadingVideo, url: string) {\r\n let parts = url.split('?');\r\n if (parts.length != 2) {\r\n Debug.error('uploadToStorageBlob invalid url', url);\r\n throw new Error('Invalid url');\r\n }\r\n\r\n let baseUrl = parts[0];\r\n let sas = parts[1];\r\n\r\n parts = baseUrl.split('/');\r\n if (parts.length < 4) {\r\n Debug.error('uploadToStorageBlob invalid url', baseUrl);\r\n throw new Error('Invalid url');\r\n }\r\n\r\n let accountUrl = parts[0] + '//' + parts[2];\r\n let container = parts[3];\r\n let name = parts[4] || upload.file.name;\r\n\r\n let blobService = AzureStorage.Blob.createBlobServiceWithSas(accountUrl, sas);\r\n if (!blobService) {\r\n Debug.error('uploadToStorageBlob createBlobServiceWithSas failed');\r\n throw new Error('Failed to create blobService');\r\n }\r\n\r\n return Util.createPromise((resolve, reject) => {\r\n let file = upload.file;\r\n let customBlockSize = file.size > 1024 * 1024 * 32 ? 1024 * 1024 * 4 : 1024 * 512;\r\n\r\n blobService.singleBlobPutThresholdInBytes = customBlockSize;\r\n\r\n let monitor = blobService.createBlockBlobFromBrowserFile(container, name, file, { blockSize: customBlockSize }, (error, result, response) => {\r\n Debug.log('uploadToStorageBlob completed', upload.streamPath);\r\n\r\n if (error || !response || !response.isSuccessful) {\r\n Debug.error('uploadToStorageBlob failed', error, response, upload.streamPath);\r\n reject(false);\r\n return;\r\n }\r\n\r\n resolve(true);\r\n return;\r\n });\r\n\r\n if (monitor) {\r\n monitor.on('progress', () => {\r\n let progress = monitor.getCompletePercent();\r\n if (progress) {\r\n upload.progress = Math.round(Math.max(2, progress * 0.25));\r\n }\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n async getUploadUrl(upload: IUploadingVideo) {\r\n let streamPath = this.studio.studio + '\\\\' + upload.study + '\\\\' + upload.name;\r\n\r\n try {\r\n let response = await PlayerApi.getUploadUrl(this.studio.studio, upload.study, upload.name, upload.title);\r\n\r\n // Upload can be renamed here\r\n upload.name = response.title;\r\n upload.title = response.title;\r\n upload.streamPath = this.studio.studio + '\\\\' + upload.study + '\\\\' + upload.name;\r\n\r\n return response;\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Util.showToast('Failed to get upload url for ' + upload.name, true);\r\n this.completedUpload(upload, false);\r\n return null;\r\n } finally {\r\n\r\n }\r\n }\r\n\r\n async encodeUploadedVideo(uploadInfo: SUR.UploadUrlDto) {\r\n let studio = uploadInfo.studio;\r\n let study = uploadInfo.study;\r\n let streamName = uploadInfo.stream;\r\n\r\n let streamPath = studio + '\\\\' + study + '\\\\' + streamName;\r\n\r\n try {\r\n let response = await PlayerApi.encodeUploadedVideo(uploadInfo);\r\n\r\n Debug.log(\"encodeUploadedVideo running\", streamPath, response);\r\n\r\n return response;\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Util.showToast('Failed to encode ' + streamName, true);\r\n return null;\r\n } finally {\r\n\r\n }\r\n }\r\n\r\n monitorUploadProgress(upload: IUploadingVideo) {\r\n\r\n upload.interval = setInterval(() => {\r\n this.checkUploadProgress(upload);\r\n }, 10000);\r\n }\r\n\r\n async checkUploadProgress(upload: IUploadingVideo, showToast = true) {\r\n try {\r\n\r\n let result = await PlayerApi.checkBackgroundJob(upload.encodeResult);\r\n\r\n upload.encodeResult = result;\r\n\r\n if (result.completed) {\r\n if (result.succeeded) {\r\n this.completedEncode(upload, 'Finished', showToast);\r\n return true;\r\n }\r\n else {\r\n this.completedEncode(upload, 'Error', showToast);\r\n return false;\r\n }\r\n }\r\n\r\n // Still running\r\n upload.progress = Math.round(25.0 + (result.progress * 0.75));\r\n return false;\r\n } catch (err) {\r\n let message = err.message || 'ERROR';\r\n Debug.error('checkUploadProgress', message, upload);\r\n this.completedEncode(upload, 'Error');\r\n return false;\r\n }\r\n }\r\n\r\n completedEncode(upload, state, showToast = true) {\r\n if (upload.interval) {\r\n clearInterval(upload.interval);\r\n upload.interval = 0;\r\n }\r\n\r\n upload.busy = false;\r\n\r\n if (state == 'Error') {\r\n Debug.error('completedEncode failed', upload.streamPath, upload);\r\n upload.state = 'Error';\r\n upload.className = 'state-failed';\r\n if (showToast)\r\n Util.showToast('Failed to encode ' + upload.title, true);\r\n } else {\r\n Debug.log('completedEncode completed', upload.state, upload.streamPath, upload);\r\n upload.state = state;\r\n if (showToast)\r\n Util.showToast(upload.title + ' is ready');\r\n\r\n EventBus.Instance.$emit(EventBus.VideosChanged, null);\r\n }\r\n\r\n this.updateButtons();\r\n }\r\n\r\n completedUpload(upload, result) {\r\n\r\n if (!result) {\r\n Debug.error('completedUpload failed', upload.streamPath, upload);\r\n upload.state = 'Error';\r\n upload.className = 'state-failed';\r\n upload.busy = false;\r\n Util.showToast('Failed to upload ' + upload.title, true);\r\n } else {\r\n Debug.log('completedUpload completed', upload.state, upload.streamPath, upload);\r\n upload.state = 'Uploaded';\r\n upload.uploaded = true;\r\n upload.className = 'state-success';\r\n }\r\n\r\n this.updateButtons();\r\n }\r\n\r\n updateButtons() {\r\n this.browseDisabled = !this.isValidInput();\r\n\r\n let anyPending = false;\r\n let anyUploading = false;\r\n let anyNotEncoding = false;\r\n let countRunning = 0;\r\n let countEncoding = 0;\r\n let countFinished = 0;\r\n\r\n this.uploads.forEach(upload => {\r\n if (upload.state == 'Error' || upload.state == 'Finished') {\r\n countFinished++;\r\n return;\r\n }\r\n\r\n if (upload.state == 'Pending') {\r\n anyPending = true;\r\n return;\r\n }\r\n\r\n if (upload.busy)\r\n countRunning++;\r\n\r\n if (!upload.uploaded)\r\n anyUploading = true;\r\n else if (!upload.encoding)\r\n anyNotEncoding = true;\r\n else if (upload.encoding)\r\n countEncoding++;\r\n });\r\n\r\n this.doneDisabled = anyUploading || anyNotEncoding;\r\n this.uploadDisabled = !anyPending;\r\n this.allEncoding = countEncoding > 0 && countEncoding == countRunning;\r\n this.finished = this.uploads.length > 0 && countFinished == this.uploads.length;\r\n this.uploading = anyUploading;\r\n\r\n //console.log(this.doneDisabled, this.uploadDisabled, this.allEncoding);\r\n //console.log(anyPending, anyUploading, anyNotEncoding, countRunning, countEncoding);\r\n }\r\n\r\n isValidInput() {\r\n if (!this.study)\r\n return false;\r\n else if (this.study != Util.sanitizeName(this.study))\r\n return false;\r\n\r\n if (!this.name)\r\n return true;\r\n else if (this.name != Util.sanitizeName(this.name))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n validateInput() {\r\n this.errors.splice(0, this.errors.length);\r\n\r\n if (!this.study)\r\n this.errors.push('Study required');\r\n else if (this.study != Util.sanitizeName(this.study))\r\n this.errors.push('Invalid characters in study.');\r\n\r\n // optional name\r\n if (this.name && this.name != Util.sanitizeName(this.name))\r\n this.errors.push('Invalid characters in name.');\r\n\r\n return !this.errors.length;\r\n }\r\n\r\n updateDurations() {\r\n if (this.updateDurationsInterval) return;\r\n\r\n this.updateDurationsInterval = setInterval(() => {\r\n let now = new Date();\r\n this.uploads.forEach(upload => {\r\n if (upload.startTime &&\r\n upload.state != 'Pending' &&\r\n upload.state != 'Error' &&\r\n upload.state != 'Finished') {\r\n\r\n upload.duration = Util.duration(now, upload.startTime);\r\n }\r\n\r\n if (this.finished) {\r\n this.updateDurationsInterval = null;\r\n clearInterval(this.updateDurationsInterval);\r\n }\r\n });\r\n }, 1000);\r\n }\r\n\r\n testDuration(end, start) {\r\n let duration = Util.duration(end, start);\r\n console.log(duration);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./uploadVideos.ts?vue&type=script&lang=js&external\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/ts-loader/index.js??ref--13-3!./uploadVideos.ts?vue&type=script&lang=js&external\"","import { render, staticRenderFns } from \"./uploadVideos.vue?vue&type=template&id=ac23c6d4\"\nimport script from \"./uploadVideos.ts?vue&type=script&lang=js&external\"\nexport * from \"./uploadVideos.ts?vue&type=script&lang=js&external\"\nimport style0 from \"./uploadVideos.scss?vue&type=style&index=0&prod&lang=scss&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}