Merge pull request #377 from cachethq/composer-providers

Make view composers into service providers
This commit is contained in:
James Brooks 2015-01-14 10:03:24 +00:00
commit 6b739a9c7e
5 changed files with 73 additions and 44 deletions

View File

@ -1,33 +0,0 @@
<?php
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use Illuminate\Support\Facades\View;
View::composer('index', function ($view) {
$date = date('Y-m-d');
$components = Component::notStatus(1);
if (Component::all()->count() === 0 || $components->count() === 0) {
// If all our components are ok, do we have any non-fixed incidents?
$incidents = Incident::orderBy('created_at', 'desc')->get();
$incidentCount = $incidents->count();
if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) {
$status = 'success';
$message = trans('cachet.service.good');
} else {
$status = 'danger';
$message = trans('cachet.service.bad');
}
} else {
$status = 'danger';
$message = trans('cachet.service.bad');
}
$view->with([
'systemStatus' => $status,
'systemMessage' => $message,
]);
});

View File

@ -144,6 +144,7 @@ return [
'CachetHQ\Cachet\Providers\ConsoleServiceProvider',
'CachetHQ\Cachet\Providers\RepositoryServiceProvider',
'CachetHQ\Cachet\Providers\RoutingServiceProvider',
'CachetHQ\Cachet\Providers\ViewComposerServiceProvider',
],

View File

@ -61,14 +61,3 @@ App::missing(function ($exception) {
App::down(function () {
return Response::make("Be right back!", 503);
});
/*
|--------------------------------------------------------------------------
| View Composers
|--------------------------------------------------------------------------
|
| Register Cachet's view composers.
|
*/
require app_path('composers.php');

View File

@ -0,0 +1,44 @@
<?php
namespace CachetHQ\Cachet\Composers;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use Illuminate\Support\Facades\View;
class IndexComposer
{
/**
* Index page view composer.
*
* @param \Illuminate\View\View $view
*
* @return void
*/
public function compose(\Illuminate\View\View $view)
{
$components = Component::notStatus(1);
if (Component::all()->count() === 0 || $components->count() === 0) {
// If all our components are ok, do we have any non-fixed incidents?
$incidents = Incident::orderBy('created_at', 'desc')->get();
$incidentCount = $incidents->count();
if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) {
$status = 'success';
$message = trans('cachet.service.good');
} else {
$status = 'danger';
$message = trans('cachet.service.bad');
}
} else {
$status = 'danger';
$message = trans('cachet.service.bad');
}
$view->with([
'systemStatus' => $status,
'systemMessage' => $message,
]);
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace CachetHQ\Cachet\Providers;
use Illuminate\Support\ServiceProvider;
class ViewComposerServiceProvider extends ServiceProvider
{
/**
* Boot the service provider.
*
* @return void
*/
public function boot()
{
//
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->view->composer('index', 'CachetHQ\Cachet\Composers\IndexComposer');
}
}