Commit 1b08c449 authored by Martin Anderson-Clutz's avatar Martin Anderson-Clutz
Browse files

Issue #3294159 by stefan.korn, mandclu: Inline Widget - Separator

parent f179d6a5
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -150,6 +150,14 @@ field.widget.settings.smartdate_default:
      type: boolean
      label: 'Hide end date unless different'

field.widget.settings.smartdate_inline:
  type: field.widget.settings.smartdate_default
  label: 'Smart Date, date-only range widget settings'
  mapping:
    separator:
      type: string
      label: 'Separator string (separating start and end date)'

field.widget.settings.smartdate_timezone:
  type: mapping
  label: 'Smart date timezone display format settings'
+39 −1
Original line number Diff line number Diff line
@@ -19,6 +19,15 @@ use Drupal\Core\Form\FormStateInterface;
 */
class SmartDateInlineWidget extends SmartDateDefaultWidget {

  /**
   * {@inheritdoc}
   */
  public static function defaultSettings() {
    return [
      'separator' => 'to',
      ] + parent::defaultSettings();
  }

  /**
   * {@inheritdoc}
   */
@@ -39,7 +48,8 @@ class SmartDateInlineWidget extends SmartDateDefaultWidget {
    $element = array_merge(['time_wrapper' => $time_wrapper], $element);
    // Move the start and end elements into our new container.
    $element['time_wrapper']['value'] = $element['value'];
    $element['time_wrapper']['separator']['#markup'] = '<span class="smartdate--separator">' . $this->t('to') . '</span>';
    $separator = empty($this->getSetting('separator')) ? $this->t('to') : $this->getSetting('separator');
    $element['time_wrapper']['separator']['#markup'] = '<span class="smartdate--separator">' . $separator . '</span>';
    $element['time_wrapper']['end_value'] = (isset($element['end_value'])) ? $element['end_value'] : $element['value'];
    unset($element['value']);
    unset($element['end_value']);
@@ -47,6 +57,34 @@ class SmartDateInlineWidget extends SmartDateDefaultWidget {
    return $element;
  }

  /**
   * {@inheritdoc}
   */
  public function settingsForm(array $form, FormStateInterface $form_state) {
    $settings_form = parent::settingsForm($form, $form_state);

    $settings_form['separator'] = [
      '#type' => 'textfield',
      '#title' => $this->t('Separator string (separating start and end date)'),
      '#default_value' => $this->getSetting('separator'),
    ];

    return $settings_form;
  }

  /**
   * {@inheritdoc}
   */
  public function settingsSummary() {
    $summary = parent::settingsSummary();

    if (!empty($this->getSetting('separator'))) {
      $summary[] = $this->t('Separator string (separating start and end date): @separator', ['@separator' => $this->getSetting('separator')]);
    }

    return $summary;
  }

  /**
   * {@inheritdoc}
   */