Changed player_id to player_no.

master
Pacman Ghost 6 years ago
parent 971e902988
commit a99cb202e2
  1. 46
      vasl_templates/webapp/static/main.js
  2. 4
      vasl_templates/webapp/static/simple_notes.js
  3. 40
      vasl_templates/webapp/static/snippets.js
  4. 12
      vasl_templates/webapp/static/vo.js
  5. 12
      vasl_templates/webapp/tests/test_snippets.py
  6. 66
      vasl_templates/webapp/tests/test_vehicles_ordnance.py

@ -153,9 +153,9 @@ $(document).ready( function () {
for ( var i=0 ; i <= 5 ; ++i ) // nb: A19.1: ELR is 0-5
buf.push( "<option value='" + i + "'>" + i + "</option>" ) ;
buf = buf.join( "" ) ;
for ( var player_id=1 ; player_id <= 2 ; ++player_id ) {
$( "select[name='PLAYER_" + player_id + "_ELR']" ).html( buf ).selectmenu( {
classes: { "ui-selectmenu-button": "player" + player_id + "_elr" },
for ( var player_no=1 ; player_no <= 2 ; ++player_no ) {
$( "select[name='PLAYER_" + player_no + "_ELR']" ).html( buf ).selectmenu( {
classes: { "ui-selectmenu-button": "player" + player_no + "_elr" },
width: "3em"
} ) ;
}
@ -163,9 +163,9 @@ $(document).ready( function () {
for ( i=2 ; i <= 7 ; ++i ) // nb: A14.1: SAN is 2-7
buf.push( "<option value='" + i + "'>" + i + "</option>" ) ;
buf = buf.join( "" ) ;
for ( player_id=1 ; player_id <= 2 ; ++player_id ) {
$( "select[name='PLAYER_" + player_id + "_SAN']" ).html( buf ).selectmenu( {
classes: { "ui-selectmenu-button": "player" + player_id + "_san" },
for ( player_no=1 ; player_no <= 2 ; ++player_no ) {
$( "select[name='PLAYER_" + player_no + "_SAN']" ).html( buf ).selectmenu( {
classes: { "ui-selectmenu-button": "player" + player_no + "_san" },
width: "3em"
} ) ;
}
@ -371,13 +371,13 @@ function install_template_pack( data )
for ( var id in nationalities )
buf.push( "<option value='" + id + "'>" + nationalities[id].display_name + "</option>" ) ;
buf = buf.join( "" ) ;
for ( var player_id=1 ; player_id <= 2 ; ++player_id ) {
var $sel = $( "select[name='PLAYER_" + player_id + "']" ) ;
for ( var player_no=1 ; player_no <= 2 ; ++player_no ) {
var $sel = $( "select[name='PLAYER_" + player_no + "']" ) ;
$sel.html( buf ).selectmenu( {
classes: { "ui-selectmenu-button": "player" + player_id },
classes: { "ui-selectmenu-button": "player" + player_no },
} ) ;
if ( curSel[player_id] )
$sel.val( curSel[player_id] ).selectmenu( "refresh" ) ;
if ( curSel[player_no] )
$sel.val( curSel[player_no] ).selectmenu( "refresh" ) ;
}
// update the OB tab headers
@ -394,39 +394,39 @@ function on_player_change( $select )
{
// figure out which player was changed
var name = $select.attr( "name" ) ;
var player_id = name.substring( name.length-1 ) ;
var player_no = name.substring( name.length-1 ) ;
// update the tab label
var player_nat = update_ob_tab_header( player_id ) ;
var player_nat = update_ob_tab_header( player_no ) ;
// show/hide the nationality-specific buttons
for ( var nat in _NATIONALITY_SPECIFIC_BUTTONS ) {
for ( var i=0 ; i < _NATIONALITY_SPECIFIC_BUTTONS[nat].length ; ++i ) {
var button_id = _NATIONALITY_SPECIFIC_BUTTONS[nat][i] ;
var $elem = $( "#panel-ob_notes" + player_id + " div.snippet-control[data-id='" + button_id + "']" ) ;
var $elem = $( "#panel-ob_notes" + player_no + " div.snippet-control[data-id='" + button_id + "']" ) ;
$elem.css( "display", nat == player_nat ? "block" : "none" ) ;
}
}
// reset the OB params
$("textarea[name='OB_SETUP_"+player_id+"']").val( "" ) ;
$("input[name='OB_SETUP_WIDTH_"+player_id+"']").val( "" ) ;
$( "#vehicles-sortable_" + player_id ).sortable2( "delete-all" ) ;
$("input[name='VEHICLES_WIDTH_"+player_id+"']").val( "" ) ;
$( "#ordnance-sortable_" + player_id ).sortable2( "delete-all" ) ;
$("input[name='ORDNANCE_WIDTH_"+player_id+"']").val( "" ) ;
$("textarea[name='OB_SETUP_"+player_no+"']").val( "" ) ;
$("input[name='OB_SETUP_WIDTH_"+player_no+"']").val( "" ) ;
$( "#vehicles-sortable_" + player_no ).sortable2( "delete-all" ) ;
$("input[name='VEHICLES_WIDTH_"+player_no+"']").val( "" ) ;
$( "#ordnance-sortable_" + player_no ).sortable2( "delete-all" ) ;
$("input[name='ORDNANCE_WIDTH_"+player_no+"']").val( "" ) ;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function update_ob_tab_header( player_id )
function update_ob_tab_header( player_no )
{
// update the OB tab header for the specified player
var $sel = $( "select[name='PLAYER_" + player_id + "']" ) ;
var $sel = $( "select[name='PLAYER_" + player_no + "']" ) ;
var player_nat = $sel.find( "option:selected" ).val() ;
var display_name = gTemplatePack.nationalities[ player_nat ].display_name ;
var image_url = gImagesBaseUrl + "/flags/" + player_nat + ".png" ;
var $elem = $("#tabs .ui-tabs-nav a[href='#tabs-ob" + player_id + "']") ;
var $elem = $("#tabs .ui-tabs-nav a[href='#tabs-ob" + player_no + "']") ;
$elem.html(
"<img src='" + image_url + "'>&nbsp;" +
"<span>" + escapeHTML(display_name) + " OB</span>"

@ -12,11 +12,11 @@ function add_ssr() { _do_edit_simple_note( $("#ssr-sortable"), null, null ) ; }
function do_add_ssr( $sortable2, data ) { _do_add_simple_note($sortable2,data) ; }
function edit_ssr( $sortable2, $entry ) { _do_edit_simple_note( $sortable2, $entry, null ) ; }
function add_ob_setup( player_id ) { _do_edit_simple_note( $("#ob_setups-sortable_"+player_id), null, gDefaultScenario._OB_SETUP_WIDTH ) ; }
function add_ob_setup( player_no ) { _do_edit_simple_note( $("#ob_setups-sortable_"+player_no), null, gDefaultScenario._OB_SETUP_WIDTH ) ; }
function do_add_ob_setup( $sortable2, data ) { _do_add_simple_note($sortable2,data) ; }
function edit_ob_setup( $sortable2, $entry ) { _do_edit_simple_note( $sortable2, $entry, null ) ; }
function add_ob_note( player_id ) { _do_edit_simple_note( $("#ob_notes-sortable_"+player_id), null, gDefaultScenario._OB_NOTE_WIDTH ) ; }
function add_ob_note( player_no ) { _do_edit_simple_note( $("#ob_notes-sortable_"+player_no), null, gDefaultScenario._OB_NOTE_WIDTH ) ; }
function do_add_ob_note( $sortable2, data ) { _do_add_simple_note($sortable2,data) ; }
function edit_ob_note( $sortable2, $entry ) { _do_edit_simple_note( $sortable2, $entry, null ) ; }

@ -208,8 +208,8 @@ function unload_params( params, check_date_capabilities )
params.SSR.push( data[i].caption ) ;
// collect the vehicles/ordnance
function get_vo( vo_type, player_id, key ) {
var $sortable2 = $( "#" + vo_type + "-sortable_" + player_id ) ;
function get_vo( vo_type, player_no, key ) {
var $sortable2 = $( "#" + vo_type + "-sortable_" + player_no ) ;
var objs = [] ;
$sortable2.children( "li" ).each( function() {
var entry = $(this).data( "sortable2-data" ).vo_entry ;
@ -499,7 +499,7 @@ function do_load_scenario( params )
}
var i ;
for ( var key in params ) {
var player_id, $sortable2 ;
var player_no, $sortable2 ;
if ( key === "SSR" ) {
$sortable2 = $( "#ssr-sortable" ) ;
for ( i=0 ; i < params[key].length ; ++i )
@ -515,29 +515,29 @@ function do_load_scenario( params )
continue ;
}
if ( key === "OB_SETUPS_1" || key === "OB_SETUPS_2" ) {
player_id = key.substring( key.length-1 ) ;
$sortable2 = $( "#ob_setups-sortable_" + player_id ) ;
player_no = key.substring( key.length-1 ) ;
$sortable2 = $( "#ob_setups-sortable_" + player_no ) ;
for ( i=0 ; i < params[key].length ; ++i )
do_add_ob_setup( $sortable2, params[key][i] ) ;
params_loaded[key] = true ;
continue ;
}
if ( key === "OB_NOTES_1" || key === "OB_NOTES_2" ) {
player_id = key.substring( key.length-1 ) ;
$sortable2 = $( "#ob_notes-sortable_" + player_id ) ;
player_no = key.substring( key.length-1 ) ;
$sortable2 = $( "#ob_notes-sortable_" + player_no ) ;
for ( i=0 ; i < params[key].length ; ++i )
do_add_ob_note( $sortable2, params[key][i] ) ;
params_loaded[key] = true ;
continue ;
}
if ( key === "VEHICLES_1" || key === "ORDNANCE_1" || key === "VEHICLES_2" || key === "ORDNANCE_2" ) {
player_id = key.substring( key.length-1 ) ;
var nat = params[ "PLAYER_" + player_id ] ;
player_no = key.substring( key.length-1 ) ;
var nat = params[ "PLAYER_" + player_no ] ;
var vo_type = (key.substring(0,9) === "VEHICLES_") ? "vehicles" : "ordnance" ;
for ( i=0 ; i < params[key].length ; ++i ) {
var entry = find_vo( vo_type, nat, params[key][i] ) ;
if ( entry )
do_add_vo( vo_type, player_id, entry ) ;
do_add_vo( vo_type, player_no, entry ) ;
else
unknown_vo.push( params[key][i] ) ;
}
@ -659,21 +659,21 @@ function reset_scenario()
// reset all the template parameters
// nb: there's no way to reset the player droplist's
var player_id ;
for ( player_id=1 ; player_id <= 2 ; ++player_id ) {
on_player_change( $( "select[name='PLAYER_" + player_id + "']" ) ) ;
$("select[name='PLAYER_" + player_id + "_ELR']").val( 0 ).selectmenu( "refresh" ) ;
$("select[name='PLAYER_" + player_id + "_SAN']").val( "" ).selectmenu( "refresh" ) ;
var player_no ;
for ( player_no=1 ; player_no <= 2 ; ++player_no ) {
on_player_change( $( "select[name='PLAYER_" + player_no + "']" ) ) ;
$("select[name='PLAYER_" + player_no + "_ELR']").val( 0 ).selectmenu( "refresh" ) ;
$("select[name='PLAYER_" + player_no + "_SAN']").val( "" ).selectmenu( "refresh" ) ;
}
// reset all the template parameters
$("#scenario_notes-sortable").sortable2( "delete-all" ) ;
$("#ssr-sortable").sortable2( "delete-all" ) ;
for ( player_id=1 ; player_id <= 2 ; ++player_id ) {
$( "#ob_setups-sortable_" + player_id ).sortable2( "delete-all" ) ;
$( "#ob_notes-sortable_" + player_id ).sortable2( "delete-all" ) ;
$( "#vehicles-sortable_" + player_id ).sortable2( "delete-all" ) ;
$( "#ordnance-sortable_" + player_id ).sortable2( "delete-all" ) ;
for ( player_no=1 ; player_no <= 2 ; ++player_no ) {
$( "#ob_setups-sortable_" + player_no ).sortable2( "delete-all" ) ;
$( "#ob_notes-sortable_" + player_no ).sortable2( "delete-all" ) ;
$( "#vehicles-sortable_" + player_no ).sortable2( "delete-all" ) ;
$( "#ordnance-sortable_" + player_no ).sortable2( "delete-all" ) ;
}
}

@ -1,17 +1,17 @@
// --------------------------------------------------------------------
function add_vo( vo_type, player_id )
function add_vo( vo_type, player_no )
{
// get the vehicles/ordnance already added
var $sortable2 = $( "#" + vo_type + "-sortable_" + player_id ) ;
var $sortable2 = $( "#" + vo_type + "-sortable_" + player_no ) ;
var vo_present = [];
$sortable2.children("li").each( function() {
vo_present.push( $(this).text() ) ;
} );
// load the available vehicles/ordnance
var nat = $( "select[name='PLAYER_" + player_id + "']" ).val() ;
var nat = $( "select[name='PLAYER_" + player_no + "']" ).val() ;
var entries = gVehicleOrdnanceListings[vo_type][nat] ;
if ( entries === undefined ) {
showErrorMsg( "There are no " + gTemplatePack.nationalities[nat].display_name + " " + vo_type + " listings." ) ;
@ -44,7 +44,7 @@ function add_vo( vo_type, player_id )
OK: function() {
// add the new vehicle/ordnance
var val = $listbox.val() ;
do_add_vo( vo_type, player_id, entries[val] ) ;
do_add_vo( vo_type, player_no, entries[val] ) ;
$(this).dialog( "close" ) ;
},
Cancel: function() { $(this).dialog( "close" ) ; },
@ -54,10 +54,10 @@ function add_vo( vo_type, player_id )
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function do_add_vo( vo_type, player_id, entry )
function do_add_vo( vo_type, player_no, entry )
{
// add the specified vehicle/ordnance
var $sortable2 = $( "#" + vo_type + "-sortable_" + player_id ) ;
var $sortable2 = $( "#" + vo_type + "-sortable_" + player_no ) ;
$sortable2.sortable2( "add", {
content: $( "<div>" + entry.name + "</div>" ),
data: { caption: entry.name, vo_entry: entry }

@ -209,9 +209,9 @@ def test_edit_templates( webapp, webdriver ):
edit_template( "ob_setup" )
# check that the new template is being used
for player_id in range(1,2+1):
select_tab( "ob{}".format( player_id ) )
sortable = ob_setups[ player_id ]
for player_no in range(1,2+1):
select_tab( "ob{}".format( player_no ) )
sortable = ob_setups[ player_no ]
add_simple_note( sortable, "ob setup (ignored)", None )
elem = find_child( "li img.snippet", sortable )
elem.click()
@ -224,9 +224,9 @@ def test_edit_templates( webapp, webdriver ):
edit_template( "ob_note" )
# check that the new template is being used
for player_id in range(1,2+1):
select_tab( "ob{}".format( player_id ) )
sortable = ob_notes[ player_id ]
for player_no in range(1,2+1):
select_tab( "ob{}".format( player_no ) )
sortable = ob_notes[ player_no ]
add_simple_note( sortable, "ob note (ignored)", None )
elem = find_child( "li img.snippet", sortable )
elem.click()

@ -27,54 +27,54 @@ def test_crud( webapp, webdriver ):
("vehicles",2): None, ("ordnance",2): None
}
def _add_vo( vo_type, player_id, name ):
def _add_vo( vo_type, player_no, name ):
"""Add a vehicle/ordnance."""
# check the hint
select_tab( "ob{}".format( player_id ) )
_check_hint( vo_type, player_id )
select_tab( "ob{}".format( player_no ) )
_check_hint( vo_type, player_no )
# add the vehicle/ordnance
add_vo( vo_type, player_id, name )
_expected[ (vo_type,player_id) ].append( name )
add_vo( vo_type, player_no, name )
_expected[ (vo_type,player_no) ].append( name )
# check the snippet and hint
_check_snippet( vo_type, player_id )
_check_hint( vo_type, player_id )
_check_snippet( vo_type, player_no )
_check_hint( vo_type, player_no )
def _delete_vo( vo_type, player_id, name, webdriver ):
def _delete_vo( vo_type, player_no, name, webdriver ):
"""Delete a vehicle/ordnance."""
# check the hint
select_tab( "ob{}".format( player_id ) )
_check_hint( vo_type, player_id )
select_tab( "ob{}".format( player_no ) )
_check_hint( vo_type, player_no )
# delete the vehicle/ordnance
delete_vo( vo_type, player_id, name, webdriver )
_expected[ (vo_type,player_id) ].remove( name )
delete_vo( vo_type, player_no, name, webdriver )
_expected[ (vo_type,player_no) ].remove( name )
# check the snippet and hint
_check_snippet( vo_type, player_id )
_check_hint( vo_type, player_id )
_check_snippet( vo_type, player_no )
_check_hint( vo_type, player_no )
def _set_width( vo_type, player_id, width ):
def _set_width( vo_type, player_no, width ):
"""Set the snippet width."""
select_tab( "ob{}".format( player_id ) )
elem = find_child( "input[name='{}_WIDTH_{}']".format( vo_type.upper(), player_id ) )
select_tab( "ob{}".format( player_no ) )
elem = find_child( "input[name='{}_WIDTH_{}']".format( vo_type.upper(), player_no ) )
elem.clear()
if width is not None:
elem.send_keys( str(width) )
_width[ (vo_type,player_id) ] = width
_width[ (vo_type,player_no) ] = width
def _check_snippet( vo_type, player_id ):
def _check_snippet( vo_type, player_no ):
"""Check the generated vehicle/ordnance snippet."""
# check the snippet
select_tab( "ob{}".format( player_id ) )
select_tab( "ob{}".format( player_no ) )
dismiss_notifications()
btn = find_child( "button[data-id='{}_{}']".format( vo_type, player_id ) )
btn = find_child( "button[data-id='{}_{}']".format( vo_type, player_no ) )
btn.click()
buf = get_clipboard()
names = [
mo.group(1)
for mo in re.finditer( r"^\[\*\] (.*):" , buf, re.MULTILINE )
]
assert names == _expected[ (vo_type,player_id) ]
assert names == _expected[ (vo_type,player_no) ]
# check the snippet width
expected = _width[ (vo_type,player_id) ]
expected = _width[ (vo_type,player_no) ]
mo = re.search(
r"width={}$".format( expected if expected else "" ),
buf,
@ -82,10 +82,10 @@ def test_crud( webapp, webdriver ):
)
assert mo
def _check_hint( vo_type, player_id ):
def _check_hint( vo_type, player_no ):
"""Check the hint visibility."""
hint = find_child( "#{}-hint_{}".format( vo_type, player_id ) )
expected = "none" if _expected[(vo_type,player_id)] else "block"
hint = find_child( "#{}-hint_{}".format( vo_type, player_no ) )
expected = "none" if _expected[(vo_type,player_no)] else "block"
assert hint.value_of_css_property("display") == expected
def do_test( vo_type ):
@ -216,12 +216,12 @@ def test_variable_capabilities( webapp, webdriver ):
# ---------------------------------------------------------------------
def add_vo( vo_type, player_id, name ):
def add_vo( vo_type, player_no, name ):
"""Add a vehicle/ordnance."""
# add the vehicle/ordnance
select_tab( "ob{}".format( player_id ) )
elem = find_child( "#{}-add_{}".format( vo_type, player_id ) )
select_tab( "ob{}".format( player_no ) )
elem = find_child( "#{}-add_{}".format( vo_type, player_no ) )
elem.click()
sel = Select( find_child( "#select-vo select" ) )
sel.select_by_visible_text( name[:-1] if name.endswith("s") else name )
@ -229,16 +229,16 @@ def add_vo( vo_type, player_id, name ):
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def delete_vo( vo_type, player_id, name, webdriver ):
def delete_vo( vo_type, player_no, name, webdriver ):
"""Delete a vehicle/ordnance."""
# delete the vehicle/ordnance
select_tab( "ob{}".format( player_id ) )
select_tab( "ob{}".format( player_no ) )
elems = [
c for c in find_children( "#{}-sortable_{} li".format( vo_type, player_id ) )
c for c in find_children( "#{}-sortable_{} li".format( vo_type, player_no ) )
if c.text == name
]
assert len(elems) == 1
elem = elems[0]
trash = find_child( "#{}-trash_{}".format( vo_type, player_id ) )
trash = find_child( "#{}-trash_{}".format( vo_type, player_no ) )
ActionChains(webdriver).drag_and_drop( elem, trash ).perform()

Loading…
Cancel
Save