Commit Graph

2586 Commits

Author SHA1 Message Date
c17af492a9 Bundled output for commit 0e737854980d0ceedc7727509d7429efed7d8494 [skip ci] 2018-06-30 03:05:06 +00:00
0e73785498 Frontend refactor (#1471)
Refactor Frontend + Asset code

- Use Laravel's Filesystem component for asset IO, meaning theoretically
  assets should be storable on S3 etc.

- More reliable checking for asset recompilation when debug mode is on,
  so you don't have to constantly delete the compiled assets to force
  a recompile. Should also fix issues with locale JS files being
  recompiled with the same name and cached.

- Remove JavaScript minification, because it will be done by Webpack
  (exception is for the TextFormatter JS).

- Add support for JS sourcemaps.

- Separate frontend view and assets completely. This is an important
  distinction because frontend assets are compiled independent of a
  request, whereas putting together a view depends on a request.

- Bind frontend view/asset factory instances to the container (in
  service providers) rather than subclassing. Asset and content
  populators can be added to these factories – these are simply objects
  that populate the asset compilers or the view with information.

- Add RouteHandlerFactory functions that make it easy to hook up a
  frontend controller with a frontend instance ± some content.

- Remove the need for "nojs"

- Fix cache:clear command

- Recompile assets when settings/enabled extensions change
2018-06-30 12:31:12 +09:30
0f5ddc1c43 phpversion minimum requirement changed in wrong location for installation 2018-06-28 11:40:34 +02:00
eaf98ccfc5 Revert "have install command demand php 7.1 too"
This reverts commit 9c7cc0548e704f726e875dc406805feece9ed077.
2018-06-28 11:39:19 +02:00
9c7cc0548e have install command demand php 7.1 too 2018-06-28 11:23:04 +02:00
b78129b36b Bundled output for commit afe06ea750cfd81767461a3884a92a26f0b0ce37 [skip ci] 2018-06-27 19:17:31 +00:00
afe06ea750 Merge pull request #1456 from sijad/prevent-undefined
check class string before concat
2018-06-27 21:10:40 +02:00
aac194616a check class string before concat 2018-06-25 09:40:06 +04:30
b3f8379a15 Allow a single extender to be returned (#1469)
Casting an object to an array does not have the intended effect of
wrapping the object in an array. Instead we need to explicitly check
if the returned value is an array or not.
2018-06-22 18:10:54 +09:30
2234a81ee7 Bundled output for commit 805768a9e0dfcc95857880a21cf1a015571ccf86 [skip ci] 2018-06-22 01:24:44 +00:00
805768a9e0 [WIP] JS Extender API foundation (#1468)
* Run extenders exported by extensions
* Add some basic extenders
* Patch Mithril as the very first thing so extension code can run safely
* Load the payload into the app before booting extensions
* Setup default routes before booting extensions
2018-06-22 10:49:46 +09:30
e3c2ddad2e Merge pull request #1465 from flarum/tz/formatter-extender
Rename and improve FormatterConfiguration extender
2018-06-21 10:11:35 +02:00
520e1550d1 Merge event listener registration 2018-06-20 23:37:27 +02:00
79b00cb94f Rename and improve FormatterConfiguration extender
In the future we may have multiple Formatters, so by moving the config
callback to its own instance method we can leave the constructor
available to specify which formatter (like Assets and Routes). This
format also allows for other methods to be added.

Additionally, this adds logic to automatically flush the Formatter cache
whenever the extension is enabled or disabled.
2018-06-20 23:37:27 +02:00
0bcc6e74a8 Checkout the branch before committing 2018-06-20 14:47:37 +09:30
542e8715ea git config before commit [skip ci] 2018-06-20 14:42:18 +09:30
3f683dd6ee Webpack (#1367)
* Replace gulp with webpack and npm scripts for JS compilation
* Set up Travis CI to commit compiled JS
* Restructure `js` directory; only one instance of npm, forum/admin are "submodules"
* Refactor JS initializers into Application subclasses
* Maintain partial compatibility API (importing from absolute paths) for extensions
* Remove minification responsibility from PHP asset compiler
* Restructure `less` directory
2018-06-20 13:20:31 +09:30
d234badbb2 New issue templates (#1459) 2018-06-20 11:16:48 +09:30
07eda60561 Fix discussion posts not being initialized correctly. Fixes #1455 2018-06-16 11:01:42 +09:30
2bc7c4134a Add comment explaining extension boot process 2018-06-15 19:25:40 +09:30
050496a20e Make ExtensionManager a singleton 2018-06-15 19:25:15 +09:30
3b87778fbb Prevent @ character used in searches from crashing MySQL 🙄 2018-06-15 19:24:23 +09:30
569e6c9a92 Escape string used in LIKE query 2018-06-15 19:19:43 +09:30
c498e68530 Use imported class name 2018-06-15 19:18:47 +09:30
305841ddd4 Add Interface suffix 2018-06-15 19:17:43 +09:30
211e7681cc Merge pull request #1451 from sijad/create-token
rename TokenController to CreateTokenController
2018-06-06 11:51:50 +02:00
22f2df3670 rename TokenController to CreateTokenController 2018-06-06 09:40:29 +04:30
3bf74eaf10 Merge pull request #1445 from flarum/fl/migrations-simplify-interface
Migrations: Simplify interface
2018-06-04 01:05:31 +02:00
d301d260c1 Simplify interface of migration-related classes
Mostly, we only need a database connection, instead of one of
Laravel's "connection resolvers".

Again, this makes our life easier during installation, where
we already instantiate a database connection. We can now use
that to instantiate our own Migrator class, instead of using
the IoC container to build one.
2018-06-03 23:13:49 +02:00
a1c3da9f8f Migrations: always pass a schema builder
This removes the funky auto-injection capability from migration
closures. While technically removing a feature, this means we do
not need a fully-wired IoC container e.g. during installation.

Instead, all migration closures simply receive a schema builder
object (which is what most of them were already doing anyway).
2018-06-03 23:13:35 +02:00
3ec32f8430 Composer: Sort dependencies 2018-06-02 15:07:23 +02:00
f137eb358f Update .travis.yml
remove conditional which is unnecessary
2018-05-30 10:36:00 +02:00
b91a3573db Merge pull request #1443 from flarum/fl/controller-to-handlers
Replace ControllerInterface with PSR-15 interface
2018-05-30 09:54:13 +02:00
b3d45fd6f8 Replace ControllerInterface with PSR-15 interface
The custom interface already had the same signature as the
one from the standard (except for the return type hint), so
why not use that one now? :)
2018-05-30 09:49:47 +02:00
e6b8ff856e Merge pull request #1441 from flarum/fl/psr-15
Use PSR-15 middleware standard
2018-05-29 20:26:31 +02:00
4a2aa7e892 Merge branch 'master' into fl/psr-15 2018-05-29 20:21:31 +02:00
b3cbc5d1bd [wip] 1211 mariadb compatibility (#1440)
fixes #1211 

As we've already upgraded our minimum requirement to 7.1 there's no current need to force a constraint on dbal 2.7+.
2018-05-29 05:51:22 +02:00
3680d88fb7 Use PSR-15 middleware standard
This finally adopts the new standardized interfaces instead of the
work-in-progress ones with the `Interop\` prefix.

Since we have now updated to PHP 7.1, we can also use Stratigility
3.0 as the middleware dispatcher.
2018-05-29 00:18:24 +02:00
5d0ebde6b8 travis: Remove PHP 7.0 from build matrix 2018-05-28 23:41:32 +02:00
0278d52cbe Require PHP 7.1
This will be the last PHP requirement upgrade for a while, at least
until stable (and therefore until the next major release).

We have decided to do this now, for the following reasons:
- We want to support MariaDB (and the compatible release of
  doctrine/dbal requires 7.1 as well).
- We prefer to upgrade to Laravel 5.6 sooner rather than later.
- Using the PSR-15 middleware standard is easier this way, as we do
  not have to switch from zend-stratigility to another PSR-15
  implementation. (Stratigility v3, which implements the final
  standard, requires 7.1.)
2018-05-28 23:21:22 +02:00
e226f81515 additional tests for api controllers (#1433)
* added CreatePostControllerTest

* added DeleteDiscussionControllerTest

* added ListDiscussionControllerTest

* added TokenControllerTest

* minor improvement to policy, no need for Carbon object there, added ShowDiscussionControllerTest

* added showDiscussionControllerTest but cant make Guests view the discussion created by a user

* viewing for guests tested, we might need factories
2018-05-16 09:25:48 +02:00
09938f8633 Merge pull request #1432 from clarkwinkelmann/patch-3
Configure external links before dispatching textformatter configuring event
2018-05-15 07:56:24 +09:30
4c55d278b6 Configure external links before dispatching event
This way extensions can override the link attributes
2018-05-15 00:12:33 +02:00
2a721926d3 adds a few additional api controller tests (#1429)
* added CreatePostControllerTest

* added DeleteDiscussionControllerTest

* added ListDiscussionControllerTest

* Apply fixes from StyleCI

[ci skip] [skip ci]
2018-05-14 13:32:19 +02:00
0058067b1b merged master 2018-05-14 09:23:06 +02:00
3c41011548 allowing configurable flood gate (#1411)
* allowing configurable flood gate

* fixed review comments
2018-05-11 19:27:37 +09:30
49c643609c Use ItemList for signup and login modals (#1420)
* Remove unused imports

* Use body and footer methods

* Use ItemList for signup and login inputs
2018-05-11 18:59:58 +09:30
4df0101f56 Update icons to "fas" (#1426)
* Update icons to "fas"

* Install icon change
2018-05-09 08:56:30 +02:00
b8632d693a fixes session during installation (#1418)
* fixes session during installation

* Apply fixes from StyleCI

[ci skip] [skip ci]

* styling of commented code, removed unnecessary import
2018-05-08 10:32:28 +02:00
c4a501f82a Improved foundational backend unit tests (#1405)
* part one of adding tests, updating core

* Apply fixes from StyleCI

[ci skip] [skip ci]

* we need xdebug for code coverage, and hhvm was already removed

* forgot about the sidecar for mysql completely 🤦

* gitignore removed this installed json we need to fake that we have extensions

* using reguarded closure
2018-04-17 11:15:28 +02:00