Merge pull request #20943 from owncloud/load_avatar_once
[Avatars] JS should not load same avatar twice
This commit is contained in:
commit
af8bcb3a4d
|
@ -47,7 +47,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
(function ($) {
|
(function ($) {
|
||||||
$.fn.avatar = function(user, size, ie8fix, hidedefault, callback) {
|
$.fn.avatar = function(user, size, ie8fix, hidedefault, callback, displayname) {
|
||||||
if (typeof(size) === 'undefined') {
|
if (typeof(size) === 'undefined') {
|
||||||
if (this.height() > 0) {
|
if (this.height() > 0) {
|
||||||
size = this.height();
|
size = this.height();
|
||||||
|
@ -79,30 +79,51 @@
|
||||||
'/avatar/{user}/{size}',
|
'/avatar/{user}/{size}',
|
||||||
{user: user, size: Math.ceil(size * window.devicePixelRatio)});
|
{user: user, size: Math.ceil(size * window.devicePixelRatio)});
|
||||||
|
|
||||||
$.get(url, function(result) {
|
// If the displayname is not defined we use the old code path
|
||||||
if (typeof(result) === 'object') {
|
if (typeof(displayname) === 'undefined') {
|
||||||
if (!hidedefault) {
|
$.get(url, function(result) {
|
||||||
if (result.data && result.data.displayname) {
|
if (typeof(result) === 'object') {
|
||||||
$div.imageplaceholder(user, result.data.displayname);
|
if (!hidedefault) {
|
||||||
|
if (result.data && result.data.displayname) {
|
||||||
|
$div.imageplaceholder(user, result.data.displayname);
|
||||||
|
} else {
|
||||||
|
// User does not exist
|
||||||
|
$div.imageplaceholder(user, 'X');
|
||||||
|
$div.css('background-color', '#b9b9b9');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// User does not exist
|
$div.hide();
|
||||||
$div.imageplaceholder(user, 'X');
|
|
||||||
$div.css('background-color', '#b9b9b9');
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$div.hide();
|
$div.show();
|
||||||
|
if (ie8fix === true) {
|
||||||
|
$div.html('<img width="' + size + '" height="' + size + '" src="'+url+'#'+Math.floor(Math.random()*1000)+'">');
|
||||||
|
} else {
|
||||||
|
$div.html('<img width="' + size + '" height="' + size + '" src="'+url+'">');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
if(typeof callback === 'function') {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// We already have the displayname so set the placeholder (to show at least something)
|
||||||
|
if (!hidedefault) {
|
||||||
|
$div.imageplaceholder(displayname);
|
||||||
|
}
|
||||||
|
|
||||||
|
var img = new Image();
|
||||||
|
|
||||||
|
// If the new image loads successfull set it.
|
||||||
|
img.onload = function() {
|
||||||
$div.show();
|
$div.show();
|
||||||
if (ie8fix === true) {
|
$div.text('');
|
||||||
$div.html('<img width="' + size + '" height="' + size + '" src="'+url+'#'+Math.floor(Math.random()*1000)+'">');
|
$div.append(img);
|
||||||
} else {
|
|
||||||
$div.html('<img width="' + size + '" height="' + size + '" src="'+url+'">');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if(typeof callback === 'function') {
|
|
||||||
callback();
|
img.width = size;
|
||||||
}
|
img.height = size;
|
||||||
});
|
img.src = url;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}(jQuery));
|
}(jQuery));
|
||||||
|
|
|
@ -65,8 +65,7 @@ var UserList = {
|
||||||
* Avatar or placeholder
|
* Avatar or placeholder
|
||||||
*/
|
*/
|
||||||
if ($tr.find('div.avatardiv').length){
|
if ($tr.find('div.avatardiv').length){
|
||||||
$tr.find('.avatardiv').imageplaceholder(user.name, user.displayname);
|
$('div.avatardiv', $tr).avatar(user.name, 32, undefined, undefined, undefined, user.displayname);
|
||||||
$('div.avatardiv', $tr).avatar(user.name, 32);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue