utils.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  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.views[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.views[chatbox.get('id')].closeChat();
  24. converse.chatboxesview.views[chatbox.get('id')].$el.remove();
  25. }
  26. converse.chatboxesview.views.controlbox.closeChat();
  27. converse.chatboxesview.views.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. if (!$("#controlbox").is(':visible')) {
  41. $('.toggle-online-users').click();
  42. }
  43. return this;
  44. };
  45. utils.closeControlBox = function () {
  46. if ($("#controlbox").is(':visible')) {
  47. $('.toggle-online-users').click();
  48. }
  49. return this;
  50. };
  51. utils.removeControlBox = function () {
  52. $('#controlbox').remove();
  53. };
  54. utils.openContactsPanel = function () {
  55. var cbview = converse.chatboxesview.views.controlbox;
  56. var $tabs = cbview.$el.find('#controlbox-tabs');
  57. $tabs.find('li').first().find('a').click();
  58. };
  59. utils.openRoomsPanel = function () {
  60. var cbview = converse.chatboxesview.views.controlbox;
  61. var $tabs = cbview.$el.find('#controlbox-tabs');
  62. $tabs.find('li').last().find('a').click();
  63. };
  64. utils.openChatBoxes = function (amount) {
  65. var i = 0, jid;
  66. for (i; i<amount; i++) {
  67. jid = mock.cur_names[i].replace(' ','.').toLowerCase() + '@localhost';
  68. converse.rosterview.rosteritemviews[jid].openChat(mock.event);
  69. }
  70. };
  71. utils.openChatBoxFor = function (jid) {
  72. return converse.rosterview.rosteritemviews[jid].openChat(mock.event);
  73. };
  74. utils.clearChatBoxMessages = function (jid) {
  75. var view = converse.chatboxesview.views[jid];
  76. view.$el.find('.chat-content').empty();
  77. view.model.messages.reset().localStorage._clear();
  78. };
  79. utils.createNewChatRoom = function (room, nick) {
  80. var controlbox_was_visible = $("#controlbox").is(':visible');
  81. utils.openControlBox();
  82. utils.openRoomsPanel();
  83. var roomspanel = converse.chatboxesview.views.controlbox.roomspanel;
  84. var $input = roomspanel.$el.find('input.new-chatroom-name');
  85. var $nick = roomspanel.$el.find('input.new-chatroom-nick');
  86. var $server = roomspanel.$el.find('input.new-chatroom-server');
  87. $input.val('lounge');
  88. $nick.val('dummy');
  89. $server.val('muc.localhost');
  90. roomspanel.$el.find('form').submit();
  91. if (!controlbox_was_visible) {
  92. utils.closeControlBox();
  93. }
  94. };
  95. utils.createCurrentContacts = function () {
  96. // Create current (as opposed to requesting or pending) contacts
  97. // for the user's roster.
  98. for (i=0; i<mock.cur_names.length; i++) {
  99. converse.roster.create({
  100. jid: mock.cur_names[i].replace(' ','.').toLowerCase() + '@localhost',
  101. subscription: 'both',
  102. ask: null,
  103. fullname: mock.cur_names[i],
  104. is_last: i===(mock.cur_names.length-1)
  105. });
  106. }
  107. return this;
  108. };
  109. utils.sendMessage = function (chatboxview, message) {
  110. chatboxview.$el.find('.chat-textarea').val(message);
  111. chatboxview.$el.find('textarea.chat-textarea').trigger($.Event('keypress', {keyCode: 13}));
  112. };
  113. return utils;
  114. }));