Code

Added conference div list
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 17 May 2006 05:18:39 +0000 (05:18 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Wed, 17 May 2006 05:18:39 +0000 (05:18 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@3371 594d385d-05f5-0310-b6e9-bd551577e9d8

plugins/gofon/conference/class_divListMacros.inc [new file with mode: 0755]
plugins/gofon/conference/class_phoneConferenceManagment.inc
plugins/gofon/conference/main.inc

diff --git a/plugins/gofon/conference/class_divListMacros.inc b/plugins/gofon/conference/class_divListMacros.inc
new file mode 100755 (executable)
index 0000000..b9d21b5
--- /dev/null
@@ -0,0 +1,172 @@
+<?php
+
+class divListConference extends MultiSelectWindow
+{
+
+  /* Current base */
+  var $selectedBase       = "";
+  var $departments        = array();
+
+  /* Regex */
+  var $Regex              = "*";
+
+  /* checkboxes */
+  var $ShowSendBocklists      ;
+  var $ShowReceiveMacros  ;
+
+  /* Subsearch checkbox */
+  var $SubSearch;
+
+  var $parent             ;
+  var $ui                 ;
+
+  function divListConference ($config,$parent)
+  {
+    MultiSelectWindow::MultiSelectWindow($config,"Conferences");
+    
+    $this->parent       = $parent;
+    $this->ui           = get_userinfo();
+
+    /* Set list strings */
+    $this->SetTitle(_("List of conference rooms"));
+    $this->SetSummary(_("List of conference rooms"));
+
+    /* Result page will look like a headpage */
+    $this->SetHeadpageMode();
+    $this->SetInformation(_("This menu allows you to create, delete and edit selected phone conferences. ".
+                            "Having a large number of phone conferences, you might prefer the range ".
+                            "selectors on top of the conferences list."));
+
+    $this->EnableAplhabet(true);
+  
+    /* Disable buttonsm */
+    $this->EnableCloseButton(false);
+    $this->EnableSaveButton (false);
+
+    /* set Page header */
+    $this->AddHeader(array("string" => "&nbsp;", "attach" => "style='text-align:center;width:20px;'"));
+    $this->AddHeader(array("string" =>_("Name - Number"), "attach" => "style=''"));
+    $this->AddHeader(array("string" => _("Owner"), "attach" => "style='width:200px;'"));
+    $this->AddHeader(array("string" => _("PIN"), "attach" => "style='width:50px;'"));
+    $this->AddHeader(array("string" =>_("Actions"), "attach" => "style='width:60px;border-right:0px;text-align:right;'"));
+
+    /* Add Checkboxes / SubSearch checkbox */
+    $this->AddCheckBox("SubSearch",  _("Select to search within subtrees"), _("Ignore subtrees"), false);
+
+    /*                  Name                 ,Text                              ,Default  , Connect with alphabet  */
+    $this->AddRegex   ("Regex",      _("Regular expression for matching conference names"),"*" , true);
+  }
+
+  function GenHeader()
+  {
+    /* Prepare departments,
+       which are shown in the listbox on top of the listbox
+     */
+    $options= "";
+    foreach ($this->config->idepartments as $key => $value){
+      if ($this->selectedBase == $key){
+        $options.= "<option selected='selected' value='$key'>$value</option>";
+      } else {
+        $options.= "<option value='$key'>$value</option>";
+      }
+    }
+
+    /* NEW LIST MANAGMENT */
+    $listhead = "<div style='background:#F0F0F9;padding:5px;'>".
+      " <input class='center' type='image' src='images/list_root.png' align='middle' 
+      title='"._("Go to root department")."' name='dep_root' alt='".         _("Root")."'>&nbsp;".
+      " <input class='center' type='image' align='middle' src='images/list_back.png' 
+      title='"._("Go up one department")."' alt='"._("Up")."'                name='dep_back'>&nbsp;".
+      " <input class='center' type='image' align='middle' src='images/list_home.png' 
+      title='"._("Go to users department")."' alt='"._("Home")."'            name='dep_home'>&nbsp;".
+      " <input class='center' type='image' src='images/list_reload.png' align='middle' 
+      title='"._("Reload list")."' name='submit_department' alt='".        _("Submit")."'>&nbsp;".
+      " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'>&nbsp;".
+      " <input class='center' type='image' align='middle' src='images/list_new_conference.png' 
+      title='"._("Create new conference")."' alt='"._("New         conference")."' name='user_new'>&nbsp;".
+      " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'>&nbsp;".
+      _("Base")."&nbsp;<select name='CurrentMainBase' onChange='mainform.submit()' class='center'>$options</select>".
+      " <input class='center' type='image' src='images/list_submit.png' align='middle' 
+      title='"._("Submit department")."' name='submit_department' alt='".  _("Submit").     "'>&nbsp;".
+      "</div>";
+    
+    $this->SetListHeader($listhead);
+  }
+
+  function execute()
+  {
+    $this->ClearElementsList();
+    $this->GenHeader();
+  }
+
+  function setEntries($list)
+  {
+    $actions = "<input class='center' type='image' src='images/edit.png'     
+      alt='"._("edit")."'    name='conf_edit_%KEY%' title='"._("Edit this entry")."'>";
+    $actions.= "<input class='center' type='image' src='images/edittrash.png' 
+      alt='"._("delete")."'   name='conf_del_%KEY%'  title='"._("Delete this entry")."'>";
+    $actions2= "<input class='center' type='image' src='images/edittrash.png' 
+      alt='"._("delete")."'   name='conf_del_%KEY%'  title='"._("Delete this entry")."'>";
+    $linkopen= "<a href='?plug=".$_GET['plug']."&amp;act=dep_open&amp;dep_id=%s'>%s</a>";
+
+    $userimg  = "<img class='center' src='images/select_conference.png' alt='User' title='%s'>";
+    $editlink = "<a href='?plug=".$_GET['plug']."&amp;id=%s&amp;act=edit_entry'>%s</a>";
+  
+        /* Insert conferneces*/
+    foreach($list as $conferencekey => $conference ){
+
+      if((isset($conference['goFonPIN'][0]))&&(($this->parent->ui->dn==$conference['goFonConferenceOwner'][0])||($this->parent->acl=="#all#"))){
+        $pin = "<img class='center' src='images/list_password.png' title='PIN : ".$conference['goFonPIN'][0]."' alt='PIN'>";
+      }else{
+        $pin = "&nbsp;";
+      }
+
+      if(isset($conference['telephoneNumber'][0])){
+        $number = " - ".$conference['telephoneNumber'][0];
+      }else{
+        $number = "&nbsp; - ?";
+      }
+
+      $ldap= $this->parent->config->get_ldap_link();
+      $ldap->cat($conference['goFonConferenceOwner'][0], array('cn'));
+      $data = $ldap->fetch();
+      $cn = $data['cn'][0];
+
+      $a_field1 = array("string"=>sprintf($userimg,_("Conference")), "attach" => "style='text-align:center;width:20px;'");
+
+      if(($this->parent->acl=="#all#")||(($this->parent->ui->dn==$conference['goFonConferenceOwner'][0])&&(chkacl($this->parent->acl,"goFonConferenceOwner")==""))){
+        $a_field2 = array("string"=>sprintf($editlink,$conferencekey,$conference['cn'][0].$number), "attach" => "style=''");
+      }else{
+        $a_field2 = array("string"=>$conference['cn'][0].$number, "attach" => "style=''");
+      }
+      $a_field3 = array("string"=> $cn, "attach" => "style='width:200px;'");
+      $a_field4 = array("string"=> $pin, "attach" => "style='width:50px;'");
+
+      if(($this->parent->ui->dn==$conference['goFonConferenceOwner'][0])&&(chkacl($this->parent->acl,"goFonConferenceOwner")=="")){
+        $a_field5 = array("string"=>preg_replace("/%KEY%/",$conferencekey,$actions), "attach" => "style='width:60px;border-right:0px;text-align:right;'");
+      }elseif(chkacl($this->acl,"goFonConferenceOwner")==""){
+        $a_field5 = array("string"=>preg_replace("/%KEY%/",$conferencekey,$actions2), "attach" => "style='width:52px;border-right:0px;text-align:right;'");
+      }else{
+        $a_field5 = array("string"=>"&nbsp;", "attach" => "style='width:52px;border-right:0px;text-align:right;'");
+      }
+
+      $this->AddElement(array($a_field1,$a_field2,$a_field3,$a_field4,$a_field5));
+    }
+
+  }
+
+  function Save()
+  {
+    MultiSelectWindow :: Save();  
+  }
+
+  function save_object()
+  {
+    /* Save automatic created POSTs like regex, checkboxes */
+    MultiSelectWindow :: save_object();   
+  }
+}
+// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
+?>
index 3dc7eb390c13b884f80a6b722fe24301d730a2de..508af3112776d5248710e77ef5fc0274f8c4e673 100644 (file)
@@ -30,15 +30,14 @@ class phoneConferenceManagment extends plugin
   var $cli_description         = "Some longer text\nfor help";
   var $cli_parameters                  = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser");
 
-  /* Headpage attributes */
-  var $conferences                       = array();
-
   /* attribute list for save action */
   var $attributes                                = array();
   var $objectclasses                   = array();
+
+  var $conferences                       = array();
   var $conftab            = false;
 
-  var $departments  =array();
+  var $DivListConference  = NULL;
 
   /* Initialise Class */
   function phoneConferenceManagment ($config, $ui)
@@ -50,22 +49,20 @@ class phoneConferenceManagment extends plugin
     $acl= get_permissions ($ui->dn, $ui->subtreeACL);
     $this->acl= get_module_permission($acl, "conference", $ui->dn);
 
-    /* Get global filter config */
-    if (!isset($_SESSION["conferencefilter"])){
-      $base= get_base_from_people($ui->dn);
-      $conferencefilter= array(
-          "regex"           => "*");
-      $_SESSION["conferencefilter"] = $conferencefilter;
-    }
+    $this->DivListConference = new divListConference($this->config,$this);
   }
 
+
   /* Execute class and display something */
   function execute()
   {
+    /* Call parent execute */
+    plugin::execute();
 
-       /* Call parent execute */
-       plugin::execute();
-
+    /***************
+      Variable initialisation
+     ***************/
+  
     /* Reload departments */
     $smarty                                                      = get_smarty();
     $display                                             = "";
@@ -73,27 +70,11 @@ class phoneConferenceManagment extends plugin
     $s_entry                                           = "";  // The entry name for edit delete -...
     $conferencefilter           = $_SESSION["conferencefilter"]; 
 
-    if(isset($_POST['regexit'])){
-      $conferencefilter['regex']=$_POST['regexit'];
-    }
-
-    if(isset($_GET['search'])){
-      if($_GET['search']=="*"){
-        $conferencefilter['regex']=$_GET['search'];
-      }else{
-        $conferencefilter['regex']=$_GET['search']."*";
-      }
-    }
-
-    $smarty->assign("regex",$conferencefilter['regex']); 
-
-    /* Start for New List Managment */
-    if(isset($_GET['act'])&&($_GET['act']=="dep_open")){
-      $s_action="open";
-      $s_entry = base64_decode($_GET['dep_id']);
-      $_SESSION['CurrentMainBase']= $this->config->departments[trim($s_entry)];
-    }
 
+    /***************
+      Check posts  
+     ***************/
+  
     foreach($_POST as $key => $post){
       if(preg_match("/.*new.*/i",$key)){
         $s_action = "new";
@@ -107,12 +88,6 @@ class phoneConferenceManagment extends plugin
         $s_action="edit";
         $s_entry  = preg_replace("/conf_".$s_action."_/i","",$key);
         $s_entry  = preg_replace("/_.*$/","",$s_entry);
-      }elseif(preg_match("/dep_back.*/i",$key)){
-        $s_action="back";
-      }elseif(preg_match("/dep_home.*/i",$key)){
-        $s_action="home";
-      }elseif(preg_match("/dep_root.*/i",$key)){
-        $s_action="root";
       } 
     }
 
@@ -122,39 +97,13 @@ class phoneConferenceManagment extends plugin
       $s_entry  = $_GET['id'];
     }
 
-    /* Department changed? */
-    if(isset($_POST['CurrentMainBase']) && $_POST['CurrentMainBase']){
-      $_SESSION['CurrentMainBase']= $_POST['CurrentMainBase'];
-    }
-
-    /* Homebutton is posted */
-    if($s_action=="home"){
-      $_SESSION['CurrentMainBase'] =preg_replace("/^[^,]+,/","",$this->ui->dn);
-      $_SESSION['CurrentMainBase'] =preg_replace("/^[^,]+,/","",$_SESSION['CurrentMainBase']);
-    }
-    
-    /* back to root */
-    if($s_action=="root"){
-      $_SESSION['CurrentMainBase']=($this->config->current['BASE']);
-    }
-
-    /* If Backbutton is Posted */
-    if($s_action=="back"){
-      $base_back          = preg_replace("/^[^,]+,/","",$_SESSION['CurrentMainBase']);
-      $base_back          = convert_department_dn($base_back);
-
-      if(isset($this->config->departments[trim($base_back)])){
-        $_SESSION['CurrentMainBase']= $this->config->departments[trim($base_back)];
-      }else{
-        $_SESSION['CurrentMainBase']= $this->config->departments["/"];
-      }
-    }
-
-    register_global("conferencefilter",$conferencefilter);
-    $this->reload();
 
+    /***************
+      Cancel dialogs 
+     ***************/
+  
     /* Reset requested? */
-    if (isset($_POST['edit_cancel']) || isset($_POST['password_cancel'])){
+    if (isset($_POST['edit_cancel'])){
       if (isset($this->conftab)){
         del_lock ($this->conftab->dn);
         unset ($this->conftab);
@@ -165,6 +114,11 @@ class phoneConferenceManagment extends plugin
       unset ($_SESSION['objectinfo']);
     }
 
+
+    /***************
+      Delete 
+     ***************/
+  
     /* Delete Entry if Posted action (s_action) == del
      * The entry which will be deleted is defined in $s_entry
      */
@@ -183,6 +137,11 @@ class phoneConferenceManagment extends plugin
       }
     }
 
+
+    /***************
+      Delete confirmed  
+     ***************/
+  
     /* If department deletion is accepted ...
      * Finally delete department
      */
@@ -190,12 +149,16 @@ class phoneConferenceManagment extends plugin
       if (chkacl($this->acl, "delete") == ""){
         $this->remove_from_parent();
         gosa_log ("Department object'".$this->dn."' has been removed");
-        $this->reload ();
       } else {
         print_red (_("You have no permission to remove this department."));
       }
     }
 
