Something went wrong. Try again.
@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194<?php
final class PhabricatorFileLinkView extends AphrontTagView {
private $fileName; private $fileDownloadURI; private $fileViewURI; private $fileViewable; private $filePHID; private $fileMonogram; private $fileSize; private $customClass;
public function setCustomClass($custom_class) { $this->customClass = $custom_class; return $this; }
public function getCustomClass() { return $this->customClass; }
public function setFilePHID($file_phid) { $this->filePHID = $file_phid; return $this; }
private function getFilePHID() { return $this->filePHID; }
public function setFileMonogram($monogram) { $this->fileMonogram = $monogram; return $this; }
private function getFileMonogram() { return $this->fileMonogram; }
public function setFileViewable($file_viewable) { $this->fileViewable = $file_viewable; return $this; }
private function getFileViewable() { return $this->fileViewable; }
public function setFileViewURI($file_view_uri) { $this->fileViewURI = $file_view_uri; return $this; }
private function getFileViewURI() { return $this->fileViewURI; }
public function setFileDownloadURI($file_download_uri) { $this->fileDownloadURI = $file_download_uri; return $this; }
private function getFileDownloadURI() { return $this->fileDownloadURI; }
public function setFileName($file_name) { $this->fileName = $file_name; return $this; }
private function getFileName() { return $this->fileName; }
public function setFileSize($file_size) { $this->fileSize = $file_size; return $this; }
private function getFileSize() { return $this->fileSize; }
private function getFileIcon() { return FileTypeIcon::getFileIcon($this->getFileName()); }
public function getMeta() { return array( 'phid' => $this->getFilePHID(), 'viewable' => $this->getFileViewable(), 'uri' => $this->getFileViewURI(), 'dUri' => $this->getFileDownloadURI(), 'name' => $this->getFileName(), 'monogram' => $this->getFileMonogram(), 'icon' => $this->getFileIcon(), 'size' => $this->getFileSize(), ); }
protected function getTagName() { if ($this->getFileDownloadURI()) { return 'div'; } else { return 'a'; } }
protected function getTagAttributes() { $class = 'phabricator-remarkup-embed-layout-link'; if ($this->getCustomClass()) { $class = $this->getCustomClass(); }
$attributes = array( 'href' => $this->getFileViewURI(), 'target' => '_blank', 'rel' => 'noreferrer', 'class' => $class, );
if ($this->getFilePHID()) { $mustcapture = true; $sigil = 'lightboxable'; $meta = $this->getMeta();
$attributes += array( 'sigil' => $sigil, 'meta' => $meta, 'mustcapture' => $mustcapture, ); }
return $attributes; }
protected function getTagContent() { require_celerity_resource('phabricator-remarkup-css'); require_celerity_resource('phui-lightbox-css');
$icon = id(new PHUIIconView()) ->setIcon($this->getFileIcon()) ->addClass('phabricator-remarkup-embed-layout-icon');
$download_link = null;
$download_uri = $this->getFileDownloadURI(); if ($download_uri) { $dl_icon = id(new PHUIIconView()) ->setIcon('fa-download');
$download_link = phutil_tag( 'a', array( 'class' => 'phabricator-remarkup-embed-layout-download', 'href' => $download_uri, ), pht('Download')); }
$info = phutil_tag( 'span', array( 'class' => 'phabricator-remarkup-embed-layout-info', ), $this->getFileSize());
$name = phutil_tag( 'span', array( 'class' => 'phabricator-remarkup-embed-layout-name', ), $this->getFileName());
$inner = phutil_tag( 'span', array( 'class' => 'phabricator-remarkup-embed-layout-info-block', ), array( $name, $info, ));
return array( $icon, $inner, $download_link, ); }}