Merge pull request #2519 from CachetHQ/maintenance-mode
Fix supporting of "artisan down" command
This commit is contained in:
104
app/Foundation/Exceptions/Displayers/MaintenanceDisplayer.php
Normal file
104
app/Foundation/Exceptions/Displayers/MaintenanceDisplayer.php
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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',
|
||||
|
||||
12
resources/views/errors/maintenance.blade.php
Normal file
12
resources/views/errors/maintenance.blade.php
Normal 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
|
||||
@@ -3,3 +3,7 @@
|
||||
@section('content')
|
||||
@modules
|
||||
@stop
|
||||
|
||||
@section('bottom-content')
|
||||
@include('partials.footer')
|
||||
@stop
|
||||
|
||||
@@ -76,6 +76,6 @@
|
||||
@yield('content')
|
||||
</div>
|
||||
|
||||
@include('partials.footer')
|
||||
@yield('bottom-content')
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -45,3 +45,7 @@
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
||||
@section('bottom-content')
|
||||
@include('partials.footer')
|
||||
@stop
|
||||
|
||||
@@ -43,3 +43,7 @@
|
||||
</div>
|
||||
@endif
|
||||
@stop
|
||||
|
||||
@section('bottom-content')
|
||||
@include('partials.footer')
|
||||
@stop
|
||||
|
||||
@@ -33,3 +33,7 @@
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
|
||||
@section('bottom-content')
|
||||
@include('partials.footer')
|
||||
@stop
|
||||
|
||||
Reference in New Issue
Block a user