/** * 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); }
/** * @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]; }