Dependence.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\SalesRule\Block\Widget\Form\Element;
  7. /**
  8. * Form element dependencies mapper
  9. * Assumes that one element may depend on other element values.
  10. * Will toggle as "enabled" only if all elements it depends from toggle as true.
  11. */
  12. class Dependence extends \Magento\Backend\Block\Widget\Form\Element\Dependence
  13. {
  14. /**
  15. * @param \Magento\Backend\Block\Context $context
  16. * @param \Magento\Framework\Json\EncoderInterface $jsonEncoder
  17. * @param \Magento\Config\Model\Config\Structure\Element\Dependency\FieldFactory $fieldFactory
  18. * @param array $data
  19. */
  20. public function __construct(
  21. \Magento\Backend\Block\Context $context,
  22. \Magento\Framework\Json\EncoderInterface $jsonEncoder,
  23. \Magento\Config\Model\Config\Structure\Element\Dependency\FieldFactory $fieldFactory,
  24. array $data = []
  25. ) {
  26. parent::__construct($context, $jsonEncoder, $fieldFactory, $data);
  27. }
  28. /**
  29. * {@inheritdoc}
  30. */
  31. protected function _toHtml()
  32. {
  33. if (!$this->_depends) {
  34. return '';
  35. }
  36. return '<script>
  37. require(["uiRegistry", "mage/adminhtml/form"], function(registry) {
  38. var controller = new FormElementDependenceController(' .
  39. $this->_getDependsJson() .
  40. ($this->_configOptions ? ', ' .
  41. $this->_jsonEncoder->encode(
  42. $this->_configOptions
  43. ) : '') . ');
  44. registry.set("formDependenceController", controller);
  45. });</script>';
  46. }
  47. }