本文整理汇总了PHP中CachetHQ\Cachet\Models\Incident类的典型用法代码示例。如果您正苦于以下问题:PHP Incident类的具体用法?PHP Incident怎么用?PHP Incident使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Incident类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: putIncident
/**
* Update an existing incident.
*
* @param \CachetHQ\Cachet\Models\Inicdent $incident
*
* @return \Illuminate\Http\JsonResponse
*/
public function putIncident(Incident $incident)
{
$incidentData = array_filter(Binput::only(['name', 'message', 'status', 'component_id', 'notify', 'visible']));
try {
$incident->update($incidentData);
} catch (Exception $e) {
throw new BadRequestHttpException();
}
return $this->item($incident);
}
开发者ID:practico,项目名称:Cachet,代码行数:17,代码来源:IncidentController.php
示例2: handle
/**
* Handle the report incident command.
*
* @param \CachetHQ\Cachet\Commands\Incident\ReportIncidentCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportIncidentCommand $command)
{
$data = ['name' => $command->name, 'status' => $command->status, 'message' => $command->message, 'visible' => $command->visible];
// Link with the component.
if ($command->component_id) {
$data['component_id'] = $command->component_id;
}
// The incident occurred at a different time.
if ($command->incident_date) {
$incidentDate = Date::createFromFormat('d/m/Y H:i', $command->incident_date, config('cachet.timezone'))->setTimezone(Config::get('app.timezone'));
$data['created_at'] = $incidentDate;
$data['updated_at'] = $incidentDate;
}
// Create the incident
$incident = Incident::create($data);
// Update the component.
if ($command->component_id) {
Component::find($command->component_id)->update(['status' => $command->component_status]);
}
// Notify subscribers.
if ($command->notify) {
event(new IncidentWasReportedEvent($incident));
}
return $incident;
}
开发者ID:ryanwinchester-forks,项目名称:Cachet,代码行数:32,代码来源:ReportIncidentCommandHandler.php
示例3: handle
/**
* Handle the report maintenance command.
*
* @param \CachetHQ\Cachet\Commands\Incident\ReportMaintenanceCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportMaintenanceCommand $command)
{
$scheduledAt = $this->dates->createNormalized('d/m/Y H:i', $command->timestamp);
$maintenanceEvent = Incident::create(['name' => $command->name, 'message' => $command->message, 'scheduled_at' => $scheduledAt, 'status' => 0, 'visible' => 1]);
event(new MaintenanceWasScheduledEvent($maintenanceEvent));
return $maintenanceEvent;
}
开发者ID:rafix82,项目名称:Cachet,代码行数:14,代码来源:ReportMaintenanceCommandHandler.php
示例4: compose
/**
* 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());
}
开发者ID:aksalj,项目名称:Cachet,代码行数:14,代码来源:DashboardComposer.php
示例5: handle
/**
* Handle the report incident command.
*
* @param \CachetHQ\Cachet\Commands\Incident\ReportIncidentCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportIncidentCommand $command)
{
if ($command->template) {
$command->message = $this->parseIncidentTemplate($command->template, $command->template_vars);
}
$data = ['name' => $command->name, 'status' => $command->status, 'message' => $command->message, 'visible' => $command->visible];
// Link with the component.
if ($command->component_id) {
$data['component_id'] = $command->component_id;
}
// The incident occurred at a different time.
if ($command->incident_date) {
$incidentDate = $this->dates->createNormalized('d/m/Y H:i', $command->incident_date);
$data['created_at'] = $incidentDate;
$data['updated_at'] = $incidentDate;
}
// Create the incident
$incident = Incident::create($data);
// Update the component.
if ($command->component_id) {
Component::find($command->component_id)->update(['status' => $command->component_status]);
}
$incident->notify = (bool) $command->notify;
event(new IncidentWasReportedEvent($incident));
return $incident;
}
开发者ID:minhkiller,项目名称:Cachet,代码行数:33,代码来源:ReportIncidentCommandHandler.php
示例6: compose
/**
* Index page view composer.
*
* @param \Illuminate\Contracts\View\View $view
*
* @return void
*/
public function compose(View $view)
{
$totalComponents = Component::enabled()->count();
$majorOutages = Component::enabled()->status(4)->count();
$isMajorOutage = $majorOutages / $totalComponents >= 0.5;
// Default data
$withData = ['system_status' => 'info', 'system_message' => trans_choice('cachet.service.bad', $totalComponents), 'favicon' => 'favicon-high-alert'];
if ($isMajorOutage) {
$withData = ['system_status' => 'danger', 'system_message' => trans_choice('cachet.service.major', $totalComponents), 'favicon' => 'favicon-high-alert'];
} 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();
$incidentCount = $incidents->count();
if ($incidentCount === 0 || $incidentCount >= 1 && (int) $incidents->first()->status === 4) {
$withData = ['system_status' => 'success', 'system_message' => trans_choice('cachet.service.good', $totalComponents), 'favicon' => 'favicon'];
}
} else {
if (Component::enabled()->whereIn('status', [2, 3])->count() > 0) {
$withData['favicon'] = 'favicon-medium-alert';
}
}
// Scheduled maintenance code.
$scheduledMaintenance = Incident::scheduled()->orderBy('scheduled_at')->get();
// Component & Component Group lists.
$usedComponentGroups = Component::enabled()->where('group_id', '>', 0)->groupBy('group_id')->pluck('group_id');
$componentGroups = ComponentGroup::whereIn('id', $usedComponentGroups)->orderBy('order')->get();
$ungroupedComponents = Component::enabled()->where('group_id', 0)->orderBy('order')->orderBy('created_at')->get();
$view->with($withData)->withComponentGroups($componentGroups)->withUngroupedComponents($ungroupedComponents)->withScheduledMaintenance($scheduledMaintenance);
}
开发者ID:bashou,项目名称:Cachet,代码行数:36,代码来源:StatusPageComposer.php
示例7: seedIncidents
/**
* Seed the incidents table.
*
* @return void
*/
protected function seedIncidents()
{
$defaultIncidents = [['name' => 'Awesome', 'message' => 'We totally nailed the fix :smile:', 'status' => 4, 'component_id' => 0, 'scheduled_at' => null, 'visible' => 1], ['name' => 'Monitoring the fix', 'message' => "We're checking that our fix will first work.", 'status' => 3, 'component_id' => 0, 'scheduled_at' => null, 'visible' => 1], ['name' => 'Update', 'message' => "We've found the problem, so we're looking at it.", 'status' => 2, 'component_id' => 0, 'scheduled_at' => null, 'visible' => 1], ['name' => 'Test Incident', 'message' => 'Something went wrong, oh noes.', 'status' => 1, 'component_id' => 0, 'scheduled_at' => null, 'visible' => 1]];
Incident::truncate();
foreach ($defaultIncidents as $incident) {
Incident::create($incident);
}
}
开发者ID:seanherron,项目名称:Cachet,代码行数:13,代码来源:DemoSeederCommand.php
示例8: handle
/**
* Handle the report maintenance command.
*
* @param \CachetHQ\Cachet\Commands\Incident\ReportMaintenanceCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportMaintenanceCommand $command)
{
$scheduledAt = Date::createFromFormat('d/m/Y H:i', $command->timestamp, config('cachet.timezone'))->setTimezone(Config::get('app.timezone'));
$maintenanceEvent = Incident::create(['name' => $command->name, 'message' => $command->message, 'scheduled_at' => $scheduledAt, 'status' => 0, 'visible' => 1]);
// Notify subscribers.
event(new MaintenanceWasScheduledEvent($maintenanceEvent));
return $maintenanceEvent;
}
开发者ID:ryanwinchester-forks,项目名称:Cachet,代码行数:15,代码来源:ReportMaintenanceCommandHandler.php
示例9: run
/**
* Run the database seeding.
*
* @return void
*/
public function run()
{
Model::unguard();
$defaultIncidents = [["name" => "Awesome", "message" => "We totally nailed the fix.", "status" => 4, "component_id" => 0, "user_id" => 1], ["name" => "Monitoring the fix", "message" => "We're checking that our fix will first work.", "status" => 3, "component_id" => 0, "user_id" => 1], ["name" => "Update", "message" => "We've found the problem, so we're looking at it.", "status" => 2, "component_id" => 0, "user_id" => 1], ["name" => "Test Incident", "message" => "Something went wrong, oh noes.", "component_id" => 0, "user_id" => 1]];
Incident::truncate();
foreach ($defaultIncidents as $incident) {
Incident::create($incident);
}
}
开发者ID:baa-archieve,项目名称:Cachet,代码行数:14,代码来源:IncidentTableSeeder.php
示例10: handle
/**
* Handle the report maintenance command.
*
* @param \CachetHQ\Cachet\Commands\Incident\ReportMaintenanceCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportMaintenanceCommand $command)
{
// TODO: Add validation to scheduledAt
$scheduledAt = Date::createFromFormat('d/m/Y H:i', $command->timestamp, Setting::get('app_timezone'))->setTimezone(Config::get('app.timezone'));
$maintenanceEvent = Incident::create(['name' => $command->name, 'message' => $command->message, 'scheduled_at' => $scheduledAt, 'status' => 0, 'visible' => 1]);
// Notify subscribers.
if ($command->notify) {
event(new MaintenanceWasScheduledEvent($maintenanceEvent));
}
return $maintenanceEvent;
}
开发者ID:practico,项目名称:Cachet,代码行数:18,代码来源:ReportMaintenanceCommandHandler.php
示例11: getIncidents
/**
* Get all incidents.
*
* @return \Illuminate\Http\JsonResponse
*/
public function getIncidents()
{
$incidentVisibility = app(Guard::class)->check() ? 0 : 1;
$incidents = Incident::where('visible', '>=', $incidentVisibility);
$incidents->search(Binput::except(['sort', 'order', 'per_page']));
if ($sortBy = Binput::get('sort')) {
$direction = Binput::has('order') && Binput::get('order') == 'desc';
$incidents->sort($sortBy, $direction);
}
$incidents = $incidents->paginate(Binput::get('per_page', 20));
return $this->paginator($incidents, Request::instance());
}
开发者ID:aksalj,项目名称:Cachet,代码行数:17,代码来源:IncidentController.php
示例12: showIndex
/**
* Returns the rendered Blade templates.
*
* @return \Illuminate\View\View
*/
public function showIndex()
{
$components = Component::orderBy('order')->orderBy('created_at')->get();
$allIncidents = [];
$incidentDays = Setting::get('app_incident_days') ?: 7;
foreach (range(0, $incidentDays) as $i) {
$date = Carbon::now()->subDays($i);
$incidents = Incident::whereBetween('created_at', [$date->format('Y-m-d') . ' 00:00:00', $date->format('Y-m-d') . ' 23:59:59'])->orderBy('created_at', 'desc')->get();
$allIncidents[] = ['date' => $date->format('jS F Y'), 'incidents' => $incidents];
}
return View::make('index', ['components' => $components, 'allIncidents' => $allIncidents, 'pageTitle' => Setting::get('app_name'), 'aboutApp' => Markdown::render(Setting::get('app_about'))]);
}
开发者ID:baa-archieve,项目名称:Cachet,代码行数:17,代码来源:HomeController.php
示例13: handle
/**
* Handle the report incident command.
*
* @param \CachetHQ\Cachet\Commands\Incident\ReportIncidentCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportIncidentCommand $command)
{
$incident = Incident::create(['name' => $command->name, 'status' => $command->status, 'message' => $command->message, 'visible' => $command->visible, 'component' => $command->component_id]);
// Update the component.
if ($command->component_id) {
Component::find($command->component_id)->update(['status' => $command->component_status]);
}
// Notify subscribers.
if ($command->notify) {
event(new IncidentWasReportedEvent($incident));
}
return $incident;
}
开发者ID:practico,项目名称:Cachet,代码行数:20,代码来源:ReportIncidentCommandHandler.php
示例14: showIndex
/**
* Returns the rendered Blade templates.
*
* @return \Illuminate\View\View
*/
public function showIndex()
{
$today = Date::now();
$startDate = Date::now();
segment_page('Status Page');
// Check if we have another starting date
if (Binput::has('start_date')) {
try {
// If date provided is valid
$oldDate = Date::createFromFormat('Y-m-d', Binput::get('start_date'));
segment_track('Status Page', ['start_date' => $oldDate->format('Y-m-d')]);
// If trying to get a future date fallback to today
if ($today->gt($oldDate)) {
$startDate = $oldDate;
}
} catch (Exception $e) {
// Fallback to today
}
}
$metrics = null;
if ($displayMetrics = Setting::get('display_graphs')) {
$metrics = Metric::where('display_chart', 1)->get();
}
$daysToShow = Setting::get('app_incident_days') ?: 7;
$incidentDays = range(0, $daysToShow - 1);
$dateTimeZone = Setting::get('app_timezone');
$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) {
return (new Date($incident->created_at))->setTimezone($dateTimeZone)->toDateString();
});
// Add in days that have no incidents
foreach ($incidentDays as $i) {
$date = (new Date($startDate))->setTimezone($dateTimeZone)->subDays($i);
if (!isset($allIncidents[$date->toDateString()])) {
$allIncidents[$date->toDateString()] = [];
}
}
// Sort the array so it takes into account the added days
$allIncidents = $allIncidents->sortBy(function ($value, $key) {
return strtotime($key);
}, SORT_REGULAR, true)->all();
// Scheduled maintenance code.
$scheduledMaintenance = Incident::scheduled()->orderBy('scheduled_at')->get();
// Component & Component Group lists.
$usedComponentGroups = Component::where('group_id', '>', 0)->groupBy('group_id')->lists('group_id');
$componentGroups = ComponentGroup::whereIn('id', $usedComponentGroups)->orderBy('order')->get();
$ungroupedComponents = Component::where('group_id', 0)->orderBy('order')->orderBy('created_at')->get();
$canPageBackward = Incident::notScheduled()->where('created_at', '<', $startDate->format('Y-m-d'))->count() != 0;
return View::make('index', ['componentGroups' => $componentGroups, 'ungroupedComponents' => $ungroupedComponents, 'displayMetrics' => $displayMetrics, 'metrics' => $metrics, 'allIncidents' => $allIncidents, 'scheduledMaintenance' => $scheduledMaintenance, 'aboutApp' => Markdown::convertToHtml(Setting::get('app_about')), 'canPageForward' => (bool) $today->gt($startDate), 'canPageBackward' => $canPageBackward, 'previousDate' => $startDate->copy()->subDays($daysToShow)->toDateString(), 'nextDate' => $startDate->copy()->addDays($daysToShow)->toDateString(), 'pageTitle' => Setting::get('app_name') . ' Status']);
}
开发者ID:2bj,项目名称:Cachet,代码行数:55,代码来源:HomeController.php
示例15: compose
/**
* Index page view composer.
*
* @param \Illuminate\Contracts\View\View $view
*/
public function compose(View $view)
{
// Default data
$withData = ['systemStatus' => 'danger', 'systemMessage' => trans('cachet.service.bad')];
if (Component::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();
$incidentCount = $incidents->count();
if ($incidentCount === 0 || $incidentCount >= 1 && (int) $incidents->first()->status === 4) {
$withData = ['systemStatus' => 'success', 'systemMessage' => trans('cachet.service.good')];
}
}
$view->with($withData);
}
开发者ID:2bj,项目名称:Cachet,代码行数:19,代码来源:IndexComposer.php
示例16: feedAction
/**
* Generates an RSS feed of all incidents.
*
* @return \Illuminate\Http\Response
*/
public function feedAction()
{
$feed = RssFacade::feed('2.0', 'UTF-8');
$feed->channel(['title' => Setting::get('app_name'), 'description' => 'Status Feed', 'link' => Setting::get('app_domain')]);
Incident::get()->map(function ($incident) use($feed) {
if ($incident->component) {
$componentName = $incident->component->name;
} else {
$componentName = null;
}
$feed->item(['title' => $incident->name, 'message' => $incident->message, 'component' => $componentName, 'status' => $incident->humanStatus, 'created_at' => $incident->created_at, 'updated_at' => $incident->updated_at]);
});
return Response::make($feed, 200, ['Content-Type' => 'text/xml']);
}
开发者ID:baa-archieve,项目名称:Cachet,代码行数:19,代码来源:RssController.php
示例17: feedAction
/**
* Generates a Rss feed of all incidents.
*
* @param \CachetHQ\Cachet\Models\ComponentGroup|null $group
* @param bool $isRss
*
* @return \Illuminate\Http\Response
*/
private function feedAction(ComponentGroup &$group, $isRss)
{
if ($group->exists) {
$group->components->map(function ($component) {
$component->incidents()->visible()->orderBy('created_at', 'desc')->get()->map(function ($incident) use($isRss) {
$this->feedAddItem($incident, $isRss);
});
});
} else {
Incident::visible()->orderBy('created_at', 'desc')->get()->map(function ($incident) use($isRss) {
$this->feedAddItem($incident, $isRss);
});
}
return $this->feed->render($isRss ? 'rss' : 'atom');
}
开发者ID:arissetyawan,项目名称:Cachet,代码行数:23,代码来源:FeedController.php
示例18: boot
/**
* @param DispatcherContract $events
*/
public function boot(DispatcherContract $events)
{
if (false === config('slack.endpoint', false)) {
return;
}
$this->loadTranslationsFrom(__DIR__ . '/resources/lang', 'slack');
/**
* To get the actual changes we need to record the
* changes before the Cachet event is fired.
*/
Incident::updating(function (Incident $incident) {
$dirty = [];
foreach ($incident->getDirty() as $key => $v) {
$dirty[$key] = $incident->getOriginal($key);
}
self::registerChanges('incident', $dirty);
});
Component::updating(function (Component $component) {
$dirty = [];
foreach ($component->getDirty() as $key => $v) {
$dirty[$key] = $component->getOriginal($key);
}
self::registerChanges('component', $dirty);
});
/**
* Send Slack notification on new incidents.
*/
$events->listen('CachetHQ\\Cachet\\Bus\\Events\\Incident\\IncidentWasReportedEvent', function (IncidentWasReportedEvent $event) {
$handler = new IncidentWasReportedHandler($event->incident->status, $event->incident->name, $event->incident->message, $event->incident['component_id']);
return $handler->send();
});
/**
* Send Slack notification on incident updates.
*/
$events->listen('CachetHQ\\Cachet\\Bus\\Events\\Incident\\IncidentWasUpdatedEvent', function (IncidentWasUpdatedEvent $event) {
$handler = new IncidentWasUpdatedHandler($event->incident->id, $event->incident->status, $event->incident->name, $event->incident->message, $event->incident['component_id'], self::getChanges('incident'));
return $handler->send();
});
/**
* Send Slack notification on component updates.
* Note these are not send when a component is updated as part of an incident update.
*/
$events->listen('CachetHQ\\Cachet\\Bus\\Events\\Component\\ComponentWasUpdatedEvent', function (ComponentWasUpdatedEvent $event) {
$handler = new ComponentWasUpdatedHandler($event->component->status, $event->component->name);
return $handler->send();
});
}
开发者ID:mrbase,项目名称:cachet-slack-integration,代码行数:50,代码来源:ServiceProvider.php
示例19: showIndex
/**
* Displays the status page.
*
* @return \Illuminate\View\View
*/
public function showIndex()
{
$today = Date::now();
$startDate = Date::now();
// Check if we have another starting date
if (Binput::has('start_date')) {
try {
// If date provided is valid
$oldDate = Date::createFromFormat('Y-m-d', Binput::get('start_date'));
// If trying to get a future date fallback to today
if ($today->gt($oldDate)) {
$startDate = $oldDate;
}
} catch (Exception $e) {
// Fallback to today
}
}
$daysToShow = Config::get('setting.app_incident_days', 0) - 1;
if ($daysToShow < 0) {
$daysToShow = 0;
$incidentDays = [];
} else {
$incidentDays = range(0, $daysToShow);
}
$dateTimeZone = Config::get('cachet.timezone');
$incidentVisibility = Auth::check() ? 0 : 1;
$allIncidents = Incident::notScheduled()->where('visible', '>=', $incidentVisibility)->whereBetween('created_at', [$startDate->copy()->subDays($daysToShow)->format('Y-m-d') . ' 00:00:00', $startDate->format('Y-m-d') . ' 23:59:59'])->orderBy('scheduled_at', 'desc')->orderBy('created_at', 'desc')->get()->groupBy(function (Incident $incident) use($dateTimeZone) {
// If it's scheduled, get the scheduled at date.
if ($incident->is_scheduled) {
return (new Date($incident->scheduled_at))->setTimezone($dateTimeZone)->toDateString();
}
return (new Date($incident->created_at))->setTimezone($dateTimeZone)->toDateString();
});
// Add in days that have no incidents
foreach ($incidentDays as $i) {
$date = (new Date($startDate))->setTimezone($dateTimeZone)->subDays($i);
if (!isset($allIncidents[$date->toDateString()])) {
$allIncidents[$date->toDateString()] = [];
}
}
// Sort the array so it takes into account the added days
$allIncidents = $allIncidents->sortBy(function ($value, $key) {
return strtotime($key);
}, SORT_REGULAR, true)->all();
return View::make('index')->withDaysToShow($daysToShow)->withAllIncidents($allIncidents)->withCanPageForward((bool) $today->gt($startDate))->withCanPageBackward(Incident::notScheduled()->where('created_at', '<', $startDate->format('Y-m-d'))->count() > 0)->withPreviousDate($startDate->copy()->subDays($daysToShow)->toDateString())->withNextDate($startDate->copy()->addDays($daysToShow)->toDateString());
}
开发者ID:votrongdao,项目名称:Cachet,代码行数:51,代码来源:StatusPageController.php
示例20: feedAction
/**
* Generates an Atom feed of all incidents.
*
* @return \Illuminate\Http\Response
*/
public function feedAction()
{
$feed = Feed::make();
$feed->title = Setting::get('app_name');
$feed->description = 'Status Feed';
$feed->link = Setting::get('app_domain');
$feed->setDateFormat('datetime');
Incident::get()->map(function ($incident) use($feed) {
if ($incident->component) {
$componentName = $incident->component->name;
} else {
$componentName = null;
}
$feed->add($incident->name, Setting::get('app_name'), Setting::get('app_domain'), $incident->created_at, $componentName === null ? $incident->humanStatus : $componentName . " " . $incident->humanStatus, $incident->message);
});
return $feed->render('atom');
}
开发者ID:baa-archieve,项目名称:Cachet,代码行数:22,代码来源:AtomController.php
注:本文中的CachetHQ\Cachet\Models\Incident类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论