Code

Replaced config->search with get_cfg_value
[gosa.git] / gosa-core / include / class_filter.inc
index 666443e5d55ba0f029ef90e4197450d5322e17cb..04de2dae2c5cb13fce48ef21f3638fe6ce823937 100644 (file)
@@ -67,14 +67,14 @@ class filter {
     if (isset($xmlData['search'])) {
 
       // Array conversion
-      if (!is_array($xmlData['search'])) {
+      if (!isset($xmlData['search'][0])) {
         $searches= array($xmlData['search']);
       } else {
         $searches= $xmlData['search'];
       }
 
       /* Store available searches */
-      foreach ($xmlData['search'] as $search) {
+      foreach ($searches as $search) {
 
         /* Do multi conversation */ 
         if (!isset($search['query'][0])){
@@ -155,7 +155,7 @@ class filter {
   {
     $size= 30;
     $maxlength= 30;
-    $result= "<input class='filter_textfield' id='$tag' name='$tag' type='text' size='$size' maxlength='{$maxlength}' value='".$value."'>";
+    $result= "<input class='filter_textfield' placeholder='"._("Search")."...' id='$tag' name='$tag' type='text' size='$size' maxlength='{$maxlength}' value='".$value."'>";
     if ($element && isset($element['autocomplete'])) {
       $frequency= "0.5";
       $characters= "1";
@@ -223,7 +223,7 @@ class filter {
 
   function render()
   {
-    $content= "<table class='filter-wrapper'><tr><td>".$this->renderFilterMenu()."</td><td>";
+    $content= "<table class='filter-wrapper' summary='"._("Search filter")."'><tr><td>".$this->renderFilterMenu()."</td><td>";
     $content.= "<div class='search-filter'>".$this->getTextfield('search_filter', $this->value, $this->searches[$this->search])."</div>".
       "&nbsp;<button class='search-filter' type='submit' title='"._("Search")."'>".image("images/find.png")."</button></td></tr></table>";
 
@@ -260,7 +260,11 @@ class filter {
       // Handle converters if present
       if ($this->converter) {
         preg_match('/([^:]+)::(.*)$/', $this->converter, $m);
-        $filter= call_user_func(array($m[1], $m[2]), preg_replace('/\$/', $this->value, $filter));
+        if ($this->value == "") {
+          $filter= call_user_func(array($m[1], $m[2]), preg_replace('/\$/', "*", $filter));
+        } else {
+          $filter= call_user_func(array($m[1], $m[2]), preg_replace('/\$/', $this->value, $filter));
+        }
       }
 
       // Do not replace escaped \$ - This is required to be able to search for e.g. windows machines.
@@ -407,8 +411,7 @@ class filter {
   function renderFilterMenu()
   {
     // Load shortcut
-    $result= "<input type='hidden' name='act' id='filter' value=''><div style='display:none'><input type='submit' name='exec_filter' id='exec_filter' value=''></div>".
-      "<ul class='level1' id='filter-root'><li><a href='#'>".image("images/filter.png").image("images/lists/sort-down.png")."</a>";
+    $result= "<ul class='level1' id='filter-root'><li><a href='#'>".image("images/filter.png").image("images/lists/sort-down.png")."</a>";
 
     // Build ul/li list
     $separator= " style='border-top:1px solid #AAA' ";
@@ -416,10 +419,11 @@ class filter {
 
     // Build in filters
     foreach ($this->xmlSearches as $tag => $config) {
+      $label = htmlentities(_($config['label']),ENT_COMPAT,'UTF-8');
       if ($tag == $this->search) {
-        $result.= "<li><a href='#'>".image("images/checked.png")."&nbsp;"._($config['label'])."</a></li>";
+        $result.= "<li><a href='#'>".image("images/checked.png")."&nbsp;".$label."</a></li>";
       } else {
-        $result.= "<li><a href='#' onClick='document.getElementById(\"filter\").value= \"filter-$tag\";mainform.submit();'>".image("images/empty.png")."&nbsp;"._($config['label'])."</a></li>";
+        $result.= "<li><a href='#' onClick='\$(\"act\").value= \"filter-$tag\";\$(\"exec_act\").click();'>".image("images/empty.png")."&nbsp;".$label."</a></li>";
       }
     }
 
@@ -429,7 +433,7 @@ class filter {
       if ($tag == $this->search) {
         $result.= "<li".($first?$separator:"")."><a href='#'>".image("images/checked.png")."&nbsp;"._($config['description'])."</a></li>";
       } else {
-        $result.= "<li".($first?$separator:"")."><a href='#' onClick='document.getElementById(\"filter\").value= \"filter-$tag\";mainform.submit();'>".image("images/empty.png")."&nbsp;"._($config['description'])."</a></li>";
+        $result.= "<li".($first?$separator:"")."><a href='#' onClick='\$(\"act\").value= \"filter-$tag\";\$(\"exec_act\").click();'>".image("images/empty.png")."&nbsp;"._($config['description'])."</a></li>";
       }
 
       $first= false;
@@ -437,18 +441,18 @@ class filter {
 
     // Render scope if set to auto
     if ($this->scopeMode == "auto") {
-      $result.= "<li$separator><a href='#' onClick='document.getElementById(\"filter\").value= \"toggle-subtree\";mainform.submit();'>".($this->scope=="one"?image("images/empty.png"):image("images/checked.png"))."&nbsp;"._("Search in subtrees")."</a></li>";
+      $result.= "<li$separator><a href='#' onClick='\$(\"act\").value= \"toggle-subtree\";\$(\"exec_act\").click();'>".($this->scope=="one"?image("images/empty.png"):image("images/checked.png"))."&nbsp;"._("Search in subtrees")."</a></li>";
     }
 
 
     // Edit filter menu
-    $result.= "<li$separator><a href='#' onClick='document.getElementById(\"filter\").value= \"config-filter\";mainform.submit();'>".image("images/configure.png")."&nbsp;"._("Edit filters")."...</a></li>";
+    $result.= "<li$separator><a href='#' onClick='\$(\"act\").value= \"config-filter\";\$(\"exec_act\").click();'>".image("images/configure.png")."&nbsp;"._("Edit filters")."...</a></li>";
 
     $result.= "</ul>";
 
     $script= '<script type="text/javascript" language="JavaScript">var menu2; menu2= new Menu("filter-root", "menu2", configMenu)</script>';
 
-    return "<div id='filtermenu'>".$result."</li></ul><div>$script";
+    return "<div id='filtermenu'>".$result."</li></ul></div>$script";
   }