From fd2b066d7588a73a0196ebb44ca7d8b4e2c690d7 Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Sat, 30 Nov 2013 09:50:05 +0100 Subject: [PATCH] More search filters --- htdocs/lib/SearchFilter.php | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/htdocs/lib/SearchFilter.php b/htdocs/lib/SearchFilter.php index 8f41d35..74d46c4 100644 --- a/htdocs/lib/SearchFilter.php +++ b/htdocs/lib/SearchFilter.php @@ -10,7 +10,8 @@ class SearchFilter public $grid; public $region; public $gpu; - public $stacktrace; + public $search_type; + public $search_for; public $signature_id; public $sort_by; @@ -21,7 +22,7 @@ class SearchFilter public $offset = 0; public $page = 0; - var $fields = array("os", "chan", "version", "version_min", "version_max", "grid", "region", "gpu", "stacktrace", "signature_id", "limit", "offset"); + var $fields = array("os", "chan", "version", "version_min", "version_max", "grid", "region", "gpu", "search_type", "search_for", "signature_id", "limit", "offset"); function __construct() { @@ -94,18 +95,20 @@ class SearchFilter if ($this->gpu) $cond[] = kl_str_sql("gpu=!s", $this->gpu); if ($this->signature_id) $cond[] = kl_str_sql("signature_id=!s", $this->signature_id); - if ($this->stacktrace) + if ($this->search_for) { - $parts = preg_split("/\\s+/", trim($this->stacktrace)); + $fmap = array("stack" => "raw_stacktrace", "gpu" => "gpu", "os" => "os", "region" => "region"); + $field = $fmap[$this->search_type]; + $parts = preg_split("/\\s+/", trim($this->search_for)); foreach($parts as $part) { if ($part[0] == "-") { - $cond[] = kl_str_sql("raw_stacktrace not like !s", "%" . substr($part, 1) . "%"); + $cond[] = kl_str_sql("$field not like !s", "%" . substr($part, 1) . "%"); } else { - $cond[] = kl_str_sql("raw_stacktrace like !s", "%{$part}%"); + $cond[] = kl_str_sql("$field like !s", "%{$part}%"); } } } @@ -268,10 +271,21 @@ for($i = 0; $i < count($grids); $i++) -
- Stacktrace contains
- - +
+
+
+ +
+
+ contains
+ + +