Rewrite the entire scheduled maintenance implementation
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
<span>{{ trans('dashboard.dashboard') }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/incidents*') !!} {!! set_active('dashboard/schedule*') !!}>
|
||||
<li {!! set_active('dashboard/incidents*') !!}>
|
||||
<a href="{{ cachet_route('dashboard.incidents') }}">
|
||||
<i class="ion ion-ios-information-outline"></i>
|
||||
<span>{{ trans('dashboard.incidents.incidents') }}</span>
|
||||
@@ -36,6 +36,13 @@
|
||||
<span class="label label-info">{{ $incident_template_count }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/schedule*') !!}>
|
||||
<a href="{{ cachet_route('dashboard.schedule') }}">
|
||||
<i class="ion ion-android-calendar"></i>
|
||||
<span>{{ trans('dashboard.schedule.schedule') }}</span>
|
||||
<span class="label label-info">{{ $schedule_count }}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li {!! set_active('dashboard/components*') !!}>
|
||||
<a href="{{ cachet_route('dashboard.components') }}">
|
||||
<i class="ion ion-ios-browsers-outline"></i>
|
||||
|
||||
@@ -16,11 +16,10 @@
|
||||
@include('dashboard.partials.errors')
|
||||
<form class="form-vertical" name="ScheduleForm" role="form" method="POST" autocomplete="off">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<input type="hidden" name="visible" value="1">
|
||||
<fieldset>
|
||||
@if($incident_templates->count() > 0)
|
||||
<div class="form-group">
|
||||
<label for="incident-template">{{ trans('forms.incidents.templates.template') }}</label>
|
||||
<label for="incident-template">{{ trans('forms.schedules.templates.template') }}</label>
|
||||
<select class="form-control" name="template">
|
||||
<option selected></option>
|
||||
@foreach($incident_templates as $tpl)
|
||||
@@ -30,27 +29,32 @@
|
||||
</div>
|
||||
@endif
|
||||
<div class="form-group">
|
||||
<label for="incident-name">{{ trans('forms.incidents.name') }}</label>
|
||||
<input type="text" class="form-control" name="name" id="incident-name" required value="{{ Binput::old('incident.name') }}" placeholder="{{ trans('forms.incidents.name') }}">
|
||||
<label for="incident-name">{{ trans('forms.schedules.name') }}</label>
|
||||
<input type="text" class="form-control" name="name" id="incident-name" required value="{{ Binput::old('name') }}" placeholder="{{ trans('forms.schedules.name') }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.incidents.message') }}</label>
|
||||
<label>{{ trans('forms.schedules.status') }}</label><br>
|
||||
@foreach(trans('cachet.schedules.status') as $id => $status)
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="status" value="{{ $id }}" {{ $id === 0 ? 'checked="checked"' : null }}>
|
||||
{{ $status }}
|
||||
</label>
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.schedules.message') }}</label>
|
||||
<div class="markdown-control">
|
||||
<textarea name="message" class="form-control autosize" rows="5" required placeholder="{{ trans('forms.incidents.message') }}">{{ Binput::old('incident.message') }}</textarea>
|
||||
<textarea name="message" class="form-control autosize" rows="5" required placeholder="{{ trans('forms.schedules.message') }}">{{ Binput::old('message') }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.incidents.scheduled_at') }}</label>
|
||||
<input type="text" name="scheduled_at" class="form-control" rel="datepicker" required placeholder="{{ trans('forms.incidents.scheduled_at') }}">
|
||||
<label>{{ trans('forms.schedules.scheduled_at') }}</label>
|
||||
<input type="text" name="scheduled_at" class="form-control" rel="datepicker-custom" data-date-format="YYYY-MM-DD HH:mm" required placeholder="{{ trans('forms.schedules.scheduled_at') }}">
|
||||
</div>
|
||||
@if(subscribers_enabled())
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="notify" value="1" checked="{{ Binput::old('incident.message', 'checked') }}">
|
||||
{{ trans('forms.incidents.notify_subscribers') }}
|
||||
</label>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.schedules.scheduled_at') }}</label>
|
||||
<input type="text" name="completed_at" class="form-control" rel="datepicker-custom" data-date-format="YYYY-MM-DD HH:mm" placeholder="{{ trans('forms.schedules.scheduled_at') }}">
|
||||
</div>
|
||||
@endif
|
||||
</fieldset>
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
@@ -16,11 +16,11 @@
|
||||
@include('dashboard.partials.errors')
|
||||
<form class="form-vertical" name="ScheduleForm" role="form" method='POST' autocomplete="off">
|
||||
<input type="hidden" name="_token" value="{{ csrf_token() }}">
|
||||
<input type="hidden" name="incident[visible]" value="1">
|
||||
<input type="hidden" name="visible" value="1">
|
||||
<fieldset>
|
||||
@if($incident_templates->count() > 0)
|
||||
<div class="form-group">
|
||||
<label for="incident-template">{{ trans('forms.incidents.templates.template') }}</label>
|
||||
<label for="incident-template">{{ trans('forms.schedules.templates.template') }}</label>
|
||||
<select class="form-control" name="template">
|
||||
<option selected></option>
|
||||
@foreach($incident_templates as $tpl)
|
||||
@@ -30,18 +30,31 @@
|
||||
</div>
|
||||
@endif
|
||||
<div class="form-group">
|
||||
<label for="incident-name">{{ trans('forms.incidents.name') }}</label>
|
||||
<input type="text" class="form-control" name="incident[name]" id="incident-name" required value="{{ $schedule->name }}" placeholder="{{ trans('forms.incidents.name') }}">
|
||||
<label for="incident-name">{{ trans('forms.schedules.name') }}</label>
|
||||
<input type="text" class="form-control" name="name" id="incident-name" required value="{{ $schedule->name }}" placeholder="{{ trans('forms.schedules.name') }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.incidents.message') }}</label>
|
||||
<label>{{ trans('forms.schedules.status') }}</label><br>
|
||||
@foreach(trans('cachet.schedules.status') as $id => $status)
|
||||
<label class="radio-inline">
|
||||
<input type="radio" name="status" value="{{ $id }}" {{ $id === $schedule->status ? 'checked="checked"' : null }}>
|
||||
{{ $status }}
|
||||
</label>
|
||||
@endforeach
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.schedules.message') }}</label>
|
||||
<div class='markdown-control'>
|
||||
<textarea name="incident[message]" class="form-control autosize" rows="5" required>{{ $schedule->message }}</textarea>
|
||||
<textarea name="message" class="form-control autosize" rows="5" required>{{ $schedule->message }}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.incidents.scheduled_at') }}</label>
|
||||
<input type="text" name="incident[scheduled_at]" class="form-control" rel="datepicker" value="{{ $schedule->scheduled_at_datetimepicker }}" required placeholder="{{ trans('forms.incidents.scheduled_at') }}">
|
||||
<label>{{ trans('forms.schedules.scheduled_at') }}</label>
|
||||
<input type="text" name="scheduled_at" class="form-control" rel="datepicker-custom" data-date-format="YYYY-MM-DD HH:mm" value="{{ $schedule->scheduled_at_datetimepicker }}" required placeholder="{{ trans('forms.schedules.scheduled_at') }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>{{ trans('forms.schedules.completed_at') }}</label>
|
||||
<input type="text" name="completed_at" class="form-control" rel="datepicker-custom" data-date-format="YYYY-MM-DD HH:mm" value="{{ $schedule->completed_at_datetimepicker }}" placeholder="{{ trans('forms.schedules.completed_at') }}">
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<div class="col-xs-6">
|
||||
<strong>{{ $incident->name }}</strong>
|
||||
<br>
|
||||
{{ trans('dashboard.schedule.scheduled_at', ['timestamp' => $incident->scheduled_at_iso]) }}
|
||||
{{ trans('dashboard.schedule.scheduled_at', ['timestamp' => $incident->scheduled_at_formatted]) }}
|
||||
@if($incident->message)
|
||||
<p><small>{{ Str::words($incident->message, 5) }}</small></p>
|
||||
@endif
|
||||
|
||||
@@ -1,14 +1,20 @@
|
||||
<div class="timeline schedule">
|
||||
<div class="panel panel-info">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<strong>{{ trans('cachet.incidents.scheduled') }}</strong>
|
||||
</div>
|
||||
<div class="list-group">
|
||||
@foreach($scheduled_maintenance as $schedule)
|
||||
<div class="list-group-item">
|
||||
<a href="{{ cachet_route('schedule', $schedule) }}" class="list-group-item">
|
||||
<strong>{{ $schedule->name }}</strong> <small class="date"><abbr class="timeago" data-toggle="tooltip" data-placement="right" title="{{ $schedule->scheduled_at_formatted }}" data-timeago="{{ $schedule->scheduled_at_iso }}"></abbr></small>
|
||||
{!! $schedule->formattedMessage !!}
|
||||
</div>
|
||||
@if($schedule->components->count() > 0)
|
||||
<hr>
|
||||
@foreach($schedule->components as $affected_component)
|
||||
<span class="label label-primary">{{ $affected_component->component->name }}</span>
|
||||
@endforeach
|
||||
@endif
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
35
resources/views/single-schedule.blade.php
Normal file
35
resources/views/single-schedule.blade.php
Normal file
@@ -0,0 +1,35 @@
|
||||
@extends('layout.master')
|
||||
|
||||
@section('bodyClass', 'no-padding')
|
||||
|
||||
@section('outer-content')
|
||||
@include('partials.nav')
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
<h1>{{ $schedule->name }}</h1>
|
||||
|
||||
<div class="timeline">
|
||||
<div class="content-wrapper">
|
||||
<div class="moment first">
|
||||
<div class="row event clearfix">
|
||||
<div class="col-sm-1">
|
||||
<div class="status-icon status-{{ $schedule->status }}" data-toggle="tooltip" title="{{ $schedule->human_status }}" data-placement="left">
|
||||
<i class="icon ion-android-calendar"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-10 col-xs-offset-2 col-sm-11 col-sm-offset-0">
|
||||
<div class="panel panel-message incident">
|
||||
<div class="panel-heading">
|
||||
<strong>{{ $schedule->name }}</strong>{{ trans("cachet.incidents.scheduled_at", ["timestamp" => $schedule->scheduled_at_diff]) }}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
{!! $schedule->formattedMessage !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@stop
|
||||
Reference in New Issue
Block a user