2007-04-13 07:33:24 +00:00
// $Id$
2007-02-13 07:41:51 +00:00
/ * *
* 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 .
* /
2007-07-01 15:37:10 +00:00
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 ;
}
2007-10-27 11:32:05 +00:00
var url = location . pathname + "admin/settings/clean-urls/check" ;
2007-06-08 12:51:59 +00:00
$ ( "#clean-url .description span" ) . html ( '<div id="testing">' + Drupal . t ( 'Testing clean URLs...' ) + "</div>" ) ;
2007-02-13 07:41:51 +00:00
$ ( "#clean-url p" ) . hide ( ) ;
2007-10-27 11:32:05 +00:00
$ . ajax ( {
url : location . protocol + "//" + location . host + url ,
dataType : 'json' ,
success : function ( ) {
2007-02-13 07:41:51 +00:00
// Check was successful.
2007-10-27 11:32:05 +00:00
$ ( "#clean-url input.form-radio" ) . attr ( "disabled" , false ) ;
2007-06-08 12:51:59 +00:00
$ ( "#clean-url .description span" ) . append ( '<div class="ok">' + Drupal . t ( 'Your server has been successfully tested to support this feature.' ) + "</div>" ) ;
2007-10-27 11:32:05 +00:00
$ ( "#testing" ) . toggle ( ) ;
} ,
error : function ( ) {
2007-02-13 07:41:51 +00:00
// Check failed.
2007-06-08 12:51:59 +00:00
$ ( "#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>" ) ;
2007-02-13 07:41:51 +00:00
}
2007-10-27 11:32:05 +00:00
} ) ;
2007-07-01 15:37:10 +00:00
$ ( "#clean-url" ) . addClass ( 'clean-url-processed' ) ;
2007-06-01 09:05:45 +00:00
} ;
2007-05-10 19:55:24 +00:00
/ * *
* 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 ( ) {
2007-10-27 11:32:05 +00:00
var url = location . protocol + "//" + location . host + location . pathname . replace ( /\/[^\/]*$/ , "/" ) + "admin/settings/clean-urls/check" ;
2007-05-10 19:55:24 +00:00
$ ( "#clean-url .description" ) . append ( '<span><div id="testing">' + Drupal . settings . cleanURL . testing + "</div></span>" ) ;
$ ( "#clean-url.install" ) . css ( "display" , "block" ) ;
2007-10-27 11:32:05 +00:00
$ . ajax ( {
url : url ,
dataType : 'json' ,
success : function ( ) {
2007-05-10 19:55:24 +00:00
// Check was successful.
2007-10-27 11:32:05 +00:00
$ ( "#clean-url input.form-radio" ) . attr ( "disabled" , false ) ;
2007-05-10 19:55:24 +00:00
$ ( "#clean-url .description span" ) . append ( '<div class="ok">' + Drupal . settings . cleanURL . success + "</div>" ) ;
$ ( "#clean-url input.form-radio" ) . attr ( "checked" , 1 ) ;
2007-10-27 11:32:05 +00:00
} ,
error : function ( ) {
2007-05-10 19:55:24 +00:00
// Check failed.
$ ( "#clean-url .description span" ) . append ( '<div class="warning">' + Drupal . settings . cleanURL . failure + "</div>" ) ;
}
2007-10-27 11:32:05 +00:00
} ) ;
2007-07-01 15:37:10 +00:00
$ ( "#clean-url" ) . addClass ( 'clean-url-processed' ) ;
2007-06-01 09:05:45 +00:00
} ;
2007-05-10 19:55:24 +00:00
2007-10-22 15:48:26 +00:00
/ * *
* 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' ) ;
}
}
}
2007-05-14 16:22:26 +00:00
/ * *
* Show / hide custom format sections on the date - time settings page .
* /
2007-07-01 15:37:10 +00:00
Drupal . behaviors . dateTime = function ( context ) {
2007-05-14 16:22:26 +00:00
// Show/hide custom format depending on the select's value.
2007-07-01 15:37:10 +00:00
$ ( '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" ] ( ) ;
2007-05-14 16:22:26 +00:00
} ) ;
// Attach keyup handler to custom format inputs.
2007-07-01 15:37:10 +00:00
$ ( 'input.custom-format:not(.date-time-processed)' , context ) . addClass ( 'date-time-processed' ) . keyup ( function ( ) {
2007-05-14 16:22:26 +00:00
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.
2007-07-01 15:37:10 +00:00
$ ( 'select.date-format' , context ) . trigger ( 'change' ) ;
2007-07-25 17:35:47 +00:00
} ;