Code

Moved fixes to trunk
[gosa.git] / include / class_MultiSelectWindow.inc
index db82577f37a044121960f7ac5a4c1597639ea74c..b7d4bb9166f0147f76dd2962075f9132019acf70 100644 (file)
@@ -27,12 +27,13 @@ class MultiSelectWindow{
        var $is_headpage                          = false;      // if true the design changes
        var $filterName                           = "Liste";
        var $DepartmentsAdded           = false;
+  var $Added_Departments  = array();
        var $selectedBase       = "";
 
   var $DivHeight          = "";
 
   var $HideFilterPart     = false;
-
+  var $List_Bottom_Info   = "";
   var $SaveAdditionalVars = array();  // Additional Post vars to store 
   var $module= "";
 
@@ -73,14 +74,14 @@ class MultiSelectWindow{
        }
 
        /* Contrucktion */
-       function MultiSelectWindow($config, $filterName, $module)
+       function MultiSelectWindow(&$config, $filterName, $module)
        {
-               $this->config = $config;
+               $this->config = &$config;
                $this->module = $module;
                $this->SaveButtonString         = _("Save");
                $this->CloseButtonString        = _("Close");
                $this->filterName                       = $filterName;
-
+    $this->ui = get_userinfo();
                $this->selectedBase = $_SESSION['CurrentMainBase'];
 
     /* Check default values for SaveAdditionalVars */
@@ -294,7 +295,12 @@ class MultiSelectWindow{
 
                $divlist = new divlist($this->string_Title);
                $divlist->SetSummary($this->string_Summary);
-               $divlist->SetEntriesPerPage(0); // 0 for scrollable list 
+               $divlist->SetEntriesPerPage(0); // 0 for scrollable list
+
+    /* Display list footer with summary of all listed entries */
+    if(isset($this->config->data['MAIN']['LIST_SUMMARY']) && preg_match("/true/i",$this->config->data['MAIN']['LIST_SUMMARY'])){
+      $divlist->SetFooter($this->get_List_Bottom_Info());
+    }
   
     if($this->DivHeight != ""){
       $divlist->SetHeight($this->DivHeight);
@@ -464,7 +470,9 @@ class MultiSelectWindow{
     if($s_action=="root"){
       $this->selectedBase=($this->config->current['BASE']);
       $dep_id = $this->ui->get_module_departments($this->module);
-      $this->selectedBase = $dep_id[key($dep_id)];
+      if(isset($dep_id[key($dep_id)])){
+        $this->selectedBase = $dep_id[key($dep_id)];
+      }
     }
 
 
@@ -598,6 +606,7 @@ class MultiSelectWindow{
        function AddDepartments($base = false,$numtabs = 3,$empty_tabs_in_front = 0)
        {
                $this->DepartmentsAdded = true;
+    $this->Added_Departments = array();
 
                /* check for a valid base */
                if(!$base){
@@ -652,7 +661,7 @@ class MultiSelectWindow{
                        $non_empty="";
                        $nkey= normalizePreg($key);
                        foreach($this->config->departments as $keyd=>$vald ){
-                               if(preg_match("/$nkey\/.*/",$keyd)){
+                               if(preg_match('/$nkey\/.*/',$keyd)){
                                        $non_empty="full";
                                }
                        }
@@ -679,8 +688,19 @@ class MultiSelectWindow{
                                }
                        }
                        $this->AddElement($row);
+      $this->Added_Departments[] = $row;
                }
        }
+
+  function set_List_Bottom_Info($str)
+  {
+    $this->List_Bottom_Info = $str;
+  }
+
+  function get_List_Bottom_Info()
+  {
+    return($this->List_Bottom_Info); 
+  }
 }
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
 ?>