• Модуль: report
  • Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/view.php
  • Класс: BitrixReportVisualConstructorView
  • Вызов: View::collectWidgetHandlerFormElements
public function collectWidgetHandlerFormElements(BaseWidget $widgetHandler)
{
	$label = new LabelField('label', 'big');
	$label->setDefaultValue(Loc::getMessage('REPORT_WIDGET_DEFAULT_TITLE'));
	$label->addAssets(array(
		'js' => array('/bitrix/js/report/js/visualconstructor/fields/reporttitle.js')
	));
	$label->setIsDisplayLabel(false);

	$timePeriod = new TimePeriod('time_period', $widgetHandler->getWidget()->getFilterId());
	$timePeriod->setLabel(Loc::getMessage('REPORT_CALCULATION_PERIOD'));

	$colorPicker = new ColorPicker('color');
	$colorPicker->setLabel(Loc::getMessage('BACKGROUND_COLOR_OF_WIDGET'));
	$colorPicker->setDefaultValue('#ffffff');

	$previewBlockField = new PreviewBlock('view_type');
	$previewBlockField->setWidget($widgetHandler->getWidget());
	$previewBlockField->addJsEventListener($previewBlockField, $previewBlockField::JS_EVENT_ON_VIEW_SELECT, array(
		'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.PreviewBlock',
		'action' => 'viewTypeSelect'
	));

	$previewBlockField->addJsEventListener($label, $label::JS_EVENT_ON_CHANGE, array(
		'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.PreviewBlock',
		'action' => 'reloadWidgetPreview'
	));
	$previewBlockField->addJsEventListener($timePeriod, $timePeriod::JS_EVENT_ON_SELECT, array(
		'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.PreviewBlock',
		'action' => 'reloadWidgetPreview'
	));

	$previewBlockField->addAssets(array(
		'js' => array('/bitrix/js/report/js/visualconstructor/fields/previewblock.js')
	));
	$titleContainer = new Div();
	$titleContainer->addClass('report-configuration-row');
	$titleContainer->addClass('report-configuration-no-padding-bottom');
	$titleContainer->addClass('report-configuration-row-white-background');
	$titleContainer->addClass('report-configuration-row-margin-bottom');
	$widgetHandler->addFormElement($titleContainer->start());
	$widgetHandler->addFormElement($label);
	$widgetHandler->addFormElement($colorPicker);
	$widgetHandler->addFormElement($titleContainer->end());

	$timePeriodContainer = new Div();
	$timePeriodContainer->addClass('report-configuration-row');
	$timePeriodContainer->addClass('report-configuration-row-white-background');
	$widgetHandler->addFormElement($timePeriodContainer->start());
	$widgetHandler->addFormElement($timePeriod);
	$widgetHandler->addFormElement($timePeriodContainer->end());

	$previewBlockContainer = new Div();
	$previewBlockContainer->addClass('report-configuration-row');
	$previewBlockContainer->addClass('report-configuration-row-margin-top-big');
	$previewBlockContainer->addClass('report-configuration-row-white-background');
	$widgetHandler->addFormElement($previewBlockContainer->start());
	$widgetHandler->addFormElement($previewBlockField);
	$widgetHandler->addFormElement($previewBlockContainer->end());
}