[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhragmentHistoryController extends PhragmentController { 4 5 private $dblob; 6 7 public function shouldAllowPublic() { 8 return true; 9 } 10 11 public function willProcessRequest(array $data) { 12 $this->dblob = idx($data, 'dblob', ''); 13 } 14 15 public function processRequest() { 16 $request = $this->getRequest(); 17 $viewer = $request->getUser(); 18 19 $parents = $this->loadParentFragments($this->dblob); 20 if ($parents === null) { 21 return new Aphront404Response(); 22 } 23 $current = idx($parents, count($parents) - 1, null); 24 25 $path = $current->getPath(); 26 27 $crumbs = $this->buildApplicationCrumbsWithPath($parents); 28 if ($this->hasApplicationCapability( 29 PhragmentCanCreateCapability::CAPABILITY)) { 30 $crumbs->addAction( 31 id(new PHUIListItemView()) 32 ->setName(pht('Create Fragment')) 33 ->setHref($this->getApplicationURI('/create/'.$path)) 34 ->setIcon('fa-plus-square')); 35 } 36 37 $current_box = $this->createCurrentFragmentView($current, true); 38 39 $versions = id(new PhragmentFragmentVersionQuery()) 40 ->setViewer($viewer) 41 ->withFragmentPHIDs(array($current->getPHID())) 42 ->execute(); 43 44 $list = id(new PHUIObjectItemListView()) 45 ->setUser($viewer); 46 47 $file_phids = mpull($versions, 'getFilePHID'); 48 $files = id(new PhabricatorFileQuery()) 49 ->setViewer($viewer) 50 ->withPHIDs($file_phids) 51 ->execute(); 52 $files = mpull($files, null, 'getPHID'); 53 54 $can_edit = PhabricatorPolicyFilter::hasCapability( 55 $viewer, 56 $current, 57 PhabricatorPolicyCapability::CAN_EDIT); 58 59 $first = true; 60 foreach ($versions as $version) { 61 $item = id(new PHUIObjectItemView()); 62 $item->setHeader('Version '.$version->getSequence()); 63 $item->setHref($version->getURI()); 64 $item->addAttribute(phabricator_datetime( 65 $version->getDateCreated(), 66 $viewer)); 67 68 if ($version->getFilePHID() === null) { 69 $item->setDisabled(true); 70 $item->addAttribute('Deletion'); 71 } 72 73 if (!$first && $can_edit) { 74 $item->addAction(id(new PHUIListItemView()) 75 ->setIcon('fa-refresh') 76 ->setRenderNameAsTooltip(true) 77 ->setWorkflow(true) 78 ->setName(pht('Revert to Here')) 79 ->setHref($this->getApplicationURI( 80 'revert/'.$version->getID().'/'.$current->getPath()))); 81 } 82 83 $disabled = !isset($files[$version->getFilePHID()]); 84 $action = id(new PHUIListItemView()) 85 ->setIcon('fa-download') 86 ->setDisabled($disabled || !$this->isCorrectlyConfigured()) 87 ->setRenderNameAsTooltip(true) 88 ->setName(pht('Download')); 89 if (!$disabled && $this->isCorrectlyConfigured()) { 90 $action->setHref($files[$version->getFilePHID()] 91 ->getDownloadURI($version->getURI())); 92 } 93 $item->addAction($action); 94 95 $list->addItem($item); 96 97 $first = false; 98 } 99 100 return $this->buildApplicationPage( 101 array( 102 $crumbs, 103 $this->renderConfigurationWarningIfRequired(), 104 $current_box, 105 $list, 106 ), 107 array( 108 'title' => pht('Fragment History'), 109 )); 110 } 111 112 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |