Commit Graph

1707 Commits

Author SHA1 Message Date
Toby Zerner
54329418a0 Merge branch 'master' into composer 2015-10-02 17:57:24 +09:30
Toby Zerner
1a05171a8e Allow extension icon styles to reference assets
Example usage:

"icon": {
    "backgroundImage": "url('{$assets}/icon.svg')"
}
2015-10-02 17:55:42 +09:30
Toby Zerner
f96ef33973 Remove ability for extensions to register a service provider
The concept of returning a bootstrapper function is simpler and the use of service providers had no advantage over it.
2015-10-02 17:54:53 +09:30
Toby Zerner
91aab4cd21 Change migration namespace format 2015-10-02 17:49:43 +09:30
Toby Zerner
60467540fe Use composer.json for extension metadata 2015-10-02 17:49:16 +09:30
Toby Zerner
c1e84a0d3e Add server 2015-10-02 17:47:12 +09:30
Toby Zerner
eba0d480cc Merge branch 'master' of https://github.com/flarum/core 2015-10-02 17:44:30 +09:30
Toby Zerner
295572173c Only include namespaced translations 2015-10-02 17:43:41 +09:30
Toby Zerner
395bbb04bd API: Split BuildClientView into two separate events
Much easier to work with. Extension stub hasn't been updated yet.
2015-10-02 17:42:34 +09:30
Toby Zerner
127c54bc1c Add multiple UrlGenerator classes for forum/api/admin
Spent quite a while looking into the best solution here and ended up going with three separate classes. Thanks to @Luceos for the PR that got this rolling (#518). My reasoning is:

- The task of routing and URL generation is independent for each section of the app. Take Flarum\Api\Users\IndexAction for example. I don't want to generate a URL to a Flarum route... I specifically want to generate a URL to an API route. So there should be a class with that specific responsibility.
- In fact, each URL generator is slightly different, because we need to add a certain prefix to the start (e.g. /api)
- This also allows us to get rid of the "flarum.api" prefix on each route's name.
- It's still DRY, because they all extend a base class.

At the same time, I could see no reason this needed to be "interfaced", so all of the classes are concrete.

Goes a long way to fixing #123 - still just a few places left remaining with hardcoded URLs.
2015-10-02 17:35:29 +09:30
Toby Zerner
7a927fbe18 Add asset compilation script 2015-10-02 17:23:08 +09:30
Toby Zerner
394807d045 Merge pull request #563 from dcsjapan/namespace-fix
Add "forum" namespacing to previously renamed core keys
2015-10-02 17:10:13 +09:30
dcsjapan
2183daa70e Fixes core.deleted_username as well. 2015-10-02 16:37:09 +09:00
dcsjapan
f2f03cc6e4 Add "forum" namespacing to previously renamed core keys
- Does not affect "core.deleted_user" global string.
- Corresponding YAML will be sent later w/ more extracted strings.
2015-10-02 15:54:39 +09:00
Toby Zerner
0caaea8c50 Fix scrubber dragging division by zero
closes #64
2015-09-29 17:46:05 +09:30
Toby Zerner
be8c79183e Update docblocks 2015-09-29 16:41:34 +09:30
Toby Zerner
06355b54f9 Properly mark all notifications as read
Previously, clicking the "mark all notifications as read" button would individually mark each of the visible notifications as read. Since we now always show a badge with the number of unread notifications, we need to make sure that all notifications (not just the visible ones) can be marked as read. Otherwise it would be possible to get stuck with an unread badge there.

This commit adds a new API endpoint which marks *all* of a user's notifications as read. The JSON-API spec doesn't cover this kind of thing (updating all instances of a certain resource type), so I'm a bit unsure regarding what the endpoint should actually be. For now I've gone with POST /notifications/read, but I'm open to suggestions.

ref #500
2015-09-29 16:41:05 +09:30
Toby Zerner
81e6ab664a Properly handle errors in change email modal 2015-09-29 15:19:06 +09:30
Toby Zerner
470a3d20e2 Remove "go to email provider" buttons
closes #541
2015-09-29 15:18:55 +09:30
Toby Zerner
247d8116b0 Add missing semicolon 2015-09-29 14:29:40 +09:30
Franz Liedke
44e634ea47 Remove unused import 2015-09-29 01:31:34 +02:00
Franz Liedke
68215b4e0f Make linter happy 2015-09-29 01:31:09 +02:00
Franz Liedke
16992aa1fb Sync notification count when clicking on them or marking all as read
Refs #500.
2015-09-29 01:28:47 +02:00
Franz Liedke
66d4e51a18 Use correct method for notification drawer on mobile
Refs #500.
2015-09-29 01:28:47 +02:00
Franz Liedke
0bef17149c Return both unread and new notification count from the API
Related to #500.
2015-09-29 01:28:47 +02:00
Franz Liedke
e4b90296bc Merge pull request #554 from kirkbushell/feature/admin-tests
Admin tests
2015-09-29 00:59:09 +02:00
Franz Liedke
a436bef93c Implement third state for notification list dropdown
Related to #500.
2015-09-29 00:50:28 +02:00
kirkbushell
9198e96385 Added tests for admin login/cookie checks 2015-09-28 16:02:37 +01:00
kirkbushell
a4c61efee2 Added zend-stragility (missing), removed some redundant code. 2015-09-28 15:59:07 +01:00
Franz Liedke
da4dad3bb8 Merge pull request #553 from kirkbushell/feature/settings-tests
Tests for core settings code
2015-09-28 16:47:04 +02:00
kirkbushell
374e9f09e4 Moved psr-4 loading for tests out of the autoload 2015-09-28 15:44:35 +01:00
kirkbushell
a388fe7883 Added some tests for the database setting repository 2015-09-28 15:34:32 +01:00
kirkbushell
b93d5570d0 Removed phpsec as the testing library, added phpunit and converted the first spec test to phpunit format. Also added mockery. 2015-09-28 15:09:13 +01:00
Toby Zerner
9b51edc939 Prevent infinite redraw loop in IE
Welp, this is probably the most subtle bug I've ever tracked down and fixed.

Turns out that IE has this bug where the "oninput" event will be triggered whenever the "placeholder" attribute is changed. Most placeholders get their value from app.trans. The app.trans method returns a VirtualElement – which is an array, not a string! That means when Mithril's diffing algorithm was comparing the old value to the new value, it was comparing two different array instances, and thus deciding the value was dirty and the placeholder attribute needed to be updated. Due to the IE bug, that was leading to the "oninput" event being triggered... and then through Mithril's auto-redraw mechanism, a redraw would be triggered, and so the cycle continued.

Since the inputs in the LogInModal (among others) only update the component state on the "onchange" event (i.e. when the input loses focus), the intermittent redraws would cause the input's value to be cleared continuously. That's what was causing #464. Could've been easily and superficially patched by changing them to use "oninput" events, but luckily I dived a little deeper!

Glad that's over. Running IE11's buggy dev tools in an underpowered VM isn't fun. Would not recommend.

closes #464
2015-09-25 23:44:15 +09:30
Toby Zerner
9347d79913 Prevent empty beforeunload dialog on Internet Explorer 2015-09-25 23:21:10 +09:30
Toby Zerner
e65536cdf8 Extract English translations into a language pack
To make this work, we add support for the client working without any locale.

Also fixes #412.
2015-09-25 16:12:09 +09:30
Toby Zerner
7889b15f09 Allow extensions to return a callback instead of a provider name
This is useful for very simple extensions like language packs, because it means no Composer/namespacing and thus bootstrap.php doesn't have to be changed at all.
2015-09-25 16:05:01 +09:30
Toby Zerner
575ff76002 Condense discussion list last reply icons 2015-09-25 13:55:32 +09:30
Toby Zerner
c2c1461fdc Merge pull request #545 from dcsjapan/dashboard-update-retry
Revises the dashboard links to emphasize beta testing procedure.
2015-09-25 13:27:57 +09:30
dcsjapan
f7c7f96300 Revises the dashboard links to emphasize beta testing procedure.
Closes flarum/core#542
- Includes a disclaimer stating that the software is provided mainly
for testing.
- Directs bug reports to the Support tag in the forums instead of the
issue tracker
- Directs feedback to the Features tag in the forums
2015-09-25 12:55:13 +09:00
Franz Liedke
136a07361f Change name of header for faking HTTP methods
Refs #502.
2015-09-25 00:35:57 +02:00
Franz Liedke
dfef23e50c Implement middleware for faking HTTP methods
Refs #502.
2015-09-25 00:31:31 +02:00
Daniel Klabbers
b9a63c48d6 heavier validation for username 2015-09-24 23:07:30 +02:00
Franz Liedke
8e7b056b84 Clean up unused variable
Closes #501.
2015-09-24 16:27:00 +02:00
Toby Zerner
f820a62ec9 Remove core key reorganization comments 2015-09-24 14:22:32 +09:30
Toby Zerner
15a3b46a1e Revert to "go to email provider" button 2015-09-24 14:22:14 +09:30
Toby Zerner
0330c4088d Indent block comments 2015-09-24 14:20:45 +09:30
Toby Zerner
79caf5b473 Add comments about intentional spaces 2015-09-24 14:20:37 +09:30
Toby Zerner
840461499f Temporary solution to resolve translation references
Just implemented this roughly so I can keep working :D /cc @franzliedke
2015-09-24 09:27:47 +09:30
Toby Zerner
5cce4b2be7 Update discussion list "last reply" translations 2015-09-24 09:07:46 +09:30