@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<?php
2
3final class AlmanacNamespaceEditEngine
4 extends PhabricatorEditEngine {
5
6 const ENGINECONST = 'almanac.namespace';
7
8 public function isEngineConfigurable() {
9 return false;
10 }
11
12 public function getEngineName() {
13 return pht('Almanac Namespaces');
14 }
15
16 public function getSummaryHeader() {
17 return pht('Edit Almanac Namespace Configurations');
18 }
19
20 public function getSummaryText() {
21 return pht('This engine is used to edit Almanac namespaces.');
22 }
23
24 public function getEngineApplicationClass() {
25 return PhabricatorAlmanacApplication::class;
26 }
27
28 protected function newEditableObject() {
29 return AlmanacNamespace::initializeNewNamespace();
30 }
31
32 protected function newObjectQuery() {
33 return new AlmanacNamespaceQuery();
34 }
35
36 protected function getObjectCreateTitleText($object) {
37 return pht('Create Namespace');
38 }
39
40 protected function getObjectCreateButtonText($object) {
41 return pht('Create Namespace');
42 }
43
44 protected function getObjectEditTitleText($object) {
45 return pht('Edit Namespace: %s', $object->getName());
46 }
47
48 protected function getObjectEditShortText($object) {
49 return pht('Edit Namespace');
50 }
51
52 protected function getObjectCreateShortText() {
53 return pht('Create Namespace');
54 }
55
56 protected function getObjectName() {
57 return pht('Namespace');
58 }
59
60 protected function getEditorURI() {
61 return '/almanac/namespace/edit/';
62 }
63
64 protected function getObjectCreateCancelURI($object) {
65 return '/almanac/namespace/';
66 }
67
68 protected function getObjectViewURI($object) {
69 $id = $object->getID();
70 return "/almanac/namespace/{$id}/";
71 }
72
73 protected function getCreateNewObjectPolicy() {
74 return $this->getApplication()->getPolicy(
75 AlmanacCreateNamespacesCapability::CAPABILITY);
76 }
77
78 protected function buildCustomEditFields($object) {
79 return array(
80 id(new PhabricatorTextEditField())
81 ->setKey('name')
82 ->setLabel(pht('Name'))
83 ->setDescription(pht('Name of the namespace.'))
84 ->setTransactionType(AlmanacNamespaceNameTransaction::TRANSACTIONTYPE)
85 ->setIsRequired(true)
86 ->setValue($object->getName()),
87 );
88 }
89
90}