]> git.ipfire.org Git - thirdparty/bacula.git/commitdiff
baculum: Add parent node property to directive list types
authorMarcin Haba <marcin.haba@bacula.pl>
Wed, 24 Apr 2019 06:02:58 +0000 (08:02 +0200)
committerMarcin Haba <marcin.haba@bacula.pl>
Wed, 24 Apr 2019 06:02:58 +0000 (08:02 +0200)
gui/baculum/protected/Web/Portlets/BaculaConfigDirectives.php
gui/baculum/protected/Web/Portlets/DirectiveListTemplate.php
gui/baculum/protected/Web/Portlets/DirectiveRenderer.php

index 3e768e1c75f16764c7bca033223a138e09e91221..be72e3c7bac00762b0c3de98985863c3fefbca61 100644 (file)
@@ -273,6 +273,10 @@ class BaculaConfigDirectives extends DirectiveListTemplate {
                for ($i = 0; $i < count($this->directive_list_types); $i++) {
                        $controls = $this->RepeaterDirectives->findControlsByType($this->directive_list_types[$i]);
                        for ($j = 0; $j < count($controls); $j++) {
+                               $parent_name = $controls[$j]->getParentName();
+                               if (!is_null($parent_name)) {
+                                       continue;
+                               }
                                $directive_name = $controls[$j]->getDirectiveName();
                                $directive_value = $controls[$j]->getDirectiveValue();
                                if (is_null($directive_value)) {
index 18d17feafcab35c82d394a47a8a9a92ea0f36c9d..0d92f06415169114b7b1ccafb8639c4698f2f078 100644 (file)
@@ -36,6 +36,7 @@ class DirectiveListTemplate extends ConfigListTemplate implements IActiveControl
        const DATA = 'Data';
        const LOAD_VALUES = 'LoadValues';
        const SHOW = 'Show';
+       const PARENT_NAME = 'ParentName';
        const GROUP_NAME = 'GroupName';
 
        public $display_directive;
@@ -156,6 +157,14 @@ class DirectiveListTemplate extends ConfigListTemplate implements IActiveControl
                $this->setViewState(self::SHOW, $show);
        }
 
+       public function getParentName() {
+               return $this->getViewState(self::PARENT_NAME);
+       }
+
+       public function setParentName($parent_name) {
+               $this->setViewState(self::PARENT_NAME, $parent_name);
+       }
+
        public function getGroupName() {
                return $this->getViewState(self::GROUP_NAME);
        }
index 160960c00c27bc688c3125fcae28c08fffb2a796..b0f5f31ca8e21f3ad4136a85d9f48e525a25c56e 100644 (file)
@@ -91,6 +91,7 @@ class DirectiveRenderer extends DirectiveListTemplate implements IItemDataRender
                        $control->setParentName($data['parent_name']);
                        $control->setResourceNames($this->SourceTemplateControl->getResourceNames());
                        $this->getControls()->add($control);
+                       $control->createDirective();
                } elseif (in_array($type, $this->directive_list_types)) {
                        $control->setHost($data['host']);
                        $control->setComponentType($data['component_type']);
@@ -99,6 +100,7 @@ class DirectiveRenderer extends DirectiveListTemplate implements IItemDataRender
                        $control->setResourceName($data['resource_name']);
                        $control->setDirectiveName($data['directive_name']);
                        $control->setData($data['directive_value']);
+                       $control->setParentName($data['parent_name']);
                        $control->setLoadValues($this->SourceTemplateControl->getLoadValues());
                        $control->setResourceNames($this->SourceTemplateControl->getResourceNames());
                        $control->setShow($data['show']);