Fix: Games and Game page save and navigation.
This commit is contained in:
@@ -92,8 +92,8 @@ def save_game():
|
|||||||
form_filters = Filters_MTG_Game.from_json(data.get(Model_View_MTG_Base.FLAG_FORM_FILTERS, {}))
|
form_filters = Filters_MTG_Game.from_json(data.get(Model_View_MTG_Base.FLAG_FORM_FILTERS, {}))
|
||||||
if not form_filters.validate_on_submit():
|
if not form_filters.validate_on_submit():
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Filters form invalid.\n{form_filters.errors}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Filters form invalid.\n{form_filters.errors}'
|
||||||
})
|
})
|
||||||
form_filters = Filters_MTG_Game.get_default()
|
form_filters = Filters_MTG_Game.get_default()
|
||||||
"""
|
"""
|
||||||
@@ -106,8 +106,8 @@ def save_game():
|
|||||||
games = data.get(Model_View_MTG_Base.FLAG_GAME, [])
|
games = data.get(Model_View_MTG_Base.FLAG_GAME, [])
|
||||||
if len(games) == 0:
|
if len(games) == 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: 'No games to save.'
|
, Model_View_MTG_Base.FLAG_MESSAGE: 'No games to save.'
|
||||||
})
|
})
|
||||||
Helper_App.console_log(f"Games to save: {games}")
|
Helper_App.console_log(f"Games to save: {games}")
|
||||||
|
|
||||||
@@ -118,20 +118,18 @@ def save_game():
|
|||||||
|
|
||||||
if len(errors) > 0:
|
if len(errors) > 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error saving games.\n{Model_View_MTG_Game.convert_list_objects_to_json(errors)}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error saving games.\n{Model_View_MTG_Game.convert_list_objects_to_json(errors)}'
|
||||||
})
|
})
|
||||||
"""
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS
|
||||||
Model_View_MTG_Base.FLAG_DATA: Model_View_MTG_Base.convert_list_objects_to_json(model_return.games)
|
, Model_View_MTG_Base.ATTR_GAME_ID: game_id
|
||||||
})
|
})
|
||||||
"""
|
# return redirect(url_for('routes_mtg_game.game_detail', game_id = game_id))
|
||||||
return redirect(url_for('routes_mtg_game.game_detail', game_id = game_id))
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Bad data received by controller.\n{e}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Bad data received by controller.\n{e}'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@@ -155,13 +153,12 @@ def get_game_players(game_id):
|
|||||||
Helper_App.console_log(f'{_m}: game_id={game_id}')
|
Helper_App.console_log(f'{_m}: game_id={game_id}')
|
||||||
try:
|
try:
|
||||||
datastore = DataStore_MTG()
|
datastore = DataStore_MTG()
|
||||||
datastore_user = DataStore_User()
|
|
||||||
user_session = datastore.get_user_session()
|
user_session = datastore.get_user_session()
|
||||||
|
|
||||||
if not user_session.get_is_logged_in():
|
if not user_session.get_is_logged_in():
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: 'User not logged in'
|
, Model_View_MTG_Base.FLAG_MESSAGE: 'User not logged in'
|
||||||
}), 401
|
}), 401
|
||||||
|
|
||||||
# Get players for this game
|
# Get players for this game
|
||||||
@@ -172,21 +169,21 @@ def get_game_players(game_id):
|
|||||||
|
|
||||||
if len(errors) > 0:
|
if len(errors) > 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error fetching players: {errors}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error fetching players: {errors}'
|
||||||
}), 500
|
}), 500
|
||||||
|
|
||||||
players_json = [p.to_json() for p in players]
|
players_json = [p.to_json() for p in players]
|
||||||
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS
|
||||||
Model_View_MTG_Base.FLAG_DATA: players_json
|
, Model_View_MTG_Base.FLAG_DATA: players_json
|
||||||
})
|
})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
Helper_App.console_log(f'{_m} Error: {str(e)}')
|
Helper_App.console_log(f'{_m} Error: {str(e)}')
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error: {str(e)}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error: {str(e)}'
|
||||||
}), 500
|
}), 500
|
||||||
|
|
||||||
|
|
||||||
@@ -201,8 +198,8 @@ def get_many_game_round(game_id):
|
|||||||
|
|
||||||
if not user_session.get_is_logged_in():
|
if not user_session.get_is_logged_in():
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: 'User not logged in'
|
, Model_View_MTG_Base.FLAG_MESSAGE: 'User not logged in'
|
||||||
}), 401
|
}), 401
|
||||||
|
|
||||||
# Get rounds for this game
|
# Get rounds for this game
|
||||||
@@ -213,21 +210,21 @@ def get_many_game_round(game_id):
|
|||||||
|
|
||||||
if len(errors) > 0:
|
if len(errors) > 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error fetching rounds: {errors}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error fetching rounds: {errors}'
|
||||||
}), 500
|
}), 500
|
||||||
|
|
||||||
rounds_json = [r.to_json() for r in rounds]
|
rounds_json = [r.to_json() for r in rounds]
|
||||||
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS
|
||||||
Model_View_MTG_Base.FLAG_DATA: rounds_json
|
, Model_View_MTG_Base.FLAG_DATA: rounds_json
|
||||||
})
|
})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
Helper_App.console_log(f'{_m} Error: {str(e)}')
|
Helper_App.console_log(f'{_m} Error: {str(e)}')
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error: {str(e)}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error: {str(e)}'
|
||||||
}), 500
|
}), 500
|
||||||
|
|
||||||
|
|
||||||
@@ -242,8 +239,8 @@ def get_many_game_player_damage(game_id):
|
|||||||
|
|
||||||
if not user_session.get_is_logged_in():
|
if not user_session.get_is_logged_in():
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: 'User not logged in'
|
, Model_View_MTG_Base.FLAG_MESSAGE: 'User not logged in'
|
||||||
}), 401
|
}), 401
|
||||||
|
|
||||||
parameters_damage = Parameters_MTG_Game_Round_Player_Damage.get_default(user_session.user_id)
|
parameters_damage = Parameters_MTG_Game_Round_Player_Damage.get_default(user_session.user_id)
|
||||||
@@ -253,21 +250,21 @@ def get_many_game_player_damage(game_id):
|
|||||||
|
|
||||||
if len(errors) > 0:
|
if len(errors) > 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error fetching damage records: {errors}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error fetching damage records: {errors}'
|
||||||
}), 500
|
}), 500
|
||||||
|
|
||||||
damage_records = [d.to_json() for d in damages]
|
damage_records = [d.to_json() for d in damages]
|
||||||
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS
|
||||||
Model_View_MTG_Base.FLAG_DATA: damage_records
|
, Model_View_MTG_Base.FLAG_DATA: damage_records
|
||||||
})
|
})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
Helper_App.console_log(f'{_m} Error: {str(e)}')
|
Helper_App.console_log(f'{_m} Error: {str(e)}')
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error: {str(e)}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error: {str(e)}'
|
||||||
}), 500
|
}), 500
|
||||||
|
|
||||||
|
|
||||||
@@ -295,8 +292,8 @@ def save_game_player():
|
|||||||
players = data.get(Model_View_MTG_Base.FLAG_PLAYER, [])
|
players = data.get(Model_View_MTG_Base.FLAG_PLAYER, [])
|
||||||
if len(players) == 0:
|
if len(players) == 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: 'No players to save.'
|
, Model_View_MTG_Base.FLAG_MESSAGE: 'No players to save.'
|
||||||
})
|
})
|
||||||
|
|
||||||
objs_player = []
|
objs_player = []
|
||||||
@@ -308,18 +305,18 @@ def save_game_player():
|
|||||||
|
|
||||||
if len(errors) > 0:
|
if len(errors) > 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error saving players.\n{Model_View_MTG_Game.convert_list_objects_to_json(errors)}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error saving players.\n{Model_View_MTG_Game.convert_list_objects_to_json(errors)}'
|
||||||
})
|
})
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS if success else Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS if success else Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_DATA: None
|
, Model_View_MTG_Base.FLAG_DATA: None
|
||||||
})
|
})
|
||||||
# return redirect(url_for('routes_mtg_game.game_detail', game_id = game_id))
|
# return redirect(url_for('routes_mtg_game.game_detail', game_id = game_id))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Bad data received by controller.\n{e}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Bad data received by controller.\n{e}'
|
||||||
})
|
})
|
||||||
|
|
||||||
@routes_mtg_game.route(Model_View_MTG_Base.HASH_SAVE_MTG_GAME_ROUND_PLAYER_DAMAGE, methods=['POST'])
|
@routes_mtg_game.route(Model_View_MTG_Base.HASH_SAVE_MTG_GAME_ROUND_PLAYER_DAMAGE, methods=['POST'])
|
||||||
@@ -336,8 +333,8 @@ def save_game_round_player_damage():
|
|||||||
rounds = data.get(Model_View_MTG_Base.FLAG_ROUND, [])
|
rounds = data.get(Model_View_MTG_Base.FLAG_ROUND, [])
|
||||||
if len(rounds) == 0:
|
if len(rounds) == 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: 'No rounds to save.'
|
, Model_View_MTG_Base.FLAG_MESSAGE: 'No rounds to save.'
|
||||||
})
|
})
|
||||||
|
|
||||||
objs_round = []
|
objs_round = []
|
||||||
@@ -349,8 +346,8 @@ def save_game_round_player_damage():
|
|||||||
damages = data.get(Model_View_MTG_Base.FLAG_DAMAGE, [])
|
damages = data.get(Model_View_MTG_Base.FLAG_DAMAGE, [])
|
||||||
if len(damages) == 0:
|
if len(damages) == 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: 'No damages to save.'
|
, Model_View_MTG_Base.FLAG_MESSAGE: 'No damages to save.'
|
||||||
})
|
})
|
||||||
|
|
||||||
objs_damage = []
|
objs_damage = []
|
||||||
@@ -363,16 +360,16 @@ def save_game_round_player_damage():
|
|||||||
|
|
||||||
if len(errors) > 0:
|
if len(errors) > 0:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Error saving round player damages.\n{Model_View_MTG_Game.convert_list_objects_to_json(errors)}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Error saving round player damages.\n{Model_View_MTG_Game.convert_list_objects_to_json(errors)}'
|
||||||
})
|
})
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS if success else Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_SUCCESS if success else Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_DATA: None
|
, Model_View_MTG_Base.FLAG_DATA: None
|
||||||
})
|
})
|
||||||
# return redirect(url_for('routes_mtg_game.game_detail', game_id = game_id))
|
# return redirect(url_for('routes_mtg_game.game_detail', game_id = game_id))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return jsonify({
|
return jsonify({
|
||||||
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE,
|
Model_View_MTG_Base.FLAG_STATUS: Model_View_MTG_Base.FLAG_FAILURE
|
||||||
Model_View_MTG_Base.FLAG_MESSAGE: f'Bad data received by controller.\n{e}'
|
, Model_View_MTG_Base.FLAG_MESSAGE: f'Bad data received by controller.\n{e}'
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ BEGIN
|
|||||||
, change_set_id
|
, change_set_id
|
||||||
)
|
)
|
||||||
VALUES (
|
VALUES (
|
||||||
game_id -- game_id
|
v_game_id -- game_id
|
||||||
, v_notes -- notes
|
, v_notes -- notes
|
||||||
, 1 -- display_order
|
, 1 -- display_order
|
||||||
, TRUE -- active
|
, TRUE -- active
|
||||||
@@ -158,7 +158,6 @@ BEGIN
|
|||||||
, v_user_id -- updated_last_by_user_id
|
, v_user_id -- updated_last_by_user_id
|
||||||
, v_change_set_id -- change_set_id
|
, v_change_set_id -- change_set_id
|
||||||
)
|
)
|
||||||
RETURNING game_id INTO v_game_id
|
|
||||||
;
|
;
|
||||||
ELSE
|
ELSE
|
||||||
UPDATE tcg.public.TCG_MTG_Game GAME
|
UPDATE tcg.public.TCG_MTG_Game GAME
|
||||||
|
|||||||
36
static/dist/js/main.bundle.js
vendored
36
static/dist/js/main.bundle.js
vendored
@@ -1918,7 +1918,7 @@ class PageMtgGame extends TableBasePage {
|
|||||||
damageDisplay.classList.remove('lethal');
|
damageDisplay.classList.remove('lethal');
|
||||||
}
|
}
|
||||||
const latestRoundId = PageMtgGame.getLatestRoundId();
|
const latestRoundId = PageMtgGame.getLatestRoundId();
|
||||||
const damageIndex = damageRecords.findIndex(damageRecord => damage[attrRoundId] == latestRoundId && damageRecord[attrPlayerId] == playerId && damageRecord[attrReceivedFromCommanderPlayerId] == sourceId);
|
const damageIndex = damageRecords.findIndex(damageRecord => damageRecord[attrRoundId] == latestRoundId && damageRecord[attrPlayerId] == playerId && damageRecord[attrReceivedFromCommanderPlayerId] == sourceId);
|
||||||
damageRecords[damageIndex][flagHealthChange] -= amount;
|
damageRecords[damageIndex][flagHealthChange] -= amount;
|
||||||
this.changeLife(playerId // playerId
|
this.changeLife(playerId // playerId
|
||||||
, -amount // amount
|
, -amount // amount
|
||||||
@@ -2058,18 +2058,18 @@ class PageMtgGame extends TableBasePage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
async saveGame() {
|
async saveGame() {
|
||||||
const gameState = {
|
|
||||||
[flagPlayer]: players,
|
|
||||||
[flagRound]: rounds,
|
|
||||||
[flagDamage]: damageRecords
|
|
||||||
};
|
|
||||||
/*
|
/*
|
||||||
|
const gameState = {
|
||||||
|
[flagPlayer]: players
|
||||||
|
, [flagRound]: rounds
|
||||||
|
, [flagDamage]: damageRecords
|
||||||
|
};
|
||||||
if (gameState[flagPlayer].length > 0) {
|
if (gameState[flagPlayer].length > 0) {
|
||||||
localStorage.setItem(`mtgGame_${gameId}`, JSON.stringify(gameState));
|
localStorage.setItem(`mtgGame_${gameId}`, JSON.stringify(gameState));
|
||||||
PageMtgGame.showSaveIndicator();
|
PageMtgGame.showSaveIndicator();
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const comment = 'Save players';
|
const comment = 'Save player damage';
|
||||||
const self = this;
|
const self = this;
|
||||||
API.saveGameRoundPlayerDamages(rounds, damageRecords, null, comment).then(data => {
|
API.saveGameRoundPlayerDamages(rounds, damageRecords, null, comment).then(data => {
|
||||||
if (data[flagStatus] == flagSuccess) {
|
if (data[flagStatus] == flagSuccess) {
|
||||||
@@ -2140,13 +2140,13 @@ class PageMtgGames extends TableBasePage {
|
|||||||
this.hookupTcgGames();
|
this.hookupTcgGames();
|
||||||
}
|
}
|
||||||
hookupTcgGames() {
|
hookupTcgGames() {
|
||||||
PageMtgGames.initGamesPage();
|
this.initGamesPage();
|
||||||
}
|
}
|
||||||
static initGamesPage() {
|
initGamesPage() {
|
||||||
// Initialize form submission
|
// Initialize form submission
|
||||||
const newGameForm = document.getElementById('newGameForm');
|
const newGameForm = document.getElementById('newGameForm');
|
||||||
if (newGameForm) {
|
if (newGameForm) {
|
||||||
newGameForm.addEventListener('submit', PageMtgGames.handleNewGameSubmit);
|
newGameForm.addEventListener('submit', this.handleNewGameSubmit.bind(this)); // () => { this.handleNewGameSubmit.bind(this); });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize filter form
|
// Initialize filter form
|
||||||
@@ -2210,7 +2210,7 @@ class PageMtgGames extends TableBasePage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static async handleNewGameSubmit(e) {
|
async handleNewGameSubmit(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const form = e.target;
|
const form = e.target;
|
||||||
const formData = new FormData(form);
|
const formData = new FormData(form);
|
||||||
@@ -2233,13 +2233,18 @@ class PageMtgGames extends TableBasePage {
|
|||||||
const games = [gameData];
|
const games = [gameData];
|
||||||
const comment = 'Create new game';
|
const comment = 'Create new game';
|
||||||
debugger;
|
debugger;
|
||||||
|
// const self = this;
|
||||||
API.saveGame(games, form, comment).then(data => {
|
API.saveGame(games, form, comment).then(data => {
|
||||||
if (data[flagStatus] == flagSuccess) {
|
if (data[flagStatus] == flagSuccess) {
|
||||||
if (_verbose) {
|
if (_verbose) {
|
||||||
utils_Utils.consoleLogIfNotProductionEnvironment('Records saved!');
|
utils_Utils.consoleLogIfNotProductionEnvironment('Records saved!');
|
||||||
utils_Utils.consoleLogIfNotProductionEnvironment('Data received:', data);
|
utils_Utils.consoleLogIfNotProductionEnvironment('Data received:', data);
|
||||||
}
|
}
|
||||||
this.callFilterTableContent(gameData.game_id);
|
// this.callFilterTableContent(data[attrGameId]); // gameData.game_id
|
||||||
|
const gamePageHash = `${hashPageGame}/${data[attrGameId]}`;
|
||||||
|
let filtersJson = {};
|
||||||
|
this.leave();
|
||||||
|
API.goToHash(gamePageHash, filtersJson);
|
||||||
} else {
|
} else {
|
||||||
utils_Utils.consoleLogIfNotProductionEnvironment("error: " + data[flagMessage]);
|
utils_Utils.consoleLogIfNotProductionEnvironment("error: " + data[flagMessage]);
|
||||||
// OverlayError.show(data[flagMessage]);
|
// OverlayError.show(data[flagMessage]);
|
||||||
@@ -2253,13 +2258,6 @@ class PageMtgGames extends TableBasePage {
|
|||||||
submitBtn.disabled = false;
|
submitBtn.disabled = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
callFilterTableContent(gameId) {
|
|
||||||
const gamePageHash = `${hashPageGame}/${gameId}`;
|
|
||||||
let filtersJson = {};
|
|
||||||
utils_Utils.consoleLogIfNotProductionEnvironment("callFilterTableContent");
|
|
||||||
this.leave();
|
|
||||||
API.goToHash(gamePageHash, filtersJson);
|
|
||||||
}
|
|
||||||
static handleFilterSubmit(e) {
|
static handleFilterSubmit(e) {
|
||||||
// Let the form submit normally - it will reload with query params
|
// Let the form submit normally - it will reload with query params
|
||||||
// You can add client-side filtering here if needed
|
// You can add client-side filtering here if needed
|
||||||
|
|||||||
2
static/dist/js/main.bundle.js.map
vendored
2
static/dist/js/main.bundle.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -438,7 +438,7 @@ export default class PageMtgGame extends TableBasePage {
|
|||||||
|
|
||||||
const latestRoundId = PageMtgGame.getLatestRoundId();
|
const latestRoundId = PageMtgGame.getLatestRoundId();
|
||||||
const damageIndex = damageRecords.findIndex(damageRecord => (
|
const damageIndex = damageRecords.findIndex(damageRecord => (
|
||||||
damage[attrRoundId] == latestRoundId
|
damageRecord[attrRoundId] == latestRoundId
|
||||||
&& damageRecord[attrPlayerId] == playerId
|
&& damageRecord[attrPlayerId] == playerId
|
||||||
&& damageRecord[attrReceivedFromCommanderPlayerId] == sourceId
|
&& damageRecord[attrReceivedFromCommanderPlayerId] == sourceId
|
||||||
));
|
));
|
||||||
@@ -616,18 +616,18 @@ export default class PageMtgGame extends TableBasePage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async saveGame() {
|
async saveGame() {
|
||||||
|
/*
|
||||||
const gameState = {
|
const gameState = {
|
||||||
[flagPlayer]: players
|
[flagPlayer]: players
|
||||||
, [flagRound]: rounds
|
, [flagRound]: rounds
|
||||||
, [flagDamage]: damageRecords
|
, [flagDamage]: damageRecords
|
||||||
};
|
};
|
||||||
/*
|
|
||||||
if (gameState[flagPlayer].length > 0) {
|
if (gameState[flagPlayer].length > 0) {
|
||||||
localStorage.setItem(`mtgGame_${gameId}`, JSON.stringify(gameState));
|
localStorage.setItem(`mtgGame_${gameId}`, JSON.stringify(gameState));
|
||||||
PageMtgGame.showSaveIndicator();
|
PageMtgGame.showSaveIndicator();
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
const comment = 'Save players';
|
const comment = 'Save player damage';
|
||||||
const self = this;
|
const self = this;
|
||||||
API.saveGameRoundPlayerDamages(rounds, damageRecords, null, comment)
|
API.saveGameRoundPlayerDamages(rounds, damageRecords, null, comment)
|
||||||
.then(data => {
|
.then(data => {
|
||||||
|
|||||||
@@ -17,13 +17,13 @@ export default class PageMtgGames extends TableBasePage {
|
|||||||
this.hookupTcgGames();
|
this.hookupTcgGames();
|
||||||
}
|
}
|
||||||
hookupTcgGames() {
|
hookupTcgGames() {
|
||||||
PageMtgGames.initGamesPage();
|
this.initGamesPage();
|
||||||
}
|
}
|
||||||
static initGamesPage() {
|
initGamesPage() {
|
||||||
// Initialize form submission
|
// Initialize form submission
|
||||||
const newGameForm = document.getElementById('newGameForm');
|
const newGameForm = document.getElementById('newGameForm');
|
||||||
if (newGameForm) {
|
if (newGameForm) {
|
||||||
newGameForm.addEventListener('submit', PageMtgGames.handleNewGameSubmit);
|
newGameForm.addEventListener('submit', this.handleNewGameSubmit.bind(this)); // () => { this.handleNewGameSubmit.bind(this); });
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize filter form
|
// Initialize filter form
|
||||||
@@ -92,7 +92,7 @@ export default class PageMtgGames extends TableBasePage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static async handleNewGameSubmit(e) {
|
async handleNewGameSubmit(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
const form = e.target;
|
const form = e.target;
|
||||||
@@ -119,6 +119,7 @@ export default class PageMtgGames extends TableBasePage {
|
|||||||
const games = [gameData];
|
const games = [gameData];
|
||||||
const comment = 'Create new game';
|
const comment = 'Create new game';
|
||||||
debugger;
|
debugger;
|
||||||
|
// const self = this;
|
||||||
API.saveGame(games, form, comment)
|
API.saveGame(games, form, comment)
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data[flagStatus] == flagSuccess) {
|
if (data[flagStatus] == flagSuccess) {
|
||||||
@@ -126,7 +127,11 @@ export default class PageMtgGames extends TableBasePage {
|
|||||||
Utils.consoleLogIfNotProductionEnvironment('Records saved!');
|
Utils.consoleLogIfNotProductionEnvironment('Records saved!');
|
||||||
Utils.consoleLogIfNotProductionEnvironment('Data received:', data);
|
Utils.consoleLogIfNotProductionEnvironment('Data received:', data);
|
||||||
}
|
}
|
||||||
this.callFilterTableContent(gameData.game_id);
|
// this.callFilterTableContent(data[attrGameId]); // gameData.game_id
|
||||||
|
const gamePageHash = `${hashPageGame}/${data[attrGameId]}`;
|
||||||
|
let filtersJson = {};
|
||||||
|
this.leave();
|
||||||
|
API.goToHash(gamePageHash, filtersJson);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Utils.consoleLogIfNotProductionEnvironment("error: " + data[flagMessage]);
|
Utils.consoleLogIfNotProductionEnvironment("error: " + data[flagMessage]);
|
||||||
@@ -144,13 +149,6 @@ export default class PageMtgGames extends TableBasePage {
|
|||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
callFilterTableContent(gameId) {
|
|
||||||
const gamePageHash = `${hashPageGame}/${gameId}`;
|
|
||||||
let filtersJson = {};
|
|
||||||
Utils.consoleLogIfNotProductionEnvironment("callFilterTableContent");
|
|
||||||
this.leave();
|
|
||||||
API.goToHash(gamePageHash, filtersJson);
|
|
||||||
}
|
|
||||||
static handleFilterSubmit(e) {
|
static handleFilterSubmit(e) {
|
||||||
// Let the form submit normally - it will reload with query params
|
// Let the form submit normally - it will reload with query params
|
||||||
// You can add client-side filtering here if needed
|
// You can add client-side filtering here if needed
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="tcg-label" for="startingLife">Starting Life:</label>
|
<label class="tcg-label" for="startingLife">Starting Life:</label>
|
||||||
<input type="number" id="startingLife" class="tcg-input" min="1" value="40">
|
<input type="number" id="startingLife" class="tcg-input" min="1" value="{{ model.game.starting_life }}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="playerSetupSection">
|
<div id="playerSetupSection">
|
||||||
@@ -164,5 +164,4 @@
|
|||||||
var user = {{ model.user.to_json() | tojson | safe }};
|
var user = {{ model.user.to_json() | tojson | safe }};
|
||||||
var users = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.users) | tojson | safe }};
|
var users = {{ model.convert_list_objects_to_dict_json_by_attribute_key_default(model.users) | tojson | safe }};
|
||||||
</script>
|
</script>
|
||||||
{# <script type="module" src="{{ url_for('static', filename='js/pages/tcg/mtg_game.js') }}"></script> #}
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Reference in New Issue
Block a user