Commit Graph

710 Commits

Author SHA1 Message Date
f0df751465 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
27b9dbe4c4 Clear the page's min-height when navigating away 2015-06-16 17:23:14 +09:30
be2d0ac682 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
c20a5bb793 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
963078b375 Cache user permissions between calls 2015-06-16 17:18:02 +09:30
9ac1f53244 Add todo about query optimization 2015-06-16 16:59:48 +09:30
64e6b7d26c 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
c1e3820480 Add a serializer and API action to get information about the forum 2015-06-15 12:18:20 +09:30
0aed5f44bf Maintain scroll position when hiding the composer 2015-06-15 12:17:19 +09:30
1ff5e06525 Don't add duplicate posts to a discussion 2015-06-15 08:59:57 +09:30
823027b839 Prefer passing an array to ServiceProvider::extend 2015-06-15 08:59:33 +09:30
9997c5d7a3 Update permissions 2015-06-12 16:41:46 +09:30
66da905763 Fix saving of to-many relationships 2015-06-12 16:41:13 +09:30
40c9c7ef59 Add a separator above the delete control 2015-06-12 16:40:57 +09:30
5b6f86320d Return a promise from the new discussion action 2015-06-12 16:40:47 +09:30
81dc3a1c48 Make the FormModal component more flexible 2015-06-12 16:40:20 +09:30
5c21efe09d Move between title/post inputs with return and backspace keys 2015-06-12 16:37:43 +09:30
52ff2f25ba Don't pad the body when the composer is minimized 2015-06-12 16:37:19 +09:30
b2c617ebb6 Add English locale template to extension stub 2015-06-11 18:45:31 +09:30
042b5ef051 Add missing import in extension stub JS 2015-06-11 18:45:17 +09:30
8cebb4d8e6 API: Reorder Extend\Relationship arguments 2015-06-11 18:42:49 +09:30
48e33591c9 Add newline in-between JS files, in case last line is a comment 2015-06-11 18:42:26 +09:30
42fe2a28dd Increase text contrast
I think you will like this change @franzliedke :)
2015-06-11 18:42:05 +09:30
4582c18a3d Improve ordering of list items when specified key doesn't exist 2015-06-11 18:41:13 +09:30
525e2b1b3f Don't anchor scroll when the top of the page has been reached 2015-06-11 18:40:21 +09:30
070d8fb04d Fix scrolling to first post not working 2015-06-11 18:39:36 +09:30
0f5156afd4 Fix incorrect visible range in post scrubber 2015-06-11 18:39:12 +09:30
ac83cb1cf4 Fix sort menu not displaying the current option 2015-06-11 18:38:48 +09:30
16c714012f Fix incorrect highlighting of post excerpts 2015-06-10 14:42:14 +09:30
8b162344cd 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
77601870e0 Clean up, use time helper rather than util 2015-06-10 13:59:25 +09:30
8f856f85db Externalize babel helpers.
Saves 2kB after minify+gzip :D
2015-06-08 15:28:45 +09:30
5500372288 Clean up extension stub. 2015-06-08 15:05:35 +09:30
31a3de641f Use new flarum-gulp package. 2015-06-08 14:57:23 +09:30
0450aba462 Remove old code. 2015-06-08 14:57:05 +09:30
36257b1534 Load extensions from the root directory, with precedence. 2015-06-08 14:56:49 +09:30
b864ada389 Add extension generator command. 2015-06-08 14:56:19 +09:30
4d2f58b693 Clear bio HTML cache when saving bio 2015-06-08 09:50:07 +09:30
250e16d970 Make composer sliding animation less jumpy when replying 2015-06-08 09:47:28 +09:30
7a76bf175d Make HTMLPurifier config extensible; allow images 2015-06-08 09:37:30 +09:30
f928e746d9 Prevent formatter from being invoked if bio is empty 2015-06-08 09:34:39 +09:30
a5ad1fded7 Fix user profile activity regression 2015-06-07 10:12:48 +09:30
381e7a2c57 Usernames must only contain alphanumeric chars/dashes/underscores
Perhaps we can relax this a little bit, but right now these are the
only characters that are parsed for @mentions anyway
2015-06-04 11:19:23 +09:30
73396e3e9c Fix error 2015-06-04 11:12:04 +09:30
aae7678cea Really rough fulltext driver implementation 2015-06-04 11:11:56 +09:30
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
9487a56d61 Allow <hr> in posts 2015-06-03 18:12:15 +09:30
0f08a4378c Style tweaks 2015-06-03 18:11:43 +09:30
5d89618bbd Implement search on front end 2015-06-03 18:10:56 +09:30
ea510b5ea0 Fix composer only sliding down some of the way 2015-06-03 18:06:39 +09:30