Commit Graph

1108 Commits

Author SHA1 Message Date
Franz Liedke
0262f45f57 Merge branch 'master' into psr-7
Conflicts:
	src/Api/Actions/Discussions/IndexAction.php
	src/Api/Actions/SerializeAction.php
	src/Core/Formatter/FormatterManager.php
	src/Extend/ForumAssets.php
	src/Forum/Actions/IndexAction.php
	src/Forum/ForumServiceProvider.php
2015-06-17 00:52:50 +02:00
Franz Liedke
a240fbc3ec Add TODO message 2015-06-17 00:18:16 +02:00
Franz Liedke
b559a32f9e Revamp routing
All routes are now stored in a RouteCollection, which is then used
for dispatching by the (reusable) RouterMiddleware.

This change also entails moving all routes to the service providers.
This may be changed again later, and is done for convenience reasons
right now.
2015-06-17 00:16:35 +02:00
Toby Zerner
8a0cf2dcba Override static property
@franzliedke I didn’t realise that static properties are static to the
class they are defined on, and not each individual subclass. All of the
static members of the SerializeAction class (which are intended for
extensions to alter per-action) are being inherited by all actions.

Any ideas on how to work around this other than defining every static
member on each individual subclass?
2015-06-16 21:55:59 +09:30
Toby Zerner
e91fda8aab Add API to add a link to an action 2015-06-16 17:39:47 +09:30
Toby Zerner
31369bd806 Overhaul permissions
Get rid of Permissible - too complex and inefficient. Replace with:
- a “Locked” trait which works similarly but only evaluates logic on
hydrated models.
- a “VisibleScope” trait which also works similarly but only scopes
queries

This is all we need, Permissible is overkill. There is only one
instance where we have to duplicate some logic
(Discussion::scopeVisiblePosts and Post::allow(‘view’, …)) but it’s
barely anything.

Haven’t decoupled for now, we can definitely look at doing that later.

Permissions table seeder slightly updated.

Also did a bit of a query audit, there’s still a lot to be done but
it’s much better than it was. Some relatively low-hanging fruit
detailed in EloquentPostRepository.
2015-06-16 17:33:56 +09:30
Toby Zerner
de9b6ff530 Clear the page's min-height when navigating away 2015-06-16 17:23:14 +09:30
Toby Zerner
1ff2c2f90a Add WillRespond event
So that custom data can be loaded onto a model before it is serialized.
(Tags extension uses this to load tags onto the forum model.)
2015-06-16 17:22:15 +09:30
Toby Zerner
a890dc2114 Static relationship collections need to be initialised on subclasses
Will probably make this whole “custom relationships” thing a trait
instead of being on the base class
2015-06-16 17:21:04 +09:30
Toby Zerner
822feb2497 Cache user permissions between calls 2015-06-16 17:18:02 +09:30
Toby Zerner
f6e6090131 Add todo about query optimization 2015-06-16 16:59:48 +09:30
Toby Zerner
320180efc4 Remove total results from discussion searching
It’s too inefficient (requires a whole table scan) to do a query like:
select count(*) from discussions where [conditions determining
visibility]
2015-06-16 16:58:10 +09:30
Toby Zerner
385ebf012d Add a serializer and API action to get information about the forum 2015-06-15 12:18:20 +09:30
Toby Zerner
7295cffd32 Maintain scroll position when hiding the composer 2015-06-15 12:17:19 +09:30
Toby Zerner
cf7b6974bc Don't add duplicate posts to a discussion 2015-06-15 08:59:57 +09:30
Toby Zerner
da461b1be7 Prefer passing an array to ServiceProvider::extend 2015-06-15 08:59:33 +09:30
Toby Zerner
435880733d Update permissions 2015-06-12 16:41:46 +09:30
Toby Zerner
9ef431a542 Fix saving of to-many relationships 2015-06-12 16:41:13 +09:30
Toby Zerner
42f7d61a49 Add a separator above the delete control 2015-06-12 16:40:57 +09:30
Toby Zerner
4286243b75 Return a promise from the new discussion action 2015-06-12 16:40:47 +09:30
Toby Zerner
fe94f2a123 Make the FormModal component more flexible 2015-06-12 16:40:20 +09:30
Toby Zerner
333bb3529d Move between title/post inputs with return and backspace keys 2015-06-12 16:37:43 +09:30
Toby Zerner
8542152c09 Don't pad the body when the composer is minimized 2015-06-12 16:37:19 +09:30
Toby Zerner
65df4c3a33 Add English locale template to extension stub 2015-06-11 18:45:31 +09:30
Toby Zerner
0ca7003a35 Add missing import in extension stub JS 2015-06-11 18:45:17 +09:30
Toby Zerner
f67ad7ab98 API: Reorder Extend\Relationship arguments 2015-06-11 18:42:49 +09:30
Toby Zerner
b6306efe01 Add newline in-between JS files, in case last line is a comment 2015-06-11 18:42:26 +09:30
Toby Zerner
443a231aa5 Increase text contrast
I think you will like this change @franzliedke :)
2015-06-11 18:42:05 +09:30
Toby Zerner
f667313cc2 Improve ordering of list items when specified key doesn't exist 2015-06-11 18:41:13 +09:30
Toby Zerner
cc6113243a Don't anchor scroll when the top of the page has been reached 2015-06-11 18:40:21 +09:30
Toby Zerner
914528d6c4 Fix scrolling to first post not working 2015-06-11 18:39:36 +09:30
Toby Zerner
548f2879de Fix incorrect visible range in post scrubber 2015-06-11 18:39:12 +09:30
Toby Zerner
4ded9906bd Fix sort menu not displaying the current option 2015-06-11 18:38:48 +09:30
Toby Zerner
2180e15757 Fix incorrect highlighting of post excerpts 2015-06-10 14:42:14 +09:30
Toby Zerner
f82aaa82a5 Lay the groundwork for translation & refactor asset compilation
Ditched the idea of having language packs as extensions. Reasoning:

