Merge pull request #2519 from CachetHQ/maintenance-mode

Fix supporting of "artisan down" command
This commit is contained in:
James Brooks
2017-05-07 14:54:32 +01:00
committed by GitHub
9 changed files with 135 additions and 2 deletions

View File

@@ -0,0 +1,104 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Foundation\Exceptions\Displayers;
use Exception;
use GrahamCampbell\Exceptions\Displayers\DisplayerInterface;
use Illuminate\Contracts\View\Factory;
use Illuminate\Foundation\Http\Exceptions\MaintenanceModeException;
use Illuminate\Http\Response;
/**
* This is the maintenance displayer class.
*
* @author James Brooks <james@alt-three.com>
*/
class MaintenanceDisplayer implements DisplayerInterface
{
/**
* The view factory instance.
*
* @var \Illuminate\Contracts\View\Factory
*/
protected $view;
/**
* Create a new maintenance displayer instance.
*
* @param \Illuminate\Contracts\View\Factory $view
*
* @return void
*/
public function __construct(Factory $view)
{
$this->view = $view;
}
/**
* Get the error response associated with the given exception.
*
* @param \Exception $exception
* @param string $id
* @param int $code
* @param string[] $headers
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function display(Exception $exception, $id, $code, array $headers)
{
return new Response($this->render(), $code, array_merge($headers, ['Content-Type' => $this->contentType()]));
}
/**
* Render the page.
*
* @return string
*/
protected function render()
{
return $this->view->make('errors.maintenance')->render();
}
/**
* Get the supported content type.
*
* @return string
*/
public function contentType()
{
return 'text/html';
}
/**
* Can we display the exception?
*
* @param \Exception $original
* @param \Exception $transformed
* @param int $code
*
* @return bool
*/
public function canDisplay(Exception $original, Exception $transformed, $code)
{
return $transformed instanceof MaintenanceModeException;
}
/**
* Do we provide verbose information about the exception?
*
* @return bool
*/
public function isVerbose()
{
return false;
}
}

View File

@@ -38,7 +38,7 @@ class ComposerServiceProvider extends ServiceProvider
{
$factory->composer('*', AppComposer::class);
$factory->composer('*', CurrentUserComposer::class);
$factory->composer(['index', 'single-incident', 'subscribe.*', 'signup', 'dashboard.settings.theme', 'notifications::email', 'single-schedule'], ThemeComposer::class);
$factory->composer(['index', 'single-incident', 'subscribe.*', 'signup', 'dashboard.settings.theme', 'notifications::email', 'single-schedule', 'errors.*'], ThemeComposer::class);
$factory->composer('dashboard.*', DashboardComposer::class);
$factory->composer(['setup.*', 'dashboard.settings.localization'], TimezoneLocaleComposer::class);

View File

@@ -50,6 +50,7 @@ return [
'CachetHQ\Cachet\Foundation\Exceptions\Displayers\JsonValidationDisplayer',
'CachetHQ\Cachet\Foundation\Exceptions\Displayers\RedirectDisplayer',
'CachetHQ\Cachet\Foundation\Exceptions\Displayers\ThrottleDisplayer',
'CachetHQ\Cachet\Foundation\Exceptions\Displayers\MaintenanceDisplayer',
'GrahamCampbell\Exceptions\Displayers\DebugDisplayer',
'GrahamCampbell\Exceptions\Displayers\HtmlDisplayer',
'GrahamCampbell\Exceptions\Displayers\JsonDisplayer',

View File

@@ -0,0 +1,12 @@
@extends('layout.master')
@section('content')
<div class="panel panel-info">
<div class="panel-heading">
<strong>Under Maintenance</strong>
</div>
<div class="panel-body">
<p>We're currently under maintnenance, come back shortly.</p>
</div>
</div>
@stop

View File

@@ -3,3 +3,7 @@
@section('content')
@modules
@stop
@section('bottom-content')
@include('partials.footer')
@stop

View File

@@ -76,6 +76,6 @@
@yield('content')
</div>
@include('partials.footer')
@yield('bottom-content')
</body>
</html>

View File

@@ -45,3 +45,7 @@
</div>
</div>
@stop
@section('bottom-content')
@include('partials.footer')
@stop

View File

@@ -43,3 +43,7 @@
</div>
@endif
@stop
@section('bottom-content')
@include('partials.footer')
@stop

View File

@@ -33,3 +33,7 @@
</div>
</div>
@stop
@section('bottom-content')
@include('partials.footer')
@stop