Ticket #414 (closed enhancement: fixed)
Opened 2 years ago
Last modified 18 months ago
Messaging
| Reported by: | adam | Owned by: | |
|---|---|---|---|
| Priority: | major | Milestone: | Kamov |
| Component: | Booki | Keywords: | |
| Cc: | adam, aco |
Description (last modified by adam) (diff)
Booki Micromessaging
Aim :
To develop a user/community microblogging system that relies on the syntax of existing status/microblogging softwares but implements features to enhance this working methodology to aid collaborative book production.
Overview:
Registered users of a booki install should be able to message:
- each other using direct message syntax (@username)
- members of booki groups using group syntax (!groupname)
- tag clouds using the hash syntax (#tag)
This system is intended for users and will not incorporate system level messaging (from 'booki'to users). The system should open the possibility to message image attachments and snippets directly from the chapter view dialog or the WYSIWYG editor (xinha). The system will incorporate email notifications of direct messages. There is a limit to the number of characters allowed (set universally in booki settings).
Profile Pages resemble Identi.ca profile pages eg:
https://identi.ca/annegentle
Features:
note : all strings including 'stalk me' etc are to be localised via selftranslate.
User timeline
Location : User Profile Page
Users will have their timeline displayed on their profile page. Messages displayed on the users timeline will include:
- direct messages from and to the user
- messages sent to a booki group of which the user is a member
- messages of other users that the user is 'following'
In addition the hashtags a user is following will be displayed on the users profile page with links to the hashtag page.
Direct messages will have a 'reply' button displayed which opens a JQuery message dialog with the correct sytax in place for messaging back to the sender.
The max number of stored timeline messages per user will be set universally in the Booki settings file (default 100). Messages will be displayed chronilogically starting with newest first. Messages will be paginated by default (set in users settings - to be created) to 20 per page. All direct messages (including those sent by owner of the profile) will include the senders profile image and the direct message. Profile images included in the message will link to the associated profile page (of the sender). All other messages will just include the message. The user timeline will be able to be seen by any user visiting a users profile page.
Implemented by : %User_timeline username%
Stalk Me Button
Location : User Profile Page
This button will be displayed on a users profle page under the users profile image. Any other user clicking on this will have the users messages displayed in their own timeline. When clicked the button changes to 'Stop Stalking Me' and has the necessary deregistering of the user from the stalkers timeline.
Implemented by : %User_stalkbutton username%
User Message Field
Location : User Profile Page
When on your own profile page you will always have the ability to send a message via a message text field and send via a send button.
Implemented by : %User_messagefield username%
Stalkers Box
Location : User Profile Page
Shows profile image of all users stalking the profile owner. This is viewable by anyone visiting the users profile. All profile images link to the associated user profile.
Implemented by : %User_stalkersbox username%
Group box
Location User Profile Page
Shows all groups the user belongs to. This is already implemented as we are using existing Booki groups.
Implemented by : %User_groupbox username%
Stalking Box
Location : User Profile Page
Shows a list of all user profile images of users stalked by the owner of the profile.
Implemented by : %User_stalkingbox username%
Group Timeline
Location : Group Page
The group timeline shows all messages (stored and paginated with the same defaults as the user timeline) sent to the group via the ![groupname] syntax. The group timline also shows all messages sent to books (via the book messaging syntax) that are in the group.
Implemented by : %Group_timeline groupname%
Join Group Button
Location: Group Page
Pressing on the 'Join Group' button (already in existence) subscribes the user to the groups tag (![groupname]). Leaving the group unsubscribes the user from the tag.
Group Message Field
Location : User Profile Page
When on a group page you will always have the ability to send a message to the group via a message text field and send via a send button.
Implemented by : %Group_messagefield groupname%
Book Timeline
Location : chat + ?
The book timeline shows all messages sent to the book tag.
Implemented by : %Book_timeline bookname%
Book Message Field
Location : ?
...you will always have the ability to send a message to the Book via a message text field and send via a send button.
Implemented by : %Book_messagefield bookname%
Follow Book Button
Location: ?
Pressing on the 'Follow $book' button subscribes the user to the books tag. Button changes to 'unfollow $book'.
Implemented by : %Book_followbutton bookname%
Tag Timeline
Location : Each Tag Page
The tag timeline ('created' when a tag is first sent) shows all messages (stored and paginated with the same defaults as the user timeline) sent anywhere via the #[tagname] syntax.
Implemented by : %Tag_timeline tagname%
Show Tags Box
Location: User Profile Page
Displays all tags a user is following.
Implemented by : %Tag_user tagname%
Message Window
Location: anywhere
A message pop-up (Jquery dialog) that can be implemented on any template. It is a link/button that opens a JQuery dialog from which the user can send any message.
Sending Attachments
Users should be able to include attachments in messages.
Xinha Button
Highlighting a text area in Xinha should copy the text or image to a message clipboard that can then be send in a message window. If a text or image is slected in Xinha there needs to be a button for messaging the highlighted material via a message field with the material already copied to it.
Note: If we are pushed for dev time this feature may be anticipated but not built.
NOTIFICATIONS
Eventually users will be notified by any direct message by a small notification 'pop-up'. This is not necessary to develop yet as it is dependent on core Booki changes.
Sending messages from chat
Users should be able to send short messages (140 chars or so) from the chat window using the microblogging syntax.
EMAIL
All users should be able to adjust settings for email notification of microblogging message via their profile/settings page. Settings are:
[] no email notifications
[] direct messages only
[] summary of all messages every 20 mins (if any mesages sent)
if number one is clicked the other two cannot be clicked. 2&3 can be selected together or individually.
Email of direct messages will be sent immediately and will contain the message, time sent, and link to the senders profile.
Email summaries contain all messages in full with timestamps and links to books/groups/profile pages.
Emails are sent using system settings config.
Technical Details
- emails and messages with large recipient lists to use the Celery que manager
- all messaging processes to use sputnik
- all traffic should be *anonymously* logged
- logging should not contain mesage texts or user sender/receiver info unless explicity turned on for testing. the config variable for this should not be by default *listed* in the config. ie. its ony known by us - i dont want anyone turning it on for an install
Questions
- how do we keep the door open for ostatus for messaging across booki installs/to status.net implementations etc?
- what is the book messaging syntax?
- can we implement something nice to use this system to help translations?
Change History
comment:1 Changed 2 years ago by adam
- Description modified (diff)
comment:2 Changed 2 years ago by adam
- Description modified (diff)
comment:3 Changed 2 years ago by adam
- Description modified (diff)
comment:4 Changed 18 months ago by adam
- Resolution set to fixed
- Status changed from new to closed

done