Mercurial > defr > drupal > core
diff modules/system/system.js @ 1:c1f4ac30525a 6.0
Drupal 6.0
author | Franck Deroche <webmaster@defr.org> |
---|---|
date | Tue, 23 Dec 2008 14:28:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/modules/system/system.js Tue Dec 23 14:28:28 2008 +0100 @@ -0,0 +1,113 @@ +// $Id: system.js,v 1.14.2.1 2008/02/07 18:23:30 goba Exp $ + +/** + * 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 = function(context) { + // 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 ($("#clean-url.clean-url-processed, #clean-url.install").size()) { + return; + } + var url = Drupal.settings.basePath +"admin/settings/clean-urls/check"; + $("#clean-url .description span").html('<div id="testing">'+ Drupal.t('Testing clean URLs...') +"</div>"); + $("#clean-url p").hide(); + $.ajax({ + url: location.protocol +"//"+ location.host + url, + dataType: 'json', + success: function () { + // Check was successful. + $("#clean-url input.form-radio").attr("disabled", false); + $("#clean-url .description span").append('<div class="ok">'+ Drupal.t('Your server has been successfully tested to support this feature.') +"</div>"); + $("#testing").hide(); + }, + error: function() { + // Check failed. + $("#clean-url .description span").append('<div class="warning">'+ Drupal.t('Your system configuration does not currently support this feature. The <a href="http://drupal.org/node/15365">handbook page on Clean URLs</a> has additional troubleshooting information.') +"</div>"); + $("#testing").hide(); + } + }); + $("#clean-url").addClass('clean-url-processed'); +}; + +/** + * 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/settings/clean-urls/check"; + $("#clean-url .description").append('<span><div id="testing">'+ Drupal.settings.cleanURL.testing +"</div></span>"); + $("#clean-url.install").css("display", "block"); + $.ajax({ + url: url, + dataType: 'json', + success: function () { + // Check was successful. + $("#clean-url input.form-radio").attr("disabled", false); + $("#clean-url input.form-radio").attr("checked", 1); + $("#clean-url .description span").append('<div class="ok">'+ Drupal.settings.cleanURL.success +"</div>"); + $("#testing").hide(); + }, + error: function() { + // Check failed. + $("#clean-url .description span").append('<div class="warning">'+ Drupal.settings.cleanURL.failure +"</div>"); + $("#testing").hide(); + } + }); + $("#clean-url").addClass('clean-url-processed'); +}; + +/** + * 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 = function (context) { + for (var sourceId in Drupal.settings.copyFieldValue) { + // Get the list of target fields. + targetIds = Drupal.settings.copyFieldValue[sourceId]; + if (!$('#'+ sourceId + '.copy-field-values-processed').size(), context) { + // Add the behavior to update target fields on blur of the primary field. + sourceField = $('#' + sourceId); + sourceField.bind('blur', function() { + for (var delta in targetIds) { + var targetField = $('#'+ targetIds[delta]); + if (targetField.val() == '') { + targetField.val(this.value); + } + } + }); + sourceField.addClass('copy-field-values-processed'); + } + } +}; + +/** + * Show/hide custom format sections on the date-time settings page. + */ +Drupal.behaviors.dateTime = function(context) { + // Show/hide custom format depending on the select's value. + $('select.date-format:not(.date-time-processed)', context).change(function() { + $(this).addClass('date-time-processed').parents("div.date-container").children("div.custom-container")[$(this).val() == "custom" ? "show" : "hide"](); + }); + + // Attach keyup handler to custom format inputs. + $('input.custom-format:not(.date-time-processed)', context).addClass('date-time-processed').keyup(function() { + var input = $(this); + var url = Drupal.settings.dateTime.lookup +(Drupal.settings.dateTime.lookup.match(/\?q=/) ? "&format=" : "?format=") + Drupal.encodeURIComponent(input.val()); + $.getJSON(url, function(data) { + $("div.description span", input.parent()).html(data); + }); + }); + + // Trigger the event handler to show the form input if necessary. + $('select.date-format', context).trigger('change'); +};