Code

Updated table summary
[gosa.git] / gosa-plugins / goto / admin / applications / class_applicationManagement.inc
index 15bdc7d1ed0dc00eb67e629b8eba3b7a7b64ae00..43ec0c5bbd1921be09c5bf4030b47bd07970fc18 100644 (file)
@@ -23,8 +23,8 @@
 class applicationManagement extends management
 {
   var $plHeadline     = "Applications";
-  var $plDescription  = "Application administration";
-  var $plIcon  = "plugins/applications/images/plugin.png";
+  var $plDescription  = "Application management";
+  var $plIcon  = "plugins/goto/images/application.png";
 
   var $app_release = ""; // The currently selected release while in release management mode!
 
@@ -39,20 +39,29 @@ class applicationManagement extends management
   {
     $this->config = $config;
     $this->ui = $ui;
-   
-    $this->storagePoints = array(get_ou("applicationRDN"));
-#   // Build filter
-#   if (session::global_is_set(get_class($this)."_filter")){
-#     $filter= session::global_get(get_class($this)."_filter");
-#   } else {
-     $filter = new filter(get_template_path("application-filter.xml", true));
-     $filter->setObjectStorage($this->storagePoints);
-#   }
+
+    if($this->IsReleaseManagementActivated()){
+      $this->app_release = get_ou('applicationRDN').$this->config->current['BASE'];
+      $filter_xml = "application-filter-release.xml";
+      $list_xml = "application-list-release.xml";
+      $this->storagePoints= array("");
+    }else{
+      $filter_xml = "application-filter.xml";
+      $list_xml = "application-list.xml";
+      $this->storagePoints= array(get_ou("applicationRDN"));
+    }
+
+    // Build filter
+    if (session::global_is_set(get_class($this)."_filter")){
+      $filter= session::global_get(get_class($this)."_filter");
+    } else {
+      $filter = new filter(get_template_path($filter_xml, true));
+      $filter->setObjectStorage($this->storagePoints);
+    }
     $this->setFilter($filter);
 
     // Build headpage
-    $headpage = new listing(get_template_path("application-list.xml", true));
+    $headpage = new listing(get_template_path($list_xml, true));
     $headpage->setFilter($filter);
 
     // Add copy&paste and snapshot handler.
@@ -72,9 +81,39 @@ class applicationManagement extends management
 
   function renderList()
   {
+    $filter = $this->getFilter();
     $headpage = $this->getHeadpage();
-    return(management::renderList());
+    if($this->IsReleaseManagementActivated()){    
+      $filter->setComboBoxOptions("RELEASE",$this->getReleaseList());
+
+      if(isset($_POST['RELEASE'])){
+        $this->app_release = get_post('RELEASE');
+      }
+      $headpage->setBase($this->app_release);
+    }
+
+    $headpage->update();
+    $display = $headpage->render();
+    return($this->getHeader().$display);
+  }
+
+  function getReleaseList($base = "", $prefix ="")
+  {
+    $list = array();
+    if(empty($base)){
+      $base = get_ou('applicationRDN').$this->config->current['BASE'];
+      $list[$base] = "/";
+    }
+
+    $ldap = $this->config->get_ldap_link();
+    $ldap->ls("(objectClass=FAIbranch)",$base,array("ou","FAIstate"));
+    while($release = $ldap->fetch()){
+      $list[$release['dn']] = $prefix.$release['ou'][0];
+      $list = array_merge($list,$this->getReleaseList($release['dn'],$prefix."  "));
+    }
+    return($list);
   }
+  
 
   function IsReleaseManagementActivated()
   {