diff --git a/plugins/gofon/macro/class_gofonMacroManagement.inc b/plugins/gofon/macro/class_gofonMacroManagement.inc
index 2a6a14b129e6429443a151068182bf523b546e00..131ae83c6dff7602831b48ee3f8615cbfcb1d390 100755 (executable)
/* Get global filter config */
if (!is_global("macrofilter")){
$base= get_base_from_people($ui->dn);
- $macrofilter= array("depselect" => $base, "regex" => "*");
+ $macrofilter= array("regex" => "*");
register_global("macrofilter", $macrofilter);
}
+ if(!isset($_SESSION['CurrentMainBase'])){
+ $_SESSION['CurrentMainBase'] = $base= get_base_from_people($ui->dn);
+ }
+
$acl= get_permissions ($ui->dn, $ui->subtreeACL);
$this->acl= get_module_permission($acl, "goFonMacro", $ui->dn);
}
/* Save data */
$macrofilter= get_global("macrofilter");
- foreach( array("depselect", "regex") as $type){
+ foreach( array("regex") as $type){
if (isset($_POST[$type])){
$macrofilter[$type]= $_POST[$type];
}
if(isset($_GET['act'])&&($_GET['act']=="dep_open")){
$s_action="open";
$s_entry = base64_decode($_GET['dep_id']);
- $macrofilter['depselect']= "".$this->config->departments[trim($s_entry)];
+ $_SESSION['CurrentMainBase'] = $this->config->departments[trim($s_entry)];
+
}
/* Test Posts */
$s_entry = preg_replace("/_.$/","",$s_entry);
/* Department changed? */
- if(isset($_POST['depselect']) && $_POST['depselect']){
- $macrofilter['depselect']= $_POST['depselect'];
+ if(isset($_POST['CurrentMainBase']) && $_POST['CurrentMainBase']){
+ $_SESSION['CurrentMainBase']= $_POST['CurrentMainBase'];
}
/* Homebutton is posted */
if($s_action=="home"){
- $macrofilter['depselect']=(preg_replace("/^[^,]+,/","",$this->ui->dn));
- $macrofilter['depselect']=(preg_replace("/^[^,]+,/","",$macrofilter['depselect']));
+ $_SESSION['CurrentMainBase'] = preg_replace("/^[^,]+,/","",$this->ui->dn);
+ $_SESSION['CurrentMainBase'] = preg_replace("/^[^,]+,/","", $_SESSION['CurrentMainBase']);
}
if($s_action=="root"){
- $macrofilter['depselect']=($this->config->current['BASE']);
+ $_SESSION['CurrentMainBase'] = $this->config->current['BASE'] ;
}
/* If Backbutton is Posted */
if($s_action=="back"){
- $base_back = preg_replace("/^[^,]+,/","",$macrofilter['depselect']);
+ $base_back = preg_replace("/^[^,]+,/","", $_SESSION['CurrentMainBase']);
$base_back = convert_department_dn($base_back);
if(isset($this->config->departments[trim($base_back)])){
- $macrofilter['depselect']= $this->config->departments[trim($base_back)];
+ $_SESSION['CurrentMainBase'] = $this->config->departments[trim($base_back)];
}else{
- $macrofilter['depselect']= $this->config->departments["/"];
+ $_SESSION['CurrentMainBase'] = $this->config->departments["/"];
}
}
/* Finish mac edit is triggered by the tabulator dialog, so
the user wants to save edited data. Check and save at this
point. */
- if (isset($_POST['edit_finish'])){
+ if ((isset($_POST['edit_finish'])) && (isset($this->macrotabs->config))){
/* Check tabs, will feed message array */
$this->macrotabs->last= $this->macrotabs->current;
}
/* User wants to edit data? */
- if ($s_action=="edit"){
+ if (($s_action=="edit") && (!isset($this->macrotabs->config))){
/* Get 'dn' from posted 'macrolists', must be unique */
$this->dn= $this->macros[$s_entry]['dn'];
}
/* Show tab dialog if object is present */
- if ($this->macrotabs){
+ if (($this->macrotabs) && (isset($this->macrotabs->config))){
$display= $this->macrotabs->execute();
/* Don't show buttons if tab dialog requests this */
if (!$this->macrotabs->by_object[$this->macrotabs->current]->dialog){
$display.= "<p style=\"text-align:right\">\n";
- $display.= "<input type=\"submit\" name=\"edit_finish\" value=\""._("Finish")."\">\n";
+ $display.= "<input type=\"submit\" name=\"edit_finish\" value=\""._("Save")."\">\n";
$display.= " \n";
$display.= "<input type=\"submit\" name=\"edit_cancel\" value=\""._("Cancel")."\">\n";
$display.= "</p>";
/* Prepare departments */
$options= "";
foreach ($this->config->idepartments as $key => $value){
- if ($macrofilter['depselect'] == $key){
+ if ($_SESSION['CurrentMainBase'] == $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' align='middle' src='images/list_back.png' title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'> ".
" <input class='center' type='image' src='images/list_root.png' align='middle' title='"._("Go to root department")."' name='dep_root' alt='"._("Root"). "'> ".
+ " <input class='center' type='image' align='middle' src='images/list_back.png' title='"._("Go up one department")."' alt='"._("Up")."' name='dep_back'> ".
" <input class='center' type='image' align='middle' src='images/list_home.png' title='"._("Go to users department")."' alt='"._("Home")."' name='dep_home'> ".
+ " <input class='center' type='image' src='images/list_reload.png' align='middle' title='"._("Reload list")."' name='submit_department' alt='"._("Submit")."'> ".
" <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
" <input class='center' type='image' align='middle' src='images/list_new_macro.png' title='"._("Create new phone macro")."' alt='"._("New")."' name='user_new'> ".
" <img class='center' src='images/list_seperator.png' align='middle' alt='' height='16' width='1'> ".
- _("Current base")." <select name='depselect' onChange='mainform.submit()'>$options</select>".
+ _("Base")." <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")."'> ".
"</div>";
}
$field1 = array("string" => sprintf($macroimg,$val['dn']), "attach" => "style='text-align:center;width:20px;'");
- $field2 = array("string" => sprintf($editlink,$key,$display), "attach" => "style='' title='".$val['dn']."'");
+ $field2 = array("string" => sprintf($editlink,$key,$display), "attach" => "style='' title='dn: ".@LDAP::fix($val['dn'])."'");
$field3 = array("string" => $pic1, "attach" => "style='width:50px;'");
$field4 = array("string" => preg_replace("/%KEY%/", "$key", $action), "attach" => "style='width:60px;border-right:0px;text-align:right;'");
$smarty->assign("infoimage", get_template_path('images/info.png'));
$smarty->assign("launchimage", get_template_path('images/launch.png'));
$smarty->assign("deplist", $this->config->idepartments);
- foreach( array("depselect", "regex") as $type){
+ foreach( array("regex") as $type){
$smarty->assign("$type", $macrofilter[$type]);
}
+ $smarty->assign("CurrentMainBase" , $_SESSION['CurrentMainBase']);
+
/* Extend if we are not using javascript */
$smarty->assign("apply", apply_filter());
$smarty->assign("alphabet", generate_alphabet());
$macrofilter= get_global('macrofilter');
/* Set base for all searches */
- $base= $macrofilter['depselect'];
+ $base= $_SESSION['CurrentMainBase'];
/* Regex filter? */
if ($macrofilter['regex'] != ""){
}
/* Generate macro list */
- $res= get_list($this->ui->subtreeACL, "(&(cn=$regex)(objectClass=goFonMacro))", FALSE, "ou=macros,ou=asterisk,ou=configs,ou=systems,".$base, array("*"), TRUE);
+ $res= get_list("(&(cn=$regex)(objectClass=goFonMacro))", $this->ui->subtreeACL,
+ "ou=macros,ou=asterisk,ou=configs,ou=systems,".$base, array("*"), GL_SIZELIMIT);
$this->macros= $res;
/* NEW LIST MANAGMENT
* We also need to search for the departments
* So we are able to navigate like in konquerer
*/
- $base2 = preg_replace("/ou=people,/i","",$base);
+ $peopleOU = get_people_ou();
+
+ if(empty($peopleOU)){
+ $base2 = $base;
+ }else{
+ $base2 = preg_replace("/".$peopleOU."/i","",$base);
+ }
- $res3 = get_list2($this->ui->subtreeACL, "(&(|(ou=$regex)(description=$regex))(objectClass=gosaDepartment))",
- TRUE, $base2, array("ou", "description"), TRUE);
+ $res3= get_list("(&(|(ou=$regex)(description=$regex))(objectClass=gosaDepartment))",
+ $this->ui->subtreeACL, $base2, array("ou", "description"), GL_SIZELIMIT | GL_CONVERT);
$this->departments= array();
$tmp = array();
ksort($tmp);
foreach($tmp as $value){
if(isset($value["description"][0])){
- $this->departments[$value['dn']]=convert_department_dn2($value['dn'])." - [".$value["description"][0]."]";
+ $this->departments[$value['dn']]= get_sub_department($value['dn'])." - [".$value["description"][0]."]";
}else{
- $this->departments[$value['dn']]=convert_department_dn2($value['dn']);//$value["description"][0];
+ $this->departments[$value['dn']]= get_sub_department($value['dn']);//$value["description"][0];
}
}