Code

Updated action handling for the config management list
[gosa.git] / gosa-core / plugins / admin / newConfigManagement / class_ConfigManagementListing.inc
1 <?php
3 class ConfigManagementListing extends management
4 {
6     private $base = "";
8     private $containerSelector = NULL;
9     private $itemSelector = NULL;
11     private $objectTypeStr = "";
13     function __construct($config, $ui, $parent)
14     {
15         // Set storage points - We do not have any - We just create a fake list which lists all items
16         $this->storagePoints = array("");
17         $this->rebuildListing();
19         $this->containerSelector = new ItemSelector(array(),'/root','/root');
20         $this->itemSelector = new ItemSelector(array(),'','');
22         $this->parent = &$parent;
23     }
25     function save_object()
26     {
27         $this->containerSelector->update();    
28         $this->itemSelector->update();    
29     }
31     function getSelectedContainer()
32     {
33         return($this->containerSelector->getBase());
34     }
36     function setContainer($dist)
37     {
38         return($this->containerSelector->setBase($dist));
39     }
41     function setItem($rel)
42     {
43         return($this->itemSelector->setBase($rel));
44     }
46     function getSelectedItem()
47     {
48         return($this->itemSelector->getBase());
49     }
52     function setContainers($containers) 
53     {
54         $this->containerSelector->setBases($containers);
55         $this->containerSelector->update(TRUE);
56     }
58     function setItems($items) 
59     {
60         $this->itemSelector->setBases($items);
61         $this->itemSelector->update(TRUE);
62     }
65     function renderList()
66     {
67         session::set('DEVICE_ITEMS', array());
69         $headpage = $this->getHeadpage();
70         $headpage->update();
71         $smarty = get_smarty();
72         
73         $smarty->assign("CONTAINER", $this->containerSelector->render());
74         $smarty->assign("ITEM", $this->itemSelector->render());
75         $display = $headpage->render();
76         return($this->getHeader().$display);
78     }
81     function setListingTypes($types)
82     {
83         $str = "";
84         foreach($types as $typeData){
85             $str.= "\n<objectType>";
86             foreach($typeData as $key => $value){
87                 $str .= "\n\t<{$key}>{$value}</{$key}>";
88             }
89             $str.= "\n</objectType>\n";
91         }
92         $this->objectTypeStr = $str;
93         $this->rebuildListing();
94     }
96    
97     function rebuildListing()
98     {
100         // Handle actions (POSTs and GETs)
101         $str = $this->handleActions($this->detectPostActions());
102         if($str) return($this->getHeader().$str);
105         // Build filter
106         if (session::global_is_set(get_class($this)."_filter")){
107             $filter= session::global_get(get_class($this)."_filter");
108         } else {
109             $filter = new filter(get_template_path("DeviceConfig-filter.xml", true));
110             $filter->setObjectStorage($this->storagePoints);
111         }
112         $this->setFilter($filter);
114         // Load service xml file and fill in placeholders
115         $contents = file_get_contents(get_template_path("DeviceConfig-list.xml", true));
116         $contents = preg_replace("/%TYPES%/", $this->objectTypeStr, $contents);
117         $contents = preg_replace("/%ITEMS%/", "", $contents);
119         $headpage = new listing($contents,TRUE);
120         $headpage->setBase($this->base);
121         $headpage->setFilter($filter);
123         parent::__construct($this->config, $this->ui, "services", $headpage);
125         // Register default actions
126         $this->registerAction("new",    "newEntry");
127         $this->registerAction("editEntry",  "editEntry");
128         $this->registerAction("open",       "openEntry");
129         $this->registerAction("apply",  "applyChanges");
130         $this->registerAction("save",   "saveChanges");
131         $this->registerAction("cancel", "cancelEdit");
132         $this->registerAction("cancelDelete", "cancelEdit");
133         $this->registerAction("remove", "removeEntryRequested");
134         $this->registerAction("removeConfirmed", "removeEntryConfirmed");
136         $this->registerAction("config-filter","editFilter");
137         $this->registerAction("saveFilter","saveFilter");
138         $this->registerAction("cancelFilter","cancelFilter");
140     }
142     function removeEntryRequested($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
143     {
144         $this->parent->removeEntry($target);
145     }
147     function openEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
148     {
149         $this->parent->openEntry($target);
150     }
152     function editEntry($action="",$target=array(),$all=array(), $altTabClass ="", $altTabType = "", $altAclCategory="")
153     {
154         $this->parent->editEntry($target);
155     }
156
158 ?>