Skip to content
Snippets Groups Projects
Commit 14cefd14 authored by Martin Anderson-Clutz's avatar Martin Anderson-Clutz
Browse files

Final round of code standards cleanup

parent 0c53a9fb
No related branches found
No related tags found
No related merge requests found
......@@ -9,13 +9,20 @@ use Drupal\options\Plugin\Field\FieldType\ListItemBase;
*/
abstract class SmartDateListItemBase extends ListItemBase {
/**
* {@inheritdoc}
*/
public static function parseValues($values) {
// Use the ListItemBase parsing function, but don't allow generated keys.
$result = static::extractAllowedValues($values, 1);
return $result;
}
/**
* {@inheritdoc}
*/
protected static function validateAllowedValue($option) {
// Verify that the duration option is either custom or an integer.
if (($option != 'custom') && !preg_match('/^-?\\d+$/', $option)) {
return t('Allowed values list: keys must be integers or "custom".');
}
......
......@@ -34,7 +34,7 @@ class SmartDateDefaultWidget extends SmartDateWidgetBase implements ContainerFac
*/
public static function defaultSettings() {
return [
'modal' => FALSE
'modal' => FALSE,
] + parent::defaultSettings();
}
......@@ -47,7 +47,7 @@ class SmartDateDefaultWidget extends SmartDateWidgetBase implements ContainerFac
$element['modal'] = [
'#type' => 'checkbox',
'#title' => $this->t('Use modal for managing instances'),
'#default_value' => $this->getSetting('modal')
'#default_value' => $this->getSetting('modal'),
];
return $element;
......
......@@ -5,7 +5,6 @@ namespace Drupal\smart_date\Plugin\Field\FieldWidget;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\user\Entity\User;
/**
* Plugin implementation of the 'smartdate_timezone' widget.
......@@ -43,9 +42,11 @@ class SmartDateTimezoneWidget extends SmartDateDefaultWidget implements Containe
case '':
$default_timezone = '';
break;
case 'user':
$default_timezone = date_default_timezone_get();
break;
case 'custom':
$default_timezone = $this->getSetting('custom_tz');
break;
......@@ -74,7 +75,7 @@ class SmartDateTimezoneWidget extends SmartDateDefaultWidget implements Containe
'#default_value' => $this->getSetting('default_tz'),
'#options' => [
'' => $this->t('Site default (ignores any user override)'),
'user' => $this->t('User\'s timezone, defaulting to site (always saved)'),
'user' => $this->t("User's timezone, defaulting to site (always saved)"),
'custom' => $this->t('A custom timezone (always saved)'),
],
];
......@@ -105,11 +106,13 @@ class SmartDateTimezoneWidget extends SmartDateDefaultWidget implements Containe
switch ($this->getSetting('default_tz')) {
case '':
$summary[] = $this->t('The site\'s timezone will be used unless overridden');
$summary[] = $this->t("The site's timezone will be used unless overridden");
break;
case 'user':
$summary[] = $this->t('The user\'s timezone will be used by default');
$summary[] = $this->t("The user's timezone will be used by default");
break;
case 'custom':
$summary[] = $this->t('Custom default timezone: @custom_tz', ['@custom_tz' => $this->getSetting('custom_tz')]);
break;
......
......@@ -58,32 +58,8 @@ class SmartDateWidgetBase extends DateTimeWidgetBase {
$values['duration'] = isset($items[$delta]->duration) ? $items[$delta]->duration : $defaults['default_duration'];
$values['timezone'] = isset($items[$delta]->timezone) ? $items[$delta]->timezone : '';
$this->createWidget($element, $values, $defaults);
/**** code still needed? Doesn't seem to do much ****
// Can't easily call createDefaultValue from inside a static method.
// TODO: determine if there's value in moving this inside createWidget.
if ($items[$delta]->start_time) {
// ** @var \Drupal\Core\Datetime\DrupalDateTime $start_time //
$start_time = $items[$delta]->start_time;
if (!$timezone) {
$timezone = $element['value']['#date_timezone'];
}
$element['value']['#default_value'] = $this->createDefaultValue($start_time, $timezone);
}
if ($items[$delta]->end_time) {
// ** @var \Drupal\Core\Datetime\DrupalDateTime $end_time //
$end_time = $items[$delta]->end_time;
$element['end_value']['#default_value'] = $this->createDefaultValue($end_time, $timezone);
}
*/
// if ($timezone) {
// $element['value']['#default_value']->setTimeZone($timezone);
// $element['end_value']['#default_value']->setTimeZone($timezone);
// }
if ($allow_recurring && function_exists('smart_date_recur_widget_extra_fields')) {
smart_date_recur_widget_extra_fields($element, $items[$delta], $this->getSetting('modal'));
}
......@@ -101,12 +77,12 @@ class SmartDateWidgetBase extends DateTimeWidgetBase {
$element['#element_validate'][] = [static::class, 'validateStartEnd'];
$element['value']['#title'] = t('Start');
$element['value']['#date_year_range'] = '1902:2037';
// Ensure values always display relative to the site;
// Ensure values always display relative to the site.
$element['value']['#default_value'] = self::remapDatetime($values['start']);
$element['end_value'] = [
'#title' => t('End'),
// Ensure values always display relative to the site;
// Ensure values always display relative to the site.
'#default_value' => self::remapDatetime($values['end']),
] + $element['value'];
$element['value']['#attributes']['class'] = ['time-start'];
......@@ -285,7 +261,7 @@ class SmartDateWidgetBase extends DateTimeWidgetBase {
* Handles generic features for multiple fields:
* - number of widgets
* - AHAH-'add more' button
* - table display and drag-n-drop value reordering
* - table display and drag-n-drop value reordering.
*/
protected function formMultipleElements(FieldItemListInterface $items, array &$form, FormStateInterface $form_state) {
$field_name = $this->fieldDefinition
......
......@@ -45,7 +45,7 @@ trait SmartDateTrait {
$user = \Drupal::currentUser();
$user_tz = $user->getTimeZone();
if ($timezone && $timezone != $user_tz) {
// Uses a custom timezone, so append output using user/site default timezone.
// Uses a custom timezone, so append time in default timezone.
$site_time = static::formatSmartDate($item->value, $item->end_value, $settings, $user_tz);
$site_time['#prefix'] = ' (';
$site_time['#suffix'] = ')';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment