mirror of
https://github.com/Icinga/icingaweb2-module-businessprocess.git
synced 2026-06-27 09:32:27 -04:00
Add SPDX license headers and mark source files as GPL-3.0-or-later to preserve the option to relicense under later GPL versions.
38 lines
1,000 B
PHP
38 lines
1,000 B
PHP
<?php
|
|
|
|
// SPDX-FileCopyrightText: 2018 Icinga GmbH <https://icinga.com>
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
namespace Icinga\Module\Businessprocess\Modification;
|
|
|
|
use Icinga\Module\Businessprocess\BpConfig;
|
|
use Icinga\Module\Businessprocess\Common\Sort;
|
|
|
|
class NodeApplyManualOrderAction extends NodeAction
|
|
{
|
|
use Sort;
|
|
|
|
public function appliesTo(BpConfig $config)
|
|
{
|
|
return $config->getMetadata()->get('ManualOrder') !== 'yes';
|
|
}
|
|
|
|
public function applyTo(BpConfig $config)
|
|
{
|
|
$i = 0;
|
|
foreach ($config->getBpNodes() as $name => $node) {
|
|
if ($node->getDisplay() > 0) {
|
|
$node->setDisplay(++$i);
|
|
}
|
|
|
|
if ($node->hasChildren()) {
|
|
$node->setChildNames(array_keys(
|
|
$this->setSort('display_name asc')
|
|
->sort($node->getChildren())
|
|
));
|
|
}
|
|
}
|
|
|
|
$config->getMetadata()->set('ManualOrder', 'yes');
|
|
}
|
|
}
|