Toby Zerner
b01b4b04d3
Fix user page display on mobile
2015-07-23 20:24:05 +09:30
Toby Zerner
e698e2220b
Fix translation key
2015-07-23 16:38:51 +09:30
Toby Zerner
512c2b10f4
Redraw after loading missing posts
2015-07-23 16:38:39 +09:30
Toby Zerner
6c8144f90a
Set default item priorities
2015-07-23 16:38:30 +09:30
Toby Zerner
61e4763c68
Componentize welcome hero close button
2015-07-23 14:47:27 +09:30
Toby Zerner
806f67f7eb
Anchor scroll to bottom when live previewing reply
2015-07-23 14:32:49 +09:30
Toby Zerner
1e74d57526
Fix notification list appearance
2015-07-23 14:32:21 +09:30
Toby Zerner
ce5e4b6c0f
Don't allow includes to be specified
...
Relations must be set to include by default on the API instead
2015-07-23 14:31:46 +09:30
Toby Zerner
65feedc891
Fix discussion list not rendering for guests
2015-07-23 14:31:07 +09:30
Toby Zerner
497b65289e
Fix sign up modal
2015-07-23 14:30:55 +09:30
Toby Zerner
a30f591c15
Fix activity page load more button appearance
2015-07-22 16:05:38 +09:30
Toby Zerner
017c258e46
Live preview of post editing/replying thanks to TextFormatter 👏
2015-07-22 16:05:00 +09:30
Toby Zerner
a0fe68272c
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
d40c28a370
Tweak display of badges in the discussion hero
2015-07-22 09:58:14 +09:30
Toby Zerner
e1a51f095f
Random cleanup
2015-07-22 09:57:25 +09:30
Toby Zerner
a66db6323a
Fix search routing
...
Blurring the input causes a redraw, which hides the results and
invalidates the current index. So the routing wasn't working.
Drawer is now hidden on IndexPage construction.
2015-07-22 09:52:58 +09:30
Toby Zerner
9af141ce0b
Hide the drawer/modal when constructing all pages
...
Might be better to do this on config... also extract it into a parent
"Page" component
2015-07-22 09:51:41 +09:30
Toby Zerner
d0c8777430
PERF: fix subtrees never being retained if "mark all as read" was clicked
...
I didn't realise, performance was terrible for people who have ever
clicked the "mark all as read" button!
2015-07-22 09:50:55 +09:30
Toby Zerner
a7baab8a86
Fix discussion composer title field not focusing editor on 'enter'
2015-07-22 09:49:25 +09:30
Toby Zerner
0cb3378658
Merge branch 'evented-api'
2015-07-21 10:40:38 +09:30
Toby Zerner
aff859d7ea
Cleanup unused import
2015-07-20 18:14:03 +09:30
Toby Zerner
6b601ae2d6
Only render posts with the discussion relationship
2015-07-20 18:13:40 +09:30
Toby Zerner
7dd7b3f32c
Separate icon from notification grid labels
2015-07-20 18:12:30 +09:30
Toby Zerner
53c621d999
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
82f1daeef4
Change discussion list sorting labels
2015-07-20 18:11:04 +09:30
Toby Zerner
23dd966b45
Rename method
2015-07-20 18:10:32 +09:30
Toby Zerner
741b9b0ea5
Render discussion hero badges properly
2015-07-20 18:10:21 +09:30
Toby Zerner
f977658417
PERF: Only show search results when field has focus
2015-07-18 22:58:26 +09:30
Toby Zerner
24f100899c
Don't apply background color if there is none
2015-07-18 10:55:56 +09:30
Toby Zerner
0af9784a59
Fix bad translation key
2015-07-18 10:11:42 +09:30
Toby Zerner
f93ff7cb3f
Make front-end localizable
2015-07-17 17:43:28 +09:30
Toby Zerner
a9ded36b57
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
76678f72f2
Case-sensitive filename changes
2015-07-15 15:54:34 +09:30
Toby Zerner
ab6c03c0cc
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
a74623c718
Make admin open in a new window
2015-07-08 10:51:16 +09:30
Toby Zerner
42f1fa1272
Improve fulltext search API and interface
2015-07-07 20:35:18 +09:30
Toby Zerner
4c5cf96b95
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
013d11554d
Add discussion list refresh button
...
Closes flarum/core#139 . Haven’t done pull to refresh yet though, but
that can come later.
2015-07-07 15:32:08 +09:30
Toby Zerner
e1a65380ef
Tweak discussion list styles some more
2015-07-07 15:30:48 +09:30
Toby Zerner
99876e9e36
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
fcc5aa17ea
Tweak discussion list contextual controls
2015-07-07 09:21:43 +09:30
Toby Zerner
c06639fdc8
This should've been with the last commit
...
I blame GitHub for Mac again :]
2015-07-07 09:21:27 +09:30
Toby Zerner
5fe88e448e
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
330e60871a
Fix read tracking not working
2015-07-05 13:58:07 +09:30
Toby Zerner
31474764ee
Fix post scrubber unread indicator overflow
2015-07-05 13:53:06 +09:30
Toby Zerner
1d21670663
New look for discussion reply/unread count
...
Also decrease the max page width by 100px
2015-07-05 13:52:46 +09:30
Toby Zerner
a74b40fe47
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
e18d8b35e5
Refactor component API a bit
2015-06-26 19:09:43 +09:30
Toby Zerner
5202ce00c4
Split up post controls into "user", "moderation", "destructive"
2015-06-26 16:15:30 +09:30
Toby Zerner
fe82631f95
Tweak user bio editing UI
2015-06-26 13:57:21 +09:30
Toby Zerner
0526e223e4
Always show composer header. closes flarum/core#112
2015-06-26 12:18:13 +09:30
Toby Zerner
8f6b373ea1
Constrain the unread part of the scrubber to after the handle
2015-06-26 12:09:59 +09:30
Toby Zerner
e887d75b8b
Show badges in notifications
2015-06-26 12:09:28 +09:30
Toby Zerner
6acc6698f5
Don't clear filter when search is cleared
2015-06-26 12:08:46 +09:30
Toby Zerner
9e6ad1f244
Only show search suggestion excerpt if we have it
...
We won’t have it if we didn’t do a fulltext search
2015-06-26 12:08:23 +09:30
Toby Zerner
35c05862a4
Fix unwanted onbeforeunload message
2015-06-26 11:57:52 +09:30
Toby Zerner
cbd3509ad2
More accurate scrubber height resizing
2015-06-25 15:34:34 +09:30
Toby Zerner
aec6a4b86c
Fix faulty detection of touch device
2015-06-25 15:34:14 +09:30
Toby Zerner
2c70c4fa82
Fix active discussion not highlighting in pane
2015-06-25 15:33:56 +09:30
Toby Zerner
4778d15dcb
Clean up
2015-06-25 15:33:37 +09:30
Toby Zerner
8fe2f54489
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
6881229702
Close the composer completely if the reply is empty
2015-06-25 10:34:37 +09:30
Toby Zerner
34ca6d4515
Implement onbeforeunload composer confirmation. closes flarum/core#113
2015-06-25 10:34:14 +09:30
Toby Zerner
f3b8c31e18
Make home button route correctly, not respond on middle click
...
Amends flarum/core#140 , closes flarum/core#136
2015-06-25 08:14:51 +09:30
Toby Zerner
e8bb044701
Discussion list refactor, gestures
...
Also make base Component class automatically assign this.element :)
2015-06-24 17:56:39 +09:30
Toby Zerner
3b7c7de83b
Fix deleting posts causing subsequent posts to display incorrectly
2015-06-24 11:46:43 +09:30
Toby Zerner
fee88508ba
Only display the first page of posts
...
Extra posts may be in the payload (mention links etc.) but we do not
want to display them.
2015-06-24 11:45:58 +09:30
Toby Zerner
e466dcc626
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
6e5329047c
Add light horizontal rule between posts. closes flarum/core#133
...
Also remove time information from event posts (it’s not useful)
2015-06-23 10:36:36 +09:30
Toby Zerner
64e5d50533
Allow author to delete discussion if there are no replies
...
Also disallow the first post in a discussion to be deleted or hidden
(thus preventing discussions with zero posts)
closes flarum/core#90 closes flarum/core#92
2015-06-23 10:34:33 +09:30
Toby Zerner
3a7efe202e
Gracefully handle discussions with no posts
...
Although this should never happen
2015-06-23 10:30:06 +09:30
Toby Zerner
45ba693154
Speed up committing of scroll position in URL/marking as read
2015-06-23 10:29:08 +09:30
Toby Zerner
f35a9357f0
Default submit handler for form modals
2015-06-23 10:28:24 +09:30
Toby Zerner
a20e2591e6
Fix broken forgot password form. closes #116
2015-06-20 10:29:57 +09:30
Toby Zerner
63654bf195
Actually sort notifications (please)
2015-06-19 19:10:54 +09:30
Toby Zerner
07e2698504
Make sure notifications are sorted
2015-06-19 19:05:03 +09:30
Toby Zerner
056bf669c8
Ensure we make a new separator
2015-06-19 17:19:27 +09:30
Toby Zerner
004e8919b6
Fix infinite loop when @mentioning in a discussion composer
2015-06-19 15:48:51 +09:30
Toby Zerner
840bbfd995
Don't destroy discussion list in case of a redraw
...
i.e. the one in index-page’s onunload → composer.minimize
2015-06-19 14:34:52 +09:30
Toby Zerner
a714f12f8f
Change criteria to work out which posts are intended to be displayed
2015-06-19 11:19:24 +09:30
Toby Zerner
46347023cc
Implement time gap indicators
...
Get rid of short human times (1m, 1h, 1d) for now
2015-06-19 10:00:19 +09:30
Toby Zerner
f2b500a6e5
Use truncate for search suggestions
2015-06-18 17:41:47 +09:30
Toby Zerner
822a216cc9
Roughly implement routes and data preloading
...
Only preloading data for basic requests w/o query params, at least for
the moment - if we have to preload for something like
/?q=test&sort=newest, we end up having to duplicate a whole lot of
logic between JS/PHP.
2015-06-18 17:41:37 +09:30
Toby Zerner
2786dbd157
Simplify composer animation
2015-06-18 12:53:19 +09:30
Toby Zerner
bb651899b1
Extract into truncate helper
2015-06-17 18:22:14 +09:30
Toby Zerner
27b9dbe4c4
Clear the page's min-height when navigating away
2015-06-16 17:23:14 +09:30
Toby Zerner
0aed5f44bf
Maintain scroll position when hiding the composer
2015-06-15 12:17:19 +09:30
Toby Zerner
1ff5e06525
Don't add duplicate posts to a discussion
2015-06-15 08:59:57 +09:30
Toby Zerner
40c9c7ef59
Add a separator above the delete control
2015-06-12 16:40:57 +09:30
Toby Zerner
5b6f86320d
Return a promise from the new discussion action
2015-06-12 16:40:47 +09:30
Toby Zerner
81dc3a1c48
Make the FormModal component more flexible
2015-06-12 16:40:20 +09:30
Toby Zerner
5c21efe09d
Move between title/post inputs with return and backspace keys
2015-06-12 16:37:43 +09:30
Toby Zerner
52ff2f25ba
Don't pad the body when the composer is minimized
2015-06-12 16:37:19 +09:30
Toby Zerner
525e2b1b3f
Don't anchor scroll when the top of the page has been reached
2015-06-11 18:40:21 +09:30
Toby Zerner
070d8fb04d
Fix scrolling to first post not working
2015-06-11 18:39:36 +09:30
Toby Zerner
0f5156afd4
Fix incorrect visible range in post scrubber
2015-06-11 18:39:12 +09:30
Toby Zerner
ac83cb1cf4
Fix sort menu not displaying the current option
2015-06-11 18:38:48 +09:30
Toby Zerner
16c714012f
Fix incorrect highlighting of post excerpts
2015-06-10 14:42:14 +09:30
Toby Zerner
77601870e0
Clean up, use time helper rather than util
2015-06-10 13:59:25 +09:30
Toby Zerner
250e16d970
Make composer sliding animation less jumpy when replying
2015-06-08 09:47:28 +09:30
Toby Zerner
a5ad1fded7
Fix user profile activity regression
2015-06-07 10:12:48 +09:30
Toby Zerner
73396e3e9c
Fix error
2015-06-04 11:12:04 +09:30
Toby Zerner
42851f425b
Rejig formatting API. closes flarum/core#85
...
It works but it’s not the most pretty thing in the world. @franzliedke
Would be great if you could take a look at the whole formatting API and
work your magic on it sometime… my brain is fried!
2015-06-04 10:48:07 +09:30
Toby Zerner
5d89618bbd
Implement search on front end
2015-06-03 18:10:56 +09:30
Toby Zerner
ea510b5ea0
Fix composer only sliding down some of the way
2015-06-03 18:06:39 +09:30
Toby Zerner
5d29265a73
Use icon instead in composer title when replying to another thread
2015-06-01 17:55:05 +09:30
Toby Zerner
8638e9c9ca
Tweak reply placeholder appearance
2015-06-01 17:54:37 +09:30
Toby Zerner
0f9549f4b9
Remove default relationships from serializers
2015-06-01 12:24:06 +09:30
Toby Zerner
be249cbcb5
Scroll to the bottom of the last post when jumping to last
2015-06-01 11:09:39 +09:30
Toby Zerner
47560dbc86
Force redraw to ensure focusing works
2015-06-01 10:43:16 +09:30
Toby Zerner
bfc4201338
Add icon to post edit composer
2015-06-01 10:29:11 +09:30
Toby Zerner
7362aff345
Make replyAction into a promise. closes #100
2015-06-01 10:29:01 +09:30
Toby Zerner
56981c1297
Add reply placeholder to bottom of post stream
2015-06-01 10:28:24 +09:30
Toby Zerner
3f6a3de863
Add 'state helpers', shortcuts to make querying app state easier
2015-06-01 10:26:23 +09:30
Toby Zerner
f8d681d9ab
Fix bug where switching composer component would lead to incorrect rendering
2015-06-01 08:49:23 +09:30
Toby Zerner
44a4e31fe1
Simplify active discussion detection
2015-05-31 13:53:02 +09:30
Toby Zerner
8e7634e36d
Fix post scrubber closing on mobile
2015-05-31 11:17:41 +09:30
Toby Zerner
8e4f4a549c
Re-add event after a discussion has loaded
...
replyAction uses it
2015-05-30 12:06:48 +09:30
Toby Zerner
5db1751660
Add helper to format number with commas
2015-05-30 08:40:29 +09:30
Toby Zerner
4edb95e9e2
Sync the discussion model/post stream when posts are added/removed
2015-05-29 18:56:29 +09:30
Toby Zerner
0d1b67274d
Fix edge cases where posts would not be added/removed
2015-05-29 18:55:53 +09:30
Toby Zerner
102a9e498e
Fix incorrect class name
2015-05-29 18:55:29 +09:30
Toby Zerner
456af4273b
Sort included posts
...
They can be out of order in the payload due to relationship loading,
e.g. post #1 includes post #14 that has mentioned it, therefore #14
will be the first post in the payload. The new post stream doesn’t take
kindly to out of order posts.
2015-05-29 18:55:19 +09:30
Toby Zerner
2e82fb4015
Refactor discussion list styles, fix loading indicator height in pane
2015-05-29 18:31:17 +09:30
Toby Zerner
cafa6c7b5d
New and improved post stream.
2015-05-29 18:17:50 +09:30
Toby Zerner
2741923714
Improvements to change/forgot password
2015-05-27 16:25:44 +09:30
Toby Zerner
696bfe5a07
Improve email changing/confirmation stuff
2015-05-27 16:24:54 +09:30
Toby Zerner
c5d820a92d
Hide "mark all as read" button from guests
2015-05-27 16:19:40 +09:30
Toby Zerner
796c2590a2
Add unread indicator to scrubber. closes #94
2015-05-27 16:18:21 +09:30
Toby Zerner
20dfc6c341
Retain relevant data when switching between login/signup modals
2015-05-26 18:05:07 +09:30
Toby Zerner
e5532d9618
Roughly implement change password/email, delete account modals
2015-05-26 18:03:02 +09:30
Toby Zerner
a4a0092513
Fix error when rendering deleted user
2015-05-26 18:02:04 +09:30
Toby Zerner
4849e423eb
Redraw discussion list items if user marks all as read
2015-05-26 18:01:05 +09:30
Toby Zerner
61e110b245
Don't show load more button unnecessarily
2015-05-26 18:00:41 +09:30
Toby Zerner
85ba97ed5c
Improve appearance/behaviour of login/signup/forgot modals
2015-05-26 16:25:25 +09:30
Toby Zerner
5fc2f3aeee
Better handling of API server errors
2015-05-26 11:43:20 +09:30
Toby Zerner
feb4676aa0
Very rough implementation of forgot password
2015-05-26 11:14:06 +09:30
Toby Zerner
d1dfa92d6b
Prevent composer from accidentally redrawing when reply button is clicked
2015-05-23 08:36:00 +09:30
Toby Zerner
1dc036da65
Only do double redraw if there is a component we need to get rid of
2015-05-23 08:35:12 +09:30
Toby Zerner
c4614788c6
Make the invoker responsible for positioning the composer cursor
2015-05-23 08:34:54 +09:30
Toby Zerner
9d7be35837
Fix notification grid row/column not toggling when first cell is disabled
2015-05-21 15:59:35 +09:30
Toby Zerner
935e2d272a
Force redraw of composer component when switching in a new one
2015-05-21 13:08:33 +09:30
Toby Zerner
e1201c968b
Maintain scroll position relative to bottom of hero when switching categories
2015-05-21 08:15:58 +09:30
Toby Zerner
41ecfa348d
Performance improvements
2015-05-21 06:49:07 +09:30
Toby Zerner
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
Toby Zerner
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
Toby Zerner
03b47c3591
Prevent moment deprecation warning
2015-05-19 10:12:18 +09:30
Toby Zerner
f35fe5d0e2
Actually implement persistent avatar removal in the front-end
2015-05-19 09:27:04 +09:30
Toby Zerner
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
Toby Zerner
0dda55d06a
GitHub for Mac sucks, why does it leave out a file sometimes?
2015-05-18 18:50:43 +09:30