@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
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at recaptime-dev/main 106 lines 2.8 kB view raw
1<?php 2 3/** 4 * IMPORTANT: If you use this, make sure to implement 5 * 6 * public function isGlobalDragAndDropUploadEnabled() { 7 * return true; 8 * } 9 * 10 * on the controller(s) that render this class...! This is necessary 11 * to make sure Quicksand works properly with the javascript in this 12 * UI. 13 */ 14final class PhabricatorGlobalUploadTargetView extends AphrontView { 15 16 private $showIfSupportedID; 17 private $hintText; 18 private $viewPolicy; 19 private $submitURI; 20 21 public function setShowIfSupportedID($show_if_supported_id) { 22 $this->showIfSupportedID = $show_if_supported_id; 23 return $this; 24 } 25 26 public function getShowIfSupportedID() { 27 return $this->showIfSupportedID; 28 } 29 30 public function setHintText($hint_text) { 31 $this->hintText = $hint_text; 32 return $this; 33 } 34 35 public function getHintText() { 36 return $this->hintText; 37 } 38 39 public function setViewPolicy($view_policy) { 40 $this->viewPolicy = $view_policy; 41 return $this; 42 } 43 44 public function getViewPolicy() { 45 return $this->viewPolicy; 46 } 47 48 public function setSubmitURI($submit_uri) { 49 $this->submitURI = $submit_uri; 50 return $this; 51 } 52 53 public function getSubmitURI() { 54 return $this->submitURI; 55 } 56 57 58 59 public function render() { 60 $viewer = $this->getViewer(); 61 if (!$viewer->isLoggedIn()) { 62 return null; 63 } 64 65 $instructions_id = 'phabricator-global-drag-and-drop-upload-instructions'; 66 67 require_celerity_resource('global-drag-and-drop-css'); 68 69 $hint_text = $this->getHintText(); 70 if (!phutil_nonempty_string($hint_text)) { 71 $hint_text = "\xE2\x87\xAA ".pht('Drop Files to Upload'); 72 } 73 74 // Use the configured default view policy. Drag and drop uploads use 75 // a more restrictive view policy if we don't specify a policy explicitly, 76 // as the more restrictive policy is correct for most drop targets (like 77 // Pholio uploads and Remarkup text areas). 78 79 $view_policy = $this->getViewPolicy(); 80 if ($view_policy === null) { 81 $view_policy = PhabricatorFile::initializeNewFile()->getViewPolicy(); 82 } 83 84 $submit_uri = $this->getSubmitURI(); 85 $done_uri = '/file/query/authored/'; 86 87 Javelin::initBehavior('global-drag-and-drop', array( 88 'ifSupported' => $this->showIfSupportedID, 89 'instructions' => $instructions_id, 90 'uploadURI' => '/file/dropupload/', 91 'submitURI' => $submit_uri, 92 'browseURI' => $done_uri, 93 'viewPolicy' => $view_policy, 94 'chunkThreshold' => PhabricatorFileStorageEngine::getChunkThreshold(), 95 )); 96 97 return phutil_tag( 98 'div', 99 array( 100 'id' => $instructions_id, 101 'class' => 'phabricator-global-upload-instructions', 102 'style' => 'display: none;', 103 ), 104 $hint_text); 105 } 106}