@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 PhabricatorPackagesPackageEditEngine
4 extends PhabricatorPackagesEditEngine {
5
6 const ENGINECONST = 'packages.package';
7
8 public function getEngineName() {
9 return pht('Package Packages');
10 }
11
12 public function getSummaryHeader() {
13 return pht('Edit Package Package Configurations');
14 }
15
16 public function getSummaryText() {
17 return pht('This engine is used to edit Packages packages.');
18 }
19
20 protected function newEditableObject() {
21 $viewer = $this->getViewer();
22 return PhabricatorPackagesPackage::initializeNewPackage($viewer);
23 }
24
25 protected function newObjectQuery() {
26 return new PhabricatorPackagesPackageQuery();
27 }
28
29 protected function getObjectCreateTitleText($object) {
30 return pht('Create Package');
31 }
32
33 protected function getObjectCreateButtonText($object) {
34 return pht('Create Package');
35 }
36
37 protected function getObjectEditTitleText($object) {
38 return pht('Edit Package: %s', $object->getName());
39 }
40
41 protected function getObjectEditShortText($object) {
42 return pht('Edit Package');
43 }
44
45 protected function getObjectCreateShortText() {
46 return pht('Create Package');
47 }
48
49 protected function getObjectName() {
50 return pht('Package');
51 }
52
53 protected function getEditorURI() {
54 return '/packages/package/edit/';
55 }
56
57 protected function getObjectCreateCancelURI($object) {
58 return '/packages/package/';
59 }
60
61 protected function getObjectViewURI($object) {
62 return $object->getURI();
63 }
64
65 protected function buildCustomEditFields($object) {
66 $fields = array();
67
68 if ($this->getIsCreate()) {
69 $fields[] = id(new PhabricatorDatasourceEditField())
70 ->setKey('publisher')
71 ->setAliases(array('publisherPHID'))
72 ->setLabel(pht('Publisher'))
73 ->setDescription(pht('Publisher for this package.'))
74 ->setTransactionType(
75 PhabricatorPackagesPackagePublisherTransaction::TRANSACTIONTYPE)
76 ->setIsRequired(true)
77 ->setDatasource(new PhabricatorPackagesPublisherDatasource())
78 ->setSingleValue($object->getPublisherPHID());
79 }
80
81 $fields[] = id(new PhabricatorTextEditField())
82 ->setKey('name')
83 ->setLabel(pht('Name'))
84 ->setDescription(pht('Name of the package.'))
85 ->setTransactionType(
86 PhabricatorPackagesPackageNameTransaction::TRANSACTIONTYPE)
87 ->setIsRequired(true)
88 ->setValue($object->getName());
89
90 if ($this->getIsCreate()) {
91 $fields[] = id(new PhabricatorTextEditField())
92 ->setKey('packageKey')
93 ->setLabel(pht('Package Key'))
94 ->setDescription(pht('Unique key to identify the package.'))
95 ->setTransactionType(
96 PhabricatorPackagesPackageKeyTransaction::TRANSACTIONTYPE)
97 ->setIsRequired(true)
98 ->setValue($object->getPackageKey());
99 }
100
101 return $fields;
102 }
103
104}