From 79a03909706d78efe6d49e88a0ac089186a65368 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 19 Jun 2012 15:41:18 +0200 Subject: [PATCH] [feature/new-tz-handling] Fix javascript in prosilver Use new coding guidelines, wrap code with (function($)) and use phpbb. prefix PHPBB3-9558 --- phpBB/styles/prosilver/template/timezone.js | 102 +++++++++--------- .../prosilver/template/timezone_option.html | 2 +- 2 files changed, 50 insertions(+), 54 deletions(-) diff --git a/phpBB/styles/prosilver/template/timezone.js b/phpBB/styles/prosilver/template/timezone.js index b8d3c2f152..30f4b87425 100644 --- a/phpBB/styles/prosilver/template/timezone.js +++ b/phpBB/styles/prosilver/template/timezone.js @@ -1,35 +1,30 @@ +(function($) { // Avoid conflicts with other libraries + /** * Hide the optgroups that are not the selected timezone * * @param bool keep_selection Shall we keep the value selected, or shall the user be forced to repick one. */ -function phpbb_switch_tz_date(keep_selection) -{ - $('#timezone > optgroup').css("display", "none"); - $("#timezone > optgroup[label='" + $('#tz_date').val() + "']").css("display", "block"); +phpbb.timezone_switch_date = function(keep_selection) { + $('#timezone > optgroup').css('display', 'none'); + $("#timezone > optgroup[label='" + $('#tz_date').val() + "']").css('display', 'block'); - if ($("#timezone > optgroup[label='" + $('#tz_date').val() + "'] > option").size() == 1) - { + if ($("#timezone > optgroup[label='" + $('#tz_date').val() + "'] > option").size() == 1) { // If there is only one timezone for the selected date, we just select that automatically. - $("#timezone > optgroup[label='" + $('#tz_date').val() + "'] > option:first").attr("selected", true); + $("#timezone > optgroup[label='" + $('#tz_date').val() + "'] > option:first").attr('selected', true); keep_selection = true; } - if (typeof keep_selection !== 'undefined') - { - if (!keep_selection) - { - $('#timezone > option:first').attr("selected", true); - } + if (typeof keep_selection !== 'undefined' && !keep_selection) { + $('#timezone > option:first').attr('selected', true); } } /** * Display the date/time select */ -function phpbb_enable_tz_dates() -{ - $('#tz_select_date').css("display", "block"); +phpbb.timezone_enable_date_selection = function() { + $('#tz_select_date').css('display', 'block'); } /** @@ -37,72 +32,73 @@ function phpbb_enable_tz_dates() * * @param bool force_selector Shall we select the suggestion? */ -function phpbb_preselect_tz_select(force_selector) -{ +phpbb.timezone_preselect_select = function(force_selector) { // The offset returned here is in minutes and negated. // http://www.w3schools.com/jsref/jsref_getTimezoneOffset.asp var offset = (new Date()).getTimezoneOffset(); - if (offset < 0) - { + + if (offset < 0) { var sign = '+'; offset = -offset; - } - else - { + } else { var sign = '-'; } + var minutes = offset % 60; var hours = (offset - minutes) / 60; - if (hours < 10) - { + + if (hours < 10) { hours = '0' + hours.toString(); - } - else - { + } else { hours = hours.toString(); } - if (minutes < 10) - { + + if (minutes < 10) { minutes = '0' + minutes.toString(); - } - else - { + } else { minutes = minutes.toString(); } var prefix = 'GMT' + sign + hours + ':' + minutes; var prefix_length = prefix.length; - var selector_options = $('#tz_date > option'); - for (var i = 0; i < selector_options.length; ++i) - { + + for (var i = 0; i < selector_options.length; ++i) { var option = selector_options[i]; - if (option.value.substring(0, prefix_length) == prefix) - { - if ($('#tz_date').val() != option.value && !force_selector) - { + + if (option.value.substring(0, prefix_length) == prefix) { + if ($('#tz_date').val() != option.value && !force_selector) { // We do not select the option for the user, but notify him, // that we would suggest a different setting. - $('#tz_select_date_suggest').css("display", "inline"); - $('#tz_select_date_suggest').attr("title", $('#tz_select_date_suggest').attr('data-l-suggestion').replace("%s", option.innerHTML)); - $('#tz_select_date_suggest').attr("value", $('#tz_select_date_suggest').attr('data-l-suggestion').replace("%s", option.innerHTML.substring(0, 9))); - phpbb_switch_tz_date(true); - } - else - { + $('#tz_select_date_suggest').css('display', 'inline'); + $('#tz_select_date_suggest').attr('title', $('#tz_select_date_suggest').attr('data-l-suggestion').replace("%s", option.innerHTML)); + $('#tz_select_date_suggest').attr('value', $('#tz_select_date_suggest').attr('data-l-suggestion').replace("%s", option.innerHTML.substring(0, 9))); + phpbb.timezone_switch_date(true); + } else { option.selected = true; - phpbb_switch_tz_date(!force_selector); - $('#tz_select_date_suggest').css("display", "none"); + phpbb.timezone_switch_date(!force_selector); + $('#tz_select_date_suggest').css('display', 'none'); } break; } } } -$('#tz_select_date_suggest').click(function(){ - phpbb_preselect_tz_select(true, ''); +})(jQuery); // Avoid conflicts with other libraries + +$('#tz_date').change(function() { + phpbb.timezone_switch_date(false); }); -phpbb_enable_tz_dates(); -phpbb_preselect_tz_select($('#tz_select_date_suggest').attr('data-is-registration') == "true"); +$('#tz_select_date_suggest').click(function(){ + phpbb.timezone_preselect_select(true); +}); + +$(document).ready( + phpbb.timezone_enable_date_selection +); + +$(document).ready( + phpbb.timezone_preselect_select($('#tz_select_date_suggest').attr('data-is-registration') == 'true') +); diff --git a/phpBB/styles/prosilver/template/timezone_option.html b/phpBB/styles/prosilver/template/timezone_option.html index 8840e9e5e8..3881c2553c 100644 --- a/phpBB/styles/prosilver/template/timezone_option.html +++ b/phpBB/styles/prosilver/template/timezone_option.html @@ -2,7 +2,7 @@