Have 3 explicit avatar options

custom image, gravatar or none
This commit is contained in:
Johannes Zellner
2021-07-07 14:39:17 +02:00
parent 2caac75dbd
commit d292d5d419
4 changed files with 192 additions and 45 deletions
+17 -11
View File
@@ -122,8 +122,8 @@ angular.module('Application').controller('ProfileController', ['$scope', '$trans
busy: false,
error: {},
avatar: null,
useGravatar: '',
useGravatarOrig: '',
type: '',
typeOrig: '',
pictureChanged: false,
getBlobFromImg: function (img, callback) {
@@ -176,13 +176,13 @@ angular.module('Application').controller('ProfileController', ['$scope', '$trans
});
}
if ($scope.avatarChange.useGravatar) {
Client.clearAvatar(done);
} else {
if ($scope.avatarChange.type === 'custom') {
var img = document.getElementById('previewAvatar');
$scope.avatarChange.getBlobFromImg(img, function (blob) {
Client.changeAvatar(blob, done);
});
} else {
Client.changeAvatar($scope.avatarChange.type, done);
}
},
@@ -194,13 +194,19 @@ angular.module('Application').controller('ProfileController', ['$scope', '$trans
avatarChangeReset: function () {
$scope.avatarChange.error.avatar = null;
$scope.avatarChange.useGravatar = $scope.user.avatarUrl.indexOf('https://www.gravatar.com') === 0 ? 'true_string' : '';
$scope.avatarChange.useGravatarOrig = $scope.avatarChange.useGravatar;
if ($scope.user.avatarUrl.indexOf('/api/v1/profile/avatar') !== -1) {
$scope.avatarChange.type = 'custom';
} else if ($scope.user.avatarUrl.indexOf('https://www.gravatar.com') === 0) {
$scope.avatarChange.type = 'gravatar';
} else {
$scope.avatarChange.type = '';
}
$scope.avatarChange.typeOrig = $scope.avatarChange.type;
document.getElementById('previewAvatar').src = $scope.avatarChange.type === 'custom' ? $scope.user.avatarUrl : '';
$scope.avatarChange.pictureChanged = false;
document.getElementById('previewAvatar').src = $scope.avatarChange.useGravatar ? '' : $scope.user.avatarUrl;
$scope.avatarChange.avatar = $scope.avatarChange.useGravatar ? {} : {
url: $scope.user.avatarUrl
};
$scope.avatarChange.avatar = null;
$scope.avatarChange.busy = false;
},