(function ($) { /** * Show/hide the 'Email site administrator when updates are available' checkbox * on the install page. */ Drupal.hideEmailAdministratorCheckbox = function () { // Make sure the secondary box is shown / hidden as necessary on page load. if ($('#edit-update-status-module-1').is(':checked')) { $('.form-item-update-status-module-2').show(); } else { $('.form-item-update-status-module-2').hide(); } // Toggle the display as necessary when the checkbox is clicked. $('#edit-update-status-module-1').change( function () { $('.form-item-update-status-module-2').toggle(); }); }; /** * Internal function to check using Ajax if clean URLs can be enabled on the * settings page. * * This function is not used to verify whether or not clean URLs * are currently enabled. */ Drupal.behaviors.cleanURLsSettingsCheck = { attach: function (context, settings) { // This behavior attaches by ID, so is only valid once on a page. // Also skip if we are on an install page, as Drupal.cleanURLsInstallCheck will handle // the processing. if (!($('#edit-clean-url').length) || $('#edit-clean-url.install').once('clean-url').length) { return; } var url = settings.basePath + 'admin/config/search/clean-urls/check'; $.ajax({ url: location.protocol + '//' + location.host + url, dataType: 'json', success: function () { // Check was successful. Redirect using a "clean URL". This will force the form that allows enabling clean URLs. location = settings.basePath +"admin/config/search/clean-urls"; } }); } }; /** * Internal function to check using Ajax if clean URLs can be enabled on the * install page. * * This function is not used to verify whether or not clean URLs * are currently enabled. */ Drupal.cleanURLsInstallCheck = function () { var url = location.protocol + '//' + location.host + Drupal.settings.basePath + 'admin/config/search/clean-urls/check'; // Submit a synchronous request to avoid database errors associated with // concurrent requests during install. $.ajax({ async: false, url: url, dataType: 'json', success: function () { // Check was successful. $('#edit-clean-url').attr('value', 1); } }); }; /** * When a field is filled out, apply its value to other fields that will likely * use the same value. In the installer this is used to populate the * administrator e-mail address with the same value as the site e-mail address. */ Drupal.behaviors.copyFieldValue = { attach: function (context, settings) { for (var sourceId in settings.copyFieldValue) { $('#' + sourceId, context).once('copy-field-values').bind('blur', function () { // Get the list of target fields. var targetIds = settings.copyFieldValue[sourceId]; // Add the behavior to update target fields on blur of the primary field. for (var delta in targetIds) { var targetField = $('#' + targetIds[delta]); if (targetField.val() == '') { targetField.val(this.value); } } }); } } }; /** * Show/hide custom format sections on the regional settings page. */ Drupal.behaviors.dateTime = { attach: function (context, settings) { for (var fieldName in settings.dateTime) { if (settings.dateTime.hasOwnProperty(fieldName)) { (function (fieldSettings, fieldName) { var source = '#edit-' + fieldName; var suffix = source + '-suffix'; // Attach keyup handler to custom format inputs. $('input' + source, context).once('date-time').keyup(function () { var input = $(this); var url = fieldSettings.lookup + (/\?/.test(fieldSettings.lookup) ? '&format=' : '?format=') + encodeURIComponent(input.val()); $.getJSON(url, function (data) { $(suffix).empty().append(' ' + fieldSettings.text + ': ' + data + ''); }); }); })(settings.dateTime[fieldName], fieldName); } } } }; /** * Show/hide settings for page caching depending on whether page caching is * enabled or not. */ Drupal.behaviors.pageCache = { attach: function (context, settings) { $('#edit-cache-0', context).change(function () { $('#page-compression-wrapper').hide(); $('#cache-error').hide(); }); $('#edit-cache-1', context).change(function () { $('#page-compression-wrapper').show(); $('#cache-error').hide(); }); $('#edit-cache-2', context).change(function () { $('#page-compression-wrapper').show(); $('#cache-error').show(); }); } }; })(jQuery);