Page MenuHomePhabricator

D16327.id39256.diff
No OneTemporary

D16327.id39256.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -363,7 +363,7 @@
'rsrc/js/application/aphlict/behavior-desktop-notifications-control.js' => 'edd1ba66',
'rsrc/js/application/auth/behavior-persona-login.js' => '9414ff18',
'rsrc/js/application/calendar/behavior-day-view.js' => '4b3c4443',
- 'rsrc/js/application/calendar/behavior-event-all-day.js' => '38dcf3c8',
+ 'rsrc/js/application/calendar/behavior-event-all-day.js' => '937bb700',
'rsrc/js/application/calendar/behavior-recurring-edit.js' => '5f1c4d5f',
'rsrc/js/application/config/behavior-reorder-fields.js' => 'b6993408',
'rsrc/js/application/conpherence/ConpherenceThreadManager.js' => '01774ab2',
@@ -629,7 +629,7 @@
'javelin-behavior-editengine-reorder-configs' => 'd7a74243',
'javelin-behavior-editengine-reorder-fields' => 'b59e1e96',
'javelin-behavior-error-log' => '6882e80a',
- 'javelin-behavior-event-all-day' => '38dcf3c8',
+ 'javelin-behavior-event-all-day' => '937bb700',
'javelin-behavior-fancy-datepicker' => '568931f3',
'javelin-behavior-global-drag-and-drop' => 'c8e57404',
'javelin-behavior-herald-rule-editor' => '7ebaeed3',
diff --git a/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php b/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php
--- a/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php
+++ b/src/applications/calendar/editor/PhabricatorCalendarEventEditEngine.php
@@ -212,4 +212,45 @@
return $fields;
}
+ protected function willBuildEditForm($object, array $fields) {
+ $all_day_field = idx($fields, 'isAllDay');
+ $start_field = idx($fields, 'start');
+ $end_field = idx($fields, 'end');
+
+ if ($all_day_field) {
+ $is_all_day = $all_day_field->getValueForTransaction();
+
+ $control_ids = array();
+ if ($start_field) {
+ $control_ids[] = $start_field->getControlID();
+ }
+ if ($end_field) {
+ $control_ids[] = $end_field->getControlID();
+ }
+
+ Javelin::initBehavior(
+ 'event-all-day',
+ array(
+ 'allDayID' => $all_day_field->getControlID(),
+ 'controlIDs' => $control_ids,
+ ));
+
+ } else {
+ $is_all_day = $object->getIsAllDay();
+ }
+
+ if ($is_all_day) {
+ if ($start_field) {
+ $start_field->setHideTime(true);
+ }
+
+ if ($end_field) {
+ $end_field->setHideTime(true);
+ }
+ }
+
+
+
+ return $fields;
+ }
}
diff --git a/src/applications/transactions/editengine/PhabricatorEditEngine.php b/src/applications/transactions/editengine/PhabricatorEditEngine.php
--- a/src/applications/transactions/editengine/PhabricatorEditEngine.php
+++ b/src/applications/transactions/editengine/PhabricatorEditEngine.php
@@ -1176,6 +1176,8 @@
$controller = $this->getController();
$request = $controller->getRequest();
+ $fields = $this->willBuildEditForm($object, $fields);
+
$form = id(new AphrontFormView())
->setUser($viewer)
->addHiddenInput('editEngine', 'true');
@@ -1210,6 +1212,10 @@
return $form;
}
+ protected function willBuildEditForm($object, array $fields) {
+ return $fields;
+ }
+
private function buildEditFormActionButton($object) {
if (!$this->isEngineConfigurable()) {
return null;
diff --git a/src/applications/transactions/editfield/PhabricatorEpochEditField.php b/src/applications/transactions/editfield/PhabricatorEpochEditField.php
--- a/src/applications/transactions/editfield/PhabricatorEpochEditField.php
+++ b/src/applications/transactions/editfield/PhabricatorEpochEditField.php
@@ -4,6 +4,7 @@
extends PhabricatorEditField {
private $allowNull;
+ private $hideTime;
public function setAllowNull($allow_null) {
$this->allowNull = $allow_null;
@@ -14,9 +15,19 @@
return $this->allowNull;
}
+ public function setHideTime($hide_time) {
+ $this->hideTime = $hide_time;
+ return $this;
+ }
+
+ public function getHideTime() {
+ return $this->hideTime;
+ }
+
protected function newControl() {
return id(new AphrontFormDateControl())
->setAllowNull($this->getAllowNull())
+ ->setIsTimeDisabled($this->getHideTime())
->setViewer($this->getViewer());
}
@@ -26,9 +37,7 @@
}
protected function newConduitParameterType() {
- // TODO: This isn't correct, but we don't have any methods which use this
- // yet.
- return new ConduitIntParameterType();
+ return new ConduitEpochParameterType();
}
}
diff --git a/webroot/rsrc/js/application/calendar/behavior-event-all-day.js b/webroot/rsrc/js/application/calendar/behavior-event-all-day.js
--- a/webroot/rsrc/js/application/calendar/behavior-event-all-day.js
+++ b/webroot/rsrc/js/application/calendar/behavior-event-all-day.js
@@ -2,15 +2,16 @@
* @provides javelin-behavior-event-all-day
*/
-
JX.behavior('event-all-day', function(config) {
- var checkbox = JX.$(config.allDayID);
- JX.DOM.listen(checkbox, 'change', null, function() {
- var start = JX.$(config.startDateID);
- var end = JX.$(config.endDateID);
+ var all_day = JX.$(config.allDayID);
+
+ JX.DOM.listen(all_day, 'change', null, function() {
+ var is_all_day = !!parseInt(all_day.value, 10);
- JX.DOM.alterClass(start, 'no-time', checkbox.checked);
- JX.DOM.alterClass(end, 'no-time', checkbox.checked);
+ for (var ii = 0; ii < config.controlIDs.length; ii++) {
+ var control = JX.$(config.controlIDs[ii]);
+ JX.DOM.alterClass(control, 'no-time', is_all_day);
+ }
});
});

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 30, 7:15 PM (3 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7722670
Default Alt Text
D16327.id39256.diff (5 KB)

Event Timeline