/** * * @return \ZfcDatagrid\Datagrid */ private function getGrid() { /* @var $grid \ZfcDatagrid\Datagrid */ $grid = $this->getServiceLocator()->get('ZfcDatagrid\\Datagrid'); $grid->setTitle('Categories'); $grid->setDefaultItemsPerPage(5); $grid->setDataSource($this->getServiceLocator()->get('zfcDatagrid.examples.data.phpArray')->getCategorys()); $col = new Column\Select('id'); $col->setIdentity(); $grid->addColumn($col); $colParentId = new Column\Select('parentId'); $colParentId->setHidden(true); $grid->addColumn($colParentId); $colHasChildren = new Column\Select('hasChildren'); $colHasChildren->setHidden(true); $grid->addColumn($colHasChildren); $colTags = new Column\Select('tags'); $colTags->setLabel('Tags'); $colTags->setHidden(true); $colTags->setWidth(30); $colTags->setType(new Type\PhpArray()); $grid->addColumn($colTags); $toggle = new Column\Action\Button(); $toggle->setLabel('+'); $toggle->addShowOnValue($colHasChildren, 'y'); $toggle->setAttribute('onclick', 'console.log($(this).parent().parent().attr(\'id\'));$.get(\'/zfcDatagrid/category/tree\', function (data) { console.log(this); $.each(data.data, function (index, value) { $(\'#' . $grid->getId() . '\').jqGrid(\'addRowData\', value.idConcated, value, \'after\', 5); }); });'); $col = new Column\Action(); $col->setLabel(' '); $col->setUniqueId('expandAction'); $col->addAction($toggle); $grid->addColumn($col); $col = new Column\Select('name'); $col->setLabel('Name'); $col->setWidth(50); $col->setSortDefault(1); $col->setRendererParameter('formatter', ' function (cellvalue, options, rowObject) { var valuePrint = cellvalue; $.each(rowObject.' . $colTags->getUniqueId() . ', function (index, value) { valuePrint += \' <span class="label">\' + value + \'</span>\'; }); return valuePrint; } ', 'jqGrid'); $grid->addColumn($col); $toggle = new Column\Action\Button(); $toggle->setLabel('other action...'); $toggle->addShowOnValue($colHasChildren, 'y'); $toggle->setAttribute('onclick', 'alert(\'clicked\');'); $col = new Column\Action(); // $col->setLabel('A'); $col->addAction($toggle); $grid->addColumn($col); return $grid; }
public function addCrudColumn() { if ($this->getTwitterBoostrapVersion() == '2.3.*') { $iconEdit = 'icon-pencil'; $iconView = 'icon-eye-open'; $iconDelete = 'icon-trash'; } else { $iconEdit = 'glyphicon glyphicon-pencil'; $iconView = 'glyphicon glyphicon-eye-open'; $iconDelete = 'glyphicon glyphicon-trash'; } $identity = $this->formatIdentityColumns(); $actionviewCrud = new Column\Action\Icon(); $actionviewCrud->setIconTheme($this->getTwitterBoostrapVersion()); $actionviewCrud->setIconClass($iconView); $actionviewCrud->setAttribute('id', 'viewCrud'); $actionviewCrud->setAttribute('href', "?op=v&{$identity}=" . $actionviewCrud->getRowIdPlaceholder()); if (isset($this->crudOption['viewCrud'])) { $actionviewCrud->addShowOnValue($this->crudOption['viewCrud']['field'], $this->crudOption['viewCrud']['filter']); if (isset($this->crudOption['viewCrud']['js'])) { $actionviewCrud->setAttribute('onclick', "{$this->crudOption['viewCrud']['js']}"); } } // $action = new Column\Action\Button (); $actionedit = new Column\Action\Icon(); // $action->setLabel ( $this->getTranslator ()->translate ( 'Edit' ) ); $actionedit->setIconTheme($this->getTwitterBoostrapVersion()); $actionedit->setIconClass($iconEdit); $actionedit->setAttribute('id', 'editCrud'); $actionedit->setAttribute('href', "?op=u&{$identity}=" . $actionedit->getRowIdPlaceholder()); if (isset($this->crudOption['editCrud'])) { $actionedit->addShowOnValue($this->crudOption['editCrud']['field'], $this->crudOption['editCrud']['filter']); if (isset($this->crudOption['editCrud']['js'])) { $actionedit->setAttribute('onclick', "{$this->crudOption['editCrud']['js']}"); } } $actiondel = new Column\Action\Icon(); // $actiondel->setLabel ( $this->getTranslator ()->translate ( 'Delete' ) ); $actiondel->setIconClass($iconDelete); $actiondel->setIconTheme($this->getTwitterBoostrapVersion()); $actiondel->setAttribute('id', 'deleteCrud'); $actiondel->setAttribute('href', "?op=d&{$identity}=" . $actiondel->getRowIdPlaceholder()); // $actiondel->setAttribute ( 'href', "#"); if (isset($this->crudOption['deleteCrud'])) { $actiondel->addShowOnValue($this->crudOption['deleteCrud']['field'], $this->crudOption['deleteCrud']['filter']); if (isset($this->crudOption['deleteCrud']['js'])) { $actiondel->setAttribute('onclick', "{$this->crudOption['deleteCrud']['js']}"); } } $col = new Column\Action(); $col->setLabel($this->getTranslator()->translate('Operation')); $col->setWidth(0.5); if ($this->getisAllowView()) { $col->addAction($actionviewCrud); } if ($this->getisAllowEdit()) { $col->addAction($actionedit); } if ($this->getisAllowDelete()) { $col->addAction($actiondel); } $this->prependColumn($col); }
private function getGrid() { die('xxx'); /* @var $grid \ZfcDatagrid\Datagrid */ $grid = $this->getServiceLocator()->get('ZfcDatagrid\\Datagrid'); $grid->setTitle('Persons'); $grid->setDefaultItemsPerPage(5); $grid->setDataSource($this->getServiceLocator()->get('zfcDatagrid.examples.data.phpArray')->getPersons()); $col = new Column\Select('id'); $col->setIdentity(); $grid->addColumn($col); $action = new Action\Mass(); $action->setTitle('test'); $action->setLink('/test'); $grid->addMassAction($action); /** * Gravatar example * - take the email from the datasource * - object makes the rest :-) * * @note Could be whatever you want -> Grab data from everywhere you want with dynamic parameters :-) */ $colEmail = new Column\Select('email'); $colEmail->setLabel('E-Mail'); $colEmail->setHidden(true); $grid->addColumn($colEmail); $dataPopulation = new Column\DataPopulation\Object(); $dataPopulation->setObject(new Column\DataPopulation\Object\Gravatar()); $dataPopulation->addObjectParameterColumn('email', $colEmail); $col = new Column\ExternalData('avatar'); $col->setLabel('Avatar'); $col->setDataPopulation($dataPopulation); $col->setType(new Type\Image()); $grid->addColumn($col); $col = new Column\Select('displayName'); $col->setLabel('Displayname'); $col->setWidth(25); $col->setSortDefault(1, 'ASC'); $col->setFormatter(new Email()); $col->addStyle(new Style\Bold()); $grid->addColumn($col); $col = new Column\Select('familyName'); $col->setLabel('Familyname'); $col->setWidth(15); $grid->addColumn($col); $col = new Column\Select('givenName'); $col->setLabel('Givenname'); $col->setWidth(15); $col->setSortDefault(2, 'DESC'); $grid->addColumn($col); $style = new Style\BackgroundColor(array(200, 200, 200)); $style->addByValue($col, 'Martin'); $grid->addRowStyle($style); $col = new Column\Select('gender'); $col->setLabel('Gender'); $col->setWidth(10); $col->setReplaceValues(array('m' => 'male', 'f' => 'female')); $style = new Style\BackgroundColor(array(200, 100, 100)); $style->addByValue($col, 'male'); $col->addStyle($style); $col->setTranslationEnabled(true); $grid->addColumn($col); $col = new Column\Select('age'); $col->setLabel('Age'); $col->setWidth(5); $col->setType(new Type\Number()); $col->setFilterDefaultValue('>=20'); $style = new Style\Color(Style\Color::$RED); $style->addByValue($col, 20); $col->addStyle($style); $grid->addColumn($col); $colType = new Type\Number(); $colType->addAttribute(\NumberFormatter::FRACTION_DIGITS, 2); $colType->setSuffix(' kg'); $col = new Column\Select('weight'); $col->setLabel('Weight'); $col->setWidth(10); $col->setType($colType); $col->setFilterDefaultOperation(\ZfcDatagrid\Filter::GREATER_EQUAL); $grid->addColumn($col); $col = new Column\Select('birthday'); $col->setLabel('Birthday'); $col->setWidth(10); $col->setType(new Type\DateTime()); $col->setUserSortDisabled(true); $grid->addColumn($col); $colType = new Type\DateTime('Y-m-d H:i:s', \IntlDateFormatter::MEDIUM, \IntlDateFormatter::MEDIUM); $colType->setSourceTimezone('Europe/Vienna'); $colType->setOutputTimezone('UTC'); $col = new Column\Select('changeDate'); $col->setLabel('Last change'); $col->setWidth(15); $col->setType($colType); $grid->addColumn($col); $action = new Column\Action\Button(); $action->setLabel('test'); $action->setAttribute('href', '/someAction/id/' . $action->getRowIdPlaceholder()); $col = new Column\Action(); $col->setLabel('Actions'); $col->setWidth(10); $col->addAction($action); $grid->addColumn($col); $grid->setRowClickAction($action); return $grid; }
public function testAddRemoveAction() { //$this->markTestIncomplete(); $column = new Column\Action(); $this->assertCount(0, $column->getActions()); $action = $this->getMock('Zf2datatable\\Column\\Action\\Button'); $column->addAction($action); $this->assertCount(1, $column->getActions()); $action2 = $this->getMock('Zf2datatable\\Column\\Action\\Button'); $column->addAction($action2); $action3 = $this->getMock('Zf2datatable\\Column\\Action\\Button'); $column->addAction($action3); $this->assertCount(3, $column->getActions()); $this->assertEquals($action2, $column->getAction(1)); $column->removeAction(2); $this->assertCount(2, $column->getActions()); $actions = array($this->getMock('Zf2datatable\\Column\\Action\\Button'), $this->getMock('Zf2datatable\\Column\\Action\\Button')); $column->setActions($actions); $this->assertEquals($actions, $column->getActions()); $column->clearActions(); $this->assertCount(0, $column->getActions()); }
public function testAction() { $rowData = $this->rowWithId; $rowData['action'] = ''; $helper = new TableRow(); // must be instanceof Column\Select... $myCol = new Column\Select('myCol'); $action = new Column\Action\Checkbox(); $action->setLink('http://example.com'); $colAction = new Column\Action(); $colAction->addAction($action); $cols = array($myCol, $colAction); $html = $helper($rowData, $cols); $this->assertContains('<input type="checkbox"', $html); // row action $cols = array($myCol, $colAction); $html = $helper($rowData, $cols, $action); $this->assertContains('<a href="http://example.com', $html); }