1
0
mirror of https://github.com/flarum/core.git synced 2025-07-21 08:41:17 +02:00
Commit Graph

116 Commits

Author SHA1 Message Date
Toby Zerner
d5296e9aa5 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
e046373f7f 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
043767adcd Sort out default dropdown caret icons 2015-08-04 11:42:24 +09:30
Toby Zerner
82e0f955e8 Implement basic bio formatting. closes flarum/core#203 2015-08-04 11:41:47 +09:30
Toby Zerner
856ebe9d42 Change default dropdown caret icon 2015-08-04 11:01:11 +09:30
Toby Zerner
0fcc941a51 Fix user bio placeholder not showing up 2015-08-04 10:42:37 +09:30
Toby Zerner
2f3d9402c9 Make the back button a functional link 2015-08-02 17:26:57 +09:30
Toby Zerner
c6deafde0e Remove modal responsibility for loading UI; using loading button state 2015-08-02 17:25:05 +09:30
Toby Zerner
50215cedfc Finish admin permissions page and clean up everything 2015-07-31 20:16:47 +09:30
Toby Zerner
6873f77012 Begin implementing permissions page 2015-07-29 21:00:27 +09:30
Toby Zerner
5f1db93e3d Implement basic settings page 2015-07-29 21:00:09 +09:30
Toby Zerner
f3ef5a123c Get admin area working again 2015-07-29 20:58:22 +09:30
Toby Zerner
516569e2e9 Ensure the correct relationship values are returned 2015-07-28 18:28:31 +09:30
Toby Zerner
d61b98ddb3 Properly disable buttons 2015-07-28 17:19:00 +09:30
Toby Zerner
22d322aa2a Don't display notifications with deleted subjects 2015-07-28 17:15:09 +09:30
Toby Zerner
e70f129330 Prevent crash if user's groups aren't loaded. closes flarum/core#173 2015-07-28 13:35:07 +09:30
Toby Zerner
16840fb3ec Appearance tweaks 2015-07-23 16:39:20 +09:30
Toby Zerner
f9ef9d791b Implement TextFormatter for posts
Get rid of formatting on user bios, we'll do that with JavaScript
2015-07-22 16:03:48 +09:30
Toby Zerner
77dbbae170 Update modal responsive control classes 2015-07-22 09:56:01 +09:30
Toby Zerner
c60e37d88c Use stable sort for item lists 2015-07-22 09:55:36 +09:30
Toby Zerner
3e4b30695e Fix PostStream endless loading due to broken scroll anchor 2015-07-22 09:55:20 +09:30
Toby Zerner
f59e14db3e Preload data just before boot, not when the store is initialised 2015-07-22 09:54:49 +09:30
Toby Zerner
8455aa7907 Persist modal across routes
Don't hide it unless it's already been shown, otherwise bootstrap JS
won't be initialized correctly
2015-07-22 09:54:00 +09:30
Toby Zerner
2f3569bed5 Don't override username if already set 2015-07-20 18:13:56 +09:30
Toby Zerner
ebf7c78969 Update event post API
- Use more appropriate component class name
- Allow username to be moved in translation
2015-07-20 18:12:08 +09:30
Toby Zerner
93c6bf026e Get rid of extension convenience method
We might reintroduce this later, but for now I want to keep the
extensions API as light as possible and get input before we add stuff
2015-07-20 18:09:37 +09:30
Toby Zerner
6a532c29fe Add some comments 2015-07-18 10:56:01 +09:30
Toby Zerner
0a1191d56c Make front-end localizable 2015-07-17 17:43:28 +09:30
Toby Zerner
2aa9c2e746 Major CSS revamp
- Get rid of Bootstrap (except we still rely on some JS)
- Use BEM class names
- Rework variables/theme config
- Fix various bugs, including some on mobile

The CSS is still not ideal – it needs to be cleaned up some more. But
that can be a focus for after beta.
2015-07-17 14:47:49 +09:30
Toby Zerner
0b685b1036 Case-sensitive filename changes 2015-07-15 15:54:34 +09:30
Toby Zerner
1c7653e79e Massive JavaScript cleanup
- Use JSX for templates
- Docblock/comment everything
- Mostly passes ESLint (still some work to do)
- Lots of renaming, refactoring, etc.

