diff --git a/site/app_controller.php b/site/app_controller.php index 2c7784e..ee89ebe 100644 --- a/site/app_controller.php +++ b/site/app_controller.php @@ -113,6 +113,9 @@ class AppController extends Controller { $query['fields'] = $this->jqGridDataFields($params, $model); $results = $this->jqGridDataRecords($params, $model, $query); + // Add in any needed hyperlinks + $this->jqGridRecordLinks($params, $model, $results, array()); + // DEBUG PURPOSES ONLY $params['query'] = $query; @@ -246,6 +249,28 @@ class AppController extends Controller { return $model->find('all', $query); } + function jqGridRecordLinks(&$params, &$model, &$records, $links) { + foreach ($links AS $table => $fields) { + $controller = Inflector::pluralize(strtolower($table)); + $id = 'id'; + if (isset($fields['id'])) + $id = $fields['id']; + foreach ($records AS &$record) { + foreach (array_diff_key($fields, array('id'=>1)) AS $field) { + $params['linkrecord'][] = compact('table', 'field', 'id', 'controller', 'record'); + $record[$table][$field] = + '' . + $record[$table][$field] . + ''; + } + } + } + } + function jqGridDataOutputHeader(&$params, &$model) { if ($params['debug']) { ob_start(); @@ -262,7 +287,7 @@ class AppController extends Controller { echo " $records\n"; } - function jqGridDataOutputRecords(&$params, &$model, $records) { + function jqGridDataOutputRecords(&$params, &$model, &$records) { $model_alias = $model->alias; foreach ($records AS $record) { diff --git a/site/controllers/customers_controller.php b/site/controllers/customers_controller.php index cffca1b..88523d4 100644 --- a/site/controllers/customers_controller.php +++ b/site/controllers/customers_controller.php @@ -122,6 +122,11 @@ class CustomersController extends AppController { return $count; } + function jqGridRecordLinks(&$params, &$model, &$records, $links) { + $links['Customer'] = array('name'); + return parent::jqGridRecordLinks($params, $model, $records, $links); + } + /************************************************************************** ************************************************************************** diff --git a/site/controllers/leases_controller.php b/site/controllers/leases_controller.php index 1d4dac1..9a4e354 100644 --- a/site/controllers/leases_controller.php +++ b/site/controllers/leases_controller.php @@ -51,8 +51,8 @@ class LeasesController extends AppController { function jqGridDataTables(&$params, &$model) { return array - ('link' => array('Unit' => array('fields' => array('Unit.name')), - 'Customer' => array('fields' => array('Customer.name')))); + ('link' => array('Unit' => array('fields' => array('Unit.id', 'Unit.name')), + 'Customer' => array('fields' => array('Customer.id', 'Customer.name')))); } function jqGridDataConditions(&$params, &$model) { @@ -68,6 +68,12 @@ class LeasesController extends AppController { return $conditions; } + function jqGridRecordLinks(&$params, &$model, &$records, $links) { + $links['Lease'] = array('number'); + $links['Unit'] = array('name'); + return parent::jqGridRecordLinks($params, $model, $records, $links); + } + function jqGridDataRecords(&$params, &$model, $query) { $leases = parent::jqGridDataRecords($params, $model, $query);