/** * Create a field object, configured to render a checkbox for use in selecting * items for the supplied BulkActions object. * * @param BulkActions $bulkActions * @param TableCellHelper $renderer * @return Field * @throws Exception */ public function direct(BulkActions $bulkActions, TableCellHelper $renderer) { $field = new Field(); $key = $bulkActions->getPrimaryKey()->getName(); $field->setId($bulkActions->getId())->setVisible(true); $renderer->getHeaderRenderer()->assign($bulkActions->getId(), function () { return ''; }); $renderer->getContentRenderer()->assign($bulkActions->getId(), function ($helper, array $rowData) use($bulkActions, $key) { /* @var $helper \Dewdrop\Fields\Helper\TableCell\Content */ if (!isset($rowData[$key])) { throw new Exception("{$key} not available in row data for bulk action checkbox render."); } $value = $rowData[$key]; return sprintf('<input class="bulk-checkbox" type="checkbox" name="%s[]" value="%s" %s />', $helper->getView()->escapeHtmlAttr($bulkActions->getId()), $helper->getView()->escapeHtmlAttr($value), in_array($value, $bulkActions->getSelected()) ? 'checked="checked"' : ''); }); return $field; }
public function testCanGetSelectedOptionsAfterProcessIsCalled() { $request = new Request(['bulk_selections' => [], 'bulk_selections_check_pages' => 1]); $listing = $this->createListingWithRequest($request); $bulkActions = new BulkActions($listing, $this->fields); $bulkActions->process(); $this->assertEquals([1, 2, 3, 4, 5], $bulkActions->getSelected()); }