Commit Graph

1272 Commits

Author SHA1 Message Date
e091b037f3 Radically simplify user activity system
The activity system we were using was built around a separate table.
Whenever the user posted something, or deleted a post, we would sync
the table. The advantage of this was that we could aggregate activity
of all different types very efficiently.

It turns out that it came with a huge disadvantage: there was no
efficient way to enforce permissions on activity. If a user posted
something in a private tag, everyone could still see it on their
activity feed. My stopgap solution was to only sync activity for posts
that are viewable by guests, but that was way too limited.

It also turns out that aggregating activity of different types is
really not that useful, especially considering most of it is the user
making posts. So I've gotten rid of that whole overly-complicated
system, and just made the user profile display separate lists of posts
and discussions, retrieved from those respective APIs. The discussions
page is an actual discussion list too, which is pretty cool.

It's still technically possible to aggregate different activity types
(basically just aggregate API responses together), but we can do that
later if there's a need for it.

This is probably my favourite commit of the day :)
2015-08-04 18:44:22 +09:30
a2c3c4e51b Only add posted activity if the post is visible publicly
This is very restrictive behaviour and we'll probably need to think of
something a bit more powerful in the future. But it's a good stopgap.
2015-08-04 17:47:46 +09:30
667fe56947 Use morphTo instead of mappedMorphTo
Turns out we don't need MappedMorphTo after all.
2015-08-04 17:33:58 +09:30
854e131ef1 Pull discussion pane further off-screen so shadow is not visible 2015-08-04 17:19:01 +09:30
556b93e367 Add admin client JS/LESS to extension stub 2015-08-04 17:18:45 +09:30
9700fbbb0b Add API to add translations to admin client
Again, I'll split up these APIs soon enough
2015-08-04 17:16:34 +09:30
7ed3834dc9 Include discussion last user relationship in response after creating post 2015-08-04 17:15:57 +09:30
17a863efc7 Make header slightly more compact 2015-08-04 17:15:05 +09:30
186bdc7fd4 Tweak some text/comments 2015-08-04 17:14:54 +09:30
5b3484d3c8 Improve error handling somewhat
- Fix composer crashing/not showing alert on error
- Make a general ValidationException which takes an array of field ⇒
messages to be outputted nicely by the API
2015-08-04 13:03:46 +09:30
a14be00041 Sort out default dropdown caret icons 2015-08-04 11:42:24 +09:30
b8a224f87b Implement basic bio formatting. closes flarum/core#203 2015-08-04 11:41:47 +09:30
e6e2cdd3e9 Responsive fixes
- Make composer absolutely positioned on mobile to work around iOS 8/9
bug
- Make search results dropdown appear on mobile

closes flarum/core#137
2015-08-04 11:27:51 +09:30
addb061458 Change default dropdown caret icon 2015-08-04 11:01:11 +09:30
f37fb9662e Fix mark as read sliding icon 2015-08-04 11:00:51 +09:30
06a246f5cf Tweak some styles 2015-08-04 10:49:41 +09:30
00e5f94bce Change the way composer is aligned
Also ensure that the correct body class is applied on the user page
2015-08-04 10:49:33 +09:30
ecb1023c66 Fix user bio placeholder not showing up 2015-08-04 10:42:37 +09:30
2e4d38b3e7 Move config/permission actions to API; clean up cache flushing 2015-08-04 10:40:04 +09:30
afe031f269 Validate color fields on appearance page 2015-08-04 10:38:49 +09:30
83e8503df1 Rough implementation of appearance settings 2015-08-03 14:35:51 +09:30
70901b1420 Rough extension management implementation 2015-08-03 12:03:30 +09:30
66ee6e57ee Convert permission IDs into strings 2015-08-02 18:02:35 +09:30
338aa3eb73 Tweak permissions page styles 2015-08-02 17:27:18 +09:30
5e84c789e3 Make badges smaller 2015-08-02 17:27:04 +09:30
8f4ef28475 Make the back button a functional link 2015-08-02 17:26:57 +09:30
025d8f691d Add API methods to add POST/DELETE routes to the API 2015-08-02 17:26:30 +09:30
e13bc1ac62 Make sure the last form group doesn't have a bottom margin 2015-08-02 17:26:12 +09:30
51c647d134 Overflow discussion list info on mobile/in the pane 2015-08-02 17:25:54 +09:30
d44ffd1866 Remove modal responsibility for loading UI; using loading button state 2015-08-02 17:25:05 +09:30
5876ee30ed Remove old code 2015-08-02 17:22:18 +09:30
6f09ba6591 Clean up 2015-07-31 20:17:17 +09:30
fde7afd3e2 Finish admin permissions page and clean up everything 2015-07-31 20:16:47 +09:30
5706c71c86 Convert email/password token date fields 2015-07-31 20:14:19 +09:30
ba41c5313a Allow for the addition of admin assets
I think the `BuildClientView` event should ultimately be split into two
separate events for the forum/admin clients, but this is fine for now.
2015-07-31 20:13:13 +09:30
4e0cfdc1b2 Allow for the addition of new API endpoints 2015-07-31 20:11:44 +09:30
cea8e7f567 Add group management actions to API 2015-07-31 20:10:49 +09:30
6641af3ac3 Refactor some model stuff out into traits 2015-07-31 20:09:31 +09:30
e204794b91 Allow custom variables to be set on the client app 2015-07-31 20:08:27 +09:30
513d896f51 Fix more aspects of the password reset process 2015-07-31 14:13:35 +09:30
8db17b3fb8 Fix password saving 2015-07-31 14:00:42 +09:30
ce14273c43 Use System.get instead of System.import
All of the modules we import should already be loaded, and we don't
want to ever attempt to import them anyway because we do not include a
Promise polyfill.
2015-07-29 21:08:24 +09:30
42fd8e26c1 Begin implementing permissions page 2015-07-29 21:00:27 +09:30
f96cac6057 Implement basic settings page 2015-07-29 21:00:09 +09:30
d71d8f59c2 Clean up route definition code style 2015-07-29 20:58:49 +09:30
e863bd53d3 Get admin area working again 2015-07-29 20:58:22 +09:30
d8d9cac7c3 Enable caching of minified formatter JS 2015-07-29 20:54:48 +09:30
a58ac5345d PERF: more efficient retaining of posts 2015-07-28 22:58:17 +09:30
fe16510e90 Prevent flicker when editing a post 2015-07-28 22:57:58 +09:30
1c1d4f5f37 PERF: more efficient retaining of discussion list items 2015-07-28 22:39:03 +09:30