Fix episode number arrow cascade and remove Update Ranges button

- Add isUpdatingEpisodeNumbers flag to prevent re-entrant calls
- Arrow buttons now properly cascade shifts to all subsequent episodes
- Remove Update Ranges button and associated code
- Remove DevTools auto-open for cleaner release
- Syntax validation passes
This commit is contained in:
Jarian Cottingham 2026-02-25 00:24:54 -06:00
parent ead563ab54
commit 52678d3c47
3 changed files with 35 additions and 33 deletions

View File

@ -524,7 +524,6 @@
</div> </div>
<div style="display: flex; gap: 10px; margin-top: 10px;"> <div style="display: flex; gap: 10px; margin-top: 10px;">
<button id="update-ranges-btn" class="begin-mapping-btn" style="flex: 1;">Update Ranges</button>
<button id="begin-mapping-btn" class="begin-mapping-btn" style="flex: 1;">Begin Mapping</button> <button id="begin-mapping-btn" class="begin-mapping-btn" style="flex: 1;">Begin Mapping</button>
</div> </div>
</div> </div>

View File

@ -49,8 +49,6 @@ function createWindow() {
}, 1000); }, 1000);
} }
// Open the DevTools.
mainWindow.webContents.openDevTools();
} }
// IPC handler for selecting directory // IPC handler for selecting directory

View File

@ -11,7 +11,6 @@ const showDetailsEl = document.getElementById('show-details');
const progressContainer = document.getElementById('progress-container'); const progressContainer = document.getElementById('progress-container');
const progressText = document.getElementById('progress-text'); const progressText = document.getElementById('progress-text');
const progressCount = document.getElementById('progress-count'); const progressCount = document.getElementById('progress-count');
const updateRangesBtn = document.getElementById('update-ranges-btn');
// Current state // Current state
let currentDirectory = null; let currentDirectory = null;
@ -20,6 +19,7 @@ let currentShow = null;
let currentSeasons = []; let currentSeasons = [];
let currentEpisodes = []; let currentEpisodes = [];
let selectedSeasonEpisodeCount = 0; let selectedSeasonEpisodeCount = 0;
let isUpdatingEpisodeNumbers = false;
// Event Listeners // Event Listeners
selectDirBtn.addEventListener('click', selectDirectory); selectDirBtn.addEventListener('click', selectDirectory);
@ -33,13 +33,7 @@ document.addEventListener('click', function(e) {
} }
}); });
// Add click handler for Update Ranges button
if (updateRangesBtn) {
updateRangesBtn.addEventListener('click', function() {
updateEpisodeNumbers();
checkEpisodeCountMatch();
});
}
// Add click handler for Begin Mapping button // Add click handler for Begin Mapping button
document.getElementById('begin-mapping-btn').addEventListener('click', beginMapping); document.getElementById('begin-mapping-btn').addEventListener('click', beginMapping);
@ -449,6 +443,14 @@ function handleDrop(e) {
} }
function updateEpisodeNumbers() { function updateEpisodeNumbers() {
if (isUpdatingEpisodeNumbers) {
console.log('[updateEpisodeNumbers] Already updating, skipping re-entrant call');
return;
}
isUpdatingEpisodeNumbers = true;
try {
const fileItems = fileListEl.querySelectorAll('.file-item:not(.folder-item)'); const fileItems = fileListEl.querySelectorAll('.file-item:not(.folder-item)');
let episodeNum = 1; let episodeNum = 1;
@ -473,6 +475,9 @@ function updateEpisodeNumbers() {
episodeNum = end + 1; episodeNum = end + 1;
} }
}); });
} finally {
isUpdatingEpisodeNumbers = false;
}
} }
// Make an episode number editable for range editing // Make an episode number editable for range editing