Adds incident visibility. Closes #602

This commit is contained in:
James Brooks
2015-05-20 08:41:02 +01:00
committed by James Brooks
parent 9257135641
commit df2ae7726d
9 changed files with 89 additions and 6 deletions
@@ -24,13 +24,16 @@ class IncidentController extends AbstractApiController
* Get all incidents.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* @param \CachetHQ\Cachet\Models\Incident $incident
* @param \Illuminate\Contracts\Auth\Guard $auth
*
* @return \Illuminate\Database\Eloquent\Collection
*/
public function getIncidents(Request $request)
public function getIncidents(Request $request, Guard $auth)
{
$incidents = Incident::paginate(Binput::get('per_page', 20));
$incidentVisiblity = $auth->check() ? 0 : 1;
$incidents = Incident::where('visible', '>=', $incidentVisiblity)
->paginate(Binput::get('per_page', 20));
return $this->paginator($incidents, $request);
}
+4 -1
View File
@@ -19,6 +19,7 @@ use CachetHQ\Cachet\Models\Metric;
use Exception;
use GrahamCampbell\Binput\Facades\Binput;
use GrahamCampbell\Markdown\Facades\Markdown;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\View;
use Jenssegers\Date\Date;
@@ -65,7 +66,9 @@ class HomeController extends AbstractController
$incidentDays = range(0, $daysToShow - 1);
$dateTimeZone = Setting::get('app_timezone');
$allIncidents = Incident::notScheduled()->whereBetween('created_at', [
$incidentVisiblity = Auth::check() ? 0 : 1;
$allIncidents = Incident::notScheduled()->where('visible', '>=', $incidentVisiblity)->whereBetween('created_at', [
$startDate->copy()->subDays($daysToShow)->format('Y-m-d').' 00:00:00',
$startDate->format('Y-m-d').' 23:59:59',
])->orderBy('created_at', 'desc')->get()->groupBy(function (Incident $incident) use ($dateTimeZone) {
+14
View File
@@ -42,6 +42,7 @@ class Incident extends Model implements HasPresenter
'component_id' => 'integer',
'name' => 'required',
'status' => 'required|integer',
'visible' => 'required|boolean',
'message' => 'required',
];
@@ -54,6 +55,7 @@ class Incident extends Model implements HasPresenter
'component_id',
'name',
'status',
'visible',
'message',
'scheduled_at',
'created_at',
@@ -74,6 +76,18 @@ class Incident extends Model implements HasPresenter
*/
protected $dates = ['scheduled_at', 'deleted_at'];
/**
* Finds all visible incidents.
*
* @param \Illuminate\Database\Eloquent\Builder $query
*
* @return \Illuminate\Database\Eloquent\Builder
*/
public function scopeVisible($query)
{
return $query->where('visible', 1);
}
/**
* Finds all scheduled incidents (maintenance).
*