aboutsummaryrefslogtreecommitdiff
path: root/diplomacy/web/src/gui/utils
diff options
context:
space:
mode:
Diffstat (limited to 'diplomacy/web/src/gui/utils')
-rw-r--r--diplomacy/web/src/gui/utils/inline_game_view.jsx9
-rw-r--r--diplomacy/web/src/gui/utils/map_data.js24
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;
}
}