From cdc0ce68d1b4967457c59e1524cf849b8cbbff60 Mon Sep 17 00:00:00 2001 From: Taka Date: Thu, 29 Nov 2018 04:37:47 +0000 Subject: [PATCH] Adjust the scenario date for timezone when saving scenarios. --- vasl_templates/webapp/static/snippets.js | 9 ++++----- vasl_templates/webapp/static/utils.js | 10 ++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/vasl_templates/webapp/static/snippets.js b/vasl_templates/webapp/static/snippets.js index 5cd38ba..120b9e1 100644 --- a/vasl_templates/webapp/static/snippets.js +++ b/vasl_templates/webapp/static/snippets.js @@ -217,9 +217,8 @@ function unload_snippet_params( unpack_scenario_date, template_id ) // extract the scenario date components if ( unpack_scenario_date ) { - var scenario_date = $( "input[name='SCENARIO_DATE']" ).datepicker( "getDate" ) ; + var scenario_date = get_scenario_date() ; if ( scenario_date ) { - scenario_date.setMinutes( scenario_date.getMinutes() - scenario_date.getTimezoneOffset() ) ; params.SCENARIO_DAY_OF_MONTH = scenario_date.getDate() ; var postfix ; if ( params.SCENARIO_DAY_OF_MONTH in _DAY_OF_MONTH_POSTFIXES ) @@ -752,7 +751,7 @@ function do_load_scenario_data( params ) if ( key === "SCENARIO_DATE" ) { try { var scenario_date = $.datepicker.parseDate( "yy-mm-dd", params[key] ) ; - $elem.datepicker( "setDate", scenario_date ) ; + $elem.datepicker( "setDate", scenario_date ) ; // nb: don't need to adjust for timezone here } catch( ex ) { warnings.push( "Invalid scenario date: " + escapeHTML( params[key] ) ) ; } @@ -1007,7 +1006,7 @@ function unload_params_for_save( user_requested ) extract_vo_entries( "OB_ORDNANCE_2" ) ; // save the scenario date in ISO-8601 format - var scenario_date = $("input[name='SCENARIO_DATE']").datepicker( "getDate" ) ; + var scenario_date = get_scenario_date() ; if ( scenario_date ) params.SCENARIO_DATE = scenario_date.toISOString().substring( 0, 10 ) ; @@ -1284,7 +1283,7 @@ function do_load_template_pack( fname, data ) function _is_scenario_after( month, year ) { // check if the scenario is after the specified month/year - var scenario_date = $("input[name='SCENARIO_DATE']").datepicker( "getDate" ) ; + var scenario_date = get_scenario_date() ; if ( ! scenario_date ) return false ; if ( scenario_date.getFullYear() > year ) diff --git a/vasl_templates/webapp/static/utils.js b/vasl_templates/webapp/static/utils.js index 06a6ff9..fba8976 100644 --- a/vasl_templates/webapp/static/utils.js +++ b/vasl_templates/webapp/static/utils.js @@ -45,6 +45,16 @@ function get_player_no_for_element( $elem ) return null ; } +function get_scenario_date() +{ + // get the scenario date + var scenario_date = $("input[name='SCENARIO_DATE']").datepicker( "getDate" ) ; + if ( ! scenario_date ) + return null ; + scenario_date.setMinutes( scenario_date.getMinutes() - scenario_date.getTimezoneOffset() ) ; + return scenario_date ; +} + // -------------------------------------------------------------------- function copyToClipboard( val )