Guest User

Untitled

a guest
Jul 19th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. var monterosa = monterosa || {};
  2.  
  3. monterosa.ReacTV = function(cfg) {
  4. var self = this,
  5. messages = {};
  6.  
  7. var transport = function(enmasse) {
  8. var transport = {};
  9. jQuery(enmasse).bind('received', function(e, channel, type, body) {
  10. if (channel != cfg.channel) { return; }
  11. jQuery(transport).trigger('received', [type, body]);
  12. });
  13.  
  14. jQuery(enmasse).bind('disconnected', function() {
  15. jQuery(transport).trigger('disconnected');
  16. });
  17.  
  18. jQuery(enmasse).bind('ready', function() {
  19. jQuery(transport).transport('ready');
  20. });
  21.  
  22. transport.send = function(type, body) {
  23. enmasse.send(cfg.channel, type. body);
  24. };
  25.  
  26. return transport;
  27. }(cfg.enmasse);
  28.  
  29. var stream = new monterosa.ReacTV.Stream({transport: transport});
  30.  
  31. var form = new monterosa.ReacTV.FormView();
  32. var discussion = new monterosa.ReacTV.DiscussionView();
  33. var featured = new monterosa.ReacTV.FeaturedView();
  34. var topic = new monterosa.ReacTV.TopicView();
  35.  
  36. jQuery(cfg.container).append(topic)
  37. .append(form)
  38. .append(featured)
  39. .append(discussion);
  40.  
  41. var login_source;
  42. jQuery(form).bind('sourceChosen', function(e, source) {
  43. login_source = source;
  44. });
  45.  
  46. jQuery(form).bind('login', function(e, name) {
  47. // no userpics are supported yet by current login adaptors
  48. stream.login(name, login_source);
  49. });
  50.  
  51.  
  52. jQuery(stream).bind('disconnected', function() {
  53. form.disable();
  54. jQuery(self).trigger('disabled');
  55. });
  56.  
  57. jQuery(stream).bind('connected', function() {
  58. form.enable();
  59. jQuery(self).trigger('enabled');
  60. });
  61.  
  62.  
  63. jQuery(form).bind('messageSent', function(e, message) {
  64. stream.sendMesage(message);
  65. });
  66.  
  67. jQuery(stream).bind('newMessage', function(e, msg) {
  68. messages[msg.id] = new monterosa.ReacTV.MessageView(msg);
  69. discussion.addMessage(messages[msg.id]);
  70. });
  71.  
  72. jQuery(stream).bind('approvedMessage', function(e, id) {
  73. if (!messages[id]) { return; }
  74. messages[id].approve();
  75. });
  76.  
  77. jQuery(stream).bind('unpinnedMessage', function(e, id) {
  78. if (!messages[id]) { return; }
  79. var unpinned = featured.remove();
  80. if (unpinned) { discussion.addMessage(unpinned); }
  81. });
  82.  
  83. jQuery(stream).bind('pinnedMessage', function(e, id) {
  84. if (!messages[id]) { return; }
  85. discussion.removeMessage(messages[id]);
  86. featured.set(messages[id]);
  87. });
  88.  
  89. jQuery(stream).bind('removedMessage', function(e, id) {
  90. if (!messages[id]) { return; }
  91. discussion.removedMessage(messages[id]);
  92. });
  93.  
  94. jQuery(stream).bind('topicChange', function(e, text) {
  95. topic.set(text);
  96. });
  97. };
Add Comment
Please, Sign In to add comment