diff -r 07239de796bb -r e756a8c72c3d cms/drupal/modules/system/system.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cms/drupal/modules/system/system.js Fri Sep 08 12:04:06 2017 +0200 @@ -0,0 +1,140 @@ +(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);