/** * @param $entityName * @param $scopeId * @return Config */ public function getByEntity($entityName, $scopeId) { $config = $this->findOneBy(['scopedEntity' => $entityName, 'recordId' => $scopeId]); if (!$config) { $config = new Config(); $config->setEntity($entityName)->setRecordId($scopeId); } return $config; }
public function preSubmitData(FormEvent $event) { $data = $event->getData(); if (!$data) { $data = $event->getForm()->getParent()->getData(); } $form = $event->getForm(); $targetEntity = null; if (isset($data['target_entity'])) { $targetEntity = $data['target_entity']; } $relationType = $this->config->getId()->getFieldType(); if ($relationType == 'manyToOne') { //target_field $targetField = null; if (isset($data['target_field'])) { $targetField = $data['target_field']; } $form->add($this->formFactory->createNamed('target_field', new TargetFieldType($this->configProvider, $targetEntity), $targetField)); } else { //target_grid $targetGrid = null; if (isset($data['target_grid'])) { $targetGrid = $data['target_grid']; } $form->add($this->formFactory->createNamed('target_grid', new TargetFieldType($this->configProvider, $targetEntity), $targetGrid, ['multiple' => true, 'label' => 'Related entity data fields'])); //target_title $targetTitle = null; if (isset($data['target_title'])) { $targetTitle = $data['target_title']; } $form->add($this->formFactory->createNamed('target_title', new TargetFieldType($this->configProvider, $targetEntity), $targetTitle, ['multiple' => true, 'label' => 'Related entity info title'])); //target_detailed $targetDetailed = null; if (isset($data['target_detailed'])) { $targetDetailed = $data['target_detailed']; } $form->add($this->formFactory->createNamed('target_detailed', new TargetFieldType($this->configProvider, $targetEntity), $targetDetailed, ['multiple' => true, 'label' => 'Related entity detailed'])); } if ($event->getName() == FormEvents::PRE_SUBMIT) { $event->getForm()->getParent()->setData(array_merge($event->getForm()->getParent()->getData(), $data)); } }
/** * Test saving settings */ public function testSave() { $config = new Config(); $configValue1 = new ConfigValue(); $configValue1->setSection('oro_user')->setName('update')->setValue('old value')->setType('scalar'); $configValue2 = new ConfigValue(); $configValue2->setSection('oro_user')->setName('remove')->setValue('test')->setType('scalar'); $config->getValues()->add($configValue1); $config->getValues()->add($configValue2); $settings = ['oro_user.update' => ['value' => 'updated value', 'use_parent_scope_value' => false], 'oro_user.remove' => ['use_parent_scope_value' => true], 'oro_user.add' => ['value' => 'new value', 'use_parent_scope_value' => false]]; $this->repo->expects($this->once())->method('findByEntity')->with('app', 0)->will($this->returnValue($config)); $this->cache->expects($this->once())->method('save')->with('app_0', ['oro_user' => ['update' => ['value' => 'updated value', 'use_parent_scope_value' => false, 'createdAt' => null, 'updatedAt' => null], 'add' => ['value' => 'new value', 'use_parent_scope_value' => false, 'createdAt' => null, 'updatedAt' => null]]]); $this->em->expects($this->once())->method('persist')->with($this->identicalTo($config)); $this->em->expects($this->once())->method('flush'); $result = $this->manager->save($settings); $this->assertEquals([['oro_user.update' => 'updated value', 'oro_user.add' => 'new value'], ['oro_user.remove']], $result); $this->assertEquals('updated value', $this->manager->getSettingValue('oro_user.update')); $this->assertNull($this->manager->getSettingValue('oro_user.remove')); $this->assertEquals('new value', $this->manager->getSettingValue('oro_user.add')); }
public function testGetId() { $this->assertNull($this->object->getId()); }
/** * {@inheritDoc} */ public function getOrCreateValue($section, $key) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'getOrCreateValue', array($section, $key)); return parent::getOrCreateValue($section, $key); }
/** * @param Config $config * * @return array */ protected function convertToSettings(Config $config) { $settings = []; foreach ($config->getValues() as $value) { $settings[$value->getSection()][$value->getName()] = ['value' => $value->getValue(), 'use_parent_scope_value' => false, 'createdAt' => $value->getCreatedAt(), 'updatedAt' => $value->getUpdatedAt()]; } return $settings; }