/** * Bind data to the view. * * @param \Illuminate\Contracts\View\View $view * * @return void */ public function compose(View $view) { $view->withIncidentCount(Incident::notScheduled()->count()); $view->withIncidentTemplateCount(IncidentTemplate::count()); $view->withComponentCount(Component::all()->count()); $view->withSubscriberCount(Subscriber::isVerified()->count()); }
/** * Handle the subscribe subscriber command. * * @param \CachetHQ\Cachet\Bus\Commands\Subscriber\UpdateSubscriberSubscriptionCommand $command * * @return \CachetHQ\Cachet\Models\Subscriber */ public function handle(UpdateSubscriberSubscriptionCommand $command) { $subscriber = $command->subscriber; $subscriptions = $command->subscriptions ?: []; $components = Component::all(); $updateSubscriptions = $components->filter(function ($item) use($subscriptions) { return in_array($item->id, $subscriptions); }); $subscriber->global = $updateSubscriptions->count() === $components->count(); $subscriber->subscriptions()->delete(); if (!$updateSubscriptions->isEmpty()) { foreach ($updateSubscriptions as $subscription) { Subscription::firstOrCreate(['subscriber_id' => $subscriber->id, 'component_id' => $subscription->id]); } } $subscriber->save(); event(new SubscriberHasUpdatedSubscriptionsEvent($subscriber)); return $subscriber; }
/** * Handle the subscribe subscriber command. * * @param \CachetHQ\Cachet\Bus\Commands\Subscriber\SubscribeSubscriberCommand $command * * @return \CachetHQ\Cachet\Models\Subscriber */ public function handle(SubscribeSubscriberCommand $command) { if ($subscriber = Subscriber::where('email', $command->email)->first()) { return $subscriber; } $subscriber = Subscriber::firstOrCreate(['email' => $command->email]); // Decide what to subscribe the subscriber to. if ($subscriptions = $command->subscriptions) { $subscriptions = Component::whereIn('id', $subscriptions); } else { $subscriptions = Component::all(); } foreach ($subscriptions as $component) { Subscription::create(['subscriber_id' => $subscriber->id, 'component_id' => $component->id]); } if ($command->verified) { dispatch(new VerifySubscriberCommand($subscriber)); } else { event(new SubscriberHasSubscribedEvent($subscriber)); } return $subscriber; }
/** * Bind data to the view. * * @param \Illuminate\Contracts\View\View $view */ public function compose(View $view) { $view->withIncidentCount(Incident::notScheduled()->count()); $view->withComponentCount(Component::all()->count()); }
<?php use CachetHQ\Cachet\Models\Component; use CachetHQ\Cachet\Models\Incident; use Illuminate\Support\Facades\View; View::composer('index', function ($view) { $date = date('Y-m-d'); $components = Component::notStatus(1); if (Component::all()->count() === 0 || $components->count() === 0) { // If all our components are ok, do we have any non-fixed incidents? $incidents = Incident::orderBy('created_at', 'desc')->get(); $incidentCount = $incidents->count(); if ($incidentCount === 0 || $incidentCount >= 1 && (int) $incidents->first()->status === 4) { $status = 'success'; $message = trans('cachet.service.good'); } else { $status = 'danger'; $message = trans('cachet.service.bad'); } } else { $status = 'danger'; $message = trans('cachet.service.bad'); } $view->with(['systemStatus' => $status, 'systemMessage' => $message]); });
/** * Shows the dashboard view. * * @return \Illuminate\View\View */ public function showDashboard() { // TODO: Find steps needed to complete setup. $components = Component::all(); return View::make('dashboard.index')->with(['components' => $components]); }