X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Futils%2FgameStorage.js;h=3bd993470576a3186a2c0bc86770400a13d26572;hb=42c15a75118bfeb3251cea1f65acb01fcd023f01;hp=94c1c30ce5c22bf827247c43d1f786fecbeb1d6c;hpb=967a2686ea801d4b33129d78087651451ef1904b;p=vchess.git diff --git a/client/src/utils/gameStorage.js b/client/src/utils/gameStorage.js index 94c1c30c..3bd99347 100644 --- a/client/src/utils/gameStorage.js +++ b/client/src/utils/gameStorage.js @@ -12,7 +12,7 @@ // fen: string, // moves: array of Move objects, // clocks: array of integers, -// initime: integer (when clock start running), +// initime: array of integers (when clock start running), // score: string (several options; '*' == running), // } @@ -37,7 +37,8 @@ function dbOperation(callback) alert("Error while loading database: " + event.target.errorCode); }; // Create objectStore for vchess->games - db.createObjectStore("games", { keyPath: "gameId" }); + let objectStore = db.createObjectStore("games", { keyPath: "gameId" }); + objectStore.createIndex("score", "score"); //to search by game result } } @@ -64,7 +65,7 @@ export const GameStorage = // TODO: also option to takeback a move ? // NOTE: for live games only (all on server for corr) - update: function(gameId, obj) //colorIdx, move, fen, addTime, initime, score + update: function(gameId, obj) //colorIdx, nextIdx, move, fen, addTime, score { dbOperation((db) => { let objectStore = db.transaction("games", "readwrite").objectStore("games"); @@ -76,9 +77,8 @@ export const GameStorage = game.fen = obj.fen; if (!!obj.addTime) //NaN if first move in game game.clocks[obj.colorIdx] += obj.addTime; + game.initime[obj.nextIdx] = Date.now(); } - if (!!obj.initime) //just a flag (true) - game.initime = Date.now(); if (!!obj.score) game.score = obj.score; objectStore.put(game); //save updated data @@ -116,6 +116,16 @@ export const GameStorage = }); }, + getCurrent: function(callback) + { + dbOperation((db) => { + let objectStore = db.transaction('games').objectStore('games'); + objectStore.get("*").onsuccess = function(event) { + callback(event.target.result); + }; + }); + }, + // Delete a game in indexedDB remove: function(gameId, callback) {