/**
  * Save progress in session.
  *
  * @param ProgressBar $progressbar
  *
  * @return ProgressBarManager
  */
 public function save(ProgressBar $progressbar)
 {
     $progressbarBag = $this->session->get(ProgressBar::ATTRIBUTE_PLACEHOLDER);
     $progressbarBag[$progressbar->getToken()] = $progressbar;
     $this->session->set(ProgressBar::ATTRIBUTE_PLACEHOLDER, $progressbarBag);
     return $this;
 }
 private function createResponse(ProgressBar $progressbar)
 {
     $nextProgressbar = null;
     if ($progressbar->isFinished() || $progressbar->isCancelled()) {
         $this->progressbarManager->remove($progressbar->getToken());
         if ($progressbar instanceof StackProgressBar && $progressbar->getNextProgressbarToken()) {
             $nextProgressbar = $this->progressbarManager->load($progressbar->getNextProgressbarToken());
         }
     } else {
         $this->progressbarManager->save($progressbar);
     }
     return $progressbar->getJsonResponse($nextProgressbar);
 }
Example #3
0
 /**
  * @param ProgressBar|null $next
  *
  * @return array
  */
 private function getDataArray(ProgressBar $next = null)
 {
     return ['token' => $this->getToken(), 'url' => $this->getProgressRoute(), 'status' => $this->status, 'percentage' => $this->getProgressPercent(), 'remaining' => $this->getRemaining(), 'max' => $this->getMaxSteps(), 'progress' => $this->getProgress(), 'title' => $this->getTitle(), 'message' => $this->getMessage(), 'redirectUrl' => $this->getRedirectUrl(), 'next' => $next ? $next->getDataArray() : null];
 }