Skip to content

Commit cdec319

Browse files
author
epriestley
committedApr 7, 2016
Convert Countdown to EditEngine
Summary: Fixes T10684. Fixes T10520. This primarily implements a date/epoch field, and then does a bunch of standard plumbing. Test Plan: - Created countdowns. - Edited countdowns. - Used HTTP prefilling. - Created a countdown ending on "Christmas Morning", etc. Reviewers: chad Reviewed By: chad Maniphest Tasks: T10520, T10684 Differential Revision: https://secure.phabricator.com/D15655
1 parent 1f423c3 commit cdec319

15 files changed

+366
-456
lines changed
 

‎src/__phutil_library_map__.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@
139139
'AphrontDefaultApplicationConfiguration' => 'aphront/configuration/AphrontDefaultApplicationConfiguration.php',
140140
'AphrontDialogResponse' => 'aphront/response/AphrontDialogResponse.php',
141141
'AphrontDialogView' => 'view/AphrontDialogView.php',
142+
'AphrontEpochHTTPParameterType' => 'aphront/httpparametertype/AphrontEpochHTTPParameterType.php',
142143
'AphrontException' => 'aphront/exception/AphrontException.php',
143144
'AphrontFileResponse' => 'aphront/response/AphrontFileResponse.php',
144145
'AphrontFormCheckboxControl' => 'view/form/control/AphrontFormCheckboxControl.php',
@@ -2100,14 +2101,14 @@
21002101
'PhabricatorCoreConfigOptions' => 'applications/config/option/PhabricatorCoreConfigOptions.php',
21012102
'PhabricatorCountdown' => 'applications/countdown/storage/PhabricatorCountdown.php',
21022103
'PhabricatorCountdownApplication' => 'applications/countdown/application/PhabricatorCountdownApplication.php',
2103-
'PhabricatorCountdownCommentController' => 'applications/countdown/controller/PhabricatorCountdownCommentController.php',
21042104
'PhabricatorCountdownController' => 'applications/countdown/controller/PhabricatorCountdownController.php',
21052105
'PhabricatorCountdownCountdownPHIDType' => 'applications/countdown/phid/PhabricatorCountdownCountdownPHIDType.php',
21062106
'PhabricatorCountdownDAO' => 'applications/countdown/storage/PhabricatorCountdownDAO.php',
21072107
'PhabricatorCountdownDefaultEditCapability' => 'applications/countdown/capability/PhabricatorCountdownDefaultEditCapability.php',
21082108
'PhabricatorCountdownDefaultViewCapability' => 'applications/countdown/capability/PhabricatorCountdownDefaultViewCapability.php',
21092109
'PhabricatorCountdownDeleteController' => 'applications/countdown/controller/PhabricatorCountdownDeleteController.php',
21102110
'PhabricatorCountdownEditController' => 'applications/countdown/controller/PhabricatorCountdownEditController.php',
2111+
'PhabricatorCountdownEditEngine' => 'applications/countdown/editor/PhabricatorCountdownEditEngine.php',
21112112
'PhabricatorCountdownEditor' => 'applications/countdown/editor/PhabricatorCountdownEditor.php',
21122113
'PhabricatorCountdownListController' => 'applications/countdown/controller/PhabricatorCountdownListController.php',
21132114
'PhabricatorCountdownMailReceiver' => 'applications/countdown/mail/PhabricatorCountdownMailReceiver.php',
@@ -2325,6 +2326,7 @@
23252326
'PhabricatorEmptyQueryException' => 'infrastructure/query/PhabricatorEmptyQueryException.php',
23262327
'PhabricatorEnv' => 'infrastructure/env/PhabricatorEnv.php',
23272328
'PhabricatorEnvTestCase' => 'infrastructure/env/__tests__/PhabricatorEnvTestCase.php',
2329+
'PhabricatorEpochEditField' => 'applications/transactions/editfield/PhabricatorEpochEditField.php',
23282330
'PhabricatorEvent' => 'infrastructure/events/PhabricatorEvent.php',
23292331
'PhabricatorEventEngine' => 'infrastructure/events/PhabricatorEventEngine.php',
23302332
'PhabricatorEventListener' => 'infrastructure/events/PhabricatorEventListener.php',
@@ -4261,6 +4263,7 @@
42614263
'AphrontView',
42624264
'AphrontResponseProducerInterface',
42634265
),
4266+
'AphrontEpochHTTPParameterType' => 'AphrontHTTPParameterType',
42644267
'AphrontException' => 'Exception',
42654268
'AphrontFileResponse' => 'AphrontResponse',
42664269
'AphrontFormCheckboxControl' => 'AphrontFormControl',
@@ -6525,14 +6528,14 @@
65256528
'PhabricatorProjectInterface',
65266529
),
65276530
'PhabricatorCountdownApplication' => 'PhabricatorApplication',
6528-
'PhabricatorCountdownCommentController' => 'PhabricatorCountdownController',
65296531
'PhabricatorCountdownController' => 'PhabricatorController',
65306532
'PhabricatorCountdownCountdownPHIDType' => 'PhabricatorPHIDType',
65316533
'PhabricatorCountdownDAO' => 'PhabricatorLiskDAO',
65326534
'PhabricatorCountdownDefaultEditCapability' => 'PhabricatorPolicyCapability',
65336535
'PhabricatorCountdownDefaultViewCapability' => 'PhabricatorPolicyCapability',
65346536
'PhabricatorCountdownDeleteController' => 'PhabricatorCountdownController',
65356537
'PhabricatorCountdownEditController' => 'PhabricatorCountdownController',
6538+
'PhabricatorCountdownEditEngine' => 'PhabricatorEditEngine',
65366539
'PhabricatorCountdownEditor' => 'PhabricatorApplicationTransactionEditor',
65376540
'PhabricatorCountdownListController' => 'PhabricatorCountdownController',
65386541
'PhabricatorCountdownMailReceiver' => 'PhabricatorObjectMailReceiver',
@@ -6776,6 +6779,7 @@
67766779
'PhabricatorEmptyQueryException' => 'Exception',
67776780
'PhabricatorEnv' => 'Phobject',
67786781
'PhabricatorEnvTestCase' => 'PhabricatorTestCase',
6782+
'PhabricatorEpochEditField' => 'PhabricatorEditField',
67796783
'PhabricatorEvent' => 'PhutilEvent',
67806784
'PhabricatorEventEngine' => 'Phobject',
67816785
'PhabricatorEventListener' => 'PhutilEventListener',
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?php
2+
3+
final class AphrontEpochHTTPParameterType
4+
extends AphrontHTTPParameterType {
5+
6+
protected function getParameterExists(AphrontRequest $request, $key) {
7+
return $request->getExists($key) ||
8+
$request->getExists($key.'_d');
9+
}
10+
11+
protected function getParameterValue(AphrontRequest $request, $key) {
12+
return AphrontFormDateControlValue::newFromRequest($request, $key);
13+
}
14+
15+
protected function getParameterTypeName() {
16+
return 'epoch';
17+
}
18+
19+
protected function getParameterFormatDescriptions() {
20+
return array(
21+
pht('An epoch timestamp, as an integer.'),
22+
pht('An absolute date, as a string.'),
23+
pht('A relative date, as a string.'),
24+
pht('Separate date and time inputs, as strings.'),
25+
);
26+
}
27+
28+
protected function getParameterExamples() {
29+
return array(
30+
'v=1460050737',
31+
'v=2022-01-01',
32+
'v=yesterday',
33+
'v_d=2022-01-01&v_t=12:34',
34+
);
35+
}
36+
37+
}