+
+    /***************
+      Edit
+     ***************/
+  
     /* Edit Entry if Posted action (s_action) == edit
      * The entry which will be edited is defined in $s_entry
      */
@@ -215,15 +178,25 @@ class phoneConferenceManagment extends plugin
       $_SESSION['objectinfo']= $this->dn;
     }
 
+
+    /***************
+      Create new  
+     ***************/
+  
     /* Insert new entry*/    
     if($s_action == "new"){
-      $this->dn= "new";
+      
       /* Set up the users ACL's for this 'dn' */
       $this->dn= "new";
       $this->conftab= new conferencetabs($this->config,$this->config->data['TABS']['CONFERENCETABS'], $this->dn);
-      unset($_SESSION['objectinfo']);//
+      unset($_SESSION['objectinfo']);
     }
 
+
+    /***************
+      Save entry  
+     ***************/
+  
     /* Edit finished, check and save changes */
     if ((isset($_POST['edit_finish'])) && (isset($this->conftab->config))){
       /* Check tabs, will feed message array */
@@ -250,10 +223,13 @@ class phoneConferenceManagment extends plugin
       } else {
         show_errors($message);
       }
-      
-      $this->reload();
     }
 
+
+    /***************
+      Display dialogs   
+     ***************/
+  
     /* if edit or new, show dialog */
     if(($this->conftab) && (isset($this->conftab->config))){
       $display= $this->conftab->execute();
@@ -269,165 +245,42 @@ class phoneConferenceManagment extends plugin
       return ($display);
     }
 
