@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
at upstream/main 62 lines 1.3 kB view raw
1<?php 2 3final class AphrontFormSubmitControl extends AphrontFormControl { 4 5 private $buttons = array(); 6 private $sigils = array(); 7 8 public function addCancelButton($href, $label = null) { 9 if (!$label) { 10 $label = pht('Cancel'); 11 } 12 $button = id(new PHUIButtonView()) 13 ->setTag('a') 14 ->setHref($href) 15 ->setText($label) 16 ->setColor(PHUIButtonView::GREY); 17 $this->addButton($button); 18 return $this; 19 } 20 21 public function addButton(PHUIButtonView $button) { 22 $this->buttons[] = $button; 23 return $this; 24 } 25 26 public function addSigil($sigil) { 27 $this->sigils[] = $sigil; 28 return $this; 29 } 30 31 protected function getCustomControlClass() { 32 return 'aphront-form-control-submit'; 33 } 34 35 protected function renderInput() { 36 $submit_button = null; 37 if ($this->getValue()) { 38 39 if ($this->sigils) { 40 $sigils = $this->sigils; 41 } else { 42 $sigils = null; 43 } 44 45 $submit_button = javelin_tag( 46 'button', 47 array( 48 'type' => 'submit', 49 'name' => '__submit__', 50 'sigil' => $sigils, 51 'disabled' => $this->getDisabled() ? 'disabled' : null, 52 ), 53 $this->getValue()); 54 } 55 56 return array( 57 $submit_button, 58 $this->buttons, 59 ); 60 } 61 62}