%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/report.visualconstructor.widget.form/ |
| Current File : //home/bitrix/www/bitrix/components/bitrix/report.visualconstructor.widget.form/class.php |
<?php
if (!defined('B_PROLOG_INCLUDED') || B_PROLOG_INCLUDED !== true) die();
use Bitrix\Report\VisualConstructor\RuntimeProvider\ViewProvider;
use \Bitrix\Report\VisualConstructor\Fields;
/**
* Class ReportVisualConstructorWidgetForm
*/
class ReportVisualConstructorWidgetForm extends CBitrixComponent
{
const CREATE_MODE_NAME = 'create';
const UPDATE_MODE_NAME = 'update';
/**
* @var \Bitrix\Report\VisualConstructor\Entity\Widget
*/
private $widget;
/**
* @var \Bitrix\Report\VisualConstructor\View
*/
private $view;
private $boardId;
private $saveButtonTitle;
private $mode;
/**
* @return void
*/
public function executeComponent()
{
$this->boardId = $this->arParams['BOARD_ID'];
$this->widget = $this->arParams['WIDGET'];
$this->mode = $this->arParams['MODE'];
$this->saveButtonTitle = $this->arParams['SAVE_BUTTON_TITLE'];
$this->view = ViewProvider::getViewByViewKey($this->widget->getViewKey());
$params = array(
'boardId' => $this->boardId,
'action' => $this->getFormAction(),
'saveButtonTitle' => $this->saveButtonTitle
);
$form = \Bitrix\Report\VisualConstructor\WidgetForm::build($this->view, $this->widget, $params);
$originalWidgetGid = $this->arParams['ORIGINAL_WIDGET_GID'];
$originalWidgetGidField = new Fields\Valuable\Hidden('originalWidgetGId');
$originalWidgetGidField->setValue($originalWidgetGid);
$form->add($originalWidgetGidField);
$modeField = new Fields\Valuable\Hidden('mode');
$modeField->setValue($this->mode);
$form->add($modeField);
$this->arResult['FORM'] = $form;
$this->arResult['WIDGET_GID'] = $this->widget->getGId();
$this->arResult['PAGE_TITLE'] = $this->arParams['PAGE_TITLE'];
$this->arResult['MODE'] = $this->mode;
$this->includeComponentTemplate();
}
/**
* Return form action name, different for create form and update form
* @return string|null
*/
private function getFormAction()
{
if ($this->mode === self::CREATE_MODE_NAME)
{
return 'widget.addWidgetFromConfigurationForm';
}
elseif ($this->mode === self::UPDATE_MODE_NAME)
{
return 'widget.saveConfigurationForm';
}
return null;
}
}