Files
cachet-docker/app/Composers/IndexComposer.php
DivineOmega 0ca1668518 Initial dynamic favicon code
Syntax and logic fixes

New favicons

Contribution Guidelines

Removed trailing spaces

Style tweaks

Comma

Suggested code changes

Changed high and medium alert icons to be exclamation marks protruding through a circle

Moved favicon logic to IndexComposer

Style fixes

Removed whitespace
2015-06-23 14:41:41 +01:00

57 lines
1.7 KiB
PHP

<?php
/*
* This file is part of Cachet.
*
* (c) Cachet HQ <support@cachethq.io>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Composers;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use Illuminate\Contracts\View\View;
class IndexComposer
{
/**
* Index page view composer.
*
* @param \Illuminate\Contracts\View\View $view
*/
public function compose(View $view)
{
// Default data
$withData = [
'systemStatus' => 'danger',
'systemMessage' => trans('cachet.service.bad'),
'favicon' => 'favicon',
];
if (Component::notStatus(1)->count() === 0) {
// If all our components are ok, do we have any non-fixed incidents?
$incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get();
$incidentCount = $incidents->count();
if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) {
$withData = [
'systemStatus' => 'success',
'systemMessage' => trans('cachet.service.good'),
];
}
}
// Determine favicon to use
if (Component::where('status', 4)->count() > 0 || Incident::where('status', 2)->count() > 0) {
$withData['favicon'] = 'favicon-high-alert';
} elseif (Component::whereIn('status', [2, 3])->count() > 0 || Incident::whereIn('status', [1, 3])->count() > 0) {
$withData['favicon'] = 'favicon-medium-alert';
}
$view->with($withData);
}
}