Commit 0865a1f7 authored by John Voskuilen's avatar John Voskuilen
Browse files

Issue #3219111 by johnv: Clean code - small updates

parent 942ab31d
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -187,7 +187,6 @@ class OfficeHoursList extends FormElement {
      return;
    }

    // @todo JVO: reuse static function OHItem::validateOfficeHoursSettings(
    $field_settings = $element['#field_settings'];
    $validate_hours = $field_settings['valhrs'];
    // Exception: end time 00:00 --> 24:00.
+3 −2
Original line number Diff line number Diff line
@@ -35,13 +35,14 @@ class OfficeHoursFormatterDefault extends OfficeHoursFormatterBase {
    // If no data is filled for this entity, do not show the formatter.
    // N.B. 'Show current day' may return nothing in getRows(), while other days are filled.
    /** @var \Drupal\office_hours\Plugin\Field\FieldType\OfficeHoursItemListInterface $items */
    if (!$items->getValue()) {
    $office_hours = $items->getValue();
    if (!$office_hours) {
      return $elements;
    }

    $settings = $this->getSettings();
    $field_definition = $items->getFieldDefinition();
    $office_hours = $this->getRows($items->getValue(), $this->getSettings(), $this->getFieldSettings());
    $office_hours = $this->getRows($office_hours, $this->getSettings(), $this->getFieldSettings());
    $elements[] = [
      '#theme' => 'office_hours',
      '#parent' => $field_definition,
+7 −7
Original line number Diff line number Diff line
@@ -69,10 +69,10 @@ class OfficeHoursItemList extends FieldItemList implements OfficeHoursItemListIn
  /**
   * {@inheritdoc}
   */
  public function setValue($values, $notify = TRUE) {
  public function setValue($value, $notify = TRUE) {
    // Allow other modules to allow $values.
    $this->dispatchUpdateEvent(OfficeHoursEvents::OFFICE_HOURS_UPDATE, $values);
    parent::setValue($values, $notify);
    $this->dispatchUpdateEvent(OfficeHoursEvents::OFFICE_HOURS_UPDATE, $value);
    parent::setValue($value, $notify);
  }

  /**
@@ -80,19 +80,19 @@ class OfficeHoursItemList extends FieldItemList implements OfficeHoursItemListIn
   *
   * @param string $event_name
   *   The event to trigger.
   * @param array|null $values
   * @param array|null $value
   *   An array of values of the field items, or NULL to unset the field.
   *   Can be changed by EventSubscribers.
   *
   * @return \Drupal\sms\Event\SmsMessageEvent
   *   The dispatched event.
   */
  protected function dispatchUpdateEvent($event_name, array &$values) {
  protected function dispatchUpdateEvent($event_name, &$value) {
    /** @var \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher */
    $event_dispatcher = \Drupal::service('event_dispatcher');
    $event = new OfficeHoursUpdateEvent($values);
    $event = new OfficeHoursUpdateEvent($value);
    $event = $event_dispatcher->dispatch($event);
    $values = $event->getValues();
    $value = $event->getValues();
  }

}
+5 −5
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@ class OfficeHoursDefaultWidget extends OfficeHoursWidgetBase {
    // - First level are day numbers.
    // - Second level contains field values arranged by $day_delta.
    $indexed_items = array_fill_keys(range(0, 6), []);
    foreach ($items as $index => $item) {
    foreach ($items as $item) {
      $value_of_item = $item->getValue();
      if ($item && !empty($value_of_item)) {
        $indexed_items[(int) $value_of_item['day']][] = $item;
@@ -84,9 +84,9 @@ class OfficeHoursDefaultWidget extends OfficeHoursWidgetBase {
      // @todo The theme_function clears values above cardinality. Move it here.
      for ($day_delta = 0; $day_delta < $cardinality; $day_delta++) {
        $default_value = ['day' => $day, 'day_delta' => $day_delta];
        $default_value = isset($indexed_items[$day][$day_delta])
          ? $indexed_items[$day][$day_delta]->getValue() + $default_value
          : $default_value;
        if (isset($indexed_items[$day][$day_delta])) {
          $default_value = $indexed_items[$day][$day_delta]->getValue() + $default_value;
        }
        $elements[] = [
          '#day' => $day,
          '#daydelta' => $day_delta,
@@ -116,7 +116,7 @@ class OfficeHoursDefaultWidget extends OfficeHoursWidgetBase {
      '#tabledrag' => FALSE,
    ] + $element['value'] + $elements;

    // Wrap the table in a collapsible fieldset, which is th only way(?)
    // Wrap the table in a collapsible fieldset, which is the only way(?)
    // to show the 'required' asterisk and the help text.
    // The help text is now shown above the table, as requested by some users.
    // N.B. For some reason, the title is shown in Capitals.
+11 −7
Original line number Diff line number Diff line
@@ -26,23 +26,27 @@ class OfficeHoursListWidget extends OfficeHoursWidgetBase {
    $element = parent::formElement($items, $delta, $element, $form, $form_state);

    $item = $items[$delta];
    $default_value = ['day' => '', 'day_delta' => 0];
    $default_value = isset($item) // && $item->getValue() != []
      ? $item->getValue() + $default_value
      : $default_value;
    $default_value = [
      'day' => '',
      'day_delta' => 0,
    ];
    if (isset($item)) {
      $default_value = $item->getValue() + $default_value;
    }

    $day = isset($default_value['day']) ? $default_value['day'] : '';
    $day = $default_value['day'];
    if (OfficeHoursDateHelper::isExceptionDay($day)) {
      // @todo Support Exception days.
      return [];
    }

    $element['value'] = [
      '#type' => 'office_hours_list',
      '#default_value' => $default_value,
      '#day' => $day, // @todo Set weekday number for Exception days.
      // Make sure the value is shown in OfficeHoursSlot().
      '#daydelta' => 0,
      '#dayname' => '',
      '#type' => 'office_hours_list',
      '#default_value' => $default_value,
      // Wrap all of the select elements with a fieldset.
      '#theme_wrappers' => [
        'fieldset',