/**
  * Adds Select all choice.
  *
  * @param ChoicesAwareViewData $data
  * @param array                $list
  */
 private function addSelectAll(ChoicesAwareViewData $data, $list)
 {
     $parameters = $data->getUrlParameters();
     $parameters[$this->getRequestField()] = $list;
     $choice = new Choice();
     $choice->setLabel('label.missing_locale.all');
     $choice->setUrlParameters($parameters);
     $data->addChoice($choice);
 }
Пример #2
0
 /**
  * {@inheritdoc}
  */
 public function getViewData(DocumentIterator $result, ViewData $data)
 {
     /** @var ChoicesAwareViewData $data */
     foreach ($this->choices as $key => $choice) {
         $active = $data->getState()->isActive() && strcmp($data->getState()->getValue(), $key) === 0;
         $viewChoice = new ViewData\Choice();
         $viewChoice->setLabel($choice['label']);
         $viewChoice->setDefault($choice['default']);
         $viewChoice->setMode($choice['mode']);
         $viewChoice->setActive($active);
         if ($active) {
             $viewChoice->setUrlParameters($data->getResetUrlParameters());
         } else {
             $viewChoice->setUrlParameters($this->getOptionUrlParameters($key, $data));
         }
         $data->addChoice($viewChoice);
     }
     return $data;
 }
 /**
  * {@inheritdoc}
  */
 public function getViewData(DocumentIterator $result, ViewData $data)
 {
     /** @var ChoicesAwareViewData $data */
     $unsortedChoices = [];
     /** @var ValueAggregation $bucket */
     foreach ($this->fetchAggregation($result, $data->getName()) as $bucket) {
         $bucket = $bucket->getValue();
         $active = $this->isChoiceActive($bucket['key'], $data);
         $choice = new ViewData\Choice();
         $choice->setLabel($bucket['key']);
         $choice->setCount($bucket['doc_count']);
         $choice->setActive($active);
         if ($active) {
             $choice->setUrlParameters($this->getUnsetUrlParameters($bucket['key'], $data));
         } else {
             $choice->setUrlParameters($this->getOptionUrlParameters($bucket['key'], $data));
         }
         $unsortedChoices[$bucket['key']] = $choice;
     }
     // Add the prioritized choices first.
     if ($this->getSortType()) {
         $unsortedChoices = $this->addPriorityChoices($unsortedChoices, $data);
     }
     foreach ($unsortedChoices as $choice) {
         $data->addChoice($choice);
     }
     return $data;
 }