icingaweb2-module-director/library/Director/Web/Widget/JobDetails.php

62 lines
2.0 KiB
PHP
Raw Normal View History

<?php
namespace Icinga\Module\Director\Web\Widget;
use dipl\Html\HtmlDocument;
use Icinga\Module\Director\Objects\DirectorJob;
2017-10-09 15:23:27 +02:00
use dipl\Html\Html;
use dipl\Translation\TranslationHelper;
class JobDetails extends HtmlDocument
{
use TranslationHelper;
/**
* JobDetails constructor.
* @param DirectorJob $job
* @throws \Icinga\Exception\IcingaException
* @throws \Icinga\Exception\NotFoundError
*/
public function __construct(DirectorJob $job)
{
if ($job->disabled === 'y') {
$this->add(Html::tag('p', ['class' => 'error'], sprintf(
$this->translate(
'This job would run every %ds. It has been disabled and will'
. ' therefore not be executed as scheduled'
),
$job->run_interval
)));
} else {
//$class = $job->job(); echo $class::getDescription()
$msg = $job->isPending()
? sprintf(
$this->translate('This job runs every %ds and is currently pending'),
$job->run_interval
)
: sprintf(
$this->translate('This job runs every %ds.'),
$job->run_interval
);
$this->add(Html::tag('p', null, $msg));
}
if ($job->ts_last_attempt) {
if ($job->last_attempt_succeeded) {
$this->add(Html::tag('p', null, sprintf(
$this->translate('The last attempt succeeded at %s'),
$job->ts_last_attempt
)));
} else {
$this->add(Html::tag('p', ['class' => 'error'], sprintf(
$this->translate('The last attempt failed at %s: %s'),
$job->ts_last_attempt,
$job->ts_last_error
)));
}
} else {
$this->add(Html::tag('p', null, $this->translate('This job has not been executed yet')));
}
}
}