CSS hasn't been updated yet.
2015-07-15 14:01:11 +09:30
Toby Zerner
5aca956af7 Clean up discussion model 2015-07-08 10:51:30 +09:30
Toby Zerner
5cfb870202 Make admin open in a new window 2015-07-08 10:51:16 +09:30
Toby Zerner
5e982a39c5 Improve fulltext search API and interface 2015-07-07 20:35:18 +09:30
Toby Zerner
e62093f4dd Fix discussion search result suggestion excerpts
So that they show the relevant part of the post
2015-07-07 16:16:20 +09:30
Toby Zerner
23eec806e6 Initial refactor of client actions, data preloading, SEO
An initial stab at flarum/core#126. Still WIP. Preliminary
implementation of flarum/core#128 and flarum/core#13.
2015-07-07 15:29:21 +09:30
Toby Zerner
eee5133d6e Improve post stream
- Return all discussion post IDs from API requests which add/remove
posts, so the post stream updates appropriately. Related to #146
- Always unload posts that are two pages away, no matter how fast
you’re scrolling
- Retrieve posts from cache instead of reloading them
- Fix various bugs. Maybe #152, needs confirmation
2015-07-06 16:26:27 +09:30
Toby Zerner
41c5ed0acb Massive refactor
- Use contextual namespaces within Flarum\Core
- Clean up and docblock everything
- Refactor Activity/Notification blueprint stuff
- Refactor Formatter stuff
- Refactor Search stuff
- Upgrade to JSON-API 1.0
- Removed “addedPosts” and “removedPosts” relationships from discussion
API. This was used for adding/removing event posts after renaming a
discussion etc. Instead we should make an additional request to get all
new posts

Todo:
- Fix Extenders and extensions
- Get rid of repository interfaces
- Fix other bugs I’ve inevitably introduced
2015-07-04 12:24:48 +09:30
Toby Zerner
260f4c85bf Refactor component API a bit 2015-06-26 19:09:43 +09:30
Toby Zerner
020e671c74 Tweak user bio editing UI 2015-06-26 13:57:21 +09:30
Toby Zerner
c81cb5dcc8 Flattening items breaks things; recurse to get the first element instead 2015-06-26 13:52:54 +09:30
Toby Zerner
d2c1e3a3d7 Tweak how discussion sidebar displays on mobile
Give all items in an item list a class on their <li>. Super helpful for
styling
2015-06-25 15:38:29 +09:30
Toby Zerner
0d5927d812 Prevent incorrect badge redraw diffing 2015-06-25 15:35:11 +09:30
Toby Zerner
8328906fe5 Give all components config on the root element
So that extensions can work on it no matter what
2015-06-25 15:33:29 +09:30
Toby Zerner
be9dea172d Split discussion controls into three groups:
- user (reply, subscription)
- moderation (rename, sticky, tags)
- destructive (delete)

Will keep extension-added items organised nicely
2015-06-25 15:31:15 +09:30
Toby Zerner
972bd24c7a Discussion list refactor, gestures
Also make base Component class automatically assign this.element :)
2015-06-24 17:56:39 +09:30
Toby Zerner
fcd1b081d9 Significantly improve mobile UX
Most of #137 done.

- Use FastClick to make everything feel more responsive
- Use transforms for animations to make them silky smooth
- Style the drawer the same as the header to keep things simple
- Revert to fixed composer, but allow it to be minimised
- Add a separate notifications page for mobile so it’s easy to go back
- Add indicator to the menu button when there are unread notifications
- Close the drawer when navigating away
- Make dropdowns/modals scrollable
- Many other mobile tweaks and bug fixes

Didn’t take much care to keep CSS clean, due to #103
2015-06-24 11:44:53 +09:30
Toby Zerner
951db23ffd Revert from a while ago: always append if reference item not found
API still needs some work though
2015-06-23 11:12:37 +09:30
Toby Zerner
dfe1a9bae5 Gracefully handle discussions with no posts
Although this should never happen
2015-06-23 10:30:06 +09:30
Toby Zerner
a45729805d Implement time gap indicators
Get rid of short human times (1m, 1h, 1d) for now
2015-06-19 10:00:19 +09:30