Smart package for CodersTV' chat. It uses Arunoda's Meteor Streams.
To install in a new project:
> meteor add coderstv:chat
You need to configure at least one kind of account. Supported social plataforms now are:
For example, with Google:
meteor add accounts-google
<template name="index">
{{> chatroom}}
{{loginButtons}}
</template>
If you don't want to have a global chat for entire website, you can set a Path so you can have a different chat box for each Path you set.
What's needed to do on javascript part is set a Path. Path is a reactive source of current page path (like window.location.pathname).
So, whenever it changes, it must be updated calling Path.set(path)
I've removed loginButtons from it and the popover that shows up to tell people to login, because loginButtons frag has an id on its div. And if you have another button on your site, it blows up your code. So add them to your site!
Router.map(function () {
this.route('index', {
path: '/',
before: function () {
Path.set(Router.current().path);
}
});
});
Template.parentTemplate.rendered = function() {
$(window).resize(function () {
var height = $(this).height(); // you can set a value you want here
$('#chat-wrapper').height(height);
});
$(window).resize(); // trigger the resize
}
You will have to set up the Meteor-presence publication and subscription:
/* On Server */
Meteor.publish('superChatUserPresence', function (whereAt) {
var filter = whereAt ? {'state.whereAt': whereAt} : {};
return Meteor.presences.find(filter, {fields: {state: true, userId: true}});
});
/* On Client */
Meteor.Presence.state = function() {
return {
online: true,
whereAt: Path()
};
}
Deps.autorun(function () {
Meteor.subscribe('superChatUserPresence', Path());
});
Just put on the client, on startup (if you override the default object, make sure you put all those params):
Superchat = {
messageLimitOnScreen: 50,
defaultProfilePicture: 'http://i.imgur.com/HKSh9X9.png'
};
Thanks @arunoda for his great Meteor project called Meteor Streams.
Thanks @tmeasday for this awesome package Meteor Presence