Giter Site home page Giter Site logo

planning's People

Contributors

rafd avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

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)

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 and cljs-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

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

access control

e.g., should everyone in a group be able to create/rename/delete tags?

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.

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:

  1. Doesn't matter, people are used to not having the full range of available names
  2. implement per-group user-profiles (#61) so it's more of an obvious conflict
  3. doesn't matter, if you want full range of names, you'll have your own private instance of braid

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.