'use strict' angular.module('EXAM').controller('ExamUpload', ['$scope', '$http', '$sce', 'data', 'filetype', '$mdDialog', 'EXAMSERVICES', function($scope, $http, $sce, data, filetype, $mdDialog, EXAMSERVICES){ //$scope.img = PassingPicture $scope.uploadobj = { img: '', audio: { isaudio: false, path: 'UPLOAD/AUDIO/', name: '', getPath: function(){ return this.path+this.name } }, video: { previewstatus: false, //true for show inputvideo: '', videolink: '', } } $scope.returnobj = { filename: '', status: false } $scope.waitloding = false $scope.pathfile = pathfile if (filetype === 'picture'){ $scope.uploadobj.img = data $scope.returnobj.filename = data if (data != 'defaultperson.jpg'){ $scope.returnobj.status = true } } else if (filetype === 'audio'){ if (data !== ''){ $scope.uploadobj.audio.name = data $scope.uploadobj.audio.isaudio = true $scope.returnobj.filename = data $scope.returnobj.status = true } } else if (filetype === 'video'){ if (data != ''){ $scope.uploadobj.video.inputvideo = data $scope.uploadobj.video.videolink = $sce.trustAsResourceUrl(data) $scope.uploadobj.video.previewstatus = true $scope.returnobj.filename = data $scope.returnobj.status = true } } $scope.openUploadPicture = function(){ $('input[name="uppic"]').click() let i = 0 $('input[name="uppic"]').change(function(){ if (i === 0){ $scope.waitloding = true let objfile = $(this)[0].files[0] let filename = objfile.name.substring(0, objfile.name.indexOf('.')) let filetype = objfile.name.substring(objfile.name.indexOf('.')+1, objfile.name.length) let ranfile = '' for (let i=0; i<filename.length; i++){ ranfile += filename.charAt(Math.floor(Math.random() * filename.length)) } let fd = new FileReader() fd.onload = function(){ let dataurl = fd.result $('.tmppicture').attr('src', dataurl) dataurl = dataurl.substring(dataurl.indexOf(',')+1, dataurl.length) let objfile = { filedata: dataurl, despath: pathfile.images, filename: ranfile, filetype: filetype } EXAMSERVICES.UploadFileExam.save(objfile).$promise.then(function(result){ $scope.waitloding = false $scope.uploadobj.img = ranfile+'.'+filetype $scope.returnobj.filename = ranfile+'.'+filetype $scope.returnobj.status = true }, function(){ $mdDialog.cancel() }) } fd.readAsDataURL(objfile) i++ } }) } $scope.deletePicture = function(){ $scope.uploadobj.img = 'defaultperson.jpg' $scope.returnobj.filename = $scope.uploadobj.img $scope.returnobj.status = false $('.tmppicture').attr('src', 'UPLOAD/PICTURE/defaultperson.jpg') } $scope.openUploadAudio = function(){ $('input[name="upaudio"]').click() let i = 0 $('input[name="upaudio"]').change(function(){ if (i === 0){ $scope.waitloding = true let fd = new FileReader() let objfile = $(this)[0].files[0] let filename = objfile.name.replace(/ /g, '') let filetype = objfile.name.substring(objfile.name.indexOf('.')+1, objfile.name.length) let ranfile = '' filename = filename.substring(0, filename.indexOf('.')) for (let i=0; i<filename.length; i++){ ranfile += filename.charAt(Math.floor(Math.random() * filename.length)) } fd.onload = function(){ let dataurl = fd.result dataurl = dataurl.substring(dataurl.indexOf(',')+1, dataurl.length) let objfile = { filedata: dataurl, despath: pathfile.audio, filename: ranfile, filetype: filetype } EXAMSERVICES.UploadFileExam.save(objfile).$promise.then(function(result){ $scope.waitloding = false $('source').attr('src', $scope.uploadobj.audio.path+ranfile+'.'+filetype) $('.myaudio').load() $scope.uploadobj.audio.isaudio = true $scope.uploadobj.audio.name = ranfile+'.'+filetype $scope.returnobj.filename = ranfile+'.'+filetype $scope.returnobj.status = true }, function(){ $mdDialog.cancel() }) } fd.readAsDataURL(objfile) i++ } }) } $scope.deleteAudio = function(){ $scope.uploadobj.audio.name = '' $scope.uploadobj.audio.isaudio = false $scope.returnobj.status = false $scope.returnobj.filename = '' } $scope.previewVideo = function(){ if ($scope.uploadobj.video.inputvideo != ''){ let linkname = $scope.uploadobj.video.inputvideo if (linkname.includes('embed')){ if (linkname.includes('src=')){ linkname = linkname.substring(linkname.indexOf('src=')+4, linkname.length) linkname = linkname.substring(linkname.indexOf('"')+1, linkname.indexOf('"', 2)) } } else if (linkname.includes('/watch?v=')){ linkname = 'https://www.youtube.com/embed/'+linkname.substring(linkname.lastIndexOf('v=')+2, linkname.length) } else { if (linkname.lastIndexOf('/') > 0){ linkname = 'https://www.youtube.com/embed/'+linkname.substring(linkname.lastIndexOf('/')+1, linkname.length) } } $scope.uploadobj.video.videolink = $sce.trustAsResourceUrl(linkname) $scope.uploadobj.video.previewstatus = true $scope.returnobj.filename = linkname $scope.returnobj.status = true } else { $scope.uploadobj.video.previewstatus = false $scope.uploadobj.video.videolink = '' $scope.returnobj.filename = '' $scope.returnob.status = false } } $scope.close = function(){ $mdDialog.hide($scope.returnobj) } $('.templateTest').load(function(){ console.log('loading now') }) }])