private function renderCommentForm(PhabricatorFile $file) { $viewer = $this->getViewer(); if (!$viewer->isLoggedIn()) { $login_href = id(new PhutilURI('/auth/start/'))->setQueryParam('next', '/' . $file->getMonogram()); return id(new PHUIFormLayoutView())->addClass('phui-comment-panel-empty')->appendChild(id(new PHUIButtonView())->setTag('a')->setText(pht('Login to Comment'))->setHref((string) $login_href)); } $draft = PhabricatorDraft::newFromUserAndKey($viewer, $file->getPHID()); $post_uri = $this->getApplicationURI('thread/' . $file->getPHID() . '/'); $form = id(new AphrontFormView())->setUser($viewer)->setAction($post_uri)->addSigil('lightbox-comment-form')->addClass('lightbox-comment-form')->setWorkflow(true)->appendChild(id(new PhabricatorRemarkupControl())->setUser($viewer)->setName('comment')->setValue($draft->getDraft()))->appendChild(id(new AphrontFormSubmitControl())->setValue(pht('Comment'))); $view = phutil_tag_div('phui-comment-panel', $form); return $view; }
private function writeChunk(PhabricatorFile $file, PhabricatorFileStorageEngine $engine) { $offset = $this->getTotalBytesWritten(); $max_length = $engine->getChunkSize(); $rope = $this->getRope(); $data = $rope->getPrefixBytes($max_length); $actual_length = strlen($data); $rope->removeBytesFromHead($actual_length); $chunk_data = PhabricatorFile::newFromFileData($data, array('name' => $file->getMonogram() . '.chunk-' . $offset, 'viewPolicy' => PhabricatorPolicies::POLICY_NOONE)); $chunk = PhabricatorFileChunk::initializeNewChunk($file->getStorageHandle(), $offset, $offset + $actual_length); $chunk->setDataFilePHID($chunk_data->getPHID())->save(); $this->setTotalBytesWritten($offset + $actual_length); return $chunk; }
private function renderFileLink(PhabricatorFile $file, PhabricatorObjectHandle $handle, array $options) { return id(new PhabricatorFileLinkView())->setFilePHID($file->getPHID())->setFileName($this->assertFlatText($options['name']))->setFileDownloadURI($file->getDownloadURI())->setFileViewURI($file->getBestURI())->setFileViewable((bool) $options['viewable'])->setFileMonogram($file->getMonogram()); }