mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-09-21 17:07:53 +02:00
Add module lib dependencies on reqirement page
* Enhance class WebLibraryRequirement
This commit is contained in:
parent
5ef89e5166
commit
136ebab79e
@ -101,7 +101,7 @@ class ModulePage extends Form
|
|||||||
foreach ($checked as $name => $module) {
|
foreach ($checked as $name => $module) {
|
||||||
if ($module->providesSetupWizard()) {
|
if ($module->providesSetupWizard()) {
|
||||||
$wizards[$name] = $module->getSetupWizard();
|
$wizards[$name] = $module->getSetupWizard();
|
||||||
} elseif (! empty($module->getRequiredModules())) {
|
} elseif (! empty($module->getRequiredModules()) || ! empty($module->getRequiredLibraries())) {
|
||||||
$wizards[$name] = new ModuleDependency($module, array_keys($checked));
|
$wizards[$name] = new ModuleDependency($module, array_keys($checked));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ namespace Icinga\Module\Setup;
|
|||||||
use Icinga\Application\Modules\Module;
|
use Icinga\Application\Modules\Module;
|
||||||
use Icinga\Module\Setup\Requirement\ModuleMissingRequirement;
|
use Icinga\Module\Setup\Requirement\ModuleMissingRequirement;
|
||||||
use Icinga\Module\Setup\Requirement\SetRequirement;
|
use Icinga\Module\Setup\Requirement\SetRequirement;
|
||||||
|
use Icinga\Module\Setup\Requirement\WebLibraryRequirement;
|
||||||
use Icinga\Module\Setup\Requirement\WebModuleRequirement;
|
use Icinga\Module\Setup\Requirement\WebModuleRequirement;
|
||||||
|
|
||||||
class ModuleDependency
|
class ModuleDependency
|
||||||
@ -94,6 +95,14 @@ class ModuleDependency
|
|||||||
$set->add($requirement);
|
$set->add($requirement);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach ($this->module->getRequiredLibraries() as $name => $requiredVersion) {
|
||||||
|
$set->add(new WebLibraryRequirement([
|
||||||
|
'condition' => [$name, $requiredVersion],
|
||||||
|
'alias' => $name,
|
||||||
|
'description' => sprintf(t('The %s library (%s) is required'), $name, $requiredVersion)
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
|
||||||
return $set;
|
return $set;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,12 @@ class WebLibraryRequirement extends Requirement
|
|||||||
{
|
{
|
||||||
protected function evaluate()
|
protected function evaluate()
|
||||||
{
|
{
|
||||||
list($name, $op, $version) = $this->getCondition();
|
if (count($this->getCondition()) === 2) {
|
||||||
|
list($name, $version) = $this->getCondition();
|
||||||
|
$op = '';
|
||||||
|
} else {
|
||||||
|
list($name, $op, $version) = $this->getCondition();
|
||||||
|
}
|
||||||
|
|
||||||
$libs = Icinga::app()->getLibraries();
|
$libs = Icinga::app()->getLibraries();
|
||||||
if (! $libs->has($name)) {
|
if (! $libs->has($name)) {
|
||||||
@ -19,6 +24,11 @@ class WebLibraryRequirement extends Requirement
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->setStateText(sprintf(mt('setup', '%s version: %s'), $this->getAlias(), $libs->get($name)->getVersion()));
|
$this->setStateText(sprintf(mt('setup', '%s version: %s'), $this->getAlias(), $libs->get($name)->getVersion()));
|
||||||
|
|
||||||
|
if (! is_string($version)) { // null, bool
|
||||||
|
return $libs->has($name, $version);
|
||||||
|
}
|
||||||
|
|
||||||
return $libs->has($name, $op . $version);
|
return $libs->has($name, $op . $version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user