diff --git a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php index 3998900..5281ef6 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php +++ b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php @@ -111,6 +111,10 @@ public static function processDefaultValue($default_value, FieldableEntityInterf 'date' => $date, ) ); + if ($definition->getSetting('enddate_get')) { + $default_value[0]['value2'] = $value; + $default_value[0]['date2'] = $date; + } } return $default_value; } diff --git a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php index d6e54d0..912bea2 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php +++ b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeItem.php @@ -48,11 +48,6 @@ public static function defaultStorageSettings() { const DATETIME_TYPE_DATETIME = 'datetime'; /** - * Value for the 'datetime_type' setting: store a date and time. - */ - const DATETIME_TYPE_DATETIMERANGE = 'datetimerange'; - - /** * {@inheritdoc} */ public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) { @@ -67,10 +62,10 @@ public static function propertyDefinitions(FieldStorageDefinitionInterface $fiel ->setClass('\Drupal\datetime\DateTimeComputed') ->setSetting('date source', 'value'); - // TODO a check here fatals. - //if ($field_definition->getSetting('enddate_get')) { + if ($field_definition->getSetting('enddate_get')) { $properties['value2'] = DataDefinition::create('datetime_iso8601') - ->setLabel(t('Date value (end)')); + ->setLabel(t('Date value (end)')) + ->setRequired(TRUE); $properties['date2'] = DataDefinition::create('any') ->setLabel(t('Computed date (end)')) @@ -78,7 +73,7 @@ public static function propertyDefinitions(FieldStorageDefinitionInterface $fiel ->setComputed(TRUE) ->setClass('\Drupal\datetime\DateTimeComputed') ->setSetting('date source', 'value2'); - //} + } return $properties; } @@ -106,9 +101,7 @@ public static function schema(FieldStorageDefinitionInterface $field_definition) 'type' => 'varchar', 'length' => 20, ); - $schema['indexes']['value2'] = array( - 'value2' - ); + $schema['indexes']['value2'] = array('value2'); } return $schema; @@ -128,7 +121,6 @@ public function storageSettingsForm(array &$form, FormStateInterface $form_state '#options' => array( static::DATETIME_TYPE_DATE => t('Date (all day)'), static::DATETIME_TYPE_DATETIME => t('Date and time'), - static::DATETIME_TYPE_DATETIMERANGE => t('Date and time with range'), ), ); diff --git a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php index 3e4a2ef..ee2a301 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php +++ b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php @@ -83,6 +83,14 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen '#date_part_order'=> $date_part_order, ) + $element['value']; + if ($this->getFieldSetting('enddate_get')) { + $element['value2'] = array( + '#type' => 'datelist', + '#date_increment' => $increment, + '#date_part_order'=> $date_part_order, + ) + $element['value']; + } + return $element; } diff --git a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php index 8d436a0..7be4a0d 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php +++ b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php @@ -89,6 +89,17 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen '#date_time_callbacks' => array(), ); + if ($this->getFieldSetting('enddate_get')) { + $element['value2'] += array( + '#date_date_format'=> $date_format, + '#date_date_element' => $date_type, + '#date_date_callbacks' => array(), + '#date_time_format' => $time_format, + '#date_time_element' => $time_type, + '#date_time_callbacks' => array(), + ); + } + return $element; } diff --git a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php index 192e52f..f3afe5a 100644 --- a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php +++ b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeWidgetBase.php @@ -53,7 +53,6 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen } if ($this->getFieldSetting('enddate_get')) { - $element['value']['#title'] = t('Start date'); $element['value2'] = array(