From 232f3b6bc696f8c36b39b1eeaae01c299d4a1622 Mon Sep 17 00:00:00 2001 From: Toby Zerner Date: Sat, 3 Oct 2015 16:40:41 +0930 Subject: [PATCH] API: Reverse splitting of BuildClientView event, but add checker methods --- src/Admin/Actions/ClientAction.php | 9 -------- src/Events/BuildAdminClientView.php | 34 ----------------------------- src/Events/BuildClientView.php | 32 +++++++++++++++++++++++---- src/Events/BuildForumClientView.php | 34 ----------------------------- src/Forum/Actions/ClientAction.php | 9 -------- src/Support/ClientAction.php | 10 ++------- 6 files changed, 30 insertions(+), 98 deletions(-) delete mode 100644 src/Events/BuildAdminClientView.php delete mode 100644 src/Events/BuildForumClientView.php diff --git a/src/Admin/Actions/ClientAction.php b/src/Admin/Actions/ClientAction.php index fceed15bb..a30a35ead 100644 --- a/src/Admin/Actions/ClientAction.php +++ b/src/Admin/Actions/ClientAction.php @@ -18,7 +18,6 @@ use Flarum\Api\Client; use Flarum\Core\Settings\SettingsRepository; use Flarum\Locale\LocaleManager; use Flarum\Events\UnserializeConfig; -use Flarum\Events\BuildAdminClientView; class ClientAction extends BaseClientAction { @@ -42,14 +41,6 @@ class ClientAction extends BaseClientAction $this->layout = __DIR__.'/../../../views/admin.blade.php'; } - /** - * {@inheritdoc} - */ - protected function fireEvent(ClientView $view, array &$keys) - { - event(new BuildAdminClientView($this, $view, $keys)); - } - /** * {@inheritdoc} */ diff --git a/src/Events/BuildAdminClientView.php b/src/Events/BuildAdminClientView.php deleted file mode 100644 index 6e641d21c..000000000 --- a/src/Events/BuildAdminClientView.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Flarum\Events; - -use Flarum\Support\ClientView; -use Flarum\Admin\Actions\ClientAction; - -class BuildAdminClientView extends BuildClientView -{ - /** - * @var ClientAction - */ - public $action; - - /** - * @param ClientAction $action - * @param ClientView $view - * @param array $keys - */ - public function __construct(ClientAction $action, ClientView $view, array &$keys) - { - $this->action = $action; - $this->view = $view; - $this->keys = &$keys; - } -} diff --git a/src/Events/BuildClientView.php b/src/Events/BuildClientView.php index e8ea0bab2..c44bf7356 100644 --- a/src/Events/BuildClientView.php +++ b/src/Events/BuildClientView.php @@ -12,8 +12,10 @@ namespace Flarum\Events; use Flarum\Support\ClientAction; use Flarum\Support\ClientView; +use Flarum\Admin\Actions\ClientAction as AdminClientAction; +use Flarum\Forum\Actions\ClientAction as ForumClientAction; -abstract class BuildClientView +class BuildClientView { /** * @var ClientAction @@ -30,17 +32,39 @@ abstract class BuildClientView */ public $keys; - public function assets($files) + /** + * @param ClientAction $action + * @param ClientView $view + * @param array $keys + */ + public function __construct(ClientAction $action, ClientView $view, array &$keys) + { + $this->action = $action; + $this->view = $view; + $this->keys = &$keys; + } + + public function isForum() + { + return $this->action instanceof ForumClientAction; + } + + public function isAdmin() + { + return $this->action instanceof AdminClientAction; + } + + public function addAssets($files) { $this->view->getAssets()->addFiles((array) $files); } - public function bootstrapper($bootstrapper) + public function addBootstrapper($bootstrapper) { $this->view->addBootstrapper($bootstrapper); } - public function translations(array $keys) + public function addTranslations(array $keys) { foreach ($keys as $key) { $this->keys[] = $key; diff --git a/src/Events/BuildForumClientView.php b/src/Events/BuildForumClientView.php deleted file mode 100644 index e8ae0f7a1..000000000 --- a/src/Events/BuildForumClientView.php +++ /dev/null @@ -1,34 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Flarum\Events; - -use Flarum\Support\ClientView; -use Flarum\Forum\Actions\ClientAction; - -class BuildForumClientView extends BuildClientView -{ - /** - * @var ClientAction - */ - public $action; - - /** - * @param ClientAction $action - * @param ClientView $view - * @param array $keys - */ - public function __construct(ClientAction $action, ClientView $view, array &$keys) - { - $this->action = $action; - $this->view = $view; - $this->keys = &$keys; - } -} diff --git a/src/Forum/Actions/ClientAction.php b/src/Forum/Actions/ClientAction.php index f2963561d..03fe5a8fb 100644 --- a/src/Forum/Actions/ClientAction.php +++ b/src/Forum/Actions/ClientAction.php @@ -15,7 +15,6 @@ use Flarum\Support\ClientView; use Flarum\Api\Client; use Flarum\Core\Settings\SettingsRepository; use Flarum\Locale\LocaleManager; -use Flarum\Events\BuildForumClientView; class ClientAction extends BaseClientAction { @@ -39,14 +38,6 @@ class ClientAction extends BaseClientAction $this->layout = __DIR__.'/../../../views/forum.blade.php'; } - /** - * {@inheritdoc} - */ - protected function fireEvent(ClientView $view, array &$keys) - { - event(new BuildForumClientView($this, $view, $keys)); - } - /** * @inheritdoc */ diff --git a/src/Support/ClientAction.php b/src/Support/ClientAction.php index 60d447bc5..33d201c2a 100644 --- a/src/Support/ClientAction.php +++ b/src/Support/ClientAction.php @@ -19,6 +19,7 @@ use Flarum\Core\Settings\SettingsRepository; use Flarum\Core\Users\User; use Flarum\Locale\JsCompiler as LocaleJsCompiler; use Flarum\Locale\LocaleManager; +use Flarum\Events\BuildClientView; use Psr\Http\Message\ServerRequestInterface as Request; /** @@ -121,7 +122,7 @@ abstract class ClientAction extends HtmlAction // compile only the ones we need. $keys = $this->translationKeys; - $this->fireEvent($view, $keys); + event(new BuildClientView($this, $view, $keys)); if ($localeCompiler) { $translations = $this->locales->getTranslations($locale); @@ -134,13 +135,6 @@ abstract class ClientAction extends HtmlAction return $view; } - /** - * @param ClientView $view - * @param array &$keys - * @return void - */ - abstract protected function fireEvent(ClientView $view, array &$keys); - /** * Flush the client's assets so that they will be regenerated from scratch * on the next render.