Exemplo n.º 1
0
 /**
  * @param array $definitions
  * @param bool $expects
  *
  * @dataProvider definitionDataProvider
  */
 public function testOnKernelRequest(array $definitions, $expects)
 {
     /** @var GetResponseEvent $event */
     $event = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent')->disableOriginalConstructor()->getMock();
     $this->widgetDefinitionsRegistry->expects($this->once())->method('getWidgetDefinitions')->will($this->returnValue(new ArrayCollection($definitions)));
     if ($expects) {
         $this->assetHelper->expects($this->exactly($expects))->method('getUrl')->with($this->isType('string'));
     }
     $this->handler->onKernelRequest($event);
 }
Exemplo n.º 2
0
 /**
  * @param GetResponseEvent $event
  */
 public function onKernelRequest(GetResponseEvent $event)
 {
     $definitions = $this->widgetDefinitionsRegistry->getWidgetDefinitions();
     if ($definitions->isEmpty()) {
         return;
     }
     $definitions = $definitions->toArray();
     foreach ($definitions as &$definition) {
         if (!empty($definition['icon'])) {
             $definition['icon'] = $this->assetHelper->getUrl($definition['icon']);
         }
     }
     $this->widgetDefinitionsRegistry->setWidgetDefinitions($definitions);
 }
Exemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function setDefaultOptions(OptionsResolverInterface $resolver)
 {
     $defaultWysiwygOptions = ['plugins' => ['textcolor', 'code', 'link', 'bdesk_photo'], 'toolbar_type' => self::TOOLBAR_DEFAULT, 'skin_url' => 'bundles/oroform/css/tinymce', 'valid_elements' => implode(',', $this->htmlTagProvider->getAllowedElements()), 'menubar' => false, 'statusbar' => false, 'relative_urls' => false, 'remove_script_host' => false, 'convert_urls' => true];
     $defaults = ['wysiwyg_enabled' => (bool) $this->configManager->get('oro_form.wysiwyg_enabled'), 'wysiwyg_options' => $defaultWysiwygOptions, 'page-component' => ['module' => 'oroui/js/app/components/view-component', 'options' => ['view' => 'oroform/js/app/views/wysiwig-editor/wysiwyg-editor-view', 'content_css' => 'bundles/oroform/css/wysiwyg-editor.css']]];
     $resolver->setDefaults($defaults);
     $resolver->setNormalizers(['wysiwyg_options' => function (Options $options, $wysiwygOptions) use($defaultWysiwygOptions) {
         if (empty($wysiwygOptions['toolbar_type']) || !array_key_exists($wysiwygOptions['toolbar_type'], $this->toolbars)) {
             $toolbarType = self::TOOLBAR_DEFAULT;
         } else {
             $toolbarType = $wysiwygOptions['toolbar_type'];
         }
         $wysiwygOptions['toolbar'] = $this->toolbars[$toolbarType];
         $wysiwygOptions = array_merge($defaultWysiwygOptions, $wysiwygOptions);
         unset($wysiwygOptions['toolbar_type']);
         return $wysiwygOptions;
     }, 'attr' => function (Options $options, $attr) {
         $pageComponent = $options->get('page-component');
         $wysiwygOptions = (array) $options->get('wysiwyg_options');
         if ($this->assetHelper) {
             if (!empty($pageComponent['options']['content_css'])) {
                 $pageComponent['options']['content_css'] = $this->assetHelper->getUrl($pageComponent['options']['content_css']);
             }
             if (!empty($wysiwygOptions['skin_url'])) {
                 $wysiwygOptions['skin_url'] = $this->assetHelper->getUrl($wysiwygOptions['skin_url']);
             }
         }
         $pageComponent['options'] = array_merge($pageComponent['options'], $wysiwygOptions);
         $pageComponent['options']['enabled'] = (bool) $options->get('wysiwyg_enabled');
         $attr['data-page-component-module'] = $pageComponent['module'];
         $attr['data-page-component-options'] = json_encode($pageComponent['options']);
         return $attr;
     }]);
 }
Exemplo n.º 4
0
 /**
  * @return array|string|int|\JsonSerializable
  */
 public function getConfig()
 {
     return ['root' => $this->requestStack->getMasterRequest()->attributes->get('semanticPathinfo'), 'apiRoot' => $this->getApiRoot(), 'assetRoot' => $this->assetsHelper->getUrl('/'), 'ckeditorPluginPath' => $this->assetsHelper->getUrl($this->externalAssetsDirectory) . '/vendors/'];
 }