diff options
author | notoraptor <stevenbocco@gmail.com> | 2019-08-14 12:22:22 -0400 |
---|---|---|
committer | Philip Paquette <pcpaquette@gmail.com> | 2019-08-14 12:40:01 -0400 |
commit | 5c3bd9b3802e2001a7e77baf2911386135a03839 (patch) | |
tree | e641744650b05cddc85bc60c2d7e2d6fe2d88b47 /diplomacy/web/src/gui/utils | |
parent | 5acb4ff23be4757a49b234f93928f13c436b60c6 (diff) |
[Web] Integrated new maps on the web interface
- Fixed bug with incorrect dislodged unit on pure map
- [python] Make sure dummy powers are registered only for standard maps.
- Hardcoded supply centers into SVG files.
- Removed supply centers CSS classes.
- Update positions for units and dislodged units on all maps.
- Converted SVGs to React.
- Removed "sym" classes and hardcode related styles into symbol definitions.
- Reordered map list (standard at top, then other ones in alphabetical order)
- Displayed + button for all maps and disable it for maps without variants.
- Minified generated code when converting SVG files to React.
- [web] Added ability to hide/display map abbreviations.
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; } } |