index f4f1daad718af1893101c38c774baf2aadff0807..04de2dae2c5cb13fce48ef21f3638fe6ce823937 100644 (file)
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])){
}
// Initialize searches and default search mode
- $this->reloadFilters();
$this->defaultSearch= $xmlData['definition']['default'];
+ $this->reloadFilters();
$this->setSearch($this->defaultSearch);
return true;
{
$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";
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>".
" <button class='search-filter' type='submit' title='"._("Search")."'>".image("images/find.png")."</button></td></tr></table>";
// 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.
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' ";
// 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")." "._($config['label'])."</a></li>";
+ $result.= "<li><a href='#'>".image("images/checked.png")." ".$label."</a></li>";
} else {
- $result.= "<li><a href='#' onClick='document.getElementById(\"filter\").value= \"filter-$tag\";mainform.submit();'>".image("images/empty.png")." "._($config['label'])."</a></li>";
+ $result.= "<li><a href='#' onClick='\$(\"act\").value= \"filter-$tag\";\$(\"exec_act\").click();'>".image("images/empty.png")." ".$label."</a></li>";
}
}
if ($tag == $this->search) {
$result.= "<li".($first?$separator:"")."><a href='#'>".image("images/checked.png")." "._($config['description'])."</a></li>";
} else {
- $result.= "<li".($first?$separator:"")."><a href='#' onClick='document.getElementById(\"filter\").value= \"filter-$tag\";mainform.submit();'>".image("images/empty.png")." "._($config['description'])."</a></li>";
+ $result.= "<li".($first?$separator:"")."><a href='#' onClick='\$(\"act\").value= \"filter-$tag\";\$(\"exec_act\").click();'>".image("images/empty.png")." "._($config['description'])."</a></li>";
}
$first= false;
// 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"))." "._("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"))." "._("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")." "._("Edit filters")."...</a></li>";
+ $result.= "<li$separator><a href='#' onClick='\$(\"act\").value= \"config-filter\";\$(\"exec_act\").click();'>".image("images/configure.png")." "._("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";
}