Uses a single avatar URL, allows to override gravatar with a custom URL for avatars in interface_config.js.
This commit is contained in:
parent
a647400cb8
commit
a2c41392dd
|
@ -27,5 +27,7 @@ var interfaceConfig = {
|
||||||
/**
|
/**
|
||||||
* Whether to only show the filmstrip (and hide the toolbar).
|
* Whether to only show the filmstrip (and hide the toolbar).
|
||||||
*/
|
*/
|
||||||
filmStripOnly: false
|
filmStripOnly: false,
|
||||||
|
RANDOM_AVATAR_URL_PREFIX: false,
|
||||||
|
RANDOM_AVATAR_URL_SUFFIX: false
|
||||||
};
|
};
|
||||||
|
|
|
@ -896,11 +896,11 @@ UI.setVideoMuteButtonsState = function (mute) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
UI.userAvatarChanged = function (resourceJid, thumbUrl, contactListUrl) {
|
UI.userAvatarChanged = function (resourceJid, avatarUrl) {
|
||||||
VideoLayout.userAvatarChanged(resourceJid, thumbUrl);
|
VideoLayout.userAvatarChanged(resourceJid, avatarUrl);
|
||||||
ContactList.userAvatarChanged(resourceJid, contactListUrl);
|
ContactList.userAvatarChanged(resourceJid, avatarUrl);
|
||||||
if(resourceJid === APP.xmpp.myResource())
|
if(resourceJid === APP.xmpp.myResource())
|
||||||
SettingsMenu.changeAvatar(thumbUrl);
|
SettingsMenu.changeAvatar(avatarUrl);
|
||||||
};
|
};
|
||||||
|
|
||||||
UI.setVideoMute = setVideoMute;
|
UI.setVideoMute = setVideoMute;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* global Strophe, APP, MD5, config */
|
/* global Strophe, APP, MD5, config, interfaceConfig */
|
||||||
var Settings = require("../../settings/Settings");
|
var Settings = require("../../settings/Settings");
|
||||||
|
|
||||||
var users = {};
|
var users = {};
|
||||||
|
@ -18,55 +18,51 @@ var Avatar = {
|
||||||
}
|
}
|
||||||
users[jid] = id;
|
users[jid] = id;
|
||||||
}
|
}
|
||||||
var thumbUrl = this.getThumbUrl(jid);
|
var avatarUrl = this.getAvatarUrl(jid);
|
||||||
var contactListUrl = this.getContactListUrl(jid);
|
|
||||||
var resourceJid = Strophe.getResourceFromJid(jid);
|
var resourceJid = Strophe.getResourceFromJid(jid);
|
||||||
|
|
||||||
APP.UI.userAvatarChanged(resourceJid, thumbUrl, contactListUrl);
|
APP.UI.userAvatarChanged(resourceJid, avatarUrl);
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Returns image URL for the avatar to be displayed on large video area
|
* Returns the URL of the image for the avatar of a particular user,
|
||||||
* where current active speaker is presented.
|
* identified by its jid
|
||||||
|
* @param jid
|
||||||
* @param jid full MUC jid of the user for whom we want to obtain avatar URL
|
* @param jid full MUC jid of the user for whom we want to obtain avatar URL
|
||||||
*/
|
*/
|
||||||
getActiveSpeakerUrl: function (jid) {
|
getAvatarUrl: function (jid) {
|
||||||
return this.getGravatarUrl(jid, 100);
|
if (config.disableThirdPartyRequests) {
|
||||||
},
|
|
||||||
/**
|
|
||||||
* Returns image URL for the avatar to be displayed on small video thumbnail
|
|
||||||
* @param jid full MUC jid of the user for whom we want to obtain avatar URL
|
|
||||||
*/
|
|
||||||
getThumbUrl: function (jid) {
|
|
||||||
return this.getGravatarUrl(jid, 100);
|
|
||||||
},
|
|
||||||
/**
|
|
||||||
* Returns the URL for the avatar to be displayed as contactlist item
|
|
||||||
* @param jid full MUC jid of the user for whom we want to obtain avatar URL
|
|
||||||
*/
|
|
||||||
getContactListUrl: function (jid) {
|
|
||||||
return this.getGravatarUrl(jid, 30);
|
|
||||||
},
|
|
||||||
getGravatarUrl: function (jid, size) {
|
|
||||||
if (!jid) {
|
|
||||||
console.error("Get gravatar - jid is undefined");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
var id = users[jid];
|
|
||||||
if (!id) {
|
|
||||||
console.warn(
|
|
||||||
"No avatar stored yet for " + jid + " - using JID as ID");
|
|
||||||
id = jid;
|
|
||||||
}
|
|
||||||
if (!config.disableThirdPartyRequests) {
|
|
||||||
return 'https://www.gravatar.com/avatar/' +
|
|
||||||
MD5.hexdigest(id.trim().toLowerCase()) +
|
|
||||||
"?d=wavatar&size=" + (size || "30");
|
|
||||||
} else {
|
|
||||||
return 'images/avatar2.png';
|
return 'images/avatar2.png';
|
||||||
|
} else {
|
||||||
|
if (!jid) {
|
||||||
|
console.error("Get avatar - jid is undefined");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
var id = users[jid];
|
||||||
|
|
||||||
|
// If the ID looks like an email, we'll use gravatar.
|
||||||
|
// Otherwise, it's a random avatar, and we'll use the configured
|
||||||
|
// URL.
|
||||||
|
var random = !id || id.indexOf('@') < 0;
|
||||||
|
|
||||||
|
if (!id) {
|
||||||
|
console.warn(
|
||||||
|
"No avatar stored yet for " + jid + " - using JID as ID");
|
||||||
|
id = jid;
|
||||||
|
}
|
||||||
|
id = MD5.hexdigest(id.trim().toLowerCase());
|
||||||
|
|
||||||
|
// Default to using gravatar.
|
||||||
|
var urlPref = 'https://www.gravatar.com/avatar/';
|
||||||
|
var urlSuf = "?d=wavatar&size=100";
|
||||||
|
|
||||||
|
if (random && interfaceConfig.RANDOM_AVATAR_URL_PREFIX) {
|
||||||
|
urlPref = interfaceConfig.RANDOM_AVATAR_URL_PREFIX;
|
||||||
|
urlSuf = interfaceConfig.RANDOM_AVATAR_URL_SUFFIX;
|
||||||
|
}
|
||||||
|
|
||||||
|
return urlPref + id + urlSuf;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
module.exports = Avatar;
|
module.exports = Avatar;
|
||||||
|
|
|
@ -32,7 +32,7 @@ function updateNumberOfParticipants(delta) {
|
||||||
function createAvatar(jid) {
|
function createAvatar(jid) {
|
||||||
var avatar = document.createElement('img');
|
var avatar = document.createElement('img');
|
||||||
avatar.className = "icon-avatar avatar";
|
avatar.className = "icon-avatar avatar";
|
||||||
avatar.src = Avatar.getContactListUrl(jid);
|
avatar.src = Avatar.getAvatarUrl(jid);
|
||||||
|
|
||||||
return avatar;
|
return avatar;
|
||||||
}
|
}
|
||||||
|
@ -181,11 +181,11 @@ var ContactList = {
|
||||||
contactName.html(displayName);
|
contactName.html(displayName);
|
||||||
},
|
},
|
||||||
|
|
||||||
userAvatarChanged: function (resourceJid, contactListUrl) {
|
userAvatarChanged: function (resourceJid, avatarUrl) {
|
||||||
// set the avatar in the contact list
|
// set the avatar in the contact list
|
||||||
var contact = $('#' + resourceJid + '>img');
|
var contact = $('#' + resourceJid + '>img');
|
||||||
if (contact && contact.length > 0) {
|
if (contact && contact.length > 0) {
|
||||||
contact.get(0).src = contactListUrl;
|
contact.get(0).src = avatarUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@ function getCameraVideoSize(videoWidth,
|
||||||
function updateActiveSpeakerAvatarSrc() {
|
function updateActiveSpeakerAvatarSrc() {
|
||||||
var avatar = $("#activeSpeakerAvatar")[0];
|
var avatar = $("#activeSpeakerAvatar")[0];
|
||||||
var jid = currentSmallVideo.peerJid;
|
var jid = currentSmallVideo.peerJid;
|
||||||
var url = Avatar.getActiveSpeakerUrl(jid);
|
var url = Avatar.getAvatarUrl(jid);
|
||||||
if (avatar.src === url)
|
if (avatar.src === url)
|
||||||
return;
|
return;
|
||||||
if (jid) {
|
if (jid) {
|
||||||
|
|
|
@ -369,7 +369,7 @@ SmallVideo.prototype.showAvatar = function (show) {
|
||||||
if (!this.hasAvatar) {
|
if (!this.hasAvatar) {
|
||||||
if (this.peerJid) {
|
if (this.peerJid) {
|
||||||
// Init avatar
|
// Init avatar
|
||||||
this.avatarChanged(Avatar.getThumbUrl(this.peerJid));
|
this.avatarChanged(Avatar.getAvatarUrl(this.peerJid));
|
||||||
} else {
|
} else {
|
||||||
console.error("Unable to init avatar - no peerjid", this);
|
console.error("Unable to init avatar - no peerjid", this);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -1005,14 +1005,14 @@ var VideoLayout = (function (my) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
my.userAvatarChanged = function(resourceJid, thumbUrl) {
|
my.userAvatarChanged = function(resourceJid, avatarUrl) {
|
||||||
var smallVideo = VideoLayout.getSmallVideo(resourceJid);
|
var smallVideo = VideoLayout.getSmallVideo(resourceJid);
|
||||||
if(smallVideo)
|
if(smallVideo)
|
||||||
smallVideo.avatarChanged(thumbUrl);
|
smallVideo.avatarChanged(avatarUrl);
|
||||||
else
|
else
|
||||||
console.warn(
|
console.warn(
|
||||||
"Missed avatar update - no small video yet for " + resourceJid);
|
"Missed avatar update - no small video yet for " + resourceJid);
|
||||||
LargeVideo.updateAvatar(resourceJid, thumbUrl);
|
LargeVideo.updateAvatar(resourceJid, avatarUrl);
|
||||||
};
|
};
|
||||||
|
|
||||||
my.createEtherpadIframe = function(src, onloadHandler)
|
my.createEtherpadIframe = function(src, onloadHandler)
|
||||||
|
|
Loading…
Reference in New Issue