Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var monterosa = monterosa || {};
- monterosa.ReacTV = function(cfg) {
- var self = this,
- messages = {};
- var transport = function(enmasse) {
- var transport = {};
- jQuery(enmasse).bind('received', function(e, channel, type, body) {
- if (channel != cfg.channel) { return; }
- jQuery(transport).trigger('received', [type, body]);
- });
- jQuery(enmasse).bind('disconnected', function() {
- jQuery(transport).trigger('disconnected');
- });
- jQuery(enmasse).bind('ready', function() {
- jQuery(transport).transport('ready');
- });
- transport.send = function(type, body) {
- enmasse.send(cfg.channel, type. body);
- };
- return transport;
- }(cfg.enmasse);
- var stream = new monterosa.ReacTV.Stream({transport: transport});
- var form = new monterosa.ReacTV.FormView();
- var discussion = new monterosa.ReacTV.DiscussionView();
- var featured = new monterosa.ReacTV.FeaturedView();
- var topic = new monterosa.ReacTV.TopicView();
- jQuery(cfg.container).append(topic)
- .append(form)
- .append(featured)
- .append(discussion);
- var login_source;
- jQuery(form).bind('sourceChosen', function(e, source) {
- login_source = source;
- });
- jQuery(form).bind('login', function(e, name) {
- // no userpics are supported yet by current login adaptors
- stream.login(name, login_source);
- });
- jQuery(stream).bind('disconnected', function() {
- form.disable();
- jQuery(self).trigger('disabled');
- });
- jQuery(stream).bind('connected', function() {
- form.enable();
- jQuery(self).trigger('enabled');
- });
- jQuery(form).bind('messageSent', function(e, message) {
- stream.sendMesage(message);
- });
- jQuery(stream).bind('newMessage', function(e, msg) {
- messages[msg.id] = new monterosa.ReacTV.MessageView(msg);
- discussion.addMessage(messages[msg.id]);
- });
- jQuery(stream).bind('approvedMessage', function(e, id) {
- if (!messages[id]) { return; }
- messages[id].approve();
- });
- jQuery(stream).bind('unpinnedMessage', function(e, id) {
- if (!messages[id]) { return; }
- var unpinned = featured.remove();
- if (unpinned) { discussion.addMessage(unpinned); }
- });
- jQuery(stream).bind('pinnedMessage', function(e, id) {
- if (!messages[id]) { return; }
- discussion.removeMessage(messages[id]);
- featured.set(messages[id]);
- });
- jQuery(stream).bind('removedMessage', function(e, id) {
- if (!messages[id]) { return; }
- discussion.removedMessage(messages[id]);
- });
- jQuery(stream).bind('topicChange', function(e, text) {
- topic.set(text);
- });
- };
Add Comment
Please, Sign In to add comment