utils.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. (function (root, factory) {
  2. define("utils", [
  3. 'jquery',
  4. 'mock'
  5. ],
  6. function($, mock) {
  7. return factory($, mock);
  8. });
  9. }(this, function ($, mock) {
  10. var utils = {};
  11. utils.closeAllChatBoxes = function () {
  12. var i, chatbox;
  13. for (i=converse.chatboxes.models.length-1; i>-1; i--) {
  14. chatbox = converse.chatboxes.models[i];
  15. converse.chatboxesview.get(chatbox.get('id')).closeChat();
  16. }
  17. return this;
  18. };
  19. utils.removeAllChatBoxes = function () {
  20. var i, chatbox, num_chatboxes = converse.chatboxes.models.length;
  21. for (i=num_chatboxes-1; i>-1; i--) {
  22. chatbox = converse.chatboxes.models[i];
  23. converse.chatboxesview.get(chatbox.get('id')).closeChat();
  24. converse.chatboxesview.get(chatbox.get('id')).$el.remove();
  25. }
  26. converse.chatboxesview.get('controlbox').closeChat();
  27. converse.chatboxesview.get('controlbox').$el.remove();
  28. return this;
  29. };
  30. utils.initConverse = function () {
  31. converse.chatboxes = new converse.ChatBoxes();
  32. converse.chatboxesview = new converse.ChatBoxesView({model: converse.chatboxes});
  33. converse.onConnected();
  34. };
  35. utils.initRoster = function () {
  36. converse.roster.localStorage._clear();
  37. converse.initRoster();
  38. };
  39. utils.openControlBox = function () {
  40. var toggle = $(".toggle-online-users");
  41. if (!$("#controlbox").is(':visible')) {
  42. if (!toggle.is(':visible')) {
  43. toggle.show(toggle.click);
  44. } else {
  45. toggle.click();
  46. }
  47. }
  48. return this;
  49. };
  50. utils.closeControlBox = function () {
  51. if ($("#controlbox").is(':visible')) {
  52. $("#controlbox").find(".close-chatbox-button").click();
  53. }
  54. return this;
  55. };
  56. utils.removeControlBox = function () {
  57. converse.controlboxtoggle.show();
  58. $('#controlbox').remove();
  59. };
  60. utils.openContactsPanel = function () {
  61. var cbview = converse.chatboxesview.get('controlbox');
  62. var $tabs = cbview.$el.find('#controlbox-tabs');
  63. $tabs.find('li').first().find('a').click();
  64. };
  65. utils.openRoomsPanel = function () {
  66. var cbview = converse.chatboxesview.get('controlbox');
  67. var $tabs = cbview.$el.find('#controlbox-tabs');
  68. $tabs.find('li').last().find('a').click();
  69. };
  70. utils.openChatBoxes = function (amount) {
  71. var i = 0, jid, views = [];
  72. for (i; i<amount; i++) {
  73. jid = mock.cur_names[i].replace(' ','.').toLowerCase() + '@localhost';
  74. views[i] = converse.rosterview.rosteritemviews[jid].openChat(mock.event);
  75. }
  76. return views;
  77. };
  78. utils.openChatBoxFor = function (jid) {
  79. converse.rosterview.rosteritemviews[jid].openChat(mock.event);
  80. };
  81. utils.clearChatBoxMessages = function (jid) {
  82. var view = converse.chatboxesview.get(jid);
  83. view.$el.find('.chat-content').empty();
  84. view.model.messages.reset().localStorage._clear();
  85. };
  86. utils.createCurrentContacts = function () {
  87. // Create current (as opposed to requesting or pending) contacts
  88. // for the user's roster.
  89. for (i=0; i<mock.cur_names.length; i++) {
  90. converse.roster.create({
  91. jid: mock.cur_names[i].replace(' ','.').toLowerCase() + '@localhost',
  92. subscription: 'both',
  93. ask: null,
  94. fullname: mock.cur_names[i],
  95. is_last: i===(mock.cur_names.length-1)
  96. });
  97. }
  98. return this;
  99. };
  100. return utils;
  101. }));