X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.special%2Fmediawiki.special.preferences.js;h=a756f22d4d3c141f26dbfda2363011f7d5878f8a;hb=4479b71b4176eb90bb8c26be25095da10dec979b;hp=92064a698c1345ee0dc8cbafd4c6983187625e9e;hpb=f2c0bc6639c4642c4ae738335dbfee4beb7ae944;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.special/mediawiki.special.preferences.js b/resources/src/mediawiki.special/mediawiki.special.preferences.js index 92064a698c..a756f22d4d 100644 --- a/resources/src/mediawiki.special/mediawiki.special.preferences.js +++ b/resources/src/mediawiki.special/mediawiki.special.preferences.js @@ -210,19 +210,27 @@ var minuteDiff, localTime, type = $tzSelect.val(); - if ( type === 'guess' ) { - // Get browser timezone & fill it in - minuteDiff = -( new Date().getTimezoneOffset() ); - $tzTextbox.val( minutesToHours( minuteDiff ) ); - $tzSelect.val( 'other' ); - $tzTextbox.prop( 'disabled', false ); - } else if ( type === 'other' ) { + if ( type === 'other' ) { + // User specified time zone manually in // Grab data from the textbox, parse it. minuteDiff = hoursToMinutes( $tzTextbox.val() ); } else { - // Grab data from the $tzSelect value - minuteDiff = parseInt( type.split( '|' )[ 1 ], 10 ) || 0; - $tzTextbox.val( minutesToHours( minuteDiff ) ); + // Time zone not manually specified by user + if ( type === 'guess' ) { + // Get browser timezone & fill it in + minuteDiff = -( new Date().getTimezoneOffset() ); + $tzTextbox.val( minutesToHours( minuteDiff ) ); + $tzSelect.val( 'other' ); + $tzTextbox.prop( 'disabled', false ); + } else { + // Grab data from the $tzSelect value + minuteDiff = parseInt( type.split( '|' )[ 1 ], 10 ) || 0; + $tzTextbox.val( minutesToHours( minuteDiff ) ); + } + + // Set defaultValue prop on the generated box so we don't trigger the + // unsaved preferences check + $tzTextbox.prop( 'defaultValue', $tzTextbox.val() ); } // Determine local time from server time and minutes difference, for display. @@ -258,7 +266,7 @@ // Check if all of the form values are unchanged function isPrefsChanged() { - var inputs = $( '#mw-prefs-form :input' ), + var inputs = $( '#mw-prefs-form :input[name]' ), input, $input, inputType, index, optIndex, opt; @@ -268,7 +276,8 @@ $input = $( input ); // Different types of inputs have different methods for accessing defaults - if ( $input.is( 'select' ) ) { // has the property defaultSelected for each option for ( optIndex = 0; optIndex < input.options.length; optIndex++ ) { opt = input.options[ optIndex ]; if ( opt.selected !== opt.defaultSelected ) {