Here’s something I’ve been playing around with for a bit. Will definitely still be some issues to iron out, but it mostly works. Would be good to get some feedback at this stage. Please use with caution
Adds a dropdown in the header that shows you your latest private messages and a ‘chat’ experience for private messages similar to Facebook Messages or Google Hangouts.
User notes:
Please note that this plugin extends the existing private message feature. If you are looking for a chat experience separate from the private message feature, I suggest @gdpelican’s Babble plugin.
You cannot yet have multiple chats open at once. If you open a new private message topic from the messages menu, it will override any existing private message compose and message stream you have open. Multiple chats open at once may be a future feature.
New private messages composed from the “New Message” compose button in the messages dropdown behave like chat streams, i.e.:
The topic title will be the usernames of the participants in the topic, e.g. “Bob & Mary”.
If the participants in the new topic match the participants in an existing topic, the existing topic will be continued rather than a new topic created.
Notifications about private messages will no longer appear in the notifications stream in the user menu. Whenever there is a new post in any private message topic, that topic will automatically move to the top of the message menu list. The unread private messages count will appear above the messages menu icon, rather than the user menu icon.
Using any compose action other than the two in the messages menu will display the normal discourse compose and should work as normal. It should be possible to transition seamlessly between the two types of compose experience.
Technical notes:
I have tried to override as little of the existing discourse composer functionality as possible. Where I have overridden existing discourse methods I have made a note of it in the code. See in particular here and here
Using this plugin on the same page as another topic does not produce conflicts in topic tracking as I have replicated some the functionality of screenTrack, rather than use it at cross purposes. See here.
Seems interesting, I would test it on my site,but there’s an similar plugin already - Babble, except babble is designed to be an chatroom plugin, not a direct message plugin.
Any possibilities on these two plugins merge/integrate eventually?
Are there conflicts of these two plugins?
This is an interesting one. I agree that the existing style leaves much to be desired. I had a little look around and it seems the ‘chat’ convention is to:
Not use an avatar, but add a slight background, for the user’s own messages
Align all text to the left
e.g.
Not that Facebook and Google are the only conventions one should follow, but I’ve gone with something along those lines for now:
4 - Same as above.
5 - This is now fixed.
6 - Images and attachments in chat will need a little more work. Will give that a shot when I next have some free time.
@angus, this looks very cool! Thank you for your contribution!
Because Quick Messages and Babble are related in their functionality but could be used side by side, perhaps you and @gdpelican could could work together and agree on a design so the Discourse design remains uniform?
Not a bad idea @holden. I’ll play around with Babble and this plugin alongside each other on the weekend and a) see if that use case makes sense and b) whether to adapt the design of this. Cheers.
@holden Didn’t get to this this weekend after all (worked on my ratings plugin instead), but I promise I’ll look at the quick messages / babble style consistency soon.
FYI I’m in the midst of making Babble’s style a little less mad science, so kicking this down the road a little bit is probably a good thing. (The look-and-feel won’t change too much, but the underlying structure and css will hopefully make it much more robust in the face of XBC, especially on mobile)
Would it be possible to set a file size limit of attachments and some other messaging quota?
I really loves that feature , but as far as I know, most of my friends communicating in chats with a lot of pictures. As admin of multiple small instances (up to 30 GB disk space), I don’t like pictures as much as my lovely friends does
In fact, I would have some limitations regarded to the users trust level. Is this possible?
Indeed, but those settings are globaly and not specific for messaging.
In this case, some extra limits would make sence, except you’re going to compete with Facebook and other gigant social media providers with an nearly endless amount of storage