Fixed fetching latest messages on websocket reconnect and other juicy updates

The stable branch has now been updated with major bugfixes:

Server didn’t like my code regarding “unread” count

The “unread” count for the dialogs are now calculated on server side, instead of in the browser. This is a far better solution than what was introduced in be445819cf01d22095b63e8a6dc10f3999c03d54. The problem with the previous solution was even worse than what I expected: Seems like fetching participants and messages for a bunch of dialogs results in either the server or browser to drop some of the requests. I could be fooling myself, but that’s what it looks like from browser dev console.

So now instead, the code does one /api/user request which retrieves the connections, notifications and dialogs with the unread count. Later the javascript lazy loads the messages from the backend when a dialog goes from “inactive” to “active” state and also handles websocket reconnects.

Participants where all over place

This was a pretty dumb bug, which would probably been avoided if there was any unit tests for the vuejs/javascript code: There was two attributes tracking the participants, but only one of them was actually in use when doing autocomplete in the input field.

Which reminds me: Would very much appreciate help, regarding choosing a test framework for the vuejs code.

Send button to /dev/null

The “send button” next to the input field simply didn’t work. This is fixed now.

Keep sending us those issue reports

Denis Brækhus has been the first person to open an issue regarding the new codebase on github. This is much appreciated! He also posted a question on Twitter:

Thanks to everyone

Thanks to everyone who’s active in #convos on chat.freenode.net and other channels, giving feedback regarding the user experience and other minor bugs.