planning's People
planning's Issues
Show how long the user has been a member on user hover cards
A task for new Braid contributors.
Goal:
On user-hover-cards (cards that show up when hovering over a user mention), show how long the user has been a member.
Notes:
- the server will need to include this info in the exist user data that it sends to the client (we'll leave it to you to figure where that is)
- we currently don't explicitly store a timestamp for when a user joins a group, but, it can be figured out by getting the
:db/txInstant
of when the:group/user
datom was created. Some example code:
(d/q
'[:find [?inst ...]
:in $ ?user-id ?group-id
:where
[?u :user/id ?user-id]
[?g :group/id ?group-id]
[?g :group/user ?t ?tx false]
[?tx :db/txInstant ?inst]]
(d/history (db/db))
some-user-id
some-group-id)
fix typing two messages in rapid succession breaking things
Can't reproduce it reliably, but typing a new message, hitting enter and continuing to type ends up with a new message created, part of what I kept typing in the new window, and the original text in the new thread text box
support markdown in messages
Display a placeholder for long time gaps between messages
A task for new Braid contributors.
Goal:
In a thread, if the time between messages is very long (let's say... > 24 hours), include some UI between the messages, like "24 hours later..."
Notes:
- you'll probably need to change
braid.core.client.ui.views.thread/messages-view
- you'll probably want to create a helper function to "display duration in a human-friendly way", ie. "24 hours" "3 days", etc. (in
braid.core.client.helpers
) - Braid already includes https://github.com/andrewmcveigh/cljs-time
cljs-time.coerce/from-date
,cljs-time.core/now
,cljs-time.core/days
,cljs-time.core/hours
andcljs-time.core/in-milis
will probably be useful
Add a PM button to user hover cards
A task for new Braid contributors.
Goal:
Show a "PM" (private message) button on user hover cards. Clicking on the button should create a new private thread with that user.
Notes:
- braid.core.client.ui.views.user-hover-card is the namespace where you should add the button
- :new-message is the event to dispatch
- you can reference braid.core.client.ui.views.user-hover-card to see how :new-message is dispatched
show when a user was last online on user hover cards
private tags
so that you can implement invite-only teams / groups
…or should that just be done by the groups functionality?
perhaps better implemented as groups in groups
related to access control
allow admin to set tag descriptions
ie. each tag should have an optional description to clarify it’s purpose
should probably be included in the overlay-thingie that will appear over a tag when hovering
show time since last active on tag hover card
show number of *online* subscribers on tag hover card
show "direct messages between me and user" threads somewhere
should open a page that shows non-public threads between you and that user
access control
e.g., should everyone in a group be able to create/rename/delete tags?
add option for a unified inbox
add ability to "mark as unread"
replace the new-message box with a necro warning in old threads
“this thread is X days old. you sure you want to revive it? [yes]”
then shows the new-message view
- image of zombie hand
later:
add option to fork & refer [braid] add ability to branch / fork / reply to a message in a conversation
apply a default tag to all threads
ex. #general
fix inconsistency between autocomplete and tagger
autocomplete is not case sensitive, but the actual tagging function is
this can confuse the user
may be addressed by: #11
show user as being away
use click-drag to scroll horizontally instead of on-wheel
show the user's local time in user hover cards
show autocomplete menu when typing in the middle of a message
currently, does not produce tag menu, but does convert the tag when message is sent
make date of conversation clearer
style mentions of deleted users and deleted tags
[braid.search] allow for search by tags with wildcard
ex. #au/* would return threads with #au/perth and #au/sydney
[braid.embeds] show a loading indicator for embedded content
highlight new, popular, trending, recommended tags on subscriptions page
new
newly created tags (last week? since user last checked?)
popular
tags with many subscriptions
trending
tags used a lot in the last week
recommended
tags subbed by people who have subbed similar tags as you
use skeleton views when loading threads
like Facebook does it
when accepting an invite to a group, don't get online status for creator until refresh
[braid.uploads] show an file upload progress indicator (rather than just a throbber)
[braid.uploads] add ability to drag image from a website into thread
show permalinks to threads in messages with extra info
i.e. don't use embedly, show some preview of the thread
Once ✓ ability to get permalink to thread is done
prompt user to enable browser notifications if browser has them disabled
only if the user has notifications enabled
show user’s local time in their profile
add filters for 'threads w/ links' and 'threads w/ files'
improve how recommended tags are determined on the tags page
currently, just takes 4 random tags that you aren’t subscribed to
consider hiding a tag in a message if it’s the first word in the first message
show text replacements while typing a message
ie. emoji, tag-mentions, user-mentions should be displayed while typing text, not just after submitting the message
this would require moving away from a regular text box to something like text editable, etc.
sync closing of threads between open clients
review user name uniqueness
currently user names must be unique globally. This could be weird though, since someone in a completely different group from you could prevent you from getting the user name you want. Possible solutions:
- Doesn't matter, people are used to not having the full range of available names
- implement per-group user-profiles (#61) so it's more of an obvious conflict
- doesn't matter, if you want full range of names, you'll have your own private instance of braid
add pagination to inbox
[braid.uploads] show a button to download an uploaded file
include link to change email preferences in all emails
show option to sort threads / filter threads by hot / new / etc.
fix typing too fast breaking sending messages
if you're typing, hit enter to send and keep typing to compose a follow-up, the text from the first message doesn't get cleared
show ‘last active’ time in tags list
show an autocomplete when using the search bar
unfade messages on hover
show a “@me” filter in inbox
shows all open messages that mention the current user
(w/ option to see all messages that mentioned the current user)
implement 5 levels of ‘subscriptions'
per tag, one of:
ALERT
- goes to inbox page, priority sort
- subs user to threads
- notifications on all platforms
- immediate email if not online
SUBSCRIBE
- goes to inbox page
- subs user to threads
- daily digest emails (if > x unread)
WATCH
- starred tags feed-style page
- user NOT subbed to threads
- weekly digest emails if not logged in for a week
NONE
BLOCK
- do not sub user to threads with this tag (ex. #stupid), even when with other tag
also, option to select above settings for:
Direct Messages - Default
Direct Messages - Per User
New Tags
add ability for integrations to “own” a thread
style thread differently
affect thread behaviour, ex. close thread, make read-only
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.