diff --git a/webgui/ajax.php b/webgui/ajax.php index a3abd0ace7428d561d28702a858228128222005f..92bd1dd853c194cebfd78345d98fac9e66b9cddf 100644 --- a/webgui/ajax.php +++ b/webgui/ajax.php @@ -1,162 +1,16 @@ <?php # Requires / Includes - include_once("functions/AdminUsers.php"); - include_once("functions/AdminGroups.php"); - include_once("functions/AdminRealms.php"); - include_once("functions/AdminLocations.php"); + include_once("includes/ajax/json.php"); + include_once("includes/ajax/functions/AdminUsers.php"); + include_once("includes/ajax/functions/AdminGroups.php"); + include_once("includes/ajax/functions/AdminRealms.php"); + include_once("includes/ajax/functions/AdminLocations.php"); define('RES_OK',0); define('RES_ERR',-1); - class json_response { - - private $_fields = array(); - private $_id; - private $_results; - private $_datasetSize; - private $_status = RES_OK; - - ## @method setID($id) - # Set ID column - # - # @param id ID column name - public function setID($id) { - $this->_id = $id; - } - - ## @method setStatus($status) - # Set response status - # - # @param status Either RES_OK (default) or RES_ERROR - public function setStatus($status) { - $this->_status = $status; - } - - ## @method addField($name,$type) - # Add a field to our return results - # - # @param name Field name - # @param type Field type, 'int', 'string', 'float', 'boolean', 'date' - public function addField($name,$type) { - # Build field - $field = array( - 'name' => $name, - 'type' => $type - ); - - # Set ISO date format - if ($field['type'] == "date") { - $field['dateFormat'] = "Y-m-d"; - } - - # Add field to list - array_push($this->_fields,$field); - } - - ## @method setDatasetSize($size) - # Set how many records are returned in the dataset - # - # @param size Dataset size - public function setDatasetSize($size) { - $this->_datasetSize = $size; - } - - ## @method parseArrayRef($array) - # Parse in the array of results and fix it up - # - # @param arrayref Array ref containing the results - public function parseArray($array) { - $this->_results = array(); - - # Loop with array items - foreach ($array as $aitem) { - $item = array(); - - # Loop with fields we want - foreach ($this->_fields as $field) { - # FIXME - typecast? - $item[$field['name']] = $aitem[$field['name']]; - } - - array_push($this->_results,$item); - } - - } - - ## @method parseHash($hashref) - # Parse in the hash of results and fix it up - # - # @param hashref Hash ref containing the results - public function parseHash($hash) { - $this->_results = array(); - - foreach ($this->_fields as $field) { - # FIXME - typecast? - $this_results[$field['name']] = $hash[$field['name']]; - } - } - - ## @method export - # Export response into something we return - # - # @return JSON hash - # @li result - Result code/status - # @li data - Ref containing results - # @li metaData - Metadata containing info about the results being returned - # Metadata contains properties.. - # - root: root element, which is always 'data' - # - fields: Optional field description, arrayref of hash refs, name = 'name', type 'type' and 'dateFormat' = 'Y-m-d' - # - id: Optional ID field name - # - totalProperty: Optional property name containing the number of records, always 'datasetSize' - # @li datasetSize Optional, number of records we're rturning - public function export() { - - # Build result - $ret = array( - 'result' => $this->_status, - - # Additional stuff for other things to make life easier - 'success' => $this->_status == RES_OK ? 1 : 0, - 'metaData' => array( - 'successProperty' => 'success' - ) - ); - - # If we have results, add them - if (isset($this->_results)) { - $ret['data'] = $this->_results; - $ret['metaData']['root'] = 'data'; - - # If we have fields, set them up - if (isset($this->_fields)) { - $ret['metaData']['fields'] = $this->_fields; - } - } - - # Check if we have an ID set - if (isset($this->_id)) { - $ret['metaData']['totalProperty'] = 'datasetSize'; - $ret['datasetSize'] = $this->_datasetSize; - } - - return $ret; - } - } - - - - - - - - - - - - - /* * AJAX Interface to SMEngine SOAP */ @@ -506,3 +360,6 @@ echo json_encode($soapRes); + + +# vim: ts=4