diff --git a/htdocs/css/singularity/singularity.css b/htdocs/css/singularity/singularity.css index 6c0cb5c..6543b69 100644 --- a/htdocs/css/singularity/singularity.css +++ b/htdocs/css/singularity/singularity.css @@ -70,6 +70,12 @@ table.jtable a:visited { color: #888; } +.filterelem { + padding: 10px; + vertical-align: top; + display: inline-block; +} + .hand { cursor: pointer; diff --git a/htdocs/lib/SearchFilter.php b/htdocs/lib/SearchFilter.php index 14cc333..a3373b9 100644 --- a/htdocs/lib/SearchFilter.php +++ b/htdocs/lib/SearchFilter.php @@ -6,6 +6,7 @@ class SearchFilter public $chan; public $version; public $grid; + public $stacktrace; public $sort_by; public $sort_order; public static $sort_keys = array("date", "os", "version", "grid"); @@ -50,6 +51,11 @@ class SearchFilter { $this->grid = $_GET["grid"]; } + + if (strlen($_GET["stacktrace"])) + { + $this->stacktrace = $_GET["stacktrace"]; + } } function getWhere() @@ -59,6 +65,16 @@ class SearchFilter if ($this->version) $cond[] = kl_str_sql("client_version=!s", $this->version); if ($this->chan) $cond[] = kl_str_sql("client_channel=!s", $this->chan); if ($this->grid) $cond[] = kl_str_sql("grid=!s", $this->grid); + + if ($this->stacktrace) + { + $parts = preg_split("/\\s+/", trim($this->stacktrace)); + foreach($parts as $part) + { + $cond[] = kl_str_sql("raw_stacktrace like !s", "%{$part}%"); + } + } + if (!count($cond)) return ""; return "where " . implode(" and ", $cond); } @@ -122,8 +138,8 @@ class SearchFilter
Filter
-
-
+
+
Channel
chan ? 'checked="checked"' : '' ?>/> chan == "Singularity" ? 'checked="checked"' : '' ?>/> @@ -131,9 +147,9 @@ class SearchFilter
-
+
Version
-
-
-
+
+
Operating system
os ? 'checked="checked"' : '' ?>/> os == "Windows NT" ? 'checked="checked"' : '' ?>/> @@ -155,9 +171,9 @@ for($i = 0; $i < count($ver); $i++)
-
+
Grid
-
+
+ Stacktrace contains
+ + +