Commit Graph

613 Commits

Author SHA1 Message Date
a4a0092513 Fix error when rendering deleted user 2015-05-26 18:02:04 +09:30
4849e423eb Redraw discussion list items if user marks all as read 2015-05-26 18:01:05 +09:30
61e110b245 Don't show load more button unnecessarily 2015-05-26 18:00:41 +09:30
85ba97ed5c Improve appearance/behaviour of login/signup/forgot modals 2015-05-26 16:25:25 +09:30
5fc2f3aeee Better handling of API server errors 2015-05-26 11:43:20 +09:30
feb4676aa0 Very rough implementation of forgot password 2015-05-26 11:14:06 +09:30
d481a38029 Old code, don't need these! 2015-05-23 08:36:14 +09:30
d1dfa92d6b Prevent composer from accidentally redrawing when reply button is clicked 2015-05-23 08:36:00 +09:30
1dc036da65 Only do double redraw if there is a component we need to get rid of 2015-05-23 08:35:12 +09:30
c4614788c6 Make the invoker responsible for positioning the composer cursor 2015-05-23 08:34:54 +09:30
9d7be35837 Fix notification grid row/column not toggling when first cell is disabled 2015-05-21 15:59:35 +09:30
7a1ae67192 Make loading indicators stand out less when using a custom primary color 2015-05-21 15:58:56 +09:30
f54acebaf0 Fix bad logic in edit permission that was allowing guests to edit posts. Closes #88 2015-05-21 15:53:59 +09:30
d69e481037 Make hero light 2015-05-21 13:10:25 +09:30
ca343edf00 Bump up discussion list title size again 2015-05-21 13:09:26 +09:30
935e2d272a Force redraw of composer component when switching in a new one 2015-05-21 13:08:33 +09:30
e1201c968b Maintain scroll position relative to bottom of hero when switching categories 2015-05-21 08:15:58 +09:30
41ecfa348d Performance improvements 2015-05-21 06:49:07 +09:30
edc59f37e3 PSR-2: Remove empty lines 2015-05-20 12:33:26 +09:30
3c7078b423 New user activity feed API.
Originally the user activity feed was implemented using UNIONs. I was
looking at make an API to add activity “sources”, or extra UNION
queries (select from posts, mentions, etc.) but quickly realised that
this is too slow and there’s no way to make it scale.

So I’ve implemented an API which is very similar to how notifications
work (see previous commit). The `activity` table is an aggregation of
stuff that happens, and it’s kept in sync by an ActivitySyncer which is
used whenever a post it created/edited/deleted, a user is
mentioned/unmentioned, etc.

Again, the API is very simple (see Core\Activity\PostedActivity +
Core\Handlers\Events\UserActivitySyncer)
2015-05-20 12:30:27 +09:30
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
f2d1100ec3 Fix broken DeleteAction 2015-05-20 11:13:32 +09:30
80c0900388 Just being picky 2015-05-20 11:12:48 +09:30
5fede6fe6d Limit notifications to one per user when dispatching events 2015-05-19 11:24:43 +09:30
248c19de73 Experimenting with some new ways to handle config
For now I’ve chucked it on Flarum\Core as a static method, but
ultimately I think we will need a ConfigRepository abstraction (whether
it replaces or sits underneath the Flarum\Core static method I’m not
sure).

Also starting to think about multisite scenarios, I think this is
important. The Forum model could actually end up with a database table
behind it, and each forum would have its own config settings? Haven’t
really thought about it too hard yet…
2015-05-19 10:59:57 +09:30
0724aec77e Fix broken notification emailer 2015-05-19 10:53:17 +09:30
54c2eaff8e Fix notification preferences not being enabled by default 2015-05-19 10:12:19 +09:30
03b47c3591 Prevent moment deprecation warning 2015-05-19 10:12:18 +09:30
7fe0fc46af Travis: Send an email for the first failed build
This will notify the committer whenever a build starts failing,
but not on subsequent failures (in order not to annoy @tobscure).
2015-05-19 02:14:56 +02:00
fe9c85a527 Let's not test migrations for code style.
PHPCS (on Travis, not locally?) is complaining about these classes
not being namespaced. Meh.
2015-05-19 02:08:47 +02:00
278ff7b9c2 Give all users guest permissions as well 2015-05-19 09:36:20 +09:30
f35fe5d0e2 Actually implement persistent avatar removal in the front-end 2015-05-19 09:27:04 +09:30
811df6c278 Fix errors in DeleteAvatarAction/Command 2015-05-19 09:27:04 +09:30
1ab1631849 Fix the config table seeder
It should include the "extensions_enabled" key which is read
when initializing all extensions.
2015-05-19 01:53:37 +02:00
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
9870960afc Travis: Only test against PHP 5.4
This is enough for now since we don't have any unit tests, only
code standard checks.
2015-05-19 01:24:11 +02:00
119980e8ee Update PHPCS dependency 2015-05-19 01:22:52 +02:00
dfc3a82ff6 Also check code style in migrations folder. 2015-05-19 01:22:34 +02:00
f7e241e410 Fix migrations to comply with PSR-2 2015-05-19 01:22:09 +02:00
dd54803aaf Fix remaining PSR-2 issues. 2015-05-19 01:07:22 +02:00
7885c9a002 Fix coding standards to conform to PSR-2 2015-05-19 01:03:12 +02:00
6b4c27a944 Primary key for access tokens table 2015-05-19 00:46:04 +02:00
26c2761cbf Explicitly specify length for string columns.
The missing length attributes caused problems with too long indices.
2015-05-19 00:20:36 +02:00
7e4693a855 Fix code error, static methods can not be abstract. 2015-05-18 17:17:10 +02:00
0102f31e06 Tweak notifications appearance 2015-05-18 18:56:11 +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
8e24e7197e Rename ActivityPost to EventPost 2015-05-18 18:47:34 +09:30
1b4b03356a Better API error handling 2015-05-18 18:13:16 +09:30
9f42fbe450 Make sure links never have an underline 2015-05-18 16:46:44 +09:30