mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-18 11:30:55 +01:00
Don't allow "Start Time" / "End Time" in Calendar event forms to be locked or have defaults assigned
Summary: Fixes T11733. This fixes the issue by working around it, but it isn't useful to set these fields to a default value anyway. Test Plan: Created a default Calendar form, set some other defaults, created an event, stuff no longer exploded. Reviewers: chad Reviewed By: chad Maniphest Tasks: T11733 Differential Revision: https://secure.phabricator.com/D16753
This commit is contained in:
parent
2d7f574b9d
commit
7cb44bcee6
2 changed files with 14 additions and 0 deletions
|
@ -164,6 +164,8 @@ final class PhabricatorCalendarEventEditEngine
|
|||
|
||||
if ($this->getIsCreate() || $object->getIsRecurring()) {
|
||||
$fields[] = id(new PhabricatorEpochEditField())
|
||||
->setIsLockable(false)
|
||||
->setIsDefaultable(false)
|
||||
->setAllowNull(true)
|
||||
->setKey('until')
|
||||
->setLabel(pht('Repeat Until'))
|
||||
|
@ -189,6 +191,8 @@ final class PhabricatorCalendarEventEditEngine
|
|||
$fields[] = id(new PhabricatorEpochEditField())
|
||||
->setKey('start')
|
||||
->setLabel(pht('Start'))
|
||||
->setIsLockable(false)
|
||||
->setIsDefaultable(false)
|
||||
->setTransactionType(
|
||||
PhabricatorCalendarEventStartDateTransaction::TRANSACTIONTYPE)
|
||||
->setDescription(pht('Start time of the event.'))
|
||||
|
@ -199,6 +203,8 @@ final class PhabricatorCalendarEventEditEngine
|
|||
$fields[] = id(new PhabricatorEpochEditField())
|
||||
->setKey('end')
|
||||
->setLabel(pht('End'))
|
||||
->setIsLockable(false)
|
||||
->setIsDefaultable(false)
|
||||
->setTransactionType(
|
||||
PhabricatorCalendarEventEndDateTransaction::TRANSACTIONTYPE)
|
||||
->setDescription(pht('End time of the event.'))
|
||||
|
|
|
@ -128,6 +128,9 @@ final class PhabricatorEditEngineConfiguration
|
|||
|
||||
$values = $this->getProperty('defaults', array());
|
||||
foreach ($fields as $key => $field) {
|
||||
if (!$field->getIsDefaultable()) {
|
||||
continue;
|
||||
}
|
||||
if ($is_new) {
|
||||
if (array_key_exists($key, $values)) {
|
||||
$field->readDefaultValueFromConfiguration($values[$key]);
|
||||
|
@ -157,6 +160,11 @@ final class PhabricatorEditEngineConfiguration
|
|||
}
|
||||
}
|
||||
|
||||
// If the field isn't lockable, remove any lock we applied.
|
||||
if (!$field->getIsLockable()) {
|
||||
$field->setIsLocked(false);
|
||||
}
|
||||
|
||||
$fields = $this->reorderFields($fields);
|
||||
|
||||
$preamble = $this->getPreamble();
|
||||
|
|
Loading…
Reference in a new issue