UNPKG

sheercms

Version:

Sheer Cliff CMS is a simple and powerful content management system (CMS) for Node JS.

99 lines (81 loc) 2.79 kB
var UploadMediaDialogController = function ($scope, $modalInstance, ContentService, title, groupId) { $scope.dropSupported = true; $scope.dialog = { title: "", message: "", messageType: "" }; $scope.data = { uploading: false, files: [], hasFiles: false, countMessage: "", progress: [], showProgress: false, groupId: null, autoPublish: true, uploadCount: 0 }; $scope.onFileSelect = function($files) { if ($files && $files.length > 0) { if ($scope.data.files) { for(var i = 0; i < $files.length; i++) $scope.data.files.push($files[i]); } else $scope.data.files = $files; $scope.data.hasFiles = true; $scope.data.countMessage = $scope.data.files.length == 1 ? "1 file selected" : $scope.data.files.length + " files selected"; } else $scope.clearFiles(); }; $scope.clearFiles = function() { $(".upload-dialog input[type='file']").each(function() { $(this).val(null); }); $scope.data.files = []; $scope.data.hasFiles = false; $scope.data.countMessage = ""; $scope.data.progress = []; $scope.data.showProgress = false; $scope.data.uploading = false; }; $scope.startUpload = function() { $scope.progress = []; for(var i = 0; i < $scope.data.files.length; i++) { var f = $scope.data.files[i]; $scope.data.progress.push({ name: f.name, percent: 0, error: "" }); } $scope.data.showProgress = true; $scope.data.uploading = true; ContentService.upload($scope.data.groupId, $scope.data.files, $scope.data.autoPublish, onUploadProgress, onUploadError).then(function(result) { $scope.data.uploadCount += $scope.data.files.length; $scope.data.uploading = false; }); }; function onUploadProgress(name, index, loaded, total) { var per = parseInt(100.0 * loaded / total); $scope.data.progress[index].percent = per; console.log('percent: ' + per + ' ;' + name + '; ' + index); } function onUploadError(name, index, message) { $scope.data.progress[index].error = message; } $scope.uploadMore = function() { $scope.clearFiles(); $scope.data.showProgress = false; }; $scope.close = function() { $modalInstance.close($scope.data.uploadCount); }; function init() { $scope.dialog.title = title || "Upload Media"; $scope.data.groupId = groupId; } init(); };