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