Ejemplo n.º 1
0
 /**
  * Write an entire @{class:AphrontResponse} to the output.
  *
  * @param AphrontResponse The response object to write.
  * @return void
  */
 public final function writeResponse(AphrontResponse $response)
 {
     // Do this first, in case it throws.
     $response_string = $response->buildResponseString();
     $all_headers = array_merge($response->getHeaders(), $response->getCacheHeaders());
     $this->writeHTTPStatus($response->getHTTPResponseCode(), $response->getHTTPResponseMessage());
     $this->writeHeaders($all_headers);
     $this->writeData($response_string);
 }
 public function willSendResponse(AphrontResponse $response)
 {
     $request = $this->getRequest();
     $response->setRequest($request);
     if ($response instanceof AphrontDialogResponse) {
         if (!$request->isAjax()) {
             $view = new PhabricatorStandardPageView();
             $view->setRequest($request);
             $view->appendChild('<div style="padding: 2em 0;">' . $response->buildResponseString() . '</div>');
             $response = new AphrontWebpageResponse();
             $response->setContent($view->render());
             return $response;
         } else {
             return id(new AphrontAjaxResponse())->setContent(array('dialog' => $response->buildResponseString()));
         }
     } else {
         if ($response instanceof AphrontRedirectResponse) {
             if ($request->isAjax()) {
                 return id(new AphrontAjaxResponse())->setContent(array('redirect' => $response->getURI()));
             }
         } else {
             if ($response instanceof Aphront404Response) {
                 $failure = new AphrontRequestFailureView();
                 $failure->setHeader('404 Not Found');
                 $failure->appendChild('<p>The page you requested was not found.</p>');
                 $view = new PhabricatorStandardPageView();
                 $view->setTitle('404 Not Found');
                 $view->setRequest($this->getRequest());
                 $view->appendChild($failure);
                 $response = new AphrontWebpageResponse();
                 $response->setContent($view->render());
                 $response->setHTTPResponseCode(404);
                 return $response;
             }
         }
     }
     return $response;
 }
 public function willSendResponse(AphrontResponse $response)
 {
     $request = $this->getRequest();
     if ($response instanceof AphrontDialogResponse) {
         if (!$request->isAjax() && !$request->isQuicksand()) {
             $dialog = $response->getDialog();
             $title = $dialog->getTitle();
             $short = $dialog->getShortTitle();
             $crumbs = $this->buildApplicationCrumbs();
             $crumbs->addTextCrumb(coalesce($short, $title));
             $page_content = array($crumbs, $response->buildResponseString());
             $view = id(new PhabricatorStandardPageView())->setRequest($request)->setController($this)->setDeviceReady(true)->setTitle($title)->appendChild($page_content);
             $response = id(new AphrontWebpageResponse())->setContent($view->render())->setHTTPResponseCode($response->getHTTPResponseCode());
         } else {
             $response->getDialog()->setIsStandalone(true);
             return id(new AphrontAjaxResponse())->setContent(array('dialog' => $response->buildResponseString()));
         }
     } else {
         if ($response instanceof AphrontRedirectResponse) {
             if ($request->isAjax() || $request->isQuicksand()) {
                 return id(new AphrontAjaxResponse())->setContent(array('redirect' => $response->getURI()));
             }
         }
     }
     return $response;
 }
 public function willSendResponse(AphrontResponse $response)
 {
     $request = $this->getRequest();
     $response->setRequest($request);
     if ($response instanceof AphrontDialogResponse) {
         if (!$request->isAjax()) {
             $view = new PhabricatorStandardPageView();
             $view->setRequest($request);
             $view->appendChild('<div style="padding: 2em 0;">' . $response->buildResponseString() . '</div>');
             $response = new AphrontWebpageResponse();
             $response->setContent($view->render());
             return $response;
         } else {
             return id(new AphrontAjaxResponse())->setContent(array('dialog' => $response->buildResponseString()));
         }
     } else {
         if ($response instanceof AphrontRedirectResponse) {
             if ($request->isAjax()) {
                 return id(new AphrontAjaxResponse())->setContent(array('redirect' => $response->getURI()));
             }
         }
     }
     return $response;
 }
Ejemplo n.º 5
0
 /**
  * Write an entire @{class:AphrontResponse} to the output.
  *
  * @param AphrontResponse The response object to write.
  * @return void
  */
 public final function writeResponse(AphrontResponse $response)
 {
     $all_headers = array_merge($response->getHeaders(), $response->getCacheHeaders());
     $this->writeHTTPStatus($response->getHTTPResponseCode());
     $this->writeHeaders($all_headers);
     $this->writeData($response->buildResponseString());
 }