Cachet is now a Laravel 5 app

This commit is contained in:
Joseph Cohen
2015-03-20 18:30:45 -06:00
parent 7cfa158e68
commit b4ac66d727
338 changed files with 4164 additions and 4114 deletions
@@ -0,0 +1,70 @@
@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="icons ion-outlet"></i> {{ trans('dashboard.components.components') }}
</span>
&gt; <small>{{ trans('dashboard.components.add.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<form name="CreateComponentForm" class="form-vertical" role="form" action="/dashboard/components/add" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="component-name">{{ trans('forms.components.name') }}</label>
<input type="text" class="form-control" name="component[name]" id="component-name" required>
</div>
<div class="form-group">
<label for="component-status">{{ trans('forms.components.status') }}</label>
<select name="component[status]" class="form-control">
@foreach(trans('cachet.components.status') as $statusID => $status)
<option value="{{ $statusID }}">{{ $status }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>{{ trans('forms.components.description') }}</label>
<textarea name="component[description]" class="form-control" rows="5"></textarea>
</div>
<input type="hidden" name="component[group_id]" value="0">
@if($groups->count() > 0)
<div class="form-group">
<label>{{ trans('forms.components.group') }}</label>
<select name="component[group_id]" class="form-control">
<option selected></option>
@foreach($groups as $group)
<option value="{{ $group->id }}">{{ $group->name }}</option>
@endforeach
</select>
</div>
@endif
<hr>
<div class="form-group">
<label>{{ trans('forms.components.link') }}</label>
<input type="text" name="component[link]" class="form-control">
</div>
<div class="form-group">
<label>{{ trans('forms.components.tags') }}</label>
<input name="component[tags]" class="form-control">
<span class="help-block">{{ trans('forms.components.tags-help') }}</span>
</div>
</fieldset>
<input type="hidden" name="component[order]" value="0">
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.create') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.components') }}">{{ trans('forms.cancel') }}</a>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,71 @@
@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="icons ion-outlet"></i> {{ trans('dashboard.components.components') }}
</span>
&gt; <small>{{ trans('dashboard.components.edit.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<form name="EditComponentForm" class="form-vertical" role="form" action="/dashboard/components/{{ $component->id }}/edit" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="incident-name">{{ trans('forms.components.name') }}</label>
<input type="text" class="form-control" name="component[name]" id="component-name" required value="{{ $component->name }}">
</div>
<div class="form-group">
<label for="component-status">{{ trans('forms.components.status') }}</label>
<select name="component[status]" class="form-control">
@foreach(trans('cachet.components.status') as $statusID => $status)
<option value="{{ $statusID }}" {{ $statusID === $component->status ? "selected" : "" }}>{{ $status }}</option>
@endforeach
</select>
</div>
<div class="form-group">
<label>{{ trans('forms.components.description') }}</label>
<textarea name="component[description]" class="form-control" rows="5">{{ $component->description }}</textarea>
</div>
<input type="hidden" name="component[group_id]" value="0">
@if($groups->count() > 0)
<div class="form-group">
<label>{{ trans('forms.components.group') }}</label>
<select name="component[group_id]" class="form-control">
<option {{ $component->group_id === null ? 'selected' : null }}></option>
@foreach($groups as $group)
<option value="{{ $group->id }}" {{ $component->group_id === $group->id ? 'selected' : null }}>{{ $group->name }}</option>
@endforeach
</select>
</div>
@endif
<hr>
<div class="form-group">
<label>{{ trans('forms.components.link') }}</label>
<input type="text" name="component[link]" class="form-control" value="{{ $component->link }}">
</div>
<div class="form-group">
<label>{{ trans('forms.components.tags') }}</label>
<input name="component[tags]" class="form-control" value="{{ $component->tagsList }}">
<span class="help-block">{{ trans('forms.components.tags-help') }}</span>
</div>
</fieldset>
<input type="hidden" name="component[user_id]" value="{{ $component->agent_id || $loggedUser->id }}">
<input type="hidden" name="component[order]" value="{{ $component->order or 0 }}">
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.save') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.components') }}">{{ trans('forms.cancel') }}</a>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,34 @@
@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="icons ion-ios-keypad"></i> {{ trans_choice('dashboard.components.groups.groups', 2) }}
</span>
&gt; <small>{{ trans('dashboard.components.groups.add.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<form name="CreateComponentGroupForm" class="form-vertical" role="form" action="/dashboard/components/groups/add" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="incident-name">{{ trans('forms.components.groups.name') }}</label>
<input type="text" class="form-control" name="group[name]" id="group-name" required>
</div>
</fieldset>
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.add') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.components.groups') }}">{{ trans('forms.cancel') }}</a>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,34 @@
@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="icons ion-ios-keypad"></i> {{ trans_choice('dashboard.components.groups.groups', 2) }}
</span>
&gt; <small>{{ trans('dashboard.components.groups.edit.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<form name="EditComponentGroupForm" class="form-vertical" role="form" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="incident-name">{{ trans('forms.components.groups.name') }}</label>
<input type="text" class="form-control" name="group[name]" id="group-name" value="{{ $group->name }}" required>
</div>
</fieldset>
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.save') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.components.groups') }}">{{ trans('forms.cancel') }}</a>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,37 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header">
<span class="uppercase">
<i class="icons ion-ios-keypad"></i> {{ trans_choice('dashboard.components.groups.groups', 2) }}
</span>
<a class="btn btn-sm btn-success pull-right" href="{{ route('dashboard.components.groups.add') }}">
{{ trans('dashboard.components.groups.add.title') }}
</a>
<div class="clearfix"></div>
</div>
<div class="row">
<div class="col-sm-12 striped-list">
@forelse($groups as $group)
<div class="row striped-list-item">
<div class="col-xs-6">
<strong>{{ $group->name }}</strong> <span class="label label-info">{{ $group->components->count() }}</span>
</div>
<div class="col-xs-6 text-right">
<a href="{{ route('dashboard.components.groups.edit', [$group->id]) }}" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="/dashboard/components/groups/{{ $group->id }}/delete" class="btn btn-danger confirm-action" data-method="DELETE">{{ trans('forms.delete') }}</a>
</div>
</div>
@empty
<div class="list-group-item text-danger">{{ trans('dashboard.components.add.message') }}</div>
@endforelse
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,51 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header">
<span class="uppercase">
<i class="icons ion-outlet"></i> {{ trans('dashboard.components.components') }}
</span>
<a class="btn btn-sm btn-success pull-right" href="{{ route('dashboard.components.add') }}">
{{ trans('dashboard.components.add.title') }}
</a>
<div class="clearfix"></div>
</div>
<div class="row">
<form name="componentList">
<div class="col-sm-12 striped-list" id="component-list">
@forelse($components as $component)
<div class="row striped-list-item">
<div class="col-xs-6">
<h4>
@if($components->count() > 1)
<span class="drag-handle"><i class="ion-drag"></i></span>
@endif
{{ $component->name }} <small>{{ $component->humanStatus }}</small>
</h4>
@if($component->group)
<p><small>{{ trans('dashboard.components.listed_group', ['name' => $component->group->name]) }}</small></p>
@endif
@if($component->description)
<p>{{ $component->description }}</p>
@endif
</div>
<div class="col-xs-6 text-right">
<a href="/dashboard/components/{{ $component->id }}/edit" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="/dashboard/components/{{ $component->id }}/delete" class="btn btn-danger confirm-action" data-method="DELETE">{{ trans('forms.delete') }}</a>
</div>
<input type="hidden" rel="order" name="component[{{ $component->id }}]" value="{{ $component->order }}">
</div>
@empty
<div class="list-group-item text-danger">{{ trans('dashboard.components.add.message') }}</div>
@endforelse
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,102 @@
@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.add.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('partials.dashboard.errors')
<form class="form-vertical" name="IncidentForm" role="form" method="POST" autocomplete="off">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
@if($incidentTemplates->count() > 0)
<div class="form-group">
<label for="incident-template">{{ trans('forms.incidents.templates.template') }}</label>
<select class="form-control" name="template">
<option selected></option>
@foreach($incidentTemplates as $tpl)
<option value="{{ $tpl->slug }}">{{ $tpl->name }}</option>
@endforeach
</select>
</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="{{ Input::old('incident.name') }}">
</div>
<div class="form-group">
<label for="incident-name">{{ trans('forms.incidents.status') }}</label><br>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="1">
<i class="icon ion-flag"></i>
{{ trans('cachet.incidents.status')[1] }}
</label>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="2">
<i class="icon ion-alert-circled"></i>
{{ trans('cachet.incidents.status')[2] }}
</label>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="3">
<i class="icon ion-eye"></i>
{{ trans('cachet.incidents.status')[3] }}
</label>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="4">
<i class="icon ion-checkmark"></i>
{{ trans('cachet.incidents.status')[4] }}
</label>
</div>
@if($components->count() > 0)
<div class="form-group">
<label>{{ trans('forms.incidents.component') }}</label>
<select name='incident[component_id]' class='form-control'>
<option value='0' selected></option>
@foreach($components as $component)
<option value='{{ $component->id }}'>{{ $component->name }}</option>
@endforeach
</select>
<span class='help-block'>{{ trans('forms.optional') }}</span>
</div>
@endif
<div class="form-group hidden" id='component-status'>
<div class="well">
<div class="radio-items">
@foreach(trans('cachet.components.status') as $statusID => $status)
<div class="radio-inline">
<label>
<input type="radio" name="incident[component_status]" value="{{ $statusID }}" >
{{ $status }}
</label>
</div>
@endforeach
</div>
</div>
</div>
<div class="form-group">
<label>{{ trans('forms.incidents.message') }}</label>
<div class='markdown-control'>
<textarea name="incident[message]" class="form-control" rows="5" required>{{ Input::old('incident.message') }}</textarea>
</div>
</div>
</fieldset>
<div class="form-group">
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.add') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.incidents') }}">{{ trans('forms.cancel') }}</a>
</div>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,93 @@
@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.edit.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('partials.dashboard.errors')
<form class="form-vertical" name="IncidentForm" 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.name') }}</label>
<input type="text" class="form-control" name="incident[name]" id="incident-name" required value="{{$incident->name}}">
</div>
<div class="form-group">
<label for="incident-name">{{ trans('forms.incidents.status') }}</label><br>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="1" {{ ($incident->status == 1) ? "checked=checked" : "" }}>
<i class="icon ion-flag"></i>
{{ trans('cachet.incidents.status')[1] }}
</label>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="2" {{ ($incident->status == 2) ? "checked=checked" : "" }}>
<i class="icon ion-alert-circled"></i>
{{ trans('cachet.incidents.status')[2] }}
</label>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="3" {{ ($incident->status == 3) ? "checked=checked" : "" }}>
<i class="icon ion-eye"></i>
{{ trans('cachet.incidents.status')[3] }}
</label>
<label class="radio-inline">
<input type="radio" name="incident[status]" value="4" {{ ($incident->status == 4) ? "checked=checked" : "" }}>
<i class="icon ion-checkmark"></i>
{{ trans('cachet.incidents.status')[4] }}
</label>
</div>
@if($components->count() > 0)
<div class='form-group'>
<label>{{ trans('forms.incidents.component') }}</label>
<select name='incident[component_id]' class='form-control'>
<option value='0' {{ $incident->id === 0 ? "selected" : null }}></option>
@foreach($components as $component)
<option value='{{ $component->id }}' {{ $incident->component_id === $component->id ? "selected" : null }}>{{ $component->name }}</option>
@endforeach
</select>
<span class='help-block'>{{ trans('forms.optional') }}</span>
</div>
<div class="form-group {{ $incident->component_id === 0 ? 'hidden' : null }}" id='component-status'>
<div class="well">
<div class="radio-items">
@foreach(trans('cachet.components.status') as $statusID => $status)
<div class="radio-inline">
<label>
<input type="radio" name="incident[component_status]" value="{{ $statusID }}" {{ $incident->component_id > 0 && $incident->component->status === $statusID ? 'checked' : null }}>
{{ $status }}
</label>
</div>
@endforeach
</div>
</div>
</div>
@endif
<div class="form-group">
<label>{{ trans('forms.incidents.message') }}</label>
<div class='markdown-control'>
<textarea name="incident[message]" class="form-control" rows="5" required>{{ $incident->message }}</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') }}">{{ trans('forms.cancel') }}</a>
</div>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,43 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header">
<span class="uppercase">
<i class="icon ion-android-alert"></i> {{ trans('dashboard.incidents.incidents') }}
</span>
<a class="btn btn-sm btn-success pull-right" href="{{ route('dashboard.incidents.add') }}">
{{ trans('dashboard.incidents.add.title') }}
</a>
<div class="clearfix"></div>
</div>
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<p class="lead">{{ trans_choice('dashboard.incidents.logged', $incidents->count(), ['count' => $incidents->count()]) }}</p>
<div class="striped-list">
@foreach($incidents as $incident)
<div class="row striped-list-item">
<div class="col-xs-6">
<i class="{{ $incident->icon }}"></i> <strong>{{ $incident->name }}</strong>
@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 }}/delete" class="btn btn-danger confirm-action" data-method='DELETE'>{{ trans('forms.delete') }}</a>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,39 @@
@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-plus"></i> {{ trans('dashboard.incidents.templates.title') }}
</span>
&gt; <small>{{ trans('dashboard.incidents.templates.add.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('partials.dashboard.errors')
<form class="form-vertical" name="IncidentForm" role="form" method="POST" autocomplete="off">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="template-name">{{ trans('forms.incidents.templates.name') }}</label>
<input type="text" class="form-control" name="template[name]" id="template-name" required>
</div>
<div class="form-group">
<label>{{ trans('forms.incidents.templates.template') }}</label>
<div class='markdown-control'>
<textarea name="template[template]" class="form-control" rows="5" required></textarea>
</div>
</div>
</fieldset>
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.create') }}</button>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,48 @@
@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-document"></i> {{ trans('dashboard.incidents.templates.title') }}
</span>
&gt; <small>{{ trans('dashboard.incidents.templates.edit.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@if($updatedTemplate = Session::get('updatedTemplate'))
<div class="alert alert-{{ $updatedTemplate->isValid() ? 'success' : 'danger' }}">
@if($updatedTemplate->isValid())
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.awesome'), trans('dashboard.incidents.templates.edit.success')) }}
@else
{{ sprintf("<strong>%s</strong> %s", trans('dashboard.notifications.whoops'), trans('dashboard.incidents.templates.edit.failure').' '.$updatedTemplate->getErrors()) }}
@endif
</div>
@endif
<form class='form-vertical' name='IncidentTemplateForm' role='form' method='POST'>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="template-name">{{ trans('forms.incidents.templates.name') }}</label>
<input type="text" class="form-control" name="template[name]" id="template-name" required value="{{ $template->name }}">
</div>
<div class="form-group">
<label>{{ trans('forms.incidents.templates.template') }}</label>
<div class='markdown-control'>
<textarea name="template[template]" class="form-control" rows="5" required>{{ $template->template }}</textarea>
</div>
</div>
</fieldset>
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.update') }}</button>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,35 @@
@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-document-text"></i> {{ trans('dashboard.incidents.templates.title') }}
</span>
<a class="btn btn-sm btn-success pull-right" href="{{ route('dashboard.templates.add') }}">
{{ trans('dashboard.incidents.templates.add.title') }}
</a>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
<div class="striped-list">
@foreach($incidentTemplates as $template)
<div class="row striped-list-item">
<div class="col-xs-6">
<strong>{{ $template->name }}</strong>
<p><small>{{ $template->template }}</small></p>
</div>
<div class="col-xs-6 text-right">
<a href="/dashboard/templates/{{ $template->id }}/edit" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="/dashboard/templates/{{ $template->id }}/delete" class="btn btn-danger confirm-action" data-method='DELETE'>{{ trans('forms.delete') }}</a>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
@stop
+55
View File
@@ -0,0 +1,55 @@
@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-speedometer"></i> {{ trans('dashboard.dashboard') }}
</span>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
<h4 class="sub-header">{{ trans('dashboard.components.component_statuses') }}</h4>
<div class="panel panel-default">
<div class="list-group">
@forelse($components as $component)
<div class="list-group-item">
<form class='component-inline form-vertical' data-messenger="{{trans('dashboard.components.edit.success')}}">
<div class="row striped-list-item">
<div class="col-lg-4 col-sm-12">
<h4>{{ $component->name }}</h4>
</div>
<div class="col-lg-8 col-sm-12 radio-items componet-inline-update">
@foreach(trans('cachet.components.status') as $statusID => $status)
<div class="radio-inline">
<label>
<input type="radio" name="status" value="{{ $statusID }}" {{ (int) $component->status === $statusID ? 'checked' : null }}>
{{ $status }}
</label>
</div>
@endforeach
</div>
</div>
<input type="hidden" name="component_id" value="{{ $component->id }}">
</form>
</div>
@empty
<div class="list-group-item text-danger">{{ trans('dashboard.components.add.message') }}</div>
@endforelse
</div>
</div>
</div>
</div>
</div>
@if(Session::get('setup.done'))
@include('partials.dashboard.welcome-modal')
<script>
$(function() {
$('#welcome-modal').modal('show');
});
</script>
@endif
@stop
@@ -0,0 +1,61 @@
@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-stats-bars"></i> {{ trans('dashboard.metrics.metrics') }}
</span>
> <small>{{ trans('dashboard.metrics.add.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('partials.dashboard.errors')
<form class='form-vertical' name='MetricsForm' role='form' method='POST'>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="metric-name">{{ trans('forms.metrics.name') }}</label>
<input type="text" class="form-control" name="metric[name]" id="metric-name" required value="{{ Input::old('metric.name') }}">
</div>
<div class="form-group">
<label for="metric-suffix">{{ trans('forms.metrics.suffix') }}</label>
<input type="text" class="form-control" name="metric[suffix]" id="metric-suffix" required value="{{ Input::old('metric.suffix') }}">
</div>
<div class="form-group">
<label>{{ trans('forms.metrics.description') }}</label>
<div class='markdown-control'>
<textarea name="metric[description]" class="form-control" rows="5">{{ Input::old('metric.description') }}</textarea>
</div>
</div>
<div class="form-group">
<label>{{ trans('forms.metrics.calc_type') }}</label>
<select name="metric[calc_type]" class="form-control" required>
<option value="0" selected>{{ trans('forms.metrics.type_sum') }}</option>
<option value="1">{{ trans('forms.metrics.type_avg') }}</option>
</select>
</div>
<div class="form-group">
<label for="metric-default_value">{{ trans('forms.metrics.default-value') }}</label>
<input type="number" class="form-control" name="metric[default_value]" id="metric-default_value" value="{{ Input::old('metric.default_value') }}">
</div>
<div class="form-group">
<label>{{ trans('forms.metrics.display-chart') }}</label>
<input type="hidden" value="0" name="metric[display_chart]">
<input type="checkbox" value="1" name="metric[display_chart]" class="form-control" checked>
</div>
</fieldset>
<div class='form-group'>
<div class='btn-group'>
<button type="submit" class="btn btn-success">{{ trans('forms.add') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.metrics') }}">{{ trans('forms.cancel') }}</a>
</div>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -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 icon ion-android-alert"></i> {{ trans('dashboard.metrics.metrics') }}
</span>
> <small>{{ trans('dashboard.metrics.edit.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('partials.dashboard.errors')
<form class='form-vertical' name='MetricsForm' role='form' method='POST'>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label for="metric-name">{{ trans('forms.metrics.name') }}</label>
<input type="text" class="form-control" name="metric[name]" id="metric-name" required value={{ $metric->name }}>
</div>
<div class="form-group">
<label for="metric-suffix">{{ trans('forms.metrics.suffix') }}</label>
<input type="text" class="form-control" name="metric[suffix]" id="metric-suffix" required value="{{ $metric->suffix }}">
</div>
<div class="form-group">
<label>{{ trans('forms.metrics.description') }}</label>
<div class='markdown-control'>
<textarea name="metric[description]" class="form-control" rows="5">{{ $metric->description }}</textarea>
</div>
</div>
<div class="form-group">
<label>{{ trans('forms.metrics.calc_type') }}</label>
<select name="metric[calc_type]" class="form-control" required>
<option value="0" {{ $metric->calc_type === 0 ? "selected" : null }}>{{ trans('forms.metrics.type_sum') }}</option>
<option value="1" {{ $metric->calc_type === 1 ? "selected" : null }}>{{ trans('forms.metrics.type_avg') }}</option>
</select>
</div>
<div class="form-group">
<label for="metric-default_value">{{ trans('forms.metrics.default-value') }}</label>
<input type="number" class="form-control" name="metric[default_value]" id="metric-default_value" value="{{ $metric->default_value }}">
</div>
<div class="form-group">
<label>{{ trans('forms.metrics.display-chart') }}</label>
<input type="hidden" value="0" name="metric[display_chart]">
<input type="checkbox" value="1" name="metric[display_chart]" class="form-control" {{ $metric->display_chart ? 'checked' : null }}>
</div>
</fieldset>
<input type="hidden" name="metric[id]" value={{$metric->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.metrics') }}">{{ trans('forms.cancel') }}</a>
</div>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,39 @@
@extends('layout.dashboard')
@section('content')
<div class="header fixed">
<div class="sidebar-toggler visible-xs">
<i class="icon ion-navicon"></i>
</div>
<span class="uppercase">
<i class="icon ion-stats-bars"></i> {{ trans('dashboard.metrics.metrics') }}
</span>
<a class="btn btn-sm btn-success pull-right" href="{{ route('dashboard.metrics.add') }}">
{{ trans('dashboard.metrics.add.title') }}
</a>
<div class="clearfix"></div>
</div>
<div class="content-wrapper header-fixed">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<div class="striped-list">
@foreach($metrics as $metric)
<div class="row striped-list-item">
<div class="col-md-6">
<i class="{{ $metric->icon }}"></i> <strong>{{ $metric->name }}</strong>
@if($metric->description)
<p><small>{{ Str::words($metric->description, 5) }}</small></p>
@endif
</div>
<div class="col-md-6 text-right">
<a href="/dashboard/metrics/{{ $metric->id }}/edit" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="/dashboard/metrics/{{ $metric->id }}/delete" class="btn btn-danger confirm-action" data-method='DELETE'>{{ trans('forms.delete') }}</a>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,15 @@
@extends('layout.dashboard')
@section('content')
<div class="header">
<div class="sidebar-toggler visible-xs">
<i class="icon ion-navicon"></i>
</div>
<i class="ion ion-email"></i> {{ trans('dashboard.notifications.notifications') }}
</div>
<div class="row">
<div class="col-sm-12">
<h3>{{ trans('dashboard.notifications.notifications') }}</h3>
</div>
</div>
@stop
@@ -0,0 +1,57 @@
@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-calendar"></i> {{ trans('dashboard.schedule.schedule') }}
</span>
&gt; <small>{{ trans('dashboard.schedule.add.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('partials.dashboard.errors')
<form class='form-vertical' name='ScheduleForm' role='form' method='POST' autocomplete="off">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
@if($incidentTemplates->count() > 0)
<div class="form-group">
<label for="incident-template">{{ trans('forms.incidents.templates.template') }}</label>
<select class="form-control" name="template">
<option selected></option>
@foreach($incidentTemplates as $tpl)
<option value="{{ $tpl->slug }}">{{ $tpl->name }}</option>
@endforeach
</select>
</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="{{ Input::old('incident.name') }}">
</div>
<div class="form-group">
<label>{{ trans('forms.incidents.message') }}</label>
<div class='markdown-control'>
<textarea name="incident[message]" class="form-control" rows="5" required>{{ Input::old('incident.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" required>
</div>
</fieldset>
<div class="form-group">
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.add') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.schedule') }}">{{ trans('forms.cancel') }}</a>
</div>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,57 @@
@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-calendar"></i> {{ trans('dashboard.schedule.schedule') }}
</span>
&gt; <small>{{ trans('dashboard.schedule.edit.title') }}</small>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-md-12">
@include('partials.dashboard.errors')
<form class='form-vertical' name='ScheduleForm' role='form' method='POST' autocomplete="off">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
@if($incidentTemplates->count() > 0)
<div class="form-group">
<label for="incident-template">{{ trans('forms.incidents.templates.template') }}</label>
<select class="form-control" name="template">
<option selected></option>
@foreach($incidentTemplates as $tpl)
<option value="{{ $tpl->slug }}">{{ $tpl->name }}</option>
@endforeach
</select>
</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 }}">
</div>
<div class="form-group">
<label>{{ trans('forms.incidents.message') }}</label>
<div class='markdown-control'>
<textarea name="incident[message]" class="form-control" 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>
</div>
</fieldset>
<div class="form-group">
<div class="btn-group">
<button type="submit" class="btn btn-success">{{ trans('forms.save') }}</button>
<a class="btn btn-default" href="{{ route('dashboard.schedule') }}">{{ trans('forms.cancel') }}</a>
</div>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,44 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header">
<span class="uppercase">
<i class="icon ion-android-calendar"></i> {{ trans('dashboard.schedule.schedule') }}
</span>
<a class="btn btn-sm btn-success pull-right" href="{{ route('dashboard.schedule.add') }}">
{{ trans('dashboard.schedule.add.title') }}
</a>
<div class="clearfix"></div>
</div>
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<div class="striped-list">
@foreach($schedule as $incident)
<div class="row striped-list-item">
<div class="col-xs-6">
<strong>{{ $incident->name }}</strong>
<br>
{{ trans('dashboard.schedule.scheduled_at', ['timestamp' => $incident->scheduled_at_iso]) }}
@if($incident->message)
<p><small>{{ Str::words($incident->message, 5) }}</small></p>
@endif
</div>
<div class="col-xs-6 text-right">
<a href="/dashboard/schedule/{{ $incident->id }}/edit" class="btn btn-default">{{ trans('forms.edit') }}</a>
<a href="/dashboard/schedule/{{ $incident->id }}/delete" class="btn btn-danger confirm-action" data-method='DELETE'>{{ trans('forms.delete') }}</a>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,166 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header" id="application-setup">
<span class="uppercase">
{{ trans('dashboard.settings.app-setup.app-setup') }}
</span>
</div>
<div class="row">
<div class="col-sm-12">
<form id="settings-form" name="SettingsForm" class="form-vertical" role="form" action="/dashboard/settings" method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
@include('partials.dashboard.errors')
<fieldset>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.site-name') }}</label>
<input type="text" class="form-control" name="app_name" value="{{ Setting::get('app_name') }}" required>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.site-url') }}</label>
<input type="text" class="form-control" name="app_domain" value="{{ Setting::get('app_domain') }}" required>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.about-this-page') }}</label>
<div class='markdown-control'>
<textarea name="app_about" class="form-control" rows="4">{{ Setting::get('app_about') }}</textarea>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.google-analytics') }}</label>
<input type="text" name="app_analytics" class="form-control" value="{{ Setting::get('app_analytics') }}" placeholder="UA-12345-12">
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.site-timezone') }}</label>
<select name="app_timezone" class="form-control" required>
<option value="">Select Timezone</option>
@foreach($timezones as $region => $list)
<optgroup label="{{ $region }}">
@foreach($list as $timezone => $name)
<option value="{{ $timezone }}" @if(Setting::get('app_timezone') == $timezone) selected @endif>
{{ $name }}
</option>
@endforeach
</optgroup>
@endforeach
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>
{{ trans('forms.settings.app-setup.date-format') }}
<a href="http://php.net/manual/en/function.date.php" target="_blank"><i class="icon ion-help-circled"></i></a>
</label>
<input type="text" class="form-control" name="date_format" value="{{ Setting::get('date_format') ?: 'jS F Y' }}">
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.site-locale') }}</label>
<select name="app_locale" class="form-control" required>
<option value="">Select Language</option>
@foreach($langs as $lang => $name)
<option value="{{ $lang }}" @if(Setting::get('app_locale') == $lang) selected @endif>
{{ $name }}
</option>
@endforeach
</select>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.days-of-incidents') }}</label>
<input type="number" min="1" max="100" name="app_incident_days" class="form-control" value="{{ Setting::get('app_incident_days') ?: 7 }}">
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.display-graphs') }}</label>
<input type="hidden" value="0" name="display_graphs">
<input type="checkbox" value="1" name="display_graphs" class="form-control" {{ Setting::get('display_graphs') ? 'checked' : null }}>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('setup.show_support') }}</label>
<input type="hidden" value="0" name="show_support">
<input type="checkbox" value="1" name="show_support" class="form-control" {{ Setting::get('show_support') ? 'checked' : null }}>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('setup.allow_tracking') }}</label>
<input type="hidden" value="0" name="app_track">
<input type="checkbox" value="1" name="app_track" class="form-control" {{ Setting::get('app_track') ? 'checked' : null }}>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.app-setup.banner') }}</label>
@if($banner = Setting::get('app_banner'))
<div id="banner-view" class="well">
<img src="data:{{ Setting::get('app_banner_type') }};base64,{{ $banner }}" style="max-width: 100%">
<br><br>
<button id="remove-banner" class="btn btn-danger">{{ trans('forms.remove') }}</button>
</div>
@endif
<input type="file" name="app_banner" class="form-control">
<span class="help-block">{{ trans('forms.settings.app-setup.banner-help') }}</span>
</div>
</div>
</div>
</fieldset>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.save') }}</button>
</div>
</div>
</div>
<input type="hidden" name="remove_banner" value="">
</form>
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,61 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header" id="security">
<span class="uppercase">
{{ trans('dashboard.settings.security.security') }}
</span>
</div>
<div class="row">
<div class="col-sm-12">
<form name="SettingsForm" class="form-vertical" role="form" action="/dashboard/settings" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
@include('partials.dashboard.errors')
<fieldset>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.security.allowed-domains') }}</label>
<textarea class="form-control" name="allowed_domains" rows="5" placeholder="http://cachet.io, http://cachet.herokuapp.com">{{ Setting::get('allowed_domains') }}</textarea>
<div class="help-block">
{{ trans('forms.settings.security.allowed-domains-help') }}
</div>
</div>
</div>
</div>
</fieldset>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.save') }}</button>
</div>
</div>
</div>
@if(! $unsecureUsers->isEmpty())
<hr>
<div class="panel panel-danger">
<div class="panel-heading">{{ trans('dashboard.settings.security.two-factor') }}</div>
<div class="list-group">
@foreach($unsecureUsers as $user)
<div class="list-group-item">
<strong>{{ $user->username }}</strong>
<span class="label label-danger pull-right"><i class="ion-ios-unlocked"></i></span>
</div>
@endforeach
</div>
</div>
@endif
</form>
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,42 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header" id="stylesheet">
<span class="uppercase">
{{ trans('dashboard.settings.stylesheet.stylesheet') }}
</span>
</div>
<div class="row">
<div class="col-sm-12">
<form name="SettingsForm" class="form-vertical" role="form" action="/dashboard/settings" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
@include('partials.dashboard.errors')
<fieldset>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label>{{ trans('forms.settings.stylesheet.custom-css') }}</label>
<textarea class="form-control" name="stylesheet" rows="10">{{ Setting::get('stylesheet') }}</textarea>
</div>
</div>
</div>
</fieldset>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.save') }}</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,70 @@
@extends('layout.dashboard')
@section('content')
<div class="content-panel">
@if(isset($subMenu))
@include('partials.dashboard.sub-sidebar')
@endif
<div class="content-wrapper">
<div class="header sub-header" id="theme">
<span class="uppercase">
{{ trans('dashboard.settings.theme.theme') }}
</span>
</div>
<div class="row">
<div class="col-sm-12">
<form name="SettingsForm" class="form-vertical" role="form" action="/dashboard/settings" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
@include('partials.dashboard.errors')
<fieldset>
<div class="row">
<div class="col-xs-6">
<div class="form-group">
<label>{{ trans('forms.settings.theme.background-color') }}</label>
<input type="text" class="form-control color-code" name="style.background_color" value="{{ Setting::get('style_background_color') }}">
</div>
</div>
<div class="col-xs-6">
<div class="form-group">
<label>{{ trans('forms.settings.theme.text-color') }}</label>
<input type="text" class="form-control color-code" name="style.text_color" value="{{ Setting::get('style_text_color') }}">
</div>
</div>
</div>
{{--
<div class="row">
<div class="col-xs-4">
<div class="form-group">
<label>Success Warning Color</label>
<input type="text" class="form-control color-code" name="style.success_warning_color" value="{{ Setting::get('style_success_warning_color') }}">
</div>
</div>
<div class="col-xs-4">
<div class="form-group">
<label>Error Warning Color</label>
<input type="text" class="form-control color-code" name="style.error_warning_color" value="{{ Setting::get('style_error_warning_color') }}">
</div>
</div>
<div class="col-xs-4">
<div class="form-group">
<label>Info Warning Color</label>
<input type="text" class="form-control color-code" name="style.style_info_warning_color" value="{{ Setting::get('style_info_warning_color') }}">
</div>
</div>
</div>
--}}
</fieldset>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.save') }}</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,40 @@
@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-person"></i> {{ trans('dashboard.team.team') }}
</span>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<form name="UserForm" class="form-vertical" role="form" action="/dashboard/team/add" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label>{{ trans('forms.user.username') }}</label>
<input type="text" class="form-control" name="username" value="{{ Input::old('username') }}" required>
</div>
<div class="form-group">
<label>{{ trans('forms.user.email') }}</label>
<input type="email" class="form-control" name="email" value="{{ Input::old('email') }}" required>
</div>
<div class="form-group">
<label>{{ trans('forms.user.password') }}</label>
<input type="password" class="form-control" name="password" value="">
</div>
</fieldset>
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.add') }}</button>
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,43 @@
@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="ion ion-person"></i> {{ trans('dashboard.team.member') }}
</span>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<form name="UserForm" class="form-vertical" role="form" action="/dashboard/team/{{ $user->id }}" method="POST">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<fieldset>
<div class="form-group">
<label>{{ trans('forms.user.username') }}</label>
<input type="text" class="form-control" name="username" value="{{ $user->username }}" required>
</div>
<div class="form-group">
<label>{{ trans('forms.user.email') }}</label>
<input type="email" class="form-control" name="email" value="{{ $user->email }}" required>
</div>
<div class="form-group">
<label>{{ trans('forms.user.password') }}</label>
<input type="password" class="form-control" name="password" value="" {{ !$loggedUser->isAdmin ? "disabled": "" }}>
</div>
</fieldset>
<div class="form-group">
<button type="submit" class="btn btn-success">{{ trans('forms.update') }}</button>
@if($loggedUser->isAdmin)
<a class="btn btn-danger" href="/dashboard/user/{{ $user->id }}/api/regen">{{ trans('cachet.api.revoke') }}</a>
@endif
</div>
</form>
</div>
</div>
</div>
@stop
@@ -0,0 +1,37 @@
@extends('layout.dashboard')
@section('content')
<div class="header fixed">
<div class="sidebar-toggler visible-xs">
<i class="icon ion-navicon"></i>
</div>
<span class="uppercase">
<i class="icon icon ion-android-alert"></i> {{ trans('dashboard.team.team') }}
</span>
@if($loggedUser->isAdmin)
<a class="btn btn-sm btn-success pull-right" href="{{ route('dashboard.team.add') }}">
{{ trans('dashboard.team.add.title') }}
</a>
@endif
<div class="clearfix"></div>
</div>
<div class="content-wrapper header-fixed">
<div class="row">
<div class="col-sm-12">
<p class="lead">{{ trans('dashboard.team.description') }}</p>
<div class="user-grid">
@foreach($teamMembers as $member)
<div class="user col-sm-3 col-xs-6">
<a href="@if($loggedUser->id == $member->id) {{ url('dashboard/user') }} @else /dashboard/team/{{ $member->id }} @endif">
<img src="{{ $member->gravatar }}">
</a>
<div class="name">{{ $member->username }}</div>
<div class="email">{{ $member->email }}</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
@stop
@@ -0,0 +1,67 @@
@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="ion ion-person"></i> {{ trans('dashboard.team.profile') }}
</span>
</div>
<div class="content-wrapper">
<div class="row">
<div class="col-sm-12">
@include('partials.dashboard.errors')
<form name="UserForm" class="form-vertical" role="form" action="/dashboard/user" method="POST">
<fieldset>
<div class="form-group">
<label>{{ trans('forms.user.username') }}</label>
<input type="text" class="form-control" name="username" value="{{ $loggedUser->username }}" required>
</div>
<div class="form-group">
<label>{{ trans('forms.user.email') }}</label>
<input type="email" class="form-control" name="email" value="{{ $loggedUser->email }}" required>
</div>
<div class="form-group">
<label>{{ trans('forms.user.password') }}</label>
<input type="password" class="form-control" name="password" value="">
</div>
<hr>
<div class="form-group">
<label>{{ trans('forms.user.api-token') }}</label>
<div class="input-group">
<input type="text" class="form-control" name="api_key" disabled value="{{ $loggedUser->api_key }}">
<a href="/dashboard/user/{{ $loggedUser->id }}/api/regen" class="input-group-addon btn btn-danger">{{ trans('cachet.api.regenerate') }}</a>
</div>
<span class="help-block">{{ trans('forms.user.api-token-help') }}</span>
</div>
<hr>
<div class="form-group">
<label class="checkbox-inline">
<input type="hidden" name="google2fa" value="0">
<input type='checkbox' name="google2fa" value="1" {{ $loggedUser->hasTwoFactor ? "checked" : "" }}>
{{ trans('forms.setup.enable_google2fa') }}
</label>
</div>
@if($loggedUser->hasTwoFactor)
<div class="form-group">
<?php
$google2fa_url = PragmaRX\Google2FA\Vendor\Laravel\Facade::getQRCodeGoogleUrl(
'CachetHQ',
$loggedUser->email,
$loggedUser->google_2fa_secret
);
?>
<img src="{{ $google2fa_url }}" class="img-responsive">
<span class='help-block'>{{ trans('forms.user.2fa.help') }}</span>
</div>
@endif
</fieldset>
<button type="submit" class="btn btn-success">{{ trans('forms.update') }}</button>
</form>
</div>
</div>
</div>
@stop