123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Backend\Block\Widget\Grid\Column\Renderer;
- /**
- * Grid checkbox column renderer
- *
- * @api
- * @deprecated 100.2.0 in favour of UI component implementation
- * @since 100.0.2
- */
- class Checkbox extends \Magento\Backend\Block\Widget\Grid\Column\Renderer\AbstractRenderer
- {
- /**
- * @var int
- */
- protected $_defaultWidth = 55;
- /**
- * @var array
- */
- protected $_values;
- /**
- * @var \Magento\Backend\Block\Widget\Grid\Column\Renderer\Options\Converter
- */
- protected $_converter;
- /**
- * @param \Magento\Backend\Block\Context $context
- * @param \Magento\Backend\Block\Widget\Grid\Column\Renderer\Options\Converter $converter
- * @param array $data
- */
- public function __construct(
- \Magento\Backend\Block\Context $context,
- \Magento\Backend\Block\Widget\Grid\Column\Renderer\Options\Converter $converter,
- array $data = []
- ) {
- parent::__construct($context, $data);
- $this->_converter = $converter;
- }
- /**
- * Returns values of the column
- *
- * @return array
- */
- public function getValues()
- {
- if ($this->_values === null) {
- $this->_values = $this->getColumn()->getData('values') ? $this->getColumn()->getData('values') : [];
- }
- return $this->_values;
- }
- /**
- * Prepare data for renderer
- *
- * @return array
- */
- protected function _getValues()
- {
- $values = $this->getColumn()->getValues();
- return $this->_converter->toFlatArray($values);
- }
- /**
- * Renders grid column
- *
- * @param \Magento\Framework\DataObject $row
- * @return string
- * @SuppressWarnings(PHPMD.CyclomaticComplexity)
- * @SuppressWarnings(PHPMD.NPathComplexity)
- */
- public function render(\Magento\Framework\DataObject $row)
- {
- $values = $this->_getValues();
- $value = $row->getData($this->getColumn()->getIndex());
- $checked = '';
- if (is_array($values)) {
- $checked = in_array($value, $values) ? ' checked="checked"' : '';
- } else {
- $checkedValue = $this->getColumn()->getValue();
- if ($checkedValue !== null) {
- $checked = $value === $checkedValue ? ' checked="checked"' : '';
- }
- }
- $disabled = '';
- $disabledValues = $this->getColumn()->getDisabledValues();
- if (is_array($disabledValues)) {
- $disabled = in_array($value, $disabledValues) ? ' disabled="disabled"' : '';
- } else {
- $disabledValue = $this->getColumn()->getDisabledValue();
- if ($disabledValue !== null) {
- $disabled = $value === $disabledValue ? ' disabled="disabled"' : '';
- }
- }
- $this->setDisabled($disabled);
- if ($this->getNoObjectId() || $this->getColumn()->getUseIndex()) {
- $v = $value;
- } else {
- $v = $row->getId() != "" ? $row->getId() : $value;
- }
- return $this->_getCheckboxHtml($v, $checked);
- }
- /**
- * @param string $value Value of the element
- * @param bool $checked Whether it is checked
- * @return string
- */
- protected function _getCheckboxHtml($value, $checked)
- {
- $html = '<label class="data-grid-checkbox-cell-inner" ';
- $html .= ' for="id_' . $this->escapeHtml($value) . '">';
- $html .= '<input type="checkbox" ';
- $html .= 'name="' . $this->getColumn()->getFieldName() . '" ';
- $html .= 'value="' . $this->escapeHtml($value) . '" ';
- $html .= 'id="id_' . $this->escapeHtml($value) . '" ';
- $html .= 'class="' .
- ($this->getColumn()->getInlineCss() ? $this->getColumn()->getInlineCss() : 'checkbox') .
- ' admin__control-checkbox' . '"';
- $html .= $checked . $this->getDisabled() . '/>';
- $html .= '<label for="id_' . $this->escapeHtml($value) . '"></label>';
- $html .= '</label>';
- /* ToDo UI: add class="admin__field-label" after some refactoring _fields.less */
- return $html;
- }
- /**
- * Renders header of the column
- *
- * @return string
- */
- public function renderHeader()
- {
- if ($this->getColumn()->getHeader()) {
- return parent::renderHeader();
- }
- $checked = '';
- if ($filter = $this->getColumn()->getFilter()) {
- $checked = $filter->getValue() ? ' checked="checked"' : '';
- }
- $disabled = '';
- if ($this->getColumn()->getDisabled()) {
- $disabled = ' disabled="disabled"';
- }
- $html = '<th class="data-grid-th data-grid-actions-cell"><input type="checkbox" ';
- $html .= 'name="' . $this->getColumn()->getFieldName() . '" ';
- $html .= 'onclick="' . $this->getColumn()->getGrid()->getJsObjectName() . '.checkCheckboxes(this)" ';
- $html .= 'class="admin__control-checkbox"' . $checked . $disabled . ' ';
- $html .= 'title="' . __('Select All') . '"/><label></label></th>';
- return $html;
- }
- }
|