Toby Zerner
264725d872
Allow discussions to be hidden and restored
2015-09-22 17:48:21 +09:30
Toby Zerner
ab6e3351b4
Redraw old data after unsuccessful save
2015-09-22 17:23:28 +09:30
Toby Zerner
f591851cb2
Patch Mithril with a route shortcut attribute
...
Instead of:
<a href={app.route.user(user)} config={m.route}>
We can use:
<a route={app.route.user(user)}>
2015-09-22 17:09:38 +09:30
Toby Zerner
d610ea663f
Keep post actions visible when controls dropdown is open
...
Also show without hover on touch devices
2015-09-22 17:05:14 +09:30
Toby Zerner
efca923d30
Add "Debug" button to inspect the response of a failed AJAX request
...
Related to #118
2015-09-18 16:46:46 +09:30
Toby Zerner
514eec7466
Clean up
2015-09-18 13:29:50 +09:30
Toby Zerner
0b406a06a1
Patch Mithril with a bidi attribute
...
Enables quick bidirectional bindings. So instead of this:
<input value={prop()} oninput={m.withAttr('value', prop)}/>
... we can do this:
<input bidi={prop}/>
2015-09-18 13:06:37 +09:30
Franz Liedke
9767bce1e3
Move dropdown mouseover to correct location
...
Related to #496 .
2015-09-16 09:00:33 +02:00
Franz Liedke
ffcba1f173
Always use label as tooltip for header icons
...
Closes #496 .
2015-09-16 08:45:45 +02:00
Toby Zerner
b0da51309e
Copy properties when monkey-patching
2015-09-16 16:03:25 +09:30
Toby Zerner
8414a59908
Don't use a default dropdown label
2015-09-16 10:12:49 +09:30
Toby Zerner
6beb4fe898
Add external authenticator (social login) API
...
Allows registrations to be completed with a pre-confirmed email address
and no password.
2015-09-15 11:27:31 +09:30
Toby Zerner
8cccaaaf6b
Improve API error handling
...
- Change 'path' key to 'source.pointer', as per spec
- Add 500 error detail if debug mode is on
2015-09-14 15:40:07 +09:30
Toby Zerner
d5b58b3146
Only set XHR authorization header if token isn't empty
2015-09-14 14:49:11 +09:30
Toby Zerner
6a5427b600
Make unread discussion titles less overwhelming
2015-09-08 10:27:50 +09:30
Toby Zerner
e8621636c5
Add init hook as a way to effectively monkey patch constructors
...
Related to #246
2015-09-08 10:27:02 +09:30
Toby Zerner
f6e21b75e1
Remove unused translations
2015-09-05 16:05:02 +09:30
Toby Zerner
7a6c48c30b
Correct check that a translation is an object
...
typeof translation === 'object' returns true when translation is null
2015-09-04 12:19:02 +09:30
Toby Zerner
44f460cb11
Prevent ItemList crash when item is a number
2015-09-04 12:17:01 +09:30
Toby Zerner
7cce5b02ba
Allow non-array value to be passed into listItems
...
Useful in some scenarios when using JSX
2015-09-04 12:16:23 +09:30
Toby Zerner
722058f2fb
Move generic util into lib
...
Might come in handy for the admin section later on
2015-09-04 12:15:41 +09:30
Toby Zerner
70815b024a
Make Dropdown and NotificationsDropdown components more extensible
2015-09-04 12:15:11 +09:30
Toby Zerner
7269385786
Make a copy of props passed into a component
...
Prevents some rare errors where the props object is read-only, and is
generally safer.
2015-09-04 12:13:55 +09:30
Franz Liedke
f0c240f863
Add a first empty state to the discussion list
2015-09-03 09:59:33 +02:00
Toby Zerner
bf83b36882
Remove redundant call
2015-09-01 10:08:37 +09:30
Toby Zerner
e7f4e5060c
Use GroupBadge component to display user badges
...
closes #277
2015-08-31 13:44:05 +09:30
Toby Zerner
0474f410a4
Refactor start/endComputation into lazyRedraw method
2015-08-31 12:04:51 +09:30
Toby Zerner
f44e9f5140
Remove <script> tags from plain post content
...
closes #362
2015-08-31 10:49:24 +09:30
Toby Zerner
67f6b8599d
Allow string primitives to be added to ItemLists
2015-08-29 15:25:36 +09:30
Toby Zerner
dea759d5b8
Fix JS docblock
2015-08-26 17:11:54 +09:30
Toby Zerner
734badb4bc
Begin JavaScript cleanup
2015-08-26 16:56:33 +09:30
Toby Zerner
df385b7df2
Monkey patch mithril so we can use JSX component syntax
...
<Alert foo="bar"/> instead of Alert.component({foo: 'bar'})
2015-08-26 16:56:32 +09:30
Toby Zerner
9489173082
Fix some front-end bugs
2015-08-14 12:50:39 +09:30
Toby Zerner
c3b2fa5a99
Prevent badge tooltips from being cut off
...
By overflow in the notifications dropdown. closes flarum/core#228
2015-08-13 13:01:13 +09:30
Toby Zerner
9c7fab5d8c
Support running in subdirectory with base_path config
2015-08-13 12:58:59 +09:30
Toby Zerner
3f809761d3
Improve extensions page
...
- Allow extensions to define an icon in their flarum.json
- Show a "please wait" modal when enabling/disabling an extension
- Styling tweaks
2015-08-07 08:51:03 +09:30
Toby Zerner
9def5d2b5d
Clean up
2015-08-06 16:00:22 +09:30
Toby Zerner
32648147e2
Reload page on login
...
closes flarum/core#145
2015-08-06 15:04:20 +09:30
Toby Zerner
de42c316c0
Remove blockquotes from post previews
...
Closes flarum/core#144
2015-08-06 13:28:26 +09:30
Toby Zerner
0d968536bc
Tweak dropdown caret margins
2015-08-05 19:21:00 +09:30
Toby Zerner
f182689c90
Allow extension of functions that may not be defined
2015-08-05 19:20:49 +09:30
Toby Zerner
5005e37cfb
Focus on the first input too, in case it's not a text field
2015-08-05 16:07:43 +09:30
Toby Zerner
57e37e06ef
Disable "start discussion" button if no permission
2015-08-05 16:06:25 +09:30
Toby Zerner
8be5d5af0f
Still set username if user is undefined
...
Fixes "Started 12 hours ago by undefined" on discussion author avatar
tooltip
2015-08-05 12:17:36 +09:30
Toby Zerner
1679f1e27b
Implement edit user modal
...
EditUserHandler is a bit rough
2015-08-05 11:49:37 +09:30
Toby Zerner
f49d0e5341
Allow locale to be selected in footer
2015-08-05 09:50:57 +09:30
Toby Zerner
26c87de317
Add an API to show a count in the document title
2015-08-04 19:04:17 +09:30
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
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
a14be00041
Sort out default dropdown caret icons
2015-08-04 11:42:24 +09:30
Toby Zerner
b8a224f87b
Implement basic bio formatting. closes flarum/core#203
2015-08-04 11:41:47 +09:30
Toby Zerner
addb061458
Change default dropdown caret icon
2015-08-04 11:01:11 +09:30
Toby Zerner
ecb1023c66
Fix user bio placeholder not showing up
2015-08-04 10:42:37 +09:30
Toby Zerner
8f4ef28475
Make the back button a functional link
2015-08-02 17:26:57 +09:30
Toby Zerner
d44ffd1866
Remove modal responsibility for loading UI; using loading button state
2015-08-02 17:25:05 +09:30
Toby Zerner
fde7afd3e2
Finish admin permissions page and clean up everything
2015-07-31 20:16:47 +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
d3534fcda8
Ensure the correct relationship values are returned
2015-07-28 18:28:31 +09:30
Toby Zerner
ff6f2ebf82
Properly disable buttons
2015-07-28 17:19:00 +09:30
Toby Zerner
97334bea12
Don't display notifications with deleted subjects
2015-07-28 17:15:09 +09:30
Toby Zerner
bb04eada7a
Prevent crash if user's groups aren't loaded. closes flarum/core#173
2015-07-28 13:35:07 +09:30
Toby Zerner
52c9539be3
Appearance tweaks
2015-07-23 16:39:20 +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
e82a50e53b
Update modal responsive control classes
2015-07-22 09:56:01 +09:30
Toby Zerner
e3c59732c2
Use stable sort for item lists
2015-07-22 09:55:36 +09:30
Toby Zerner
5b8705bfc4
Fix PostStream endless loading due to broken scroll anchor
2015-07-22 09:55:20 +09:30
Toby Zerner
23cd3320c0
Preload data just before boot, not when the store is initialised
2015-07-22 09:54:49 +09:30
Toby Zerner
49e9ab362a
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
b31a290f00
Don't override username if already set
2015-07-20 18:13:56 +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
930ddf3253
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
9ca4feb6e8
Add some comments
2015-07-18 10:56:01 +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
9fa3492c0e
Clean up discussion model
2015-07-08 10:51:30 +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
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
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
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
fe82631f95
Tweak user bio editing UI
2015-06-26 13:57:21 +09:30
Toby Zerner
3ba495091e
Flattening items breaks things; recurse to get the first element instead
2015-06-26 13:52:54 +09:30
Toby Zerner
f2f23138b2
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
099b910be9
Prevent incorrect badge redraw diffing
2015-06-25 15:35:11 +09:30
Toby Zerner
bda8b5d88d
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
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
e8bb044701
Discussion list refactor, gestures
...
Also make base Component class automatically assign this.element :)
2015-06-24 17:56:39 +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
a09c86e42d
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
3a7efe202e
Gracefully handle discussions with no posts
...
Although this should never happen
2015-06-23 10:30:06 +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
32beab9238
Prevent JS error if discussion has been loaded without posts
2015-06-18 17:42:08 +09:30
Toby Zerner
bb651899b1
Extract into truncate helper
2015-06-17 18:22:14 +09:30
Toby Zerner
1ff5e06525
Don't add duplicate posts to a discussion
2015-06-15 08:59:57 +09:30