-    /* Header + Departmentlist*/
-    $options= "";
-    foreach ($this->config->idepartments as $key => $value){
-      if ($_SESSION['CurrentMainBase'] == $key){
-        $options.= "<option selected='selected' value='$key'>$value</option>";
-      } else {
-        $options.= "<option value='$key'>$value</option>";
-      }
-    }
 
-    $listhead = "<div style='background:#F0F0F9;padding:5px;'>".
-      " <input class='center' type='image' src='images/list_root.png' align='middle' title='"._("Go to root department")."' name='dep_root' alt='"._("Root")."'>&nbsp;".
-      " <input class='center' type='image' align='middle' src='images/list_back.png' title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'>&nbsp;".
-      " <input class='center' type='image' align='middle' src='images/list_home.png' title='"._("Go to users department")."' alt='"._("Home")."' name='dep_home'>&nbsp;".
-      " <input class='center' type='image' src='images/list_reload.png' align='middle' title='"._("Reload list")."' name='submit_department' alt='"._("Submit")."'>&nbsp;".
-      " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'>&nbsp;".
-      " <input class='center' type='image' align='middle' src='images/list_new_conference.png' title='"._("Create new conference")."' alt='"._("New conference")."' name='user_new'>&nbsp;".
-      " <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'>&nbsp;".
-      _("Base")."&nbsp;<select name='CurrentMainBase' onChange='mainform.submit()' class='center'>$options</select>".
-      " <input class='center' type='image' src='images/list_submit.png' align='middle' title='"._("Submit department")."' name='submit_department' alt='"._("Submit").     "'>&nbsp;".
-      "</div>";
-
-    /* Images for delete / edit */
-    $actions = "<input class='center' type='image' src='images/edit.png'                alt='"._("edit")."'      name='conf_edit_%KEY%' title='"._("Edit this entry")."'>";
-    $actions.= "<input class='center' type='image' src='images/edittrash.png' alt='"._("delete")."'    name='conf_del_%KEY%'  title='"._("Delete this entry")."'>";
-    
-    $actions2= "<input class='center' type='image' src='images/edittrash.png' alt='"._("delete")."'    name='conf_del_%KEY%'  title='"._("Delete this entry")."'>";
-    /* open an entry */
-    $linkopen= "<a href='?plug=".$_GET['plug']."&amp;act=dep_open&amp;dep_id=%s'>%s</a>";
-
-    /* Set Header */
-    $divlist  = new divlist("conferenceTabs");
-    $divlist->SetSummary(_("This table displays all available conference rooms."));
-    $divlist->SetEntriesPerPage(0);
-    $divlist->SetHeader(array(
-          array("string" => "&nbsp;", "attach" => "style='text-align:center;width:20px;'"),
-          array("string" =>_("Name - Number"), "attach" => "style=''"),
-          array("string" => _("Owner"), "attach" => "style='width:200px;'"),
-          array("string" => _("PIN"), "attach" => "style='width:50px;'"),
-          array("string" =>_("Actions"), "attach" => "style='width:60px;border-right:0px;text-align:right;'")));
-
-    /* Insert departments in divlist*/
-    foreach($this->departments as $key=> $val){
-      if(!isset($this->config->departments[trim($key)])){
-        $this->config->departments[trim($key)]="";
-      }
+    /***************
+      display divlist
+     ***************/
 
-      $non_empty="";
-      $keys= str_replace("/","\/",$key);
-      foreach($this->config->departments as $keyd=>$vald ){
-        if(preg_match("/".$keys."\/.*/",$keyd)){
-          $non_empty="full";
-        }
-      }
-
-      /* Prepare and insert fields*/
-      $a_field1 = array("string" => "<img src='images/".$non_empty."folder.png' alt='department'>", "attach" => "style='text-align:center;width:20px;'");
-      $a_field2 = array("string" => sprintf($linkopen,base64_encode($key),$val), "attach" => "style=''");
-      $a_field3 = array("string" => "&nbsp;", "attach" => "style='width:200px;'");
-      $a_field4 = array("string" => "&nbsp;", "attach" => "style='width:50px;'");
-      $a_field5 = array("string" => "&nbsp;",  "attach" => "style='width:60px;border-right:0px;text-align:right;'");
+    /* Return rendered main page */
+    /* Display dialog with system list */
+    $this->DivListConference->execute();
 
-      /* Add entries */
-      $divlist->AddEntry(array($a_field1,$a_field2,$a_field3,$a_field4,$a_field5));
+    /* Add departments if subsearch is disabled */
+    if(!$this->DivListConference->SubSearch){
+      $this->DivListConference->AddDepartments($this->DivListConference->selectedBase,5);
     }
-
-    /* Image shown in divlist */
-    $userimg  = "<img class='center' src='images/select_conference.png' alt='User' title='%s'>";
-
-    /* Edit entry link*/
-    $editlink = "<a href='?plug=".$_GET['plug']."&amp;id=%s&amp;act=edit_entry'>%s</a>";
-
-    /* Insert conferneces*/
-    foreach($this->conferences as $conferencekey => $conference ){
-
-      if((isset($conference['goFonPIN'][0]))&&(($this->ui->dn==$conference['goFonConferenceOwner'][0])||($this->acl=="#all#"))){
-        $pin = "<img class='center' src='images/list_password.png' title='PIN : ".$conference['goFonPIN'][0]."' alt='PIN'>";
-      }else{
-        $pin = "&nbsp;";
-      }
-
-      if(isset($conference['telephoneNumber'][0])){
-        $number = " - ".$conference['telephoneNumber'][0];
-      }else{
-        $number = "&nbsp; - ?";
-      }
-
-      $ldap= $this->config->get_ldap_link();
-      $ldap->cat($conference['goFonConferenceOwner'][0], array('cn'));
-      $data = $ldap->fetch();
-      $cn = $data['cn'][0];
-      $a_field1 = array("string"=>sprintf($userimg,_("Conference")), "attach" => "style='text-align:center;width:20px;'");
-
-      if(($this->acl=="#all#")||(($this->ui->dn==$conference['goFonConferenceOwner'][0])&&(chkacl($this->acl,"goFonConferenceOwner")==""))){
-        $a_field2 = array("string"=>sprintf($editlink,$conferencekey,$conference['cn'][0].$number), "attach" => "style=''");
-      }else{  
-        $a_field2 = array("string"=>$conference['cn'][0].$number, "attach" => "style=''");
-      }
-      $a_field3 = array("string"=> $cn, "attach" => "style='width:200px;'");
-      $a_field4 = array("string"=> $pin, "attach" => "style='width:50px;'");
-
-      if(($this->ui->dn==$conference['goFonConferenceOwner'][0])&&(chkacl($this->acl,"goFonConferenceOwner")=="")){
-        $a_field5 = array("string"=>preg_replace("/%KEY%/",$conferencekey,$actions), "attach" => "style='width:60px;border-right:0px;text-align:right;'");
-      }elseif(chkacl($this->acl,"goFonConferenceOwner")==""){
-        $a_field5 = array("string"=>preg_replace("/%KEY%/",$conferencekey,$actions2), "attach" => "style='width:52px;border-right:0px;text-align:right;'");
-      }else{
-        $a_field5 = array("string"=>"&nbsp;", "attach" => "style='width:52px;border-right:0px;text-align:right;'");
-      }
-
-      $divlist->AddEntry(array($a_field1,$a_field2,$a_field3,$a_field4,$a_field5));
-    }
-
-    $smarty->assign("search_image",     get_template_path('images/search.png'));
-    $smarty->assign("tree_image",       get_template_path('images/tree.png'));
-    $smarty->assign("infoimage",        get_template_path('images/info.png'));
-    $smarty->assign("launchimage",      get_template_path('images/launch.png'));
-    $smarty->assign("conferences",      $divlist->DrawList());
-    $smarty->assign("conferencehead",  $listhead);
-    $smarty->assign("deplist",          $this->config->idepartments);
-    $smarty->assign("apply",            apply_filter());
-    $smarty->assign("alphabet",         generate_alphabet());
-    $smarty->assign("hint",             print_sizelimit_warning());
-
-    $display= $smarty->fetch(get_template_path('headpage.tpl', TRUE));
-    return($display);
+    $this->reload();
+    $this->DivListConference->setEntries($this->conferences);
+    return($this->DivListConference->Draw());
   }
 
 
   /* Reload entries for divlist.
-   * First, reload all conferences for the current base, with the given regex
-   * Second, get all departments for the given base and regex
-   * Convert departments dn
+   * reload all conferences for the current base, with the given regex
    */
   function reload()
   {
-    $conferencefilter = $_SESSION["conferencefilter"];
-    $base             = $_SESSION['CurrentMainBase'];
-    $regex            = $conferencefilter['regex'];
-
-    $this->confgerences= get_list("(&(|(cn=$regex)(description=$regex))(objectClass=goFonConference))",
-                                  $this->ui->subtreeACL, $base, array("*"), GL_SIZELIMIT);
-    $res3= get_list("(&(|(ou=$regex)(description=$regex))(objectClass=gosaDepartment))", $this->ui->subtreeACL,
-                    $base, array("ou", "description"), GL_SIZELIMIT | GL_CONVERT);
-
-    $this->departments= array();
-
-    $tmp = array();
-    foreach ($res3 as $value){
-      $tmp[strtolower($value['dn']).$value['dn']]=$value;
-    }
-    ksort($tmp);
-    foreach($tmp as $value){
-      if(isset($value["description"][0])){
-        $this->departments[$value['dn']]= get_sub_department($value['dn'])." - [".$value["description"][0]."]";
-      }else{
-        $this->departments[$value['dn']]= get_sub_department($value['dn']);//$value["description"][0];
-      }
+    $Base             = $this->DivListConference->selectedBase;
+    $SubSearch        = $this->DivListConference->SubSearch;
+    $Regex            = $this->DivListConference->Regex;
+    $Flags            = GL_SIZELIMIT ; 
+    $Filter           = "(&(|(cn=".$Regex.")(description=".$Regex."))(objectClass=goFonConference))";
+    $Attrs            = array("cn","goFonConferenceOwner","goFonPIN","telephoneNumber");
+    if($SubSearch){
+      $Flags |= GL_SUBSEARCH;
     }
+
+    $this->conferences= get_list($Filter,  $this->ui->subtreeACL, $Base, $Attrs, $Flags);
   }
 
   function remove_from_parent()
@@ -453,6 +306,11 @@ class phoneConferenceManagment extends plugin
 
   }
 
+  function save_object()
+  {
+    $this->DivListConference->save_object();
+  }
+
   function remove_lock()
   {
     if (isset($this->dn)){
index 04ab46f7863aabd5b4d66800680ac72c744a77f0..fd3ea7ef83abcce1bf7348b5d7323e42173831d9 100644 (file)
@@ -31,6 +31,7 @@ if ($remove_lock){
                $_SESSION['conference']= new phoneConferenceManagment($config, $ui);
        }
        $conference= $_SESSION['conference'];
+       $conference->save_object();
        $output= $conference->execute();
 
        /* Page header*/