parent
7323f73327
commit
b6d59b9aca
|
@ -127,10 +127,17 @@ class IcingaCommandArgumentForm extends DirectorObjectForm
|
|||
{
|
||||
$object = $this->object();
|
||||
$cmd = $this->commandObject;
|
||||
if (! $object->hasBeenLoadedFromDb()) {
|
||||
if ($object->argument_name === null) {
|
||||
$object->skip_key = true;
|
||||
$object->argument_name = $cmd->getNextSkippableKeyName();
|
||||
}
|
||||
}
|
||||
|
||||
if ($object->hasBeenModified()) {
|
||||
$cmd->arguments()->set(
|
||||
$object->argument_name,
|
||||
IcingaCommandArgument::create($this->getValues(), $this->db)
|
||||
$object
|
||||
);
|
||||
$msg = sprintf(
|
||||
$this->translate('The argument %s has successfully been stored'),
|
||||
|
|
|
@ -119,6 +119,27 @@ class IcingaCommand extends IcingaObject
|
|||
return $value;
|
||||
}
|
||||
|
||||
public function getNextSkippableKeyName()
|
||||
{
|
||||
$key = $this->makeSkipKey();
|
||||
$cnt = 1;
|
||||
while (isset($this->arguments()->$key)) {
|
||||
$cnt++;
|
||||
$key = $this->makeSkipKey($cnt);
|
||||
}
|
||||
|
||||
return $key;
|
||||
}
|
||||
|
||||
protected function makeSkipKey($num = null)
|
||||
{
|
||||
if ($num === null) {
|
||||
return '(no key)';
|
||||
}
|
||||
|
||||
return sprintf('(no key.%d)', $num);
|
||||
}
|
||||
|
||||
protected function prefersGlobalZone()
|
||||
{
|
||||
return true;
|
||||
|
|
|
@ -48,6 +48,11 @@ class IcingaCommandArgument extends IcingaObject
|
|||
// No log right now, we have to handle "sub-objects"
|
||||
}
|
||||
|
||||
public function isSkippingKey()
|
||||
{
|
||||
return $this->skip_key === 'y' || $this->argument_name === null;
|
||||
}
|
||||
|
||||
// Preserve is not supported
|
||||
public function replaceWith(IcingaObject $object, $preserve = null)
|
||||
{
|
||||
|
@ -163,15 +168,14 @@ class IcingaCommandArgument extends IcingaObject
|
|||
$data['required'] = c::renderBoolean($this->required);
|
||||
}
|
||||
|
||||
if ($this->isSkippingKey()) {
|
||||
$data['skip_key'] = c::renderBoolean('y');
|
||||
}
|
||||
|
||||
if ($this->repeat_key) {
|
||||
$data['repeat_key'] = c::renderBoolean($this->repeat_key);
|
||||
}
|
||||
|
||||
/* if ((int) $this->sort_order !== 0) {
|
||||
$data['order'] = $this->sort_order;
|
||||
}
|
||||
|
||||
*/
|
||||
if ($this->description) {
|
||||
$data['description'] = c::renderString($this->description);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue