diff options
Diffstat (limited to 'diplomacy/web/src/gui/utils')
-rw-r--r-- | diplomacy/web/src/gui/utils/inline_game_view.jsx | 9 | ||||
-rw-r--r-- | diplomacy/web/src/gui/utils/map_data.js | 24 |
2 files changed, 20 insertions, 13 deletions
diff --git a/diplomacy/web/src/gui/utils/inline_game_view.jsx b/diplomacy/web/src/gui/utils/inline_game_view.jsx index ec2ca46..e3b55b0 100644 --- a/diplomacy/web/src/gui/utils/inline_game_view.jsx +++ b/diplomacy/web/src/gui/utils/inline_game_view.jsx @@ -22,9 +22,10 @@ import {Button} from "../components/button"; import {DeleteButton} from "../components/delete_button"; export class InlineGameView { - constructor(page, gameData) { + constructor(page, gameData, maps) { this.page = page; this.game = gameData; + this.maps = maps; this.get = this.get.bind(this); this.joinGame = this.joinGame.bind(this); this.showGame = this.showGame.bind(this); @@ -75,7 +76,10 @@ export class InlineGameView { ); } else { // Game not yet joined. - return <JoinForm key={this.game.game_id} game_id={this.game.game_id} powers={this.game.controlled_powers} + return <JoinForm key={this.game.game_id} + game_id={this.game.game_id} + powers={this.game.controlled_powers} + availablePowers={this.maps[this.game.map_name].powers} password_required={this.game.registration_password} onSubmit={this.joinGame}/>; } @@ -151,6 +155,7 @@ export class InlineGameView { return <div> <div><strong>{this.game.game_id}</strong></div> <div>({dateString})</div> + <div><em>{this.game.map_name}</em></div> </div>; } return this.game[name]; diff --git a/diplomacy/web/src/gui/utils/map_data.js b/diplomacy/web/src/gui/utils/map_data.js index 73d5338..1c48af0 100644 --- a/diplomacy/web/src/gui/utils/map_data.js +++ b/diplomacy/web/src/gui/utils/map_data.js @@ -83,16 +83,18 @@ export class MapData { abbr = abbr.substr(1, 3); if (!abbr) return null; - if (!this.provinces.hasOwnProperty(abbr)) { - const firstLetter = abbr[0]; - if (firstLetter === firstLetter.toLowerCase()) { - abbr = abbr.toUpperCase(); - } else { - abbr = abbr.toLowerCase(); - } - } - if (!this.provinces.hasOwnProperty(abbr)) - abbr = this.aliases[abbr]; - return this.provinces[abbr]; + if (this.provinces.hasOwnProperty(abbr)) + return this.provinces[abbr]; + if (this.provinces.hasOwnProperty(abbr.toUpperCase())) + return this.provinces[abbr.toUpperCase()]; + if (this.provinces.hasOwnProperty(abbr.toLowerCase())) + return this.provinces[abbr.toLowerCase()]; + if (this.aliases.hasOwnProperty(abbr)) + return this.provinces[this.aliases[abbr]]; + if (this.aliases.hasOwnProperty(abbr.toUpperCase())) + return this.provinces[this.aliases[abbr.toUpperCase()]]; + if (this.aliases.hasOwnProperty(abbr.toLowerCase())) + return this.provinces[this.aliases[abbr.toLowerCase()]]; + return null; } } |