Linking directly to an individual incident

This commit is contained in:
James Brooks
2015-08-15 15:10:20 +01:00
parent c2c815ab14
commit 8a3f9196d3
7 changed files with 76 additions and 38 deletions

View File

@@ -94,6 +94,7 @@ class StatusPageController extends Controller
*/
public function showIncident(Incident $incident)
{
return View::make('incident')
->withIncident($incident);
}
}

View File

@@ -33,12 +33,12 @@ class StatusPageRoutes
], function ($router) {
$router->get('/', [
'as' => 'status-page',
'uses' => 'HomeController@showIndex',
'uses' => 'StatusPageController@showIndex',
]);
$router->get('incident/{incident}', [
'as' => 'incident',
'uses' => 'HomeController@showIncident',
'uses' => 'StatusPageController@showIncident',
]);
});
}

View File

@@ -33,8 +33,8 @@ class ComposerServiceProvider extends ServiceProvider
$factory->composer('*', AppComposer::class);
$factory->composer('*', CurrentUserComposer::class);
$factory->composer(['index'], MetricsComposer::class);
$factory->composer(['index', 'subscribe'], StatusPageComposer::class);
$factory->composer(['index', 'subscribe'], ThemeComposer::class);
$factory->composer(['index', 'incident', 'subscribe'], StatusPageComposer::class);
$factory->composer(['index', 'incident', 'subscribe'], ThemeComposer::class);
$factory->composer('dashboard.*', DashboardComposer::class);
$factory->composer(['setup', 'dashboard.settings.app-setup'], TimezoneLocaleComposer::class);
}

View File

@@ -16,6 +16,17 @@ body.status-page {
margin-bottom: 20px;
}
img {
box-sizing: border-box;
&.emoji {
height: 20px;
width: 20px;
vertical-align: middle;
max-width: none;
}
}
.tooltip {
.tooltip-inner {
padding: 8px 12px;
@@ -231,17 +242,6 @@ body.status-page {
font-size: 1.1em;
}
}
img {
box-sizing: border-box;
&.emoji {
height: 20px;
width: 20px;
vertical-align: middle;
max-width: none;
}
}
}
}
}

View File

@@ -0,0 +1,33 @@
@extends('layout.master')
@section('content')
<div class="pull-right">
@if($subscribersEnabled)
<p><a class="btn btn-success btn-outline" href="{{ route('subscribe.subscribe') }}">{{ trans('cachet.subscriber.button') }}</a></p>
@endif
<p><a class="btn btn-success btn-outline" href="/"><i class="ion-home"></i></a></p>
</div>
<div class="clearfix"></div>
<div class="section-messages">
@include('dashboard.partials.errors')
</div>
@if($bannerImage = Setting::get('app_banner'))
<div class="row app-banner">
<div class="col-md-12 text-center">
<?php $bannerType = Setting::get('app_banner_type') ?>
@if($app_url = Setting::get('app_domain'))
<a href="{{ $app_url }}"><img src="data:{{ $bannerType }};base64, {{ $bannerImage}}" class="banner-image img-responsive"></a>
@else
<img src="data:{{ $bannerType }};base64, {{ $bannerImage}}" class="banner-image img-responsive">
@endif
</div>
</div>
@endif
<h4>{{ formatted_date($incident->created_at) }}</h4>
@include('partials.incident', ['incident' => $incident, 'with_link' => false])
@stop

View File

@@ -0,0 +1,25 @@
<div class="panel panel-message">
<div class="panel-heading">
@if($current_user)
<div class="pull-right btn-group">
<a href="{{ route('dashboard.incidents.edit', ['id' => $incident->id]) }}" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="{{ route('dashboard.incidents.delete', ['id' => $incident->id]) }}" class="btn btn-danger confirm-action" data-method='DELETE'>{{ trans('forms.delete') }}</a>
</div>
@endif
@if($incident->component)
<span class="label label-default">{{ $incident->component->name }}</span>
@endif
<strong>{{ $incident->name }}</strong>{{ $incident->isScheduled ? trans("cachet.incidents.scheduled_at", ["timestamp" => $incident->scheduled_at_diff]) : null }}
<br>
<small class="date">
@if($with_link)
<a href="{{ route('incident', ['id' => $incident->id]) }}"><abbr class="timeago" data-toggle="tooltip" data-placement="right" title="{{ $incident->created_at_formatted }}" data-timeago="{{ $incident->created_at_iso }}"></abbr></a>
@else
<abbr class="timeago" data-toggle="tooltip" data-placement="right" title="{{ $incident->created_at_formatted }}" data-timeago="{{ $incident->created_at_iso }}"></abbr>
@endif
</small>
</div>
<div class="panel-body">
{!! $incident->formattedMessage !!}
</div>
</div>

View File

@@ -10,28 +10,7 @@
</div>
</div>
<div class="col-xs-10 col-xs-offset-2 col-sm-11 col-sm-offset-0">
<div class="panel panel-message">
<div class="panel-heading">
@if($current_user)
<div class="pull-right btn-group">
<a href="{{ route('dashboard.incidents.edit', ['id' => $incident->id]) }}" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="{{ route('dashboard.incidents.delete', ['id' => $incident->id]) }}" class="btn btn-danger confirm-action" data-method='DELETE'>{{ trans('forms.delete') }}</a>
</div>
@endif
@if($incident->component)
<span class="label label-default">{{ $incident->component->name }}</span>
@endif
<strong>{{ $incident->name }}</strong>{{ $incident->isScheduled ? trans("cachet.incidents.scheduled_at", ["timestamp" => $incident->scheduled_at_diff]) : null }}
<br>
<small class="date">
<abbr class="timeago" data-toggle="tooltip" data-placement="right" title="{{ $incident->created_at_formatted }}" data-timeago="{{ $incident->created_at_iso }}">
</abbr>
</small>
</div>
<div class="panel-body">
{!! $incident->formattedMessage !!}
</div>
</div>
@include('partials.incident', ['incident' => $incident, 'with_link' => true])
</div>
</div>
</div>