Add a test button to the deck list page

This allows testing the starter deck.
This commit is contained in:
Andrio Celos 2023-02-23 11:20:42 +11:00
parent b91e7ca86a
commit bff38964a7
5 changed files with 31 additions and 12 deletions

View File

@ -283,6 +283,7 @@
<h3 id="deckName">Deck</h3>
<div>
<button type="button" id="deckEditButton">Edit</button>
<button type="button" id="deckListTestButton">Test</button>
<button type="button" id="deckExportButton">Export</button>
<button type="button" id="deckRenameButton">Rename</button>
<button type="button" id="deckCopyButton">Copy</button>
@ -337,14 +338,14 @@
<div id="cardList" class="cardListGrid"></div>
</section>
<div id="deckEditorCardListBackdrop"></div>
<dialog id="testStageSelectionDialog">
<h3>Select a stage.</h3>
<form id="testStageSelectionForm" method="dialog">
<div id="testStageSelectionList"></div>
<button type="submit">Cancel</button>
</form>
</dialog>
</div>
<dialog id="testStageSelectionDialog">
<h3>Select a stage.</h3>
<form id="testStageSelectionForm" method="dialog">
<div id="testStageSelectionList"></div>
<button type="submit">Cancel</button>
</form>
</dialog>
<dialog id="errorDialog">
<div id="errorMessage"></div>
<form id="errorDialogForm" method="dialog">

View File

@ -40,6 +40,7 @@ function editDeck() {
deckEditUpdateSize();
cardList.clearFilter();
editingDeck = true;
showPage('deckEdit');
}
@ -177,6 +178,7 @@ function stopEditingDeck() {
deckModified = false;
window.removeEventListener('beforeunload', onBeforeUnload_deckEditor);
}
editingDeck = false;
}
function onBeforeUnload_deckEditor(e: BeforeUnloadEvent) {
@ -199,10 +201,18 @@ function addTestStage(stage: Stage) {
clearChildren(testDeckList);
testDeckCardButtons.splice(0);
for (const el of deckEditCardButtons) {
const card = (el as CardButton).card;
if (card) {
addTestDeckCard(card);
if (editingDeck) {
for (const el of deckEditCardButtons) {
const card = (el as CardButton).card;
if (card) {
addTestDeckCard(card);
}
}
} else if (selectedDeck) {
for (const cardNumber of selectedDeck.cards) {
if (cardNumber > 0 && cardNumber <= cardDatabase.cards!.length) {
addTestDeckCard(cardDatabase.get(cardNumber));
}
}
}

View File

@ -9,6 +9,7 @@ const addDeckControls = document.getElementById('addDeckControls')!;
const newDeckButton = document.getElementById('newDeckButton') as HTMLButtonElement;
const importDeckButton = document.getElementById('importDeckButton') as HTMLButtonElement;
const deckEditButton = document.getElementById('deckEditButton') as HTMLButtonElement;
const deckListTestButton = document.getElementById('deckListTestButton') as HTMLButtonElement;
const deckExportButton = document.getElementById('deckExportButton') as HTMLButtonElement;
const deckRenameButton = document.getElementById('deckRenameButton') as HTMLButtonElement;
const deckCopyButton = document.getElementById('deckCopyButton') as HTMLButtonElement;
@ -133,6 +134,12 @@ deckImportForm.addEventListener('submit', e => {
deckEditButton.addEventListener('click', editDeck);
deckListTestButton.addEventListener('click', _ => {
for (const button of testStageButtons)
button.checked = false;
testStageSelectionDialog.showModal();
});
function selectDeck() {
clearChildren(deckCardListView);
if (selectedDeck == null) return;

View File

@ -326,7 +326,7 @@ testUndoButton.addEventListener('click', _ => {
});
testBackButton.addEventListener('click', _ => {
showPage('deckEdit');
showPage(editingDeck ? 'deckEdit' : 'deckList');
});
testDeckButton.input.addEventListener('input', _ => {

View File

@ -12,6 +12,7 @@ let canPushState = isSecureContext && location.protocol != 'file:';
const decks: Deck[] = [ new Deck('Starter Deck', [ 6, 34, 159, 13, 45, 137, 22, 52, 141, 28, 55, 103, 40, 56, 92 ], true) ];
let selectedDeck: Deck | null = null;
let editingDeck = false;
let deckModified = false;
function delay(ms: number, abortSignal?: AbortSignal) {