mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
First cut of online presence status for spaces
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7283 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
93
source/web/scripts/ajax/presence.js
Normal file
93
source/web/scripts/ajax/presence.js
Normal file
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Prerequisites: mootools.v1.11.js
|
||||
*/
|
||||
var Presence =
|
||||
{
|
||||
init: function()
|
||||
{
|
||||
window.contextPath = Presence.getContextPath();
|
||||
|
||||
var users = $$("#presenceContainer .presenceStatus");
|
||||
users.each(function(user, i)
|
||||
{
|
||||
// ajax call to load online status
|
||||
var userDetails = user.attributes["rel"].value.split("|");
|
||||
var proxyURL = window.contextPath + "/ajax/invoke/PresenceProxyBean.proxyRequest";
|
||||
var statusURL = Presence.getStatusURL(userDetails);
|
||||
|
||||
if (statusURL != "")
|
||||
{
|
||||
var myAjax = new Ajax(proxyURL, {
|
||||
method: 'get',
|
||||
headers: {'If-Modified-Since': 'Sat, 1 Jan 2000 00:00:00 GMT'},
|
||||
onComplete: function(textResponse, xmlResponse)
|
||||
{
|
||||
var statusType = Presence.getStatusType(userDetails[0], textResponse);
|
||||
user.addClass(statusType);
|
||||
}
|
||||
});
|
||||
myAjax.request("url=" + escape(statusURL));
|
||||
}
|
||||
else
|
||||
{
|
||||
user.addClass("unknown");
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/* Calculates and returns the context path for the current page */
|
||||
getContextPath: function()
|
||||
{
|
||||
var path = window.location.pathname;
|
||||
var idx = path.indexOf("/", 1);
|
||||
var contextPath = "";
|
||||
if (idx != -1)
|
||||
{
|
||||
contextPath = path.substring(0, idx);
|
||||
}
|
||||
else
|
||||
{
|
||||
contextPath = "";
|
||||
}
|
||||
|
||||
return contextPath;
|
||||
},
|
||||
|
||||
getStatusURL: function(userDetails)
|
||||
{
|
||||
var provider = userDetails[0];
|
||||
var username = userDetails[1];
|
||||
var statusURL = "";
|
||||
|
||||
switch(provider)
|
||||
{
|
||||
case "skype":
|
||||
statusURL = "http://mystatus.skype.com/" + username + ".txt";
|
||||
break;
|
||||
case "yahoo":
|
||||
statusURL = "http://opi.yahoo.com/online?u=" + username + "&m=t&t=1";
|
||||
break;
|
||||
}
|
||||
|
||||
return statusURL;
|
||||
},
|
||||
|
||||
getStatusType: function(provider, response)
|
||||
{
|
||||
var statusType = "unknown";
|
||||
|
||||
switch(provider)
|
||||
{
|
||||
case "skype":
|
||||
statusType = (response == "Online") ? "online" : "offline";
|
||||
break;
|
||||
case "yahoo":
|
||||
statusType = (response == "01") ? "online" : "offline";
|
||||
break;
|
||||
}
|
||||
|
||||
return statusType;
|
||||
}
|
||||
}
|
||||
|
||||
window.addEvent('domready', Presence.init);
|
Reference in New Issue
Block a user