diff --git a/app/Composers/StatusPageComposer.php b/app/Composers/StatusPageComposer.php index cfaa41b0..ddfed69b 100644 --- a/app/Composers/StatusPageComposer.php +++ b/app/Composers/StatusPageComposer.php @@ -46,7 +46,9 @@ class StatusPageComposer ]; } elseif (Component::enabled()->notStatus(1)->count() === 0) { // If all our components are ok, do we have any non-fixed incidents? - $incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get(); + $incidents = Incident::notScheduled()->orderBy('created_at', 'desc')->get()->filter(function ($incident) { + return $incident->status > 0; + }); $incidentCount = $incidents->count(); if ($incidentCount === 0 || ($incidentCount >= 1 && (int) $incidents->first()->status === 4)) { diff --git a/app/Models/Incident.php b/app/Models/Incident.php index 8588619b..9ea702b5 100644 --- a/app/Models/Incident.php +++ b/app/Models/Incident.php @@ -16,6 +16,7 @@ use CachetHQ\Cachet\Models\Traits\SearchableTrait; use CachetHQ\Cachet\Models\Traits\SortableTrait; use CachetHQ\Cachet\Presenters\IncidentPresenter; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use McCool\LaravelAutoPresenter\HasPresenter; @@ -97,7 +98,7 @@ class Incident extends Model implements HasPresenter * * @return \Illuminate\Database\Eloquent\Builder */ - public function scopeVisible($query) + public function scopeVisible(Builder $query) { return $query->where('visible', 1); } @@ -109,9 +110,9 @@ class Incident extends Model implements HasPresenter * * @return \Illuminate\Database\Eloquent\Builder */ - public function scopeScheduled($query) + public function scopeScheduled(Builder $query) { - return $query->where('status', 0)->where('scheduled_at', '>=', Carbon::now()); + return $query->where('status', 0)->where('scheduled_at', '>=', Carbon::now()->toDateTimeString()); } /** @@ -121,10 +122,12 @@ class Incident extends Model implements HasPresenter * * @return \Illuminate\Database\Eloquent\Builder */ - public function scopeNotScheduled($query) + public function scopeNotScheduled(Builder $query) { - return $query->where(function ($query) { - return $query->whereNull('scheduled_at')->orWhere('scheduled_at', '<=', Carbon::now()); + return $query->where('status', '>', 0)->orWhere(function ($query) { + $query->where('status', 0)->where(function ($query) { + $query->whereNull('scheduled_at')->orWhere('scheduled_at', '<=', Carbon::now()->toDateTimeString()); + }); }); }