summaryrefslogtreecommitdiffstats
path: root/settings/js
diff options
context:
space:
mode:
authorBernhard Posselt <Raydiation@users.noreply.github.com>2013-09-14 16:00:36 -0700
committerBernhard Posselt <Raydiation@users.noreply.github.com>2013-09-14 16:00:36 -0700
commita58e176852d80dd23b9346b4f8bd676e9ca4d8ed (patch)
tree3f06e0ab511159221e915a6fdce8393b6192bfdb /settings/js
parenta0c2c2473a975893d590e779433091a3f7d6abb2 (diff)
parent86143beb6ae264e31e806dd195a04e5ed6f9f2d1 (diff)
downloadnextcloud-server-a58e176852d80dd23b9346b4f8bd676e9ca4d8ed.tar.gz
nextcloud-server-a58e176852d80dd23b9346b4f8bd676e9ca4d8ed.zip
Merge pull request #4506 from owncloud/oc_avatars
OC Avatars
Diffstat (limited to 'settings/js')
-rw-r--r--settings/js/personal.js112
1 files changed, 112 insertions, 0 deletions
diff --git a/settings/js/personal.js b/settings/js/personal.js
index 77826c82de1..fab32b83b64 100644
--- a/settings/js/personal.js
+++ b/settings/js/personal.js
@@ -44,6 +44,78 @@ function changeDisplayName(){
}
}
+function updateAvatar () {
+ $headerdiv = $('#header .avatardiv');
+ $displaydiv = $('#displayavatar .avatardiv');
+
+ $headerdiv.css({'background-color': ''});
+ $headerdiv.avatar(OC.currentUser, 32, true);
+ $displaydiv.css({'background-color': ''});
+ $displaydiv.avatar(OC.currentUser, 128, true);
+}
+
+function showAvatarCropper() {
+ $cropper = $('#cropper');
+ $cropper.prepend("<img>");
+ $cropperImage = $('#cropper img');
+
+ $cropperImage.attr('src', OC.Router.generate('core_avatar_get_tmp')+'?requesttoken='+oc_requesttoken+'#'+Math.floor(Math.random()*1000));
+
+ // Looks weird, but on('load', ...) doesn't work in IE8
+ $cropperImage.ready(function(){
+ $('#displayavatar').hide();
+ $cropper.show();
+
+ $cropperImage.Jcrop({
+ onChange: saveCoords,
+ onSelect: saveCoords,
+ aspectRatio: 1,
+ boxHeight: 500,
+ boxWidth: 500,
+ setSelect: [0, 0, 300, 300]
+ });
+ });
+}
+
+function sendCropData() {
+ cleanCropper();
+
+ var cropperdata = $('#cropper').data();
+ var data = {
+ x: cropperdata.x,
+ y: cropperdata.y,
+ w: cropperdata.w,
+ h: cropperdata.h
+ };
+ $.post(OC.Router.generate('core_avatar_post_cropped'), {crop: data}, avatarResponseHandler);
+}
+
+function saveCoords(c) {
+ $('#cropper').data(c);
+}
+
+function cleanCropper() {
+ $cropper = $('#cropper');
+ $('#displayavatar').show();
+ $cropper.hide();
+ $('.jcrop-holder').remove();
+ $('#cropper img').removeData('Jcrop').removeAttr('style').removeAttr('src');
+ $('#cropper img').remove();
+}
+
+function avatarResponseHandler(data) {
+ $warning = $('#avatar .warning');
+ $warning.hide();
+ if (data.status === "success") {
+ updateAvatar();
+ } else if (data.data === "notsquare") {
+ showAvatarCropper();
+ } else {
+ $warning.show();
+ $warning.text(data.data.message);
+ }
+}
+
$(document).ready(function(){
$("#passwordbutton").click( function(){
if ($('#pass1').val() !== '' && $('#pass2').val() !== '') {
@@ -128,6 +200,46 @@ $(document).ready(function(){
}
});
+ var uploadparms = {
+ done: function(e, data) {
+ avatarResponseHandler(data.result);
+ }
+ };
+
+ $('#uploadavatarbutton').click(function(){
+ $('#uploadavatar').click();
+ });
+
+ $('#uploadavatar').fileupload(uploadparms);
+
+ $('#selectavatar').click(function(){
+ OC.dialogs.filepicker(
+ t('settings', "Select a profile picture"),
+ function(path){
+ $.post(OC.Router.generate('core_avatar_post'), {path: path}, avatarResponseHandler);
+ },
+ false,
+ ["image/png", "image/jpeg"]
+ );
+ });
+
+ $('#removeavatar').click(function(){
+ $.ajax({
+ type: 'DELETE',
+ url: OC.Router.generate('core_avatar_delete'),
+ success: function(msg) {
+ updateAvatar();
+ }
+ });
+ });
+
+ $('#abortcropperbutton').click(function(){
+ cleanCropper();
+ });
+
+ $('#sendcropperbutton').click(function(){
+ sendCropData();
+ });
} );
OC.Encryption = {