summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/system/system.css8
-rw-r--r--modules/user/user.js14
-rw-r--r--modules/user/user.module71
3 files changed, 85 insertions, 8 deletions
diff --git a/modules/system/system.css b/modules/system/system.css
index ebe41c55a..7d30a5cca 100644
--- a/modules/system/system.css
+++ b/modules/system/system.css
@@ -438,3 +438,11 @@ thead div.sticky-header {
#clean-url.install {
display: none;
}
+
+/*
+** For anything you want to hide on page load when JS is enabled, so
+** that you can use the JS to control visibility and avoid flicker.
+*/
+html.js .js-hide {
+ display: none;
+}
diff --git a/modules/user/user.js b/modules/user/user.js
new file mode 100644
index 000000000..caffaf270
--- /dev/null
+++ b/modules/user/user.js
@@ -0,0 +1,14 @@
+/* $Id$ */
+
+/**
+ * On the admin/user/settings page, conditionally show all of the
+ * picture-related form elements depending on the current value of the
+ * "Picture support" radio buttons.
+ */
+if (Drupal.jsEnabled) {
+ $(document).ready(function () {
+ $('div.user-admin-picture-radios input[@type=radio]').click(function () {
+ $('div.user-admin-picture-settings')[['hide', 'show'][this.value]]();
+ });
+ });
+}
diff --git a/modules/user/user.module b/modules/user/user.module
index 6fca84c7d..456cb99a5 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -2625,7 +2625,6 @@ function user_admin_settings() {
'#title' => t('Signature support'),
'#default_value' => variable_get('user_signatures', 0),
'#options' => array(t('Disabled'), t('Enabled')),
- '#description' => t('Enable signature support.'),
);
// If picture support is enabled, check whether the picture directory exists:
@@ -2634,13 +2633,69 @@ function user_admin_settings() {
file_check_directory($picture_path, 1, 'user_picture_path');
}
- $form['pictures'] = array('#type' => 'fieldset', '#title' => t('Pictures'));
- $form['pictures']['user_pictures'] = array('#type' => 'radios', '#title' => t('Picture support'), '#default_value' => variable_get('user_pictures', 0), '#options' => array(t('Disabled'), t('Enabled')), '#description' => t('Enable picture support.'));
- $form['pictures']['user_picture_path'] = array('#type' => 'textfield', '#title' => t('Picture image path'), '#default_value' => variable_get('user_picture_path', 'pictures'), '#size' => 30, '#maxlength' => 255, '#description' => t('Subdirectory in the directory %dir where pictures will be stored.', array('%dir' => file_directory_path() .'/')));
- $form['pictures']['user_picture_default'] = array('#type' => 'textfield', '#title' => t('Default picture'), '#default_value' => variable_get('user_picture_default', ''), '#size' => 30, '#maxlength' => 255, '#description' => t('URL of picture to display for users with no custom picture selected. Leave blank for none.'));
- $form['pictures']['user_picture_dimensions'] = array('#type' => 'textfield', '#title' => t('Picture maximum dimensions'), '#default_value' => variable_get('user_picture_dimensions', '85x85'), '#size' => 15, '#maxlength' => 10, '#description' => t('Maximum dimensions for pictures, in pixels.'));
- $form['pictures']['user_picture_file_size'] = array('#type' => 'textfield', '#title' => t('Picture maximum file size'), '#default_value' => variable_get('user_picture_file_size', '30'), '#size' => 15, '#maxlength' => 10, '#description' => t('Maximum file size for pictures, in kB.'));
- $form['pictures']['user_picture_guidelines'] = array('#type' => 'textarea', '#title' => t('Picture guidelines'), '#default_value' => variable_get('user_picture_guidelines', ''), '#description' => t("This text is displayed at the picture upload form in addition to the default guidelines. It's useful for helping or instructing your users."));
+ $form['pictures'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Pictures'),
+ );
+ $picture_support = variable_get('user_pictures', 0);
+ $form['pictures']['user_pictures'] = array(
+ '#type' => 'radios',
+ '#title' => t('Picture support'),
+ '#default_value' => $picture_support,
+ '#options' => array(t('Disabled'), t('Enabled')),
+ '#prefix' => '<div class="user-admin-picture-radios">',
+ '#suffix' => '</div>',
+ );
+ drupal_add_js(drupal_get_path('module', 'user') .'/user.js');
+ // If JS is enabled, and the radio is defaulting to off, hide all
+ // the settings on page load via .css using the js-hide class so
+ // that there's no flicker.
+ $css_class = 'user-admin-picture-settings';
+ if (!$picture_support) {
+ $css_class .= ' js-hide';
+ }
+ $form['pictures']['settings'] = array(
+ '#prefix' => '<div class="'. $css_class .'">',
+ '#suffix' => '</div>',
+ );
+ $form['pictures']['settings']['user_picture_path'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Picture image path'),
+ '#default_value' => variable_get('user_picture_path', 'pictures'),
+ '#size' => 30,
+ '#maxlength' => 255,
+ '#description' => t('Subdirectory in the directory %dir where pictures will be stored.', array('%dir' => file_directory_path() .'/')),
+ );
+ $form['pictures']['settings']['user_picture_default'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Default picture'),
+ '#default_value' => variable_get('user_picture_default', ''),
+ '#size' => 30,
+ '#maxlength' => 255,
+ '#description' => t('URL of picture to display for users with no custom picture selected. Leave blank for none.'),
+ );
+ $form['pictures']['settings']['user_picture_dimensions'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Picture maximum dimensions'),
+ '#default_value' => variable_get('user_picture_dimensions', '85x85'),
+ '#size' => 15,
+ '#maxlength' => 10,
+ '#description' => t('Maximum dimensions for pictures, in pixels.'),
+ );
+ $form['pictures']['settings']['user_picture_file_size'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Picture maximum file size'),
+ '#default_value' => variable_get('user_picture_file_size', '30'),
+ '#size' => 15,
+ '#maxlength' => 10,
+ '#description' => t('Maximum file size for pictures, in kB.'),
+ );
+ $form['pictures']['settings']['user_picture_guidelines'] = array(
+ '#type' => 'textarea',
+ '#title' => t('Picture guidelines'),
+ '#default_value' => variable_get('user_picture_guidelines', ''),
+ '#description' => t("This text is displayed at the picture upload form in addition to the default guidelines. It's useful for helping or instructing your users."),
+ );
return system_settings_form($form);
}