Commit 15b2b5ed authored by alexpott's avatar alexpott

Issue #2120813 by pjonckiere, mpdonadio, ursula, borisson_, jsbalsera: Allow...

Issue #2120813 by pjonckiere, mpdonadio, ursula, borisson_, jsbalsera: Allow several date formats with identical date format strings
parent b399f75c
......@@ -130,12 +130,11 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
parent::validateForm($form, $form_state);
// The machine name field should already check to see if the requested
// machine name is available. Regardless of machine_name or human readable
// name, check to see if the provided pattern exists.
// machine name is available.
$pattern = trim($form_state->getValue('date_format_pattern'));
foreach ($this->dateFormatStorage->loadMultiple() as $format) {
if ($format->getPattern() == $pattern && ($this->entity->isNew() || $format->id() != $this->entity->id())) {
$form_state->setErrorByName('date_format_pattern', $this->t('This format already exists. Enter a unique format string.'));
if ($format->getPattern() == $pattern && ($format->id() == $this->entity->id())) {
drupal_set_message(t('The existing format/name combination has not been altered.'));
continue;
}
}
......
......@@ -117,6 +117,21 @@ function testDateFormatConfiguration() {
// Make sure the date does not exist in config.
$date_format = entity_load('date_format', $date_format_id);
$this->assertFalse($date_format);
// Add a new date format with an existing format.
$date_format_id = strtolower($this->randomMachineName(8));
$name = ucwords($date_format_id);
$date_format = 'Y';
$edit = array(
'id' => $date_format_id,
'label' => $name,
'date_format_pattern' => $date_format,
);
$this->drupalPostForm('admin/config/regional/date-time/formats/add', $edit, t('Add format'));
$this->assertUrl(\Drupal::url('entity.date_format.collection', [], ['absolute' => TRUE]), [], 'Correct page redirection.');
$this->assertText(t('Custom date format added.'), 'Date format added confirmation message appears.');
$this->assertText($name, 'Custom date format appears in the date format list.');
$this->assertText(t('Delete'), 'Delete link for custom date format appears.');
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment