Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/calendar/editor/PhabricatorCalendarExportEditEngine.php
12256 views
1
<?php
2
3
final class PhabricatorCalendarExportEditEngine
4
extends PhabricatorEditEngine {
5
6
const ENGINECONST = 'calendar.export';
7
8
public function getEngineName() {
9
return pht('Calendar Exports');
10
}
11
12
public function isEngineConfigurable() {
13
return false;
14
}
15
16
public function getSummaryHeader() {
17
return pht('Configure Calendar Export Forms');
18
}
19
20
public function getSummaryText() {
21
return pht('Configure how users create and edit exports.');
22
}
23
24
public function getEngineApplicationClass() {
25
return 'PhabricatorCalendarApplication';
26
}
27
28
protected function newEditableObject() {
29
return PhabricatorCalendarExport::initializeNewCalendarExport(
30
$this->getViewer());
31
}
32
33
protected function newObjectQuery() {
34
return new PhabricatorCalendarExportQuery();
35
}
36
37
protected function getObjectCreateTitleText($object) {
38
return pht('Create New Export');
39
}
40
41
protected function getObjectEditTitleText($object) {
42
return pht('Edit Export: %s', $object->getName());
43
}
44
45
protected function getObjectEditShortText($object) {
46
return pht('Export %d', $object->getID());
47
}
48
49
protected function getObjectCreateShortText() {
50
return pht('Create Export');
51
}
52
53
protected function getObjectName() {
54
return pht('Export');
55
}
56
57
protected function getObjectViewURI($object) {
58
return $object->getURI();
59
}
60
61
protected function getEditorURI() {
62
return $this->getApplication()->getApplicationURI('export/edit/');
63
}
64
65
protected function buildCustomEditFields($object) {
66
$viewer = $this->getViewer();
67
68
$export_modes = PhabricatorCalendarExport::getAvailablePolicyModes();
69
$export_modes = array_fuse($export_modes);
70
71
$current_mode = $object->getPolicyMode();
72
if (empty($export_modes[$current_mode])) {
73
array_unshift($export_modes, $current_mode);
74
}
75
76
$mode_options = array();
77
foreach ($export_modes as $export_mode) {
78
$mode_name = PhabricatorCalendarExport::getPolicyModeName($export_mode);
79
$mode_summary = PhabricatorCalendarExport::getPolicyModeSummary(
80
$export_mode);
81
$mode_options[$export_mode] = pht('%s: %s', $mode_name, $mode_summary);
82
}
83
84
$fields = array(
85
id(new PhabricatorTextEditField())
86
->setKey('name')
87
->setLabel(pht('Name'))
88
->setDescription(pht('Name of the export.'))
89
->setIsRequired(true)
90
->setTransactionType(
91
PhabricatorCalendarExportNameTransaction::TRANSACTIONTYPE)
92
->setConduitDescription(pht('Rename the export.'))
93
->setConduitTypeDescription(pht('New export name.'))
94
->setValue($object->getName()),
95
id(new PhabricatorBoolEditField())
96
->setKey('disabled')
97
->setOptions(pht('Active'), pht('Disabled'))
98
->setLabel(pht('Disabled'))
99
->setDescription(pht('Disable the export.'))
100
->setTransactionType(
101
PhabricatorCalendarExportDisableTransaction::TRANSACTIONTYPE)
102
->setIsFormField(false)
103
->setConduitDescription(pht('Disable or restore the export.'))
104
->setConduitTypeDescription(pht('True to cancel the export.'))
105
->setValue($object->getIsDisabled()),
106
id(new PhabricatorTextEditField())
107
->setKey('queryKey')
108
->setLabel(pht('Query Key'))
109
->setDescription(pht('Query to execute.'))
110
->setIsRequired(true)
111
->setTransactionType(
112
PhabricatorCalendarExportQueryKeyTransaction::TRANSACTIONTYPE)
113
->setConduitDescription(pht('Change the export query key.'))
114
->setConduitTypeDescription(pht('New export query key.'))
115
->setValue($object->getQueryKey()),
116
id(new PhabricatorSelectEditField())
117
->setKey('mode')
118
->setLabel(pht('Mode'))
119
->setTransactionType(
120
PhabricatorCalendarExportModeTransaction::TRANSACTIONTYPE)
121
->setOptions($mode_options)
122
->setDescription(pht('Change the policy mode for the export.'))
123
->setConduitDescription(pht('Adjust export mode.'))
124
->setConduitTypeDescription(pht('New export mode.'))
125
->setValue($current_mode),
126
127
);
128
129
return $fields;
130
}
131
132
133
}
134
135