mirror of
https://github.com/taobataoma/meanTorrent.git
synced 2026-05-07 19:47:19 +02:00
87 lines
2.4 KiB
JavaScript
87 lines
2.4 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
angular
|
|
.module('users')
|
|
.controller('ChangeProfilePictureController', ChangeProfilePictureController);
|
|
|
|
ChangeProfilePictureController.$inject = ['$scope', '$timeout', '$window', 'Authentication', 'FileUploader'];
|
|
|
|
function ChangeProfilePictureController($scope, $timeout, $window, Authentication, FileUploader) {
|
|
var vm = this;
|
|
|
|
vm.user = Authentication.user;
|
|
vm.imageURL = vm.user.profileImageURL;
|
|
vm.uploadProfilePicture = uploadProfilePicture;
|
|
|
|
vm.cancelUpload = cancelUpload;
|
|
// Create file uploader instance
|
|
vm.uploader = new FileUploader({
|
|
url: 'api/users/picture',
|
|
alias: 'newProfilePicture',
|
|
onAfterAddingFile: onAfterAddingFile,
|
|
onSuccessItem: onSuccessItem,
|
|
onErrorItem: onErrorItem
|
|
});
|
|
|
|
// Set file uploader image filter
|
|
vm.uploader.filters.push({
|
|
name: 'imageFilter',
|
|
fn: function (item, options) {
|
|
var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';
|
|
return '|jpg|png|jpeg|bmp|gif|'.indexOf(type) !== -1;
|
|
}
|
|
});
|
|
|
|
// Called after the user selected a new picture file
|
|
function onAfterAddingFile(fileItem) {
|
|
if ($window.FileReader) {
|
|
var fileReader = new FileReader();
|
|
fileReader.readAsDataURL(fileItem._file);
|
|
|
|
fileReader.onload = function (fileReaderEvent) {
|
|
$timeout(function () {
|
|
vm.imageURL = fileReaderEvent.target.result;
|
|
}, 0);
|
|
};
|
|
}
|
|
}
|
|
|
|
// Called after the user has successfully uploaded a new picture
|
|
function onSuccessItem(fileItem, response, status, headers) {
|
|
// Show success message
|
|
vm.success = true;
|
|
|
|
// Populate user object
|
|
vm.user = Authentication.user = response;
|
|
|
|
// Clear upload buttons
|
|
cancelUpload();
|
|
}
|
|
|
|
// Called after the user has failed to uploaded a new picture
|
|
function onErrorItem(fileItem, response, status, headers) {
|
|
// Clear upload buttons
|
|
cancelUpload();
|
|
|
|
// Show error message
|
|
vm.error = response.message;
|
|
}
|
|
|
|
// Change user profile picture
|
|
function uploadProfilePicture() {
|
|
// Clear messages
|
|
vm.success = vm.error = null;
|
|
|
|
// Start upload
|
|
vm.uploader.uploadAll();
|
|
}
|
|
|
|
// Cancel the upload process
|
|
function cancelUpload() {
|
|
vm.uploader.clearQueue();
|
|
vm.imageURL = vm.user.profileImageURL;
|
|
}
|
|
}
|
|
}());
|