Fixes filter, checks now for valid records in model
authorMichael Spahn <m.spahn@metaways.de>
Thu, 23 Aug 2012 14:50:26 +0000 (16:50 +0200)
committerMichael Spahn <m.spahn@metaways.de>
Thu, 4 Oct 2012 13:54:56 +0000 (15:54 +0200)
Change-Id: Idd86d3eb44ec8ad6b4c1cbc6fa7c406cb4f9c19b
Reviewed-on: https://gerrit.tine20.org/tine20/965
Reviewed-by: Philipp Schüle <p.schuele@metaways.de>
Tested-by: Philipp Schüle <p.schuele@metaways.de>
tine20/Inventory/Frontend/Json.php
tine20/Inventory/Model/InventoryItem.php
tine20/Inventory/Model/InventoryItemFilter.php

index b56872c..c9a0743 100644 (file)
@@ -60,7 +60,7 @@ class Inventory_Frontend_Json extends Tinebase_Frontend_Json_Abstract
     public function searchInventoryItems($filter, $paging)
     {
         return $this->_search($filter, $paging, $this->_controller, 'Inventory_Model_InventoryItemFilter', TRUE);
-    }     
+    }
     
     /**
      * Return a single record
@@ -107,8 +107,9 @@ class Inventory_Frontend_Json extends Tinebase_Frontend_Json_Abstract
      */
     public function autoCompleteInventoryItemProperty($property, $startswith)
     {
-        if (preg_match('/[^A-Za-z0-9_]/', $property)) {
+        if (! in_array($property, Inventory_Model_InventoryItem::getValidFields())) {
             // NOTE: it would be better to ask the model for property presece, but we can't atm.
+            // NOTE: Maybe we can .. not sure. - Michael
             throw new Tasks_Exception_UnexpectedValue('bad property name');
         }
         
index 0111d0d..cd5dc63 100644 (file)
@@ -50,7 +50,9 @@ class Inventory_Model_InventoryItem extends Tinebase_Record_Abstract
         'containerProperty' => 'container_id',
         'containerName'     => 'inventory record list', // _('inventory record list')
         'containersName'    => 'inventory record lists', // _('inventory record lists')
+
         // relations (linked Inventory_Model_InventoryItem records) and other metadata
+
         'hasRelations'      => true,
         'hasCustomFields'   => true,
         'hasNotes'          => true,
@@ -137,6 +139,18 @@ class Inventory_Model_InventoryItem extends Tinebase_Record_Abstract
      );
     
     /**
+     * Returns every valid key to manage in Frontend/Json.php
+     * 
+     * @todo to be removed if we have a similiar function in the core
+     * @param void
+     * @return array
+     */
+    public static function getValidFields ()
+    {
+        return array_keys(self::$_fields);
+    }
+    
+    /**
      * overwrite constructor to add more filters
      *
      * @param mixed $_data
index 0de7f0c..d4f5b80 100644 (file)
@@ -35,6 +35,8 @@ class Inventory_Model_InventoryItemFilter extends Tinebase_Model_Filter_FilterGr
      */
     protected $_modelName = 'Inventory_Model_InventoryItem';
     
+    protected $_defaultFilter = 'query';
+    
     /**
      * @var array filter model fieldName => definition
      */