%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/views/component/ |
| Current File : /home/bitrix/www/bitrix/modules/report/lib/visualconstructor/views/component/number.php |
<?php
namespace Bitrix\Report\VisualConstructor\Views\Component;
use Bitrix\Main\Localization\Loc;
use Bitrix\Report\VisualConstructor\Config\Common;
use Bitrix\Report\VisualConstructor\Entity\Widget;
use Bitrix\Report\VisualConstructor\Fields\Valuable\DropDown;
use Bitrix\Report\VisualConstructor\Handler\BaseReport;
/**
* Class Number
* @package Bitrix\Report\VisualConstructor\Views
*/
class Number extends Base
{
const VIEW_KEY = 'number';
const MAX_RENDER_REPORT_COUNT = 1;
/**
* Number constructor.
*/
public function __construct()
{
parent::__construct();
$this->setHeight(180);
$this->setLabel(Loc::getMessage('REPORT_NUMBER_VIEW_LABEL'));
$this->setLogoUri('/bitrix/images/report/visualconstructor/view-number.jpg');
$this->setComponentName('bitrix:report.visualconstructor.widget.content.number');
$this->setCompatibleDataType(Common::SINGLE_REPORT_TYPE);
}
/**
* Method to modify report form elements.
*
* @param BaseReport $reportHandler Report handler.
* @return void
*/
public function collectReportHandlerFormElements($reportHandler)
{
parent::collectReportHandlerFormElements($reportHandler);
$removeFormElement = $reportHandler->getFormElementByDataAttribute('role', 'report-remove-button');
if ($removeFormElement)
{
$removeFormElement->setDisplay(false);
}
/** @var DropDown $whatWillCalculateField */
$whatWillCalculateField = $reportHandler->getFormElement('calculate');
$labelField = $reportHandler->getFormElement('label');
if ($whatWillCalculateField)
{
$labelField->addJsEventListener($whatWillCalculateField, $whatWillCalculateField::JS_EVENT_ON_CHANGE, array(
'class' => 'BX.Report.VisualConstructor.FieldEventHandlers.Title',
'action' => 'whatWillCalculateChange',
));
$whatWillCalculateField->addAssets(array(
'js' => array('/bitrix/js/report/js/visualconstructor/fields/reporttitle.js')
));
}
}
/**
* Method to modify Content which pass to widget view, in absolute end.
* Set widget color from report color.
* In interface we choose color for report, but actually change widget background color.
*
* @param Widget $widget Widget entity.
* @param bool $withCalculatedData Marker for calculate or not reports.
* @return array
*/
public function prepareWidgetContent(Widget $widget, $withCalculatedData = false)
{
$resultWidget = parent::prepareWidgetContent($widget, $withCalculatedData);
if ($withCalculatedData)
{
$resultWidget['config']['color'] = $widget->getWidgetHandler()->getReportHandlers()[0]->getFormElement('color')->getValue();
$resultWidget['config']['title'] = $widget->getWidgetHandler()->getReportHandlers()[0]->getFormElement('label')->getValue();
}
return $resultWidget;
}
}