Add 'display' DB field for nicer variants display. Remove join on Variants table...
[vchess.git] / client / src / views / Rules.vue
index 2edd8a8..09d5e06 100644 (file)
@@ -26,7 +26,7 @@ main
           | {{ st.tr["Analysis mode"] }}
   .row
     .col-sm-12.col-md-8.col-md-offset-2.col-lg-6.col-lg-offset-3
-      h4#variantName(v-show="display=='rules'") {{ gameInfo.vname }}
+      h4#variantName(v-show="display=='rules'") {{ getVariantDisplay }}
       div(
         v-show="display=='rules'"
         v-html="content"
@@ -76,6 +76,10 @@ export default {
     showAnalyzeBtn: function() {
       return !!this.V && this.V.CanAnalyze;
     },
+    getVariantDisplay: function() {
+      if (!this.gameInfo.vname) return ""; //variant not set yet
+      return this.st.variants.find(v => v.name == this.gameInfo.vname).display;
+    },
     content: function() {
       if (!this.gameInfo.vname) return ""; //variant not set yet
       return (
@@ -120,12 +124,16 @@ export default {
       this.gameInfo.mode = mode;
       if (this.gameInfo.mode == "versus") {
         CompgameStorage.get(this.gameInfo.vname, (game) => {
-          // NOTE: game might be null
+          // NOTE: game might be null (if none stored yet)
+          if (!!game && !V.IsGoodFen(game.fen)) {
+            // Some issues with stored game: delete
+            CompgameStorage.remove(game.vname);
+            game = null;
+          }
           this.$refs["compgame"].launchGame(game);
         });
-      } else {
-        this.$refs["compgame"].launchGame();
       }
+      else this.$refs["compgame"].launchGame();
     },
     // The user wants to stop the game:
     stopGame: function() {