@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 113 lines 2.8 kB view raw
1<?php 2 3final class NuanceSourceEditEngine 4 extends PhabricatorEditEngine { 5 6 const ENGINECONST = 'nuance.source'; 7 8 private $sourceDefinition; 9 10 public function setSourceDefinition( 11 NuanceSourceDefinition $source_definition) { 12 $this->sourceDefinition = $source_definition; 13 return $this; 14 } 15 16 public function getSourceDefinition() { 17 return $this->sourceDefinition; 18 } 19 20 public function isEngineConfigurable() { 21 return false; 22 } 23 24 public function getEngineName() { 25 return pht('Nuance Sources'); 26 } 27 28 public function getSummaryHeader() { 29 return pht('Edit Nuance Source Configurations'); 30 } 31 32 public function getSummaryText() { 33 return pht('This engine is used to edit Nuance sources.'); 34 } 35 36 public function getEngineApplicationClass() { 37 return PhabricatorNuanceApplication::class; 38 } 39 40 protected function newEditableObject() { 41 $viewer = $this->getViewer(); 42 43 $definition = $this->getSourceDefinition(); 44 if (!$definition) { 45 throw new PhutilInvalidStateException('setSourceDefinition'); 46 } 47 48 return NuanceSource::initializeNewSource( 49 $viewer, 50 $definition); 51 } 52 53 protected function newObjectQuery() { 54 return new NuanceSourceQuery(); 55 } 56 57 protected function getObjectCreateTitleText($object) { 58 return pht('Create Source'); 59 } 60 61 protected function getObjectCreateButtonText($object) { 62 return pht('Create Source'); 63 } 64 65 protected function getObjectEditTitleText($object) { 66 return pht('Edit Source: %s', $object->getName()); 67 } 68 69 protected function getObjectEditShortText($object) { 70 return pht('Edit Source'); 71 } 72 73 protected function getObjectCreateShortText() { 74 return pht('Create Source'); 75 } 76 77 protected function getObjectName() { 78 return pht('Source'); 79 } 80 81 protected function getEditorURI() { 82 return '/nuance/source/edit/'; 83 } 84 85 protected function getObjectCreateCancelURI($object) { 86 return '/nuance/source/'; 87 } 88 89 protected function getObjectViewURI($object) { 90 return $object->getURI(); 91 } 92 93 protected function buildCustomEditFields($object) { 94 return array( 95 id(new PhabricatorTextEditField()) 96 ->setKey('name') 97 ->setLabel(pht('Name')) 98 ->setDescription(pht('Name of the source.')) 99 ->setTransactionType(NuanceSourceNameTransaction::TRANSACTIONTYPE) 100 ->setIsRequired(true) 101 ->setValue($object->getName()), 102 id(new PhabricatorDatasourceEditField()) 103 ->setKey('defaultQueue') 104 ->setLabel(pht('Default Queue')) 105 ->setDescription(pht('Default queue.')) 106 ->setTransactionType( 107 NuanceSourceDefaultQueueTransaction::TRANSACTIONTYPE) 108 ->setDatasource(new NuanceQueueDatasource()) 109 ->setSingleValue($object->getDefaultQueuePHID()), 110 ); 111 } 112 113}