roster.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. function RosterScope(scope)
  2. {
  3. function Roster(scope) { RosterHandlers(scope); }
  4. scope.Roster = Roster;
  5. }
  6. function RosterHandlers(scope) {
  7. scope.apiProvider.on("online_number", function(x) {
  8. var e = {detail: x.detail.json, raw: x.detail.bert};
  9. document.getElementById("Users-Online-Number").firstElementChild.textContent = e.detail.toString();
  10. });
  11. scope.apiProvider.on("online", function (x) {
  12. var e = {detail: x.detail.json, raw: x.detail.bert};
  13. var msg = e.detail, id = msg[0], name = msg[1], surname = msg[2];
  14. if (null != document.getElementById(id)) removeOnlineUser(id);
  15. addOnlineUser(id,name+" "+surname,"insertTop");
  16. });
  17. scope.apiProvider.on("offline", function (x) {
  18. var e = {detail: x.detail.json, raw: x.detail.bert};
  19. var msg = e.detail, id = msg[0], name = msg[1], surname = msg[2];
  20. if (null != document.getElementById(id)) removeOnlineUser(id);
  21. addOnlineUser(id,name+" "+surname,"appendChild");
  22. });
  23. scope.apiProvider.on("roster_item", function (x) {
  24. var e = {detail: x.detail.json, raw: x.detail.bert};
  25. var msg = e.detail, id = msg[0], name = msg[1], surname = msg[2];
  26. addOnlineUser(id,name+" "+surname,"appendChild");
  27. });
  28. scope.apiProvider.on("roster_end", function (x) {
  29. var e = {detail: x.detail.json, raw: x.detail.bert};
  30. showOnlineList();
  31. });
  32. scope.apiProvider.on("roster_group", function (x) {
  33. var e = {detail: x.detail.json, raw: x.detail.bert};
  34. var list = dec(e.raw).value[0][1];
  35. for (var i=0;i<list.length;i++) {
  36. var item = list[i],
  37. id = item.value[0][0].value,
  38. names = item.value[0][1].value,
  39. surnames = item.value[0][2].value;
  40. addOnlineUser(id,names+" "+surnames+" "+user_count++,'appendChild');
  41. }
  42. });
  43. }