home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / CMS / drupal-6.0.exe / drupal-6.0 / modules / system / system.js < prev    next >
Encoding:
JavaScript  |  2008-02-07  |  4.7 KB  |  114 lines

  1. // $Id: system.js,v 1.14.2.1 2008/02/07 18:23:30 goba Exp $
  2.  
  3. /**
  4.  * Internal function to check using Ajax if clean URLs can be enabled on the
  5.  * settings page.
  6.  *
  7.  * This function is not used to verify whether or not clean URLs
  8.  * are currently enabled.
  9.  */
  10. Drupal.behaviors.cleanURLsSettingsCheck = function(context) {
  11.   // This behavior attaches by ID, so is only valid once on a page.
  12.   // Also skip if we are on an install page, as Drupal.cleanURLsInstallCheck will handle
  13.   // the processing.
  14.   if ($("#clean-url.clean-url-processed, #clean-url.install").size()) {
  15.     return;
  16.   }
  17.   var url = Drupal.settings.basePath +"admin/settings/clean-urls/check";
  18.   $("#clean-url .description span").html('<div id="testing">'+ Drupal.t('Testing clean URLs...') +"</div>");
  19.   $("#clean-url p").hide();
  20.   $.ajax({
  21.     url: location.protocol +"//"+ location.host + url,
  22.     dataType: 'json',
  23.     success: function () {
  24.       // Check was successful.
  25.       $("#clean-url input.form-radio").attr("disabled", false);
  26.       $("#clean-url .description span").append('<div class="ok">'+ Drupal.t('Your server has been successfully tested to support this feature.') +"</div>");
  27.       $("#testing").hide();
  28.     },
  29.     error: function() {
  30.       // Check failed.
  31.       $("#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>");
  32.       $("#testing").hide();
  33.     }
  34.   });
  35.   $("#clean-url").addClass('clean-url-processed');
  36. };
  37.  
  38. /**
  39.  * Internal function to check using Ajax if clean URLs can be enabled on the
  40.  * install page.
  41.  *
  42.  * This function is not used to verify whether or not clean URLs
  43.  * are currently enabled.
  44.  */
  45. Drupal.cleanURLsInstallCheck = function() {
  46.   var url = location.protocol +"//"+ location.host + Drupal.settings.basePath +"admin/settings/clean-urls/check";
  47.   $("#clean-url .description").append('<span><div id="testing">'+ Drupal.settings.cleanURL.testing +"</div></span>");
  48.   $("#clean-url.install").css("display", "block");
  49.   $.ajax({
  50.     url: url,
  51.     dataType: 'json',
  52.     success: function () {
  53.       // Check was successful.
  54.       $("#clean-url input.form-radio").attr("disabled", false);
  55.       $("#clean-url input.form-radio").attr("checked", 1);
  56.       $("#clean-url .description span").append('<div class="ok">'+ Drupal.settings.cleanURL.success +"</div>");
  57.       $("#testing").hide();
  58.     },
  59.     error: function() {
  60.       // Check failed.
  61.       $("#clean-url .description span").append('<div class="warning">'+ Drupal.settings.cleanURL.failure +"</div>");
  62.       $("#testing").hide();
  63.     }
  64.   });
  65.   $("#clean-url").addClass('clean-url-processed');
  66. };
  67.  
  68. /**
  69.  * When a field is filled out, apply its value to other fields that will likely
  70.  * use the same value. In the installer this is used to populate the
  71.  * administrator e-mail address with the same value as the site e-mail address.
  72.  */
  73. Drupal.behaviors.copyFieldValue = function (context) {
  74.   for (var sourceId in Drupal.settings.copyFieldValue) {
  75.     // Get the list of target fields.
  76.     targetIds = Drupal.settings.copyFieldValue[sourceId];
  77.     if (!$('#'+ sourceId + '.copy-field-values-processed').size(), context) {
  78.       // Add the behavior to update target fields on blur of the primary field.
  79.       sourceField = $('#' + sourceId);
  80.       sourceField.bind('blur', function() {
  81.         for (var delta in targetIds) {
  82.           var targetField = $('#'+ targetIds[delta]);
  83.           if (targetField.val() == '') {
  84.             targetField.val(this.value);
  85.           }
  86.         }
  87.       });
  88.       sourceField.addClass('copy-field-values-processed');
  89.     }
  90.   }
  91. };
  92.  
  93. /**
  94.  * Show/hide custom format sections on the date-time settings page.
  95.  */
  96. Drupal.behaviors.dateTime = function(context) {
  97.   // Show/hide custom format depending on the select's value.
  98.   $('select.date-format:not(.date-time-processed)', context).change(function() {
  99.     $(this).addClass('date-time-processed').parents("div.date-container").children("div.custom-container")[$(this).val() == "custom" ? "show" : "hide"]();
  100.   });
  101.  
  102.   // Attach keyup handler to custom format inputs.
  103.   $('input.custom-format:not(.date-time-processed)', context).addClass('date-time-processed').keyup(function() {
  104.     var input = $(this);
  105.     var url = Drupal.settings.dateTime.lookup +(Drupal.settings.dateTime.lookup.match(/\?q=/) ? "&format=" : "?format=") + Drupal.encodeURIComponent(input.val());
  106.     $.getJSON(url, function(data) {
  107.       $("div.description span", input.parent()).html(data);
  108.     });
  109.   });
  110.  
  111.   // Trigger the event handler to show the form input if necessary.
  112.   $('select.date-format', context).trigger('change');
  113. };
  114.