You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

moderator.js 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /* global $, config, connection, Etherpad, Toolbar, VideoLayout */
  2. /**
  3. * Contains logic responsible for enabling/disabling functionality available
  4. * only to moderator users.
  5. */
  6. var Moderator = (function (my) {
  7. my.isModerator = function () {
  8. return connection.emuc.isModerator();
  9. };
  10. my.onModeratorStatusChanged = function (isModerator) {
  11. Toolbar.showSipCallButton(isModerator);
  12. Toolbar.showRecordingButton(
  13. isModerator); //&&
  14. // FIXME:
  15. // Recording visible if
  16. // there are at least 2(+ 1 focus) participants
  17. //Object.keys(connection.emuc.members).length >= 3);
  18. if (isModerator && config.etherpad_base) {
  19. Etherpad.init();
  20. }
  21. $(document).trigger('local.role.moderator', [isModerator]);
  22. };
  23. my.init = function () {
  24. $(document).bind(
  25. 'role.changed.muc',
  26. function (event, jid, info, pres) {
  27. console.info(
  28. "Role changed for " + jid + ", new role: " + info.role);
  29. VideoLayout.showModeratorIndicator();
  30. }
  31. );
  32. $(document).bind(
  33. 'local.role.changed.muc',
  34. function (event, jid, info, pres) {
  35. console.info("My role changed, new role: " + info.role);
  36. VideoLayout.showModeratorIndicator();
  37. Moderator.onModeratorStatusChanged(Moderator.isModerator());
  38. }
  39. );
  40. };
  41. return my;
  42. }(Moderator || {}));