1. Because we use machine keys for translations (rather than English
keys), extensions need to be able to define default translations. If
English translations are to be included in extensions and not in a
language pack extension, then it doesn’t make sense to have other
languages as language pack extensions. Inconsistency → complexity.

2. Translations should maintain version parity with their respective
extensions. There’s no way to do this if extension translations are
external to the extension.

Instead, localisation will be a core effort, as well as a per-extension
effort. Translators will be encouraged to send PRs to core + extensions.

In core, each locale has a directory containing three files:
- translations.yml
- config.js: contains pluralisation logic for the JS app, as well as
moment.js localisation if necessary
- config.php: contains pluralisation logic for the PHP app

Extensions can use the Flarum\Extend\Locale extender to add/override
translations/config to a locale.

Asset compilation has been completely refactored with a better
architecture. Translations + config.js are compiled and cached for the
currently active locale.
2015-06-10 14:23:56 +09:30
Toby Zerner
fbbeebbdee Clean up, use time helper rather than util 2015-06-10 13:59:25 +09:30
Franz Liedke
e6b9c4765a Use singleton method 2015-06-09 02:51:20 +02:00
Franz Liedke
8bd3456a9d Refer to Schema facade by full namespace 2015-06-09 02:45:02 +02:00
Franz Liedke
6994f71757 Remove last remaining usage of DB facade 2015-06-09 02:40:02 +02:00
Franz Liedke
29847698c5 Remove HTTP method from generated URLs 2015-06-09 00:06:33 +02:00
Franz Liedke
ce5ae10b21 Remove facade usage 2015-06-09 00:06:08 +02:00
Franz Liedke
d27526431c Get rid of more facade usage 2015-06-08 11:21:42 +02:00
Franz Liedke
caf8e29852 Avoid usage of facade in user model 2015-06-08 11:20:46 +02:00
Franz Liedke
9f01a60243 Fix cookie retrieval in admin panel 2015-06-08 10:00:29 +02:00
Franz Liedke
53d2259f8e Remove obsolete include 2015-06-08 10:00:13 +02:00
Franz Liedke
b94aa11573 Always initialize variable 2015-06-08 09:49:07 +02:00
Toby Zerner
0e15aafed7 Externalize babel helpers.
Saves 2kB after minify+gzip :D
2015-06-08 15:28:45 +09:30
Toby Zerner
1826d15970 Clean up extension stub. 2015-06-08 15:05:35 +09:30
Toby Zerner
1c80a509f1 Use new flarum-gulp package. 2015-06-08 14:57:23 +09:30
Toby Zerner
b28bf04e5a Remove old code. 2015-06-08 14:57:05 +09:30