2015-07-01 2 views
0

У меня есть приведенный ниже код для отображения присутствий Lync на моем сайте, но то, что я ищу, - это подсчет количества пользователей определенного статуса, например. Доступно: 3, Away: 4, Meeting: 2 и т. Д. Есть ли функция в API, которая вернет мне статус как число, поэтому я мог бы использовать цикл for для подсчета и отображения в HTML?Подсчет количества доступных пользователей для Lync

<script> 
var nameCtrl = new ActiveXObject('Name.NameCtrl.1'); 
function getStatus(sipUri) { 
    if (nameCtrl.PresenceEnabled) 
{ 
    nameCtrl.OnStatusChange = onStatusChange; 
    nameCtrl.GetStatus(sipUri, "1"); 
} 
} 
function onStatusChange(name, status, id) 
{ 
// This function is fired when the contacts presence status changes. 
// In a real world solution, you would want to update an image to reflect  the users presence 
// alert(name + ", " + status + ", " + id); 
var lyncpresencecolor = "gray"; 
switch (status) { 
    case 0: 
     document.getElementById(name).style.borderLeftColor = "#5DD255"; 
     break; 
    case 1: 
     document.getElementById(name).style.borderLeftColor = "#B6CFD8"; 
     break; 
    case 2: 
     document.getElementById(name).style.borderLeftColor = "#FFD200"; 
     break; 
    case 3: 
     document.getElementById(name).style.borderLeftColor = "#D00E0D"; 
     break; 
    case 4: 
     document.getElementById(name).style.borderLeftColor = "#FFD200"; 
     break; 
    case 5: 
     document.getElementById(name).style.borderLeftColor = "#D00E0D"; 
     break; 
    case 6: 
     document.getElementById(name).style.borderLeftColor = "#D00E0D"; 
     break; 
    case 7: 
     document.getElementById(name).style.borderLeftColor = "#D00E0D"; 
     break; 
    case 8: 
     document.getElementById(name).style.borderLeft = "dashed"; 
     document.getElementById(name).style.borderLeftWidth = "10px"; 
     document.getElementById(name).style.borderLeftColor = "#E57A79"; 
     break; 
    case 9: 
     document.getElementById(name).style.borderLeftColor = "#D00E0D"; 
     break; 
    case 15: 
     document.getElementById(name).style.borderLeftColor = "#D00E0D"; 
     break; 
    case 16: 
     document.getElementById(name).style.borderLeftColor = "#FFD200"; 
     break; 
    default: 
     document.getElementById(name).style.borderLeftColor = "#B6CFD8"; 
     break; 
} 
} 
function ShowOOUI(sipUri) 
{ 
nameCtrl.ShowOOUI(sipUri, 0, 15, 15); 
} 
function HideOOUI() 
{ 
nameCtrl.HideOOUI(); 
} 
</script> 

<span id="[email protected]" onmouseover="ShowOOUI('[email protected]')" onmouseout="HideOOUI()" style="border-left-style:solid; border-left-width: 10px;"> User Name</span> 
<script type="text/javascript"> 
    getStatus('[email protected]'); 
</script> 

Благодаря

ответ

0

Нет, нет, но если вы установите или добавить простой класс тега на изменение статуса, например.

document.getElementById(name).className = 'LyncStatus' + status; 

Тогда вы могли бы посчитать их легко по телефону:

function getNumberOfUserByStatus(status) { 
    return document.getElementsByClassName('LyncStatus' + status).length; 
} 
Смежные вопросы