From 489191b44f645d77488e698b0bdeef9f2198afdf Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Tue, 10 Jan 2012 16:24:00 +1300 Subject: [PATCH] BUGFIX: Fixed notice-level errors in GridField, exposed by test failures. --- forms/gridfield/GridField.php | 19 +++++++++---------- tests/forms/GridFieldTest.php | 2 +- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/forms/gridfield/GridField.php b/forms/gridfield/GridField.php index 810bf7581..055df5057 100755 --- a/forms/gridfield/GridField.php +++ b/forms/gridfield/GridField.php @@ -399,8 +399,8 @@ class GridField extends FormField { $this->buildColumnDispatch(); } - $handler = $this->columnDispatch[$column]; - if($handler) { + if(!empty($this->columnDispatch[$column])) { + $handler = $this->columnDispatch[$column]; return $handler->getColumnContent($this, $record, $column); } else { throw new InvalidArgumentException("Bad column '$column'"); @@ -422,8 +422,8 @@ class GridField extends FormField { $this->buildColumnDispatch(); } - $handler = $this->columnDispatch[$column]; - if($handler) { + if(!empty($this->columnDispatch[$column])) { + $handler = $this->columnDispatch[$column]; $attrs = $handler->getColumnAttributes($this, $record, $column); if(is_array($attrs)) { return $attrs; @@ -451,8 +451,8 @@ class GridField extends FormField { $this->buildColumnDispatch(); } - $handler = $this->columnDispatch[$column]; - if($handler) { + if(!empty($this->columnDispatch[$column])) { + $handler = $this->columnDispatch[$column]; $metadata = $handler->getColumnMetadata($this, $column); if(is_array($metadata)) { return $metadata; @@ -502,13 +502,12 @@ class GridField extends FormField { $stateChange = Session::get($id); $gridName = $stateChange['grid']; $grid = $form->Fields()->dataFieldByName($gridName); - + $state = $grid->getState(false); - $state->setValue($data['GridState']); + if(isset($data['GridState'])) $state->setValue($data['GridState']); $actionName = $stateChange['actionName']; - - $args = $stateChange['args']; + $args = isset($stateChange['args']) ? $stateChange['args'] : array(); $grid->handleAction($actionName, $args, $data); switch($request->getHeader('X-Get-Fragment')) { diff --git a/tests/forms/GridFieldTest.php b/tests/forms/GridFieldTest.php index 535b682b5..f096e1c15 100644 --- a/tests/forms/GridFieldTest.php +++ b/tests/forms/GridFieldTest.php @@ -315,7 +315,7 @@ class GridFieldtest extends SapphireTest { $obj = new GridField('testfield', 'testfield', ArrayList::create(), $config); $id = 'testGridStateActionField'; Session::set($id, array('grid'=>'', 'actionName'=>'jump')); - $form = new Form($this, 'mockform', new FieldList(array($obj)), new FieldList()); + $form = new Form(new Controller(), 'mockform', new FieldList(array($obj)), new FieldList()); $request = new SS_HTTPRequest('POST', 'url'); $obj->gridFieldAlterAction(array('StateID'=>$id), $form, $request); }