Backport Incident Updates from v3.0.0

This commit is contained in:
James Brooks
2016-10-06 17:21:18 +01:00
parent c778ce91c3
commit c94919f1b9
43 changed files with 1834 additions and 85 deletions

View File

@@ -24,13 +24,14 @@
@foreach($incidents as $incident)
<div class="row striped-list-item">
<div class="col-xs-6">
<i class="{{ $incident->icon }}"></i> <strong>{{ $incident->name }}</strong>
<i class="{{ $incident->icon }}"></i> <strong>{{ $incident->name }}</strong> <span class="badge badge-info">{{ trans_choice('dashboard.incidents.updates', $incident->updates->count()) }}</span>
@if($incident->message)
<p><small>{{ Str::words($incident->message, 5) }}</small></p>
@endif
</div>
<div class="col-xs-6 text-right">
<a href="/dashboard/incidents/{{ $incident->id }}/edit" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="/dashboard/incidents/{{ $incident->id }}/update" class="btn btn-info">{{ trans('forms.update') }}</a>
<a href="/dashboard/incidents/{{ $incident->id }}/delete" class="btn btn-danger confirm-action" data-method='DELETE'>{{ trans('forms.delete') }}</a>
</div>
</div>

View File

@@ -0,0 +1,64 @@
@extends('layout.dashboard')
@section('content')
<div class="header">
<div class="sidebar-toggler visible-xs">
<i class="icon ion-navicon"></i>
</div>
<span class="uppercase">
<i class="icon ion-android-alert"></i> {{ trans('dashboard.incidents.incidents') }}
</span>
&gt; <small>{{ trans('dashboard.incidents.update.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('dashboard.partials.errors')
<p class="lead">{!! trans('dashboard.incidents.update.subtitle', ['incident' => $incident->name]) !!}</p>
<form class="form-vertical" name="IncidentUpdateForm" role="form" method="POST" autocomplete="off">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="incident-name">{{ trans('forms.incidents.status') }}</label><br>
<label class="radio-inline">
<input type="radio" name="status" value="1">
<i class="icon ion-flag"></i>
{{ trans('cachet.incidents.status')[1] }}
</label>
<label class="radio-inline">
<input type="radio" name="status" value="2">
<i class="icon ion-alert-circled"></i>
{{ trans('cachet.incidents.status')[2] }}
</label>
<label class="radio-inline">
<input type="radio" name="status" value="3">
<i class="icon ion-eye"></i>
{{ trans('cachet.incidents.status')[3] }}
</label>
<label class="radio-inline">
<input type="radio" name="status" value="4">
<i class="icon ion-checkmark"></i>
{{ trans('cachet.incidents.status')[4] }}
</label>
</div>
<div class="form-group">
<label>{{ trans('forms.incidents.message') }}</label>
<div class="markdown-control">
<textarea name="message" class="form-control autosize" rows="5" required></textarea>
</div>
</div>
</fieldset>
<input type="hidden" name="incident_id" value={{ $incident->id }}>
<div class="form-group">
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.update') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.incidents.index') }}">{{ trans('forms.cancel') }}</a>
</div>
</div>
</form>
</div>
</div>
</div>
@stop

View File

@@ -22,4 +22,15 @@
<div class="panel-body markdown-body">
{!! $incident->formattedMessage !!}
</div>
@if($incident->updates->count())
<div class="list-group">
@foreach($incident->updates as $update)
<a class="list-group-item" href="{{ $update->permalink }}">
<i class="{{ $update->icon }}" title="{{ $update->human_status }}" data-toggle="tooltip"></i> <strong>{{ Str::limit($update->raw_message, 20) }}</strong>
<small>{{ $update->created_at_diff }}</small>
<span class="ion-ios-arrow-right pull-right"></span>
</a>
@endforeach
</div>
@endif
</div>

View File

@@ -5,8 +5,8 @@
<div class="moment {{ $incidentID === 0 ? 'first' : null }}">
<div class="row event clearfix">
<div class="col-sm-1">
<div class="status-icon status-{{ $incident->status }}" data-toggle="tooltip" title="{{ $incident->human_status }}" data-placement="left">
<i class="{{ $incident->icon }}"></i>
<div class="status-icon status-{{ $incident->latest_human_status }}" data-toggle="tooltip" title="{{ $incident->latest_human_status }}" data-placement="left">
<i class="{{ $incident->latest_icon }}"></i>
</div>
</div>
<div class="col-xs-10 col-xs-offset-2 col-sm-11 col-sm-offset-0">

View File

@@ -7,22 +7,39 @@
@stop
@section('content')
<h1>{{ formatted_date($incident->created_at) }}</h1>
<h1>{{ $incident->name }} <small>{{ formatted_date($incident->created_at) }}</small></h1>
<hr>
<div class="markdown-body">
{!! $incident->formattedMessage !!}
</div>
@if($incident->updates)
<div class="timeline">
<div class="content-wrapper">
<div class="moment first">
@foreach ($incident->updates as $index => $update)
<div class="moment {{ $index === 0 ? 'first' : null }}" id="update-{{ $update->id }}">
<div class="row event clearfix">
<div class="col-sm-1">
<div class="status-icon status-{{ $incident->status }}" data-toggle="tooltip" title="{{ $incident->human_status }}" data-placement="left">
<i class="{{ $incident->icon }}"></i>
<div class="status-icon status-{{ $update->status }}" data-toggle="tooltip" title="{{ $update->human_status }}" data-placement="left">
<i class="{{ $update->icon }}"></i>
</div>
</div>
<div class="col-xs-10 col-xs-offset-2 col-sm-11 col-sm-offset-0">
@include('partials.incident', ['incident' => $incident, 'with_link' => false])
<div class="panel panel-message incident">
<div class="panel-body">
<div class="markdown-body">
{!! $update->formattedMessage !!}
</div>
</div>
<div class="panel-footer"><small>{{ trans('cachet.incidents.posted', ['timestamp' => $update->created_at_diff]) }}</small></div>
</div>
</div>
</div>
</div>
@endforeach
</div>
</div>
@endif
@stop