‎src/applications/countdown/application/PhabricatorCountdownApplication.php

+1-3
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,7 @@ public function getRoutes() {
4646
=> 'PhabricatorCountdownViewController',
4747
'comment/(?P<id>[1-9]\d*)/'
4848
=> 'PhabricatorCountdownCommentController',
49-
'edit/(?:(?P<id>[1-9]\d*)/)?'
50-
=> 'PhabricatorCountdownEditController',
51-
'create/'
49+
$this->getEditRoutePattern('edit/')
5250
=> 'PhabricatorCountdownEditController',
5351
'delete/(?P<id>[1-9]\d*)/'
5452
=> 'PhabricatorCountdownDeleteController',

‎src/applications/countdown/controller/PhabricatorCountdownCommentController.php

-63
This file was deleted.

‎src/applications/countdown/controller/PhabricatorCountdownController.php

-11
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,5 @@ public function buildApplicationMenu() {
77
->setSearchEngine(new PhabricatorCountdownSearchEngine());
88
}
99

10-
protected function buildApplicationCrumbs() {
11-
$crumbs = parent::buildApplicationCrumbs();
12-
13-
$crumbs->addAction(
14-
id(new PHUIListItemView())
15-
->setName(pht('Create Countdown'))
16-
->setHref($this->getApplicationURI('create/'))
17-
->setIcon('fa-plus-square'));
18-
19-
return $crumbs;
20-
}
2110

2211
}

0 commit comments

Comments
 (0)
Failed to load comments.