mirror of
https://github.com/Icinga/icingaweb2-module-businessprocess.git
synced 2026-01-02 03:39:35 -05:00
ProcessForm: remove child-related code
This commit is contained in:
parent
32f50c85cf
commit
37ed2cd15d
1 changed files with 24 additions and 170 deletions
|
|
@ -30,13 +30,21 @@ class ProcessForm extends QuickForm
|
|||
|
||||
public function setup()
|
||||
{
|
||||
$this->addElement('text', 'name', array(
|
||||
'label' => $this->translate('Name'),
|
||||
'required' => true,
|
||||
'description' => $this->translate(
|
||||
'This is the unique identifier of this process'
|
||||
),
|
||||
));
|
||||
if ($this->node === null) {
|
||||
$this->addElement('text', 'name', array(
|
||||
'label' => $this->translate('Name'),
|
||||
'required' => true,
|
||||
'description' => $this->translate(
|
||||
'This is the unique identifier of this process'
|
||||
),
|
||||
));
|
||||
} else {
|
||||
$this->addHtml(
|
||||
'<h2>' . $this->getView()->escape(
|
||||
sprintf($this->translate('Modify "%s"'), $this->node->getAlias())
|
||||
) . '</h2>'
|
||||
);
|
||||
}
|
||||
|
||||
$this->addElement('text', 'alias', array(
|
||||
'label' => $this->translate('Title'),
|
||||
|
|
@ -84,90 +92,18 @@ class ProcessForm extends QuickForm
|
|||
)
|
||||
));
|
||||
|
||||
$this->addElement('select', 'object_type', array(
|
||||
'label' => $this->translate('Add children'),
|
||||
'required' => $this->node === null || ! $this->node->hasChildren(),
|
||||
'ignore' => true,
|
||||
'class' => 'autosubmit',
|
||||
'multiOptions' => $this->optionalEnum(
|
||||
array(
|
||||
'hosts' => $this->translate('Host'),
|
||||
'service' => $this->translate('Service'),
|
||||
'process' => $this->translate('Another process'),
|
||||
'include' => $this->translate('External process'),
|
||||
)
|
||||
)
|
||||
));
|
||||
|
||||
switch ($this->getSentValue('object_type')) {
|
||||
case 'hosts':
|
||||
$this->addHostsElement();
|
||||
break;
|
||||
case 'service':
|
||||
$this->addHostElement();
|
||||
if ($host = $this->getSentValue('host')) {
|
||||
$this->addServicesElement($host);
|
||||
}
|
||||
break;
|
||||
case 'process':
|
||||
$this->addProcessesElement();
|
||||
break;
|
||||
if ($node = $this->node) {
|
||||
if ($node->hasAlias()) {
|
||||
$this->getElement('alias')->setValue($node->getAlias());
|
||||
}
|
||||
$this->getElement('operator')->setValue($node->getOperator());
|
||||
$this->getElement('display')->setValue($node->getDisplay());
|
||||
if ($node->hasInfoUrl()) {
|
||||
$this->getElement('url')->setValue($node->getInfoUrl());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function addHostsElement()
|
||||
{
|
||||
$this->addElement('multiselect', 'children', array(
|
||||
'label' => $this->translate('Hosts'),
|
||||
'required' => true,
|
||||
'size' => 14,
|
||||
'style' => 'width: 25em',
|
||||
'multiOptions' => $this->enumHostList(),
|
||||
'description' => $this->translate(
|
||||
'Hosts that should be part of this business process node'
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
protected function addHostElement()
|
||||
{
|
||||
$this->addElement('select', 'host', array(
|
||||
'label' => $this->translate('Host'),
|
||||
'required' => true,
|
||||
'ignore' => true,
|
||||
'class' => 'autosubmit',
|
||||
'multiOptions' => $this->optionalEnum($this->enumHostList()),
|
||||
));
|
||||
}
|
||||
|
||||
protected function addServicesElement($host)
|
||||
{
|
||||
$this->addElement('multiselect', 'children', array(
|
||||
'label' => $this->translate('Services'),
|
||||
'required' => true,
|
||||
'size' => 14,
|
||||
'style' => 'width: 25em',
|
||||
'multiOptions' => $this->enumServiceList($host),
|
||||
'description' => $this->translate(
|
||||
'Services that should be part of this business process node'
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
protected function addProcessesElement()
|
||||
{
|
||||
$this->addElement('multiselect', 'children', array(
|
||||
'label' => $this->translate('Process nodes'),
|
||||
'required' => true,
|
||||
'size' => 14,
|
||||
'style' => 'width: 25em',
|
||||
'multiOptions' => $this->enumProcesses(),
|
||||
'description' => $this->translate(
|
||||
'Other processes that should be part of this business process node'
|
||||
)
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param MonitoringBackend $backend
|
||||
* @return $this
|
||||
|
|
@ -209,88 +145,11 @@ class ProcessForm extends QuickForm
|
|||
return $this;
|
||||
}
|
||||
|
||||
protected function enumHostList()
|
||||
{
|
||||
$names = $this->backend->select()->from('hostStatus', array(
|
||||
'hostname' => 'host_name',
|
||||
))->order('host_name')->getQuery()->fetchColumn();
|
||||
|
||||
// fetchPairs doesn't seem to work when using the same column with
|
||||
// different aliases twice
|
||||
return array_combine((array) $names, (array) $names);
|
||||
}
|
||||
|
||||
protected function enumServiceList($host)
|
||||
{
|
||||
$query = $this->backend->select()->from(
|
||||
'serviceStatus',
|
||||
array('service' => 'service_description')
|
||||
)->where('host_name', $host);
|
||||
$query->order('service_description');
|
||||
$names = $query->getQuery()->fetchColumn();
|
||||
|
||||
$services = array();
|
||||
foreach ($names as $name) {
|
||||
$services[$host . ';' . $name] = $name;
|
||||
}
|
||||
|
||||
return $services;
|
||||
}
|
||||
|
||||
protected function enumProcesses()
|
||||
{
|
||||
$list = array();
|
||||
|
||||
foreach ($this->bp->getNodes() as $node) {
|
||||
if ($node instanceof BpNode) {
|
||||
// TODO: Blacklist parents
|
||||
$list[(string) $node] = (string) $node; // display name?
|
||||
}
|
||||
}
|
||||
|
||||
natsort($list);
|
||||
return $list;
|
||||
}
|
||||
|
||||
protected function fetchObjectList()
|
||||
{
|
||||
$this->objectList = array();
|
||||
$hosts = $this->backend->select()->from('hostStatus', array(
|
||||
'hostname' => 'host_name',
|
||||
'in_downtime' => 'host_in_downtime',
|
||||
'ack' => 'host_acknowledged',
|
||||
'state' => 'host_state'
|
||||
))->order('host_name')->getQuery()->fetchAll();
|
||||
|
||||
$services = $this->backend->select()->from('serviceStatus', array(
|
||||
'hostname' => 'host_name',
|
||||
'service' => 'service_description',
|
||||
'in_downtime' => 'service_in_downtime',
|
||||
'ack' => 'service_acknowledged',
|
||||
'state' => 'service_state'
|
||||
))->order('host_name')->order('service_description')->getQuery()->fetchAll();
|
||||
|
||||
foreach ($hosts as $host) {
|
||||
$this->objectList[$host->hostname] = array(
|
||||
$host->hostname . ';Hoststatus' => 'Host Status'
|
||||
);
|
||||
}
|
||||
|
||||
foreach ($services as $service) {
|
||||
$this->objectList[$service->hostname][
|
||||
$service->hostname . ';' . $service->service
|
||||
] = $service->service;
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function onSuccess()
|
||||
{
|
||||
$changes = ProcessChanges::construct($this->bp, $this->session);
|
||||
|
||||
$modifications = array();
|
||||
$children = $this->getValue('children');
|
||||
$alias = $this->getValue('alias');
|
||||
$operator = $this->getValue('operator');
|
||||
$display = $this->getValue('display');
|
||||
|
|
@ -301,7 +160,6 @@ class ProcessForm extends QuickForm
|
|||
if (empty($alias)) {
|
||||
$alias = null;
|
||||
}
|
||||
ksort($children);
|
||||
// TODO: rename
|
||||
|
||||
if ($node = $this->node) {
|
||||
|
|
@ -312,9 +170,6 @@ class ProcessForm extends QuickForm
|
|||
if ($operator !== $node->getOperator()) {
|
||||
$modifications['operator'] = $operator;
|
||||
}
|
||||
if ($children !== $node->getChildNames()) {
|
||||
$modifications['childNames'] = $children;
|
||||
}
|
||||
if ($url !== $node->getInfoUrl()) {
|
||||
$modifications['infoUrl'] = $url;
|
||||
}
|
||||
|
|
@ -325,7 +180,6 @@ class ProcessForm extends QuickForm
|
|||
$modifications = array(
|
||||
'display' => $display,
|
||||
'operator' => $operator,
|
||||
'childNames' => $children,
|
||||
'infoUrl' => $url,
|
||||
'alias' => $alias,
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in a new issue