| Current Path : /home/rtorresani/www/vendor/stripe/module-payments/Block/Adminhtml/Config/ |
| Current File : //home/rtorresani/www/vendor/stripe/module-payments/Block/Adminhtml/Config/Fieldset.php |
<?php
namespace StripeIntegration\Payments\Block\Adminhtml\Config;
class Fieldset extends \Magento\Config\Block\System\Config\Form\Fieldset
{
/**
* @var \Magento\Config\Model\Config
*/
protected $_backendConfig;
/**
* @param \Magento\Backend\Block\Context $context
* @param \Magento\Backend\Model\Auth\Session $authSession
* @param \Magento\Framework\View\Helper\Js $jsHelper
* @param \Magento\Config\Model\Config $backendConfig
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Context $context,
\Magento\Backend\Model\Auth\Session $authSession,
\Magento\Framework\View\Helper\Js $jsHelper,
\Magento\Config\Model\Config $backendConfig,
array $data = []
) {
$this->_backendConfig = $backendConfig;
parent::__construct($context, $authSession, $jsHelper, $data);
}
/**
* Add custom css class
*
* @param \Magento\Framework\Data\Form\Element\AbstractElement $element
* @return string
*/
protected function _getFrontendClass($element)
{
return parent::_getFrontendClass($element) . ' with-button enabled';
}
/**
* Return header title part of html for payment solution
*
* @param \Magento\Framework\Data\Form\Element\AbstractElement $element
* @return string
* @SuppressWarnings(PHPMD.NPathComplexity)
*/
protected function _getHeaderTitleHtml($element)
{
$html = '<div class="config-heading" >';
$groupConfig = $element->getGroup();
$htmlId = $element->getHtmlId();
$html .= '<div class="button-container"><button type="button"' .
' class="button action-configure' .
'" id="' .
$htmlId .
'-head" onclick="toggleSolution.call(this, \'' .
$htmlId .
"', '" .
$this->getUrl(
'adminhtml/*/state'
) . '\'); return false;"><span class="state-closed">' . __(
'Configure'
) . '</span><span class="state-opened">' . __(
'Close'
) . '</span></button>';
$html .= '</div>';
$html .= '<div class="heading"><strong>' . $element->getLegend() . '</strong>';
if ($element->getComment()) {
$html .= '<span class="heading-intro">' . $element->getComment() . '</span>';
}
$html .= '<div class="config-alt"></div>';
$html .= '</div></div>';
return $html;
}
/**
* Return header comment part of html for payment solution
*
* @param \Magento\Framework\Data\Form\Element\AbstractElement $element
* @return string
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
protected function _getHeaderCommentHtml($element)
{
return '';
}
/**
* Get collapsed state on-load
*
* @param \Magento\Framework\Data\Form\Element\AbstractElement $element
* @return false
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
protected function _isCollapseState($element)
{
return false;
}
/**
* @param \Magento\Framework\Data\Form\Element\AbstractElement $element
* @return string
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
protected function _getExtraJs($element)
{
$script = "require(['jquery', 'prototype'], function(jQuery){
window.toggleSolution = function (id, url) {
var doScroll = false;
Fieldset.toggleCollapse(id, url);
if ($(this).hasClassName(\"open\")) {
$$(\".with-button button.button\").each(function(anotherButton) {
if (anotherButton != this && $(anotherButton).hasClassName(\"open\")) {
$(anotherButton).click();
doScroll = true;
}
}.bind(this));
}
if (doScroll) {
var pos = Element.cumulativeOffset($(this));
window.scrollTo(pos[0], pos[1] - 45);
}
}
});";
return $this->_jsHelper->getScript($script);
}
}