98b3d0f89e
Simplify and improve notifications API.
...
It turns out that the idea of “sending” a notification is flawed. (What
happens if the notification subject is deleted shortly after? The
notified user would end up with a dud notification which would be
confusing. What about if a post is edited to mention an extra user? If
you sent out notifications, the users who’ve already been mentioned
would get a duplicate notification.)
Instead, I’ve introduced the idea of notification “syncing”. Whenever a
change is made to a piece of data (e.g. a post is created, edited, or
deleted), you make a common notification and “sync” it to a set of
users. The users who’ve received this notification before won’t get it
again. It will be sent out to new users, and hidden from users who’ve
received it before but are no longer recipients (e.g. users who’ve been
“unmentioned” in a post).
To keep track of this, we use the existing notifications database
table, with an added `is_deleted` column. The syncing/diffing is
handled all behind the scenes; the API is extremely simple (see
Core\Notifications\DiscussionRenamedNotification +
Core\Events\Handlers\DiscussionRenamedNotifier)
2015-05-20 12:24:01 +09:30
03b47c3591
Prevent moment deprecation warning
2015-05-19 10:12:18 +09:30
f35fe5d0e2
Actually implement persistent avatar removal in the front-end
2015-05-19 09:27:04 +09:30
5fff4791f8
Disable composer textarea before it has fully slid up
...
Prevents early focusing of the textarea while it is still off the edge
of the viewport, which was causing scroll position to jump
2015-05-19 09:17:48 +09:30
0dda55d06a
GitHub for Mac sucks, why does it leave out a file sometimes?
2015-05-18 18:50:43 +09:30
9135749bb4
Rename JS sub-components so that descriptors are before the noun, not after
...
To be consistent with the naming in PHP world.
e.g. ReplyComposer instead of ComposerReply
2015-05-18 18:50:24 +09:30
1b4b03356a
Better API error handling
2015-05-18 18:13:16 +09:30
e879a65a0c
Show composer after discussion is reloaded following login
2015-05-18 15:38:19 +09:30
8cba7ad3f2
Clicking on an index nav item should always refresh the discussion list
2015-05-18 15:27:39 +09:30
4c3712f9b0
Refresh discussion after logging in. Fixes #68
2015-05-18 15:07:04 +09:30
cfd6873461
Only allow user profile to be edited if user has permission. Fixes #72
2015-05-18 14:58:59 +09:30
e4b15d72da
Make avatar edit menu extensible
2015-05-18 14:58:23 +09:30
4534d8ddda
Fix broken login/signup links
...
They’re still broken, hoping that
https://github.com/babel/babel/issues/1150#issuecomment-102881157 will
fix
2015-05-18 14:58:08 +09:30
9d8afce204
Don't affix the sidebar if it is taller than the viewport. fixes #79
2015-05-18 14:47:08 +09:30
3462dd68d2
Set document.title on every page
2015-05-18 14:28:15 +09:30
d904efb556
Actually fade out post when it is being edited
2015-05-18 14:27:29 +09:30
7f48a98af8
Make discussion edit permission specific to renaming
2015-05-18 12:34:03 +09:30
895fad928d
Fix broken composer extensibility
2015-05-18 10:55:07 +09:30
e1a96fc284
Oops duplicate method name
2015-05-18 10:48:48 +09:30
aa2bc23039
Drastically improve how the composer looks and behaves
...
- New, cleaner, more prominent look
- Make it statically positioned down the bottom on mobile, so you can
still scroll up to look at posts
- Fix some bugs with animation, jumping between views
2015-05-18 10:40:14 +09:30
e6362a222e
Fix sometimes trying to jump to NaN in the stream
2015-05-18 10:37:47 +09:30
0a3daee326
Add a space between avatar/username for better display on mobile
2015-05-18 10:37:24 +09:30
39437c86bb
Minimise composer when exiting a page, rather than entering it
2015-05-18 10:37:07 +09:30
a8a2596228
Properly initialise subtree retainers
2015-05-18 10:35:12 +09:30
2820b76c9b
Make discussion list includes extensible
2015-05-14 23:10:11 +09:30
fe81f71d73
Note for the future
2015-05-14 22:41:08 +09:30
d96da61b1b
New look for notifications
2015-05-14 22:41:08 +09:30
3aab626b22
Add pulsate/flash animations for drawing attention to posts
2015-05-14 22:41:07 +09:30
be6b620457
Transform post time into a date
2015-05-14 22:41:06 +09:30
bb04d91b08
Add helper function for punctuating a list
...
e.g. [1,2,3] ⇒ [1, ‘, ‘, 2, ‘, and’, 3]
2015-05-14 22:41:06 +09:30
28aa7ed62f
Add methods for doing stuff in text editor
...
Used by the mentions extension
2015-05-14 22:41:06 +09:30
a06a973d89
Only give dropdown menu items padding if they have an icon
2015-05-14 22:41:06 +09:30
dbf6a043a6
Automatically hook up onload/config functions
...
So that every component's DOM can be config'd by extensions
2015-05-14 22:41:06 +09:30
228c9f1214
Add convenience route generation functions
...
Many instances throughout the app need to be updated to use these :)
2015-05-14 22:41:06 +09:30
e0b778729d
Make discussion actions public; use existing reply composer if it's already set up
2015-05-14 22:41:06 +09:30
ba437660db
Fix up post stream jumping to index
2015-05-14 22:41:06 +09:30
781dc2ef0c
New component for post excerpts, which will be shown in search results
...
Perhaps also in user activity stream. They are used in the mentions
extension.
In order to generate the excerpt, each formatter can implement a
“strip” method which basically converts block formatting into inline
formatting.
2015-05-14 22:41:05 +09:30
e5340b8ff7
Don't be so picky about the slug
2015-05-14 22:41:05 +09:30
aa765e3119
Only add initial posts to the post stream if they have content
2015-05-14 22:41:05 +09:30
4baac3fab1
Prevent JS error for now
2015-05-14 22:41:05 +09:30
25dd66028b
Nicer API for changing discussion request includes (array instead of string)
2015-05-14 22:41:05 +09:30
2c0b87f8c2
Don't bother confirming exit if there's no content
2015-05-14 22:41:05 +09:30
9328277961
Focus at the end of the textarea when showing composer
2015-05-14 22:41:05 +09:30
a8d762abff
Make text editor's controller accessible
2015-05-14 22:41:05 +09:30
6e6f81b6ff
Tweak composer anchoring/animation
2015-05-14 22:41:04 +09:30
e8e3bc005d
Prevent re-showing the composer when it's already showing
2015-05-14 22:41:04 +09:30
b682cf1575
Update the discussion's post relationship when a reply is added
2015-05-14 22:41:04 +09:30
7c1c5f07d3
Make it possible for extensions to modify data before saving
2015-05-14 22:41:04 +09:30
4d17e172a7
Close the drawer when page content is touched. Fixes #69
2015-05-11 11:03:40 +09:30
5aafc8ce62
Make sure discussion list subtrees don't go missing. Fixes #66
2015-05-11 10:47:42 +09:30