diff options
-rw-r--r-- | modules/system/system.admin.inc | 69 | ||||
-rw-r--r-- | modules/system/system.js | 13 |
2 files changed, 45 insertions, 37 deletions
diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc index 1c994e26d..936601768 100644 --- a/modules/system/system.admin.inc +++ b/modules/system/system.admin.inc @@ -1524,7 +1524,7 @@ function system_regional_settings() { $form['locale'] = array( '#type' => 'fieldset', - '#title' => t('Locale settings'), + '#title' => t('Locale'), ); $form['locale']['site_default_country'] = array( @@ -1532,65 +1532,63 @@ function system_regional_settings() { '#title' => t('Default country'), '#default_value' => variable_get('site_default_country', ''), '#options' => $countries, - '#description' => t('Select the default country for the site.'), '#attributes' => array('class' => 'country-detect'), ); - $form['locale']['date_default_timezone'] = array( - '#type' => 'select', - '#title' => t('Default time zone'), - '#default_value' => variable_get('date_default_timezone', date_default_timezone_get()), - '#options' => $zones, - '#description' => t('Select the default time zone for the site.'), - ); - $form['locale']['date_first_day'] = array( '#type' => 'select', '#title' => t('First day of week'), '#default_value' => variable_get('date_first_day', 0), '#options' => array(0 => t('Sunday'), 1 => t('Monday'), 2 => t('Tuesday'), 3 => t('Wednesday'), 4 => t('Thursday'), 5 => t('Friday'), 6 => t('Saturday')), - '#description' => t('The first day of the week for calendar views.') ); $form['timezone'] = array( '#type' => 'fieldset', - '#title' => t('User time zones'), + '#title' => t('Time zones'), ); + $form['timezone']['date_default_timezone'] = array( + '#type' => 'select', + '#title' => t('Default time zone'), + '#default_value' => variable_get('date_default_timezone', date_default_timezone_get()), + '#options' => $zones, + ); + + $configurable_timezones = variable_get('configurable_timezones', 1); $form['timezone']['configurable_timezones'] = array( - '#type' => 'radios', - '#title' => t('User-configurable time zones'), - '#default_value' => variable_get('configurable_timezones', 1), - '#options' => array(0 => t('Disabled'), 1 => t('Enabled')), - '#description' => t('When enabled, users can set their own time zone and dates will be displayed accordingly.') + '#type' => 'checkbox', + '#title' => t('Users may set their own time zone.'), + '#default_value' => $configurable_timezones, ); - $form['timezone']['user_default_timezone'] = array( - '#type' => 'radios', - '#title' => t('User time zone defaults'), - '#default_value' => variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT), - '#options' => array( - DRUPAL_USER_TIMEZONE_DEFAULT => t('New users will be set to the default time zone at registration.'), - DRUPAL_USER_TIMEZONE_EMPTY => t('New users will get an empty time zone at registration.'), - DRUPAL_USER_TIMEZONE_SELECT => t('New users will select their own time zone at registration.'), - ), - '#description' => t('Method for setting user time zones at registration when user-configurable time zones are enabled. This only affects the initial time zone setting for a new registration. Users will be able to change their time zone any time they edit their account.') + $js_hide = !$configurable_timezones ? ' class="js-hide"' : ''; + $form['timezone']['configurable_timezones_wrapper'] = array( + '#prefix' => '<div id="empty-timezone-message-wrapper"' . $js_hide . '>', + '#suffix' => '</div>', ); - $form['timezone']['empty_timezone_message'] = array( - '#type' => 'radios', - '#title' => t('Empty user time zones'), + $form['timezone']['configurable_timezones_wrapper']['empty_timezone_message'] = array( + '#type' => 'checkbox', + '#title' => t('Remind users at login if their time zone is not set.'), '#default_value' => variable_get('empty_timezone_message', 0), + '#description' => t('Only applied if users may set their own time zone.') + ); + + $form['timezone']['configurable_timezones_wrapper']['user_default_timezone'] = array( + '#type' => 'radios', + '#title' => t('Time zone for new users'), + '#default_value' => variable_get('user_default_timezone', DRUPAL_USER_TIMEZONE_DEFAULT), '#options' => array( - 0 => t('Ignore empty user time zones.'), - 1 => t('Remind users at login if their time zone is not set.'), + DRUPAL_USER_TIMEZONE_DEFAULT => t('Default time zone.'), + DRUPAL_USER_TIMEZONE_EMPTY => t('Empty time zone.'), + DRUPAL_USER_TIMEZONE_SELECT => t('Users may set their own time zone at registration.'), ), - '#description' => t('Handling for empty user time zones when user-configurable time zones are enabled. Use this option to help ensure that users set the correct time zone.') + '#description' => t('Only applied if users may set their own time zone.') ); $form['date_formats'] = array( '#type' => 'fieldset', - '#title' => t('Formatting'), + '#title' => t('Date formats'), ); $date_format_short = variable_get('date_format_short', $date_short[1]); @@ -1602,7 +1600,6 @@ function system_regional_settings() { '#attributes' => array('class' => 'date-format'), '#default_value' => (isset($date_short_choices[$date_format_short]) ? $date_format_short : 'custom'), '#options' => $date_short_choices, - '#description' => t('The short format of date display.'), ); $default_short_custom = variable_get('date_format_short_custom', (isset($date_short_choices[$date_format_short]) ? $date_format_short : '')); @@ -1625,7 +1622,6 @@ function system_regional_settings() { '#attributes' => array('class' => 'date-format'), '#default_value' => (isset($date_medium_choices[$date_format_medium]) ? $date_format_medium : 'custom'), '#options' => $date_medium_choices, - '#description' => t('The medium sized date display.'), ); $default_medium_custom = variable_get('date_format_medium_custom', (isset($date_medium_choices[$date_format_medium]) ? $date_format_medium : '')); @@ -1648,7 +1644,6 @@ function system_regional_settings() { '#attributes' => array('class' => 'date-format'), '#default_value' => (isset($date_long_choices[$date_format_long]) ? $date_format_long : 'custom'), '#options' => $date_long_choices, - '#description' => t('Longer date format used for detailed display.') ); $default_long_custom = variable_get('date_format_long_custom', (isset($date_long_choices[$date_format_long]) ? $date_format_long : '')); diff --git a/modules/system/system.js b/modules/system/system.js index 3422cd879..876537783 100644 --- a/modules/system/system.js +++ b/modules/system/system.js @@ -113,6 +113,19 @@ Drupal.behaviors.dateTime = { }; /** + * Show/hide settings for user configurable time zones depending on whether + * users are able to set their own time zones or not. + */ +Drupal.behaviors.userTimeZones = { + attach: function (context, settings) { + $('#empty-timezone-message-wrapper .description').hide(); + $('#edit-configurable-timezones', context).change(function () { + $('#empty-timezone-message-wrapper').toggle(); + }); + }, +}; + +/** * Show the powered by Drupal image preview */ Drupal.behaviors.poweredByPreview = { |