Пример #1
0
 /**
  * Create an Action from configuration values
  *
  * @param $actionName
  * @param $actionConfiguration
  * @param Admin $admin
  * @return Action
  */
 protected function createActionFromConfig($actionName, $actionConfiguration, Admin $admin)
 {
     $resolver = new OptionsResolver();
     $resolver->setDefaults($this->getDefaultActionConfiguration($actionName));
     $actionConfiguration = $resolver->resolve($actionConfiguration);
     // guess title if not provided
     if (!$actionConfiguration['title']) {
         $actionConfiguration['title'] = $this->getDefaultActionTitle($admin->getName(), $actionName);
     }
     $action = new Action();
     $action->setName($actionName);
     $action->setTitle($actionConfiguration['title']);
     $action->setPermissions($actionConfiguration['permissions']);
     $action->setRoute($admin->generateRouteName($action->getName()));
     $action->setExport($actionConfiguration['export']);
     // adding fields items to actions
     foreach ($actionConfiguration['fields'] as $fieldName => $fieldConfiguration) {
         $field = new Field();
         $field->setName($fieldName);
         $field->setTitle($this->inflectString($fieldName));
         if (array_key_exists('length', $fieldConfiguration)) {
             $field->setLength($fieldConfiguration['length']);
         }
         $action->addField($field);
     }
     return $action;
 }