]> git.andy128k.dev Git - ipf.git/commitdiff
boolean admin filter (fixes)
authorAndrey Kutejko <andy128k@gmail.com>
Sat, 30 Nov 2013 09:26:34 +0000 (11:26 +0200)
committerAndrey Kutejko <andy128k@gmail.com>
Sat, 30 Nov 2013 09:26:34 +0000 (11:26 +0200)
ipf/admin/model.php

index d651636f6754ba73ee0c5c56b589a72f5f0a39a6..7352d07a50c6c1dc21d7fa1cc51f0c77e71c8c88 100644 (file)
@@ -1,48 +1,58 @@
 <?php
 
-abstract class BaseListFilter{
-    function __construct($title, $choices){
+namespace {
+
+abstract class BaseListFilter
+{
+    public $name;
+
+    function __construct($title, $choices)
+    {
         $this->choices = $choices;
         $this->title = $title;
     }
 
-    function IsChoice($id){
-        foreach($this->choices as &$ch){
-            if ($ch['id']==$id)
+    function IsChoice($id)
+    {
+        foreach ($this->choices as $ch)
+            if ($ch['id'] == $id)
                 return true;
-        }
         return false;
     }
 
-    function selected(){
-        foreach($this->choices as &$ch){
-            if ( ($ch['id']!='') && ($ch['selected']===true) )
+    function selected()
+    {
+        foreach ($this->choices as $ch)
+            if (($ch['id'] != '') && ($ch['selected']===true))
                 return true;
-        }
         return false;
     }
 
     abstract function SetSelect($request);
-    abstract function FilterQuery($request, $q);
+    abstract function FilterQuery($request, $query);
 }
 
-class ListFilter extends BaseListFilter {
-    function __construct($local, $foreign, $choices, $title){
+class ListFilter extends BaseListFilter
+{
+    function __construct($local, $foreign, $choices, $title)
+    {
         parent::__construct($title, $choices);
         $this->local = $local;
         $this->foreign = $foreign;
     }
 
-    function SetSelect($request) {
+    function SetSelect($request)
+    {
         /* nothing to do */
     }
 
-    function FilterQuery($request,$q){
+    function FilterQuery($request, $query)
+    {
         $param_name = 'filter_'.$this->local;
         if (isset($request->GET[$param_name])){
             $id = $request->GET[$param_name];
             if ($this->IsChoice($id)){
-                $q->addWhere($this->local.'='.$id);
+                $query->addWhere($this->local.'='.$id);
             }
         }
     }
@@ -54,22 +64,26 @@ class BooleanFilter extends BaseListFilter
 
     public function __construct($column, $title, $trueTitle='Yes', $falseTitle='No')
     {
+        $this->name = $column;
         $this->column = $column;
         parent::__construct($title, array(
             array(
                 'id' => null,
                 'param' => '',
                 'name' => 'All',
+                'selected' => true,
             ),
             array(
                 'id' => 'y',
                 'param' => 'filter_'.$this->column.'=y',
                 'name' => $trueTitle,
+                'selected' => false,
             ),
             array(
                 'id' => 'n',
                 'param' => 'filter_'.$this->column.'=n',
                 'name' => $falseTitle,
+                'selected' => false,
             ),
         ));
     }