Toby Zerner
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
Toby Zerner
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
Toby Zerner
667fe56947
Use morphTo instead of mappedMorphTo
...
Turns out we don't need MappedMorphTo after all.
2015-08-04 17:33:58 +09:30
Toby Zerner
556b93e367
Add admin client JS/LESS to extension stub
2015-08-04 17:18:45 +09:30
Toby Zerner
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
Toby Zerner
7ed3834dc9
Include discussion last user relationship in response after creating post
2015-08-04 17:15:57 +09:30
Toby Zerner
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
Toby Zerner
2e4d38b3e7
Move config/permission actions to API; clean up cache flushing
2015-08-04 10:40:04 +09:30
Toby Zerner
83e8503df1
Rough implementation of appearance settings
2015-08-03 14:35:51 +09:30
Toby Zerner
70901b1420
Rough extension management implementation
2015-08-03 12:03:30 +09:30
Toby Zerner
66ee6e57ee
Convert permission IDs into strings
2015-08-02 18:02:35 +09:30
Toby Zerner
025d8f691d
Add API methods to add POST/DELETE routes to the API
2015-08-02 17:26:30 +09:30
Toby Zerner
6f09ba6591
Clean up
2015-07-31 20:17:17 +09:30
Toby Zerner
fde7afd3e2
Finish admin permissions page and clean up everything
2015-07-31 20:16:47 +09:30
Toby Zerner
5706c71c86
Convert email/password token date fields
2015-07-31 20:14:19 +09:30
Toby Zerner
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
Toby Zerner
4e0cfdc1b2
Allow for the addition of new API endpoints
2015-07-31 20:11:44 +09:30
Toby Zerner
cea8e7f567
Add group management actions to API
2015-07-31 20:10:49 +09:30
Toby Zerner
6641af3ac3
Refactor some model stuff out into traits
2015-07-31 20:09:31 +09:30
Toby Zerner
e204794b91
Allow custom variables to be set on the client app
2015-07-31 20:08:27 +09:30
Toby Zerner
513d896f51
Fix more aspects of the password reset process
2015-07-31 14:13:35 +09:30
Toby Zerner
8db17b3fb8
Fix password saving
2015-07-31 14:00:42 +09:30
Toby Zerner
42fd8e26c1
Begin implementing permissions page
2015-07-29 21:00:27 +09:30
Toby Zerner
f96cac6057
Implement basic settings page
2015-07-29 21:00:09 +09:30
Toby Zerner
e863bd53d3
Get admin area working again
2015-07-29 20:58:22 +09:30
Toby Zerner
d8d9cac7c3
Enable caching of minified formatter JS
2015-07-29 20:54:48 +09:30
Toby Zerner
97334bea12
Don't display notifications with deleted subjects
2015-07-28 17:15:09 +09:30
Toby Zerner
8f29949016
Fix email confirmation
2015-07-28 17:14:08 +09:30
Toby Zerner
02944548a1
Clean up
2015-07-28 15:35:03 +09:30
Toby Zerner
697cb2ed63
Supporting routing of URL with nothing after the discussion ID
...
closes flarum/core#181
2015-07-28 13:46:43 +09:30
Toby Zerner
8c18ff3349
Tweak TextFormatter JS settings
2015-07-28 12:44:58 +09:30
Toby Zerner
62a01c69a9
Make sure sort key exists
2015-07-28 12:27:59 +09:30
Toby Zerner
3489791932
Allow customisation of the client layout
2015-07-27 14:45:35 +09:30
Toby Zerner
153a5b7ce4
PERF: avoid reinstantiation of event subscribers
2015-07-27 11:53:47 +09:30
Toby Zerner
c0d57fd399
PERF: further simplify User::hasPermission()
2015-07-27 11:20:18 +09:30
Toby Zerner
07b4a5125f
PERF: cache the results of User::hasPermssion()
2015-07-27 11:17:21 +09:30
Toby Zerner
b04e7f96c8
Cache model dates
2015-07-27 10:59:24 +09:30
Toby Zerner
e5e737eca4
Update LESS variable names
2015-07-24 10:03:11 +09:30
Toby Zerner
ae3bbc1700
Replace duplicate tags instead of erroring
2015-07-23 20:29:39 +09:30
Toby Zerner
c1b12c7fc9
Extract emoticons, BBCode, and Markdown into extensions
2015-07-23 20:24:41 +09:30
Toby Zerner
cb3004b6de
Various fixes to extension generator/stub
2015-07-23 20:24:28 +09:30
Toby Zerner
c8e6fbc338
Pass correct param to notification email views
2015-07-23 16:39:56 +09:30
Toby Zerner
8c6e87760c
Docblock cleanup
2015-07-23 14:35:17 +09:30
Toby Zerner
53326e509c
Number is a filter, not page param
2015-07-23 14:34:19 +09:30
Toby Zerner
5b54a122c9
Notification one-per-user limit should work between instances
2015-07-23 14:33:58 +09:30
Toby Zerner
6d57f902b3
Ensure we don't preload index data on non-index pages
2015-07-23 14:33:31 +09:30
Toby Zerner
b699bbadbc
Make formatter extensible
2015-07-23 14:29:33 +09:30
Toby Zerner
34b7a2fbf6
Move locale files
2015-07-22 16:05:24 +09:30
Toby Zerner
8442f65cdf
Fix post visibility scoping
2015-07-22 16:05:11 +09:30
Toby Zerner
017c258e46
Live preview of post editing/replying thanks to TextFormatter 👏
2015-07-22 16:05:00 +09:30