Code

Reverted last commit
[gosa.git] / gosa-core / include / class_filter.inc
index 3a9e38d75856c25e3fa1bb45c3019d840dfa3fc5..286725978de42d16a0ae507d2dd0f39f7e2a7513 100644 (file)
@@ -176,14 +176,14 @@ class filter {
       $checked= " checked";
     }
 
-    $result= "<input class='filter_checkbox' name='$tag' type='checkbox' onClick='document.mainform.submit();' value='true'$checked>";
+    $result= "<input class='filter_checkbox' id='$tag' name='$tag' type='checkbox' onClick='document.mainform.submit();' value='true'$checked>";
     return $result;
   }
 
 
   function getCombobox($element)
   {
-    $result= "<select name='".$element['tag']."' size='1' onClick='document.mainform.submit();'>";
+    $result= "<select name='".$element['tag']."' size='1' onChange='document.mainform.submit();'>";
 
     // Fill with presets
     foreach ($element['value'] as $value) {
@@ -214,6 +214,18 @@ class filter {
   }
 
 
+  function setComboBoxOptions($tag, $options)
+  {
+    if (isset($this->elements[$tag]) && $this->elements[$tag]['type'] == "combobox") {
+      
+      $this->elements[$tag]['value']= array();
+      foreach ($options as $key => $label) {
+        $this->elements[$tag]['value'][]= array('label' => $label, 'key' => $key);
+      }
+    }
+  }
+
+
   function getCurrentBase()
   {
     if (isset($this->search->base) && (string)$this->search->scope != "auto") {
@@ -306,7 +318,7 @@ class filter {
   function renderScope()
   {
     $checked= $this->scope == "sub"?" checked":"";
-    return "<input type='checkbox' name='SCOPE' value='1' onClick='document.mainform.submit();'$checked>&nbsp;"._("Search in subtrees");
+    return "<input type='checkbox' id='SCOPE' name='SCOPE' value='1' onClick='document.mainform.submit();'$checked>&nbsp;<LABEL for='SCOPE'>"._("Search in subtrees")."</LABEL>";
   }
 
 
@@ -371,6 +383,9 @@ class filter {
       $filter= $query['filter'];
       $attributes= $query['attribute'];
 
+      $method = "";
+      if(isset($query['method'])) $method = $query['method'];
+
       // Generate final filter
       foreach ($this->elements as $tag => $element) {
         if (!isset($element['set']) || !isset($element['unset'])) {
@@ -396,7 +411,8 @@ class filter {
         }
       }
 
-      $result= array_merge($result, call_user_func(array($backend, 'query'), $this->base, $this->scope, $filter, $attributes, $this->category, $this->objectStorage));
+      $result= array_merge($result, call_user_func(array($backend, 'query'), $this->base, $this->scope, $filter, $attributes, $this->category,$method, $this->objectStorage));
+      $result = call_user_func(array($backend, 'unifyResults'), $result);
     }
     
     return ($result);
@@ -418,13 +434,9 @@ class filter {
 
   function update()
   {
-
     /* React on alphabet links if needed */
     if (isset($_GET['filter'])){
-      $s= mb_substr(validate($_GET['filter']), 0, 1, "UTF8")."*";
-      if ($s == "**"){
-        $s= "*";
-      }
+      $s= mb_substr(validate($_GET['filter']), 0, 1, "UTF8");
       foreach ($this->alphabetElements as $tag) {
         $this->elementValues[$tag]= $s;
       }
@@ -469,7 +481,7 @@ class filter {
     }
 
     // Make filter
-    $filter= preg_replace("/\\$$tag/", normalizeLDAP($value), $filter);
+    $filter= preg_replace("/\\$$tag/", normalizeLdap($value), $filter);
     if (isset($config['base']) && isset($config['scope']) && isset($config['category'])) {
       $result= call_user_func(array($backend, 'query'), $config['base'], $config['scope'], $filter, $attributes,
                            $config["category"], $config["objectStorage"]);