This commit is contained in:
+31
-4
@@ -667,6 +667,13 @@ async function smartFixMovie(imdbId) {
|
||||
}
|
||||
|
||||
async function smartFixEpisode(imdbId, season, episode) {
|
||||
// Validate parameters
|
||||
if (!imdbId || season === undefined || season === null || episode === undefined || episode === null) {
|
||||
console.error('smartFixEpisode: Invalid parameters:', {imdbId, season, episode});
|
||||
showToast('Invalid episode parameters', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const options = await apiCall(`/api/episodes/${imdbId}/${season}/${episode}/date-options`);
|
||||
showSmartFixModal('episode', options);
|
||||
@@ -694,7 +701,10 @@ function showSmartFixModal(mediaType, options) {
|
||||
if (mediaType === 'movie') {
|
||||
title.textContent = `Fix Date for Movie: ${options.imdb_id}`;
|
||||
} else {
|
||||
title.textContent = `Fix Date for Episode: ${options.imdb_id} S${options.season.toString().padStart(2, '0')}E${options.episode.toString().padStart(2, '0')}`;
|
||||
// Add validation for episode data
|
||||
const season = options.season || 0;
|
||||
const episode = options.episode || 0;
|
||||
title.textContent = `Fix Date for Episode: ${options.imdb_id} S${season.toString().padStart(2, '0')}E${episode.toString().padStart(2, '0')}`;
|
||||
}
|
||||
|
||||
// Build options HTML
|
||||
@@ -910,7 +920,10 @@ function showEnhancedEditModal(mediaType, options, currentDateadded, currentSour
|
||||
if (mediaType === 'movie') {
|
||||
title.textContent = `Edit Movie: ${options.imdb_id}`;
|
||||
} else {
|
||||
title.textContent = `Edit Episode: ${options.imdb_id} S${options.season.toString().padStart(2, '0')}E${options.episode.toString().padStart(2, '0')}`;
|
||||
// Add validation for episode data
|
||||
const season = options.season || 0;
|
||||
const episode = options.episode || 0;
|
||||
title.textContent = `Edit Episode: ${options.imdb_id} S${season.toString().padStart(2, '0')}E${episode.toString().padStart(2, '0')}`;
|
||||
}
|
||||
|
||||
// Build enhanced edit form with date options
|
||||
@@ -1094,6 +1107,13 @@ async function handleEnhancedEditSubmit(event) {
|
||||
}
|
||||
|
||||
async function editEpisode(imdbId, season, episode, dateadded, source) {
|
||||
// Validate parameters
|
||||
if (!imdbId || season === undefined || season === null || episode === undefined || episode === null) {
|
||||
console.error('editEpisode: Invalid parameters:', {imdbId, season, episode});
|
||||
showToast('Invalid episode parameters', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// Load episode options to populate available dates
|
||||
const options = await apiCall(`/api/episodes/${imdbId}/${season}/${episode}/date-options`);
|
||||
@@ -1276,6 +1296,13 @@ Analysis:
|
||||
|
||||
// Episode deletion functionality
|
||||
async function deleteEpisode(imdbId, season, episode) {
|
||||
// Validate parameters
|
||||
if (!imdbId || season === undefined || season === null || episode === undefined || episode === null) {
|
||||
console.error('deleteEpisode: Invalid parameters:', {imdbId, season, episode});
|
||||
showToast('Invalid episode parameters', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
const episodeStr = `S${season.toString().padStart(2, '0')}E${episode.toString().padStart(2, '0')}`;
|
||||
|
||||
// Confirmation dialog
|
||||
@@ -1284,7 +1311,7 @@ async function deleteEpisode(imdbId, season, episode) {
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch(`/database/episode/${imdbId}/${season}/${episode}`, {
|
||||
const response = await fetch(`/api/episodes/${imdbId}/${season}/${episode}`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
@@ -1327,7 +1354,7 @@ async function deleteMovie(imdbId) {
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await fetch(`/database/movie/${imdbId}`, {
|
||||
const response = await fetch(`/api/movies/${imdbId}`, {
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
|
||||
Reference in New Issue
Block a user