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 canViewFile(array $users, PhabricatorFile $file)
 {
     $results = array();
     foreach ($users as $user) {
         $results[] = (bool) id(new PhabricatorFileQuery())->setViewer($user)->withPHIDs(array($file->getPHID()))->execute();
     }
     return $results;
 }
 private function buildTransactionView(PhabricatorFile $file, array $xactions)
 {
     $user = $this->getRequest()->getUser();
     $engine = id(new PhabricatorMarkupEngine())->setViewer($user);
     foreach ($xactions as $xaction) {
         if ($xaction->getComment()) {
             $engine->addObject($xaction->getComment(), PhabricatorApplicationTransactionComment::MARKUP_FIELD_COMMENT);
         }
     }
     $engine->process();
     $timeline = id(new PhabricatorApplicationTransactionView())->setUser($user)->setObjectPHID($file->getPHID())->setTransactions($xactions)->setMarkupEngine($engine);
     $is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business');
     $add_comment_header = $is_serious ? pht('Add Comment') : pht('Question File Integrity');
     $draft = PhabricatorDraft::newFromUserAndKey($user, $file->getPHID());
     $add_comment_form = id(new PhabricatorApplicationTransactionCommentView())->setUser($user)->setObjectPHID($file->getPHID())->setDraft($draft)->setHeaderText($add_comment_header)->setAction($this->getApplicationURI('/comment/' . $file->getID() . '/'))->setSubmitButtonName(pht('Add Comment'));
     return array($timeline, $add_comment_form);
 }
 private function newChunkQuery(PhabricatorUser $viewer, PhabricatorFile $file)
 {
     $engine = $file->instantiateStorageEngine();
     if (!$engine->isChunkEngine()) {
         throw new Exception(pht('File "%s" does not have chunks!', $file->getPHID()));
     }
     return id(new PhabricatorFileChunkQuery())->setViewer($viewer)->withChunkHandles(array($file->getStorageHandle()));
 }
 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']);
 }
示例#6
0
 /**
  * Set the specified file as the next version for the fragment.
  */
 public function updateFromFile(PhabricatorUser $viewer, PhabricatorFile $file)
 {
     $existing = id(new PhragmentFragmentVersionQuery())->setViewer($viewer)->withFragmentPHIDs(array($this->getPHID()))->execute();
     $sequence = count($existing);
     $this->openTransaction();
     $version = id(new PhragmentFragmentVersion());
     $version->setSequence($sequence);
     $version->setFragmentPHID($this->getPHID());
     $version->setFilePHID($file->getPHID());
     $version->save();
     $this->setLatestVersionPHID($version->getPHID());
     $this->save();
     $this->saveTransaction();
     $file->attachToObject($version->getPHID());
 }
 private function getFileDictionary(PhabricatorFile $file)
 {
     return array('id' => $file->getID(), 'phid' => $file->getPHID(), 'uri' => $file->getBestURI());
 }