1 <?php
3 class ConfigManagementListing extends management
4 {
6 private $base = "";
8 private $containerSelector = NULL;
9 private $itemSelector = NULL;
12 function __construct($config, $ui)
13 {
14 // Set storage points - We do not have any - We just create a fake list which lists all items
15 $this->storagePoints = array("");
16 $this->rebuildListing();
18 $this->containerSelector = new ItemSelector(array(),'/root','/root');
19 $this->itemSelector = new ItemSelector(array(),'/root','/root');
20 }
22 function save_object()
23 {
24 $this->containerSelector->update();
25 $this->itemSelector->update();
26 }
28 function getSelectedContainer()
29 {
30 return($this->containerSelector->getBase());
31 }
33 function setContainer($dist)
34 {
35 return($this->containerSelector->setBase($dist));
36 }
38 function setItem($rel)
39 {
40 return($this->itemSelector->setBase($rel));
41 }
43 function getSelectedItem()
44 {
45 return($this->itemSelector->getBase());
46 }
49 function setContainers($containers)
50 {
51 $this->containerSelector->setBases($containers);
52 $this->containerSelector->update(TRUE);
53 }
55 function setItems($items)
56 {
57 $this->itemSelector->setBases($items);
58 $this->itemSelector->update(TRUE);
59 }
61 function renderList()
62 {
63 session::set('DEVICE_ITEMS', array());
65 $filter = $this->getFilter();
66 $headpage = $this->getHeadpage();
67 $headpage->update();
68 $smarty = get_smarty();
70 $smarty->assign("CONTAINER", $this->containerSelector->render());
71 $smarty->assign("ITEM", $this->itemSelector->render());
72 $display = $headpage->render();
73 return($this->getHeader().$display);
75 }
78 function rebuildListing()
79 {
80 // Build filter
81 if (session::global_is_set(get_class($this)."_filter")){
82 $filter= session::global_get(get_class($this)."_filter");
83 } else {
84 $filter = new filter(get_template_path("DeviceConfig-filter.xml", true));
85 $filter->setObjectStorage($this->storagePoints);
86 }
87 $this->setFilter($filter);
89 // Load service xml file and fill in placeholders
90 $contents = file_get_contents(get_template_path("DeviceConfig-list.xml", true));
91 $contents = preg_replace("/%ITEMS%/", "", $contents);
92 $headpage = new listing($contents,TRUE);
93 $headpage->setBase($this->base);
94 $headpage->setFilter($filter);
96 parent::__construct($this->config, $this->ui, "services", $headpage);
97 }
98 }
100 ?>