67 $mainContainer =
new Div();
68 $mainContainer->setKey(
'main_container');
69 if ($this->getConfiguration(
'color'))
71 $mainContainer->addInlineStyle(
'background-color', $this->getConfiguration(
'color')->getValue() .
'5f');
76 $mainContainer->addInlineStyle(
'background-color', $this->getView()->getReportDefaultColor($reportHandlersCount) .
'5f');
78 $mainContainer->addClass(
'report-configuration-main');
79 $mainContainer->addAssets(
array(
80 'css' =>
array(
'/bitrix/js/report/css/visualconstructor/configmain.css')
82 $this->addFormElement($mainContainer->start());
83 $fieldListContainer =
new Div();
84 $fieldListContainer->setKey(
'field_list_container');
85 $fieldListContainer->addClass(
'report-configuration-field-list');
86 $this->addFormElement($fieldListContainer->start());
88 $reportHandlerSelectContainer =
new Div();
89 $reportHandlerSelectContainer->setKey(
'report_handler_select_container');
90 $reportHandlerSelectContainer->addClass(
'report-configuration-row');
91 $reportHandlerSelectContainer->addClass(
'report-configuration-no-padding-bottom');
92 $categorySelectField = $this->getReportHandlerCategoryField();
93 $reportHandlerSelectField = $this->getReportHandlerSelectField($categorySelectField->getValue());
95 $reportHandlerSelectField->addJsEventListener($categorySelectField, $categorySelectField::JS_EVENT_ON_CHANGE,
array(
96 'class' =>
'BX.Report.VisualConstructor.FieldEventHandlers.ReportHandlerSelect',
97 'action' =>
'categorySelected'
99 $reportHandlerSelectField->addAssets(
array(
100 'js' =>
array(
'/bitrix/js/report/js/visualconstructor/fields/reporthandlerselect.js')
103 $this->addFormElement($reportHandlerSelectContainer->start());
104 $this->addFormElement($categorySelectField);
105 $this->addFormElement($reportHandlerSelectField);
109 $viewCompatibleDataType = $this->getView()->getCompatibleDataType();
111 if (in_array($viewCompatibleDataType,
array(
112 Common::MULTIPLE_REPORT_TYPE,
113 Common::MULTIPLE_GROUPED_REPORT_TYPE,
114 Common::MULTIPLE_BI_GROUPED_REPORT_TYPE,
118 $this->addFormElement($groupingField);
120 $previewBlock = $widgetHandler->getFormElement(
'view_type');
121 $previewBlock->addJsEventListener($groupingField, $groupingField::JS_EVENT_ON_CHANGE,
array(
122 'class' =>
'BX.Report.VisualConstructor.FieldEventHandlers.PreviewBlock',
123 'action' =>
'reloadWidgetPreview'
127 $this->addFormElement($reportHandlerSelectContainer->end());
129 $selectListContainer =
new Div();
130 $selectListContainer->setKey(
'report_configuration_select_list');
131 $selectListContainer->addClass(
'report-configuration-row');
132 $selectListContainer->addClass(
'report-configuration-row-list');
134 $this->addFormElement($selectListContainer->start());
135 $this->addFormElement($whatWillCalculateField);
136 $this->addFormElement($selectListContainer->end());
137 $this->addFormElement($fieldListContainer->end());
138 $this->addFormElement($mainContainer->end());
188 foreach ($this->formElementsList as $key => $element)
190 $viewModesWhereFieldAvailable = $element->getCompatibleViewTypes();
191 if ($viewModesWhereFieldAvailable !=
null)
193 $viewKey = $this->getView()->getKey();
195 $viewProvider->addFilter(
'primary', $viewKey);
196 $viewProvider->addFilter(
'dataType', $viewModesWhereFieldAvailable);
197 $views = $viewProvider->execute()->getResults();