/**
  * Add missing attribute option values
  *
  * @param AbstractAttribute $entity
  */
 protected function addMissingOptionValues(AbstractAttribute $entity)
 {
     $this->ensureOneOption($entity);
     $locales = $this->getLocaleCodes();
     foreach ($entity->getOptions() as $option) {
         if ($option->isTranslatable()) {
             $existingLocales = array();
             foreach ($option->getOptionValues() as $value) {
                 $existingLocales[] = $value->getLocale();
             }
             foreach ($locales as $locale) {
                 if (!in_array($locale, $existingLocales)) {
                     $optionValue = $this->attributeManager->createAttributeOptionValue();
                     $optionValue->setLocale($locale);
                     $optionValue->setValue('');
                     $option->addOptionValue($optionValue);
                 }
             }
         }
     }
 }
 /**
  * Create a new option for a simple/multi-select attribute
  *
  * @param Request $request
  * @param integer $id
  * @param string  $dataLocale
  *
  * @Template("PimEnrichBundle:Attribute:form_options.html.twig")
  * @AclAncestor("pim_enrich_attribute_edit")
  * @return Response
  */
 public function createOptionAction(Request $request, $id, $dataLocale)
 {
     $attribute = $this->findAttributeOr404($id);
     if (!$request->isXmlHttpRequest() || !in_array($attribute->getAttributeType(), $this->choiceAttributeTypes)) {
         return $this->redirectToRoute('pim_enrich_attribute_edit', array('id' => $attribute->getId()));
     }
     $option = $this->attributeManager->createAttributeOption();
     $optionValue = $this->attributeManager->createAttributeOptionValue();
     $optionValue->setLocale($dataLocale);
     $optionValue->setValue('');
     $option->addOptionValue($optionValue);
     $attribute->addOption($option);
     $form = $this->createForm('pim_attribute_option_create', $option);
     if ($request->isMethod('POST')) {
         $form->submit($request);
         if ($form->isValid()) {
             $this->persist($option);
             $response = array('status' => 1, 'option' => array('id' => $option->getId(), 'label' => $option->setLocale($dataLocale)->__toString()));
             return new Response(json_encode($response));
         }
     }
     return array('attribute' => $attribute, 'form' => $form->createView());
 }
 /**
  * Create an attribute option value.
  *
  * @return \Pim\Bundle\CatalogBundle\Entity\AttributeOptionValue
  */
 public function createAttributeOptionValue()
 {
     return $this->baseAttributeManager->createAttributeOptionValue();
 }