示例#1
0
 /**
  * Returns a list of items for the given widget
  *
  * @param string $widgetName The name of widget
  *
  * @return array
  */
 public function getWidgetItems($widgetName)
 {
     $widgetConfig = $this->configProvider->getWidgetConfig($widgetName);
     $items = isset($widgetConfig['items']) ? $widgetConfig['items'] : [];
     $items = $this->filterWidgets($items);
     return $items;
 }
示例#2
0
 public function testAddWidget()
 {
     $widgets = $this->configProvider->getWidgetConfigs();
     $widgetNames = array_keys($widgets);
     $widgetName = $widgetNames[0];
     $id = $this->widget->getDashboard()->getId();
     $this->client->request('POST', $this->getUrl('oro_api_post_dashboard_widget_add_widget'), array('dashboardId' => $id, 'widgetName' => $widgetName));
     $content = $this->getJsonResponseContent($this->client->getResponse(), 200);
     $this->assertEquals($this->configProvider->getWidgetConfig($widgetName), $content['config']);
     $this->assertEquals($widgetName, $content['name']);
 }
 /**
  * @param string $widget
  *
  * @return FormInterface
  * @throws InvalidArgumentException
  */
 public function getForm($widget)
 {
     if (!$this->hasForm($widget)) {
         throw new InvalidArgumentException(sprintf('Can\'t find form for widget "%s"', $widget));
     }
     $widgetConfig = $this->configProvider->getWidgetConfig($widget);
     $fields = $widgetConfig[static::FORM_FIELDS_KEY];
     $builder = $this->formFactory->createNamedBuilder($widget);
     foreach ($fields as $name => $config) {
         $field = new FieldNodeDefinition($name, $config);
         $builder->add($field->getName(), $config['type'], $field->getOptions());
     }
     return $builder->getForm();
 }
 /**
  * @param array $configs
  * @param EventDispatcherInterface $eventDispatcher
  */
 public function __construct(array $configs, EventDispatcherInterface $eventDispatcher)
 {
     $this->configs = $configs;
     $this->eventDispatcher = $eventDispatcher;
     $this->disableWidgets();
     parent::__construct($this->configs, $eventDispatcher);
 }
示例#5
0
 /**
  * @param Widget $widget
  * @return array
  */
 public function getFormValues(Widget $widget)
 {
     $options = $widget->getOptions();
     $widgetConfig = $this->configProvider->getWidgetConfig($widget->getName());
     foreach ($widgetConfig['configuration'] as $name => $config) {
         $value = isset($options[$name]) ? $options[$name] : null;
         $options[$name] = $this->valueProvider->getFormValue($config['type'], $config, $value);
     }
     $options = $this->loadDefaultValue($options, $widgetConfig);
     return $options;
 }
示例#6
0
 /**
  * @expectedException \Oro\Bundle\DashboardBundle\Exception\InvalidConfigurationException
  */
 public function testGetDashboardConfigHasNoKeyException()
 {
     $configProvider = new ConfigProvider(array(), $this->eventDispatcher);
     $configProvider->getDashboardConfig('not found config');
 }
示例#7
0
 /**
  * @param Widget $widget
  * @return WidgetModel
  */
 public function createWidgetModel(Widget $widget)
 {
     $widgetConfig = $this->configProvider->getWidgetConfig($widget->getName());
     $widgetState = $this->stateManager->getWidgetState($widget);
     return new WidgetModel($widget, $widgetConfig, $widgetState);
 }
示例#8
0
 /**
  * @expectedException \Oro\Bundle\DashboardBundle\Exception\InvalidConfigurationException
  */
 public function testGetDashboardConfigHasNoKeyException()
 {
     $configProvider = new ConfigProvider(array());
     $configProvider->getDashboardConfig('not found config');
 }