- Модуль: report
- Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/handler/basereport.php
- Класс: BitrixReportVisualConstructorHandlerBaseReport
- Вызов: BaseReport::collectFormElements
protected function collectFormElements()
{
$mainContainer = new Div();
$mainContainer->setKey('main_container');
if ($this->getConfiguration('color'))
{
$mainContainer->addInlineStyle('background-color', $this->getConfiguration('color')->getValue() . '5f');
}
else
{
$reportHandlersCount = count($this->getWidgetHandler()->getReportHandlers());
$mainContainer->addInlineStyle('background-color', $this->getView()->getReportDefaultColor($reportHandlersCount) . '5f');
}
$mainContainer->addClass('report-configuration-main');
$mainContainer->addAssets(array(
'css' => array('/bitrix/js/report/css/visualconstructor/configmain.css')
));
$this->addFormElement($mainContainer->start());
$fieldListContainer = new Div();
$fieldListContainer->setKey('field_list_container');
$fieldListContainer->addClass('report-configuration-field-list');
$this->addFormElement($fieldListContainer->start());
$reportHandlerSelectContainer = new Div();
$reportHandlerSelectContainer->setKey('report_handler_select_container');
$reportHandlerSelectContainer->addClass('report-configuration-row');
$reportHandlerSelectContainer->addClass('report-configuration-no-padding-bottom');
$categorySelectField = $this->getReportHandlerCategoryField();
$reportHandlerSelectField = $this->getReportHandlerSelectField($categorySelectField->getValue());
$reportHandlerSelectField->addJsEventListener($categorySelectField, $categorySelectField::JS_EVENT_ON_CHANGE, array(
'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.ReportHandlerSelect',
'action' => 'categorySelected'
));
$reportHandlerSelectField->addAssets(array(
'js' => array('/bitrix/js/report/js/visualconstructor/fields/reporthandlerselect.js')
));
$this->addFormElement($reportHandlerSelectContainer->start());
$this->addFormElement($categorySelectField);
$this->addFormElement($reportHandlerSelectField);
$whatWillCalculateField = $this->getCalculateField();
$viewCompatibleDataType = $this->getView()->getCompatibleDataType();
if (in_array($viewCompatibleDataType, array(
Common::MULTIPLE_REPORT_TYPE,
Common::MULTIPLE_GROUPED_REPORT_TYPE,
Common::MULTIPLE_BI_GROUPED_REPORT_TYPE,
)))
{
$groupingField = $this->getGroupingField($whatWillCalculateField);
$this->addFormElement($groupingField);
$widgetHandler = $this->getWidgetHandler();
$previewBlock = $widgetHandler->getFormElement('view_type');
$previewBlock->addJsEventListener($groupingField, $groupingField::JS_EVENT_ON_CHANGE, array(
'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.PreviewBlock',
'action' => 'reloadWidgetPreview'
));
}
$this->addFormElement($reportHandlerSelectContainer->end());
$selectListContainer = new Div();
$selectListContainer->setKey('report_configuration_select_list');
$selectListContainer->addClass('report-configuration-row');
$selectListContainer->addClass('report-configuration-row-list');
$this->addFormElement($selectListContainer->start());
$this->addFormElement($whatWillCalculateField);
$this->addFormElement($selectListContainer->end());
$this->addFormElement($fieldListContainer->end());
$this->addFormElement($mainContainer->end());
}