| Current Path : /home/rtorresani/www/vendor/magento/module-catalog/Block/Adminhtml/Category/Helper/ |
| Current File : //home/rtorresani/www/vendor/magento/module-catalog/Block/Adminhtml/Category/Helper/Pricestep.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
/**
* Adminhtml additional helper block for sort by
*
* @author Magento Core Team <core@magentocommerce.com>
*/
namespace Magento\Catalog\Block\Adminhtml\Category\Helper;
use Magento\Framework\App\ObjectManager;
use Magento\Framework\Data\Form\Element\CollectionFactory;
use Magento\Framework\Data\Form\Element\Factory;
use Magento\Framework\Escaper;
use Magento\Framework\View\Helper\SecureHtmlRenderer;
/**
* Pricestep Helper
*/
class Pricestep extends \Magento\Framework\Data\Form\Element\Text
{
/**
* @var SecureHtmlRenderer
*/
private $secureRenderer;
/**
* @param Factory $factoryElement
* @param CollectionFactory $factoryCollection
* @param Escaper $escaper
* @param array $data
* @param SecureHtmlRenderer|null $secureRenderer
*/
public function __construct(
Factory $factoryElement,
CollectionFactory $factoryCollection,
Escaper $escaper,
$data = [],
?SecureHtmlRenderer $secureRenderer = null
) {
parent::__construct(
$factoryElement,
$factoryCollection,
$escaper,
$data
);
$this->secureRenderer = $secureRenderer ?? ObjectManager::getInstance()->get(SecureHtmlRenderer::class);
}
/**
* Returns js code that is used instead of default toggle code for "Use default config" checkbox
*
* @return string
*/
public function getToggleCode()
{
$htmlId = 'use_config_' . $this->getHtmlId();
return "toggleValueElements(this, this.parentNode.parentNode);" .
"if (!this.checked) toggleValueElements(\$('{$htmlId}'), \$('{$htmlId}').parentNode);";
}
/**
* Retrieve Element HTML fragment
*
* @return string
*/
public function getElementHtml()
{
$elementDisabled = $this->getDisabled() == 'disabled';
$disabled = false;
if (!$this->getValue() || $elementDisabled) {
$this->setData('disabled', 'disabled');
$disabled = true;
}
parent::addClass('validate-number validate-number-range number-range-0.01-9999999999999999');
$html = parent::getElementHtml();
$htmlId = 'use_config_' . $this->getHtmlId();
$html .= '<br/><input id="' . $htmlId . '" name="use_config[]" value="' . $this->getId() . '"';
$html .= $disabled ? ' checked="checked"' : '';
if ($this->getReadonly() || $elementDisabled) {
$html .= ' disabled="disabled"';
}
$html .= ' class="checkbox" type="checkbox" />';
$html .= ' <label for="' . $htmlId . '" class="normal">' . __('Use Config Settings') . '</label>';
$scriptString =
'require(["prototype"], function(){'.
'toggleValueElements($(\'' .
$htmlId .
'\'), $(\'' .
$htmlId .
'\').parentNode);' .
'});';
$html .= /* @noEscape */ $this->secureRenderer->renderTag('script', [], $scriptString, false);
$html .= /* @noEscape */ $this->secureRenderer->renderEventListenerAsTag(
'onclick',
"toggleValueElements(this, this.parentNode);",
'#' . $htmlId
);
return $html;
}
}