feat: add manual TMDB/TVDB ID entry for failed lookups
- Add PATCH /api/anime/{key}/metadata-ids endpoint to update IDs
- Add POST /api/anime/{key}/refresh-nfo endpoint to force NFO regeneration
- Add Edit Metadata IDs modal in frontend
- Add showEditMetadataModal, saveMetadataIds, refreshSeriesNfo JS functions
- Add edit-metadata-btn to series cards with database icon
- IDs validated as positive integers or null
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -640,6 +640,88 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Edit Key Modal -->
|
||||
<div id="edit-key-modal" class="modal hidden">
|
||||
<div class="modal-overlay"></div>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 data-text="edit-key-title">Edit Series Key</h3>
|
||||
<button id="close-edit-key" class="btn btn-icon">
|
||||
<i class="fas fa-times"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="config-item">
|
||||
<label data-text="current-folder">Folder Name:</label>
|
||||
<span id="edit-key-folder" class="config-value"></span>
|
||||
</div>
|
||||
<div class="config-item">
|
||||
<label for="edit-key-input" data-text="new-key">New Key:</label>
|
||||
<input type="text" id="edit-key-input" class="input-field"
|
||||
placeholder="e.g., attack-on-titan" minlength="2">
|
||||
<small class="config-hint" data-text="key-format-hint">
|
||||
URL-safe key (alphanumeric, hyphens, underscores)
|
||||
</small>
|
||||
</div>
|
||||
<div id="edit-key-error" class="config-error hidden"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="save-edit-key" class="btn btn-primary">
|
||||
<i class="fas fa-save"></i>
|
||||
<span data-text="save">Save</span>
|
||||
</button>
|
||||
<button id="cancel-edit-key" class="btn btn-secondary">
|
||||
<span data-text="cancel">Cancel</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Edit Metadata IDs Modal -->
|
||||
<div id="edit-metadata-modal" class="modal hidden">
|
||||
<div class="modal-overlay"></div>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 data-text="edit-metadata-title">Edit Metadata IDs</h3>
|
||||
<button id="close-edit-metadata" class="btn btn-icon">
|
||||
<i class="fas fa-times"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="config-item">
|
||||
<label data-text="series-name">Series:</label>
|
||||
<span id="edit-metadata-series-name" class="config-value"></span>
|
||||
</div>
|
||||
<div class="config-item">
|
||||
<label for="edit-metadata-tmdb" data-text="tmdb-id">TMDB ID:</label>
|
||||
<input type="number" id="edit-metadata-tmdb" class="input-field"
|
||||
placeholder="e.g., 12345" min="1" step="1">
|
||||
<small class="config-hint" data-text="tmdb-id-hint">
|
||||
Leave blank to clear. Find IDs at themoviedb.org
|
||||
</small>
|
||||
</div>
|
||||
<div class="config-item">
|
||||
<label for="edit-metadata-tvdb" data-text="tvdb-id">TVDB ID:</label>
|
||||
<input type="number" id="edit-metadata-tvdb" class="input-field"
|
||||
placeholder="e.g., 67890" min="1" step="1">
|
||||
<small class="config-hint" data-text="tvdb-id-hint">
|
||||
Leave blank to clear. Find IDs at thetvdb.com
|
||||
</small>
|
||||
</div>
|
||||
<div id="edit-metadata-error" class="config-error hidden"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="save-edit-metadata" class="btn btn-primary">
|
||||
<i class="fas fa-save"></i>
|
||||
<span data-text="save-refresh">Save & Refresh NFO</span>
|
||||
</button>
|
||||
<button id="cancel-edit-metadata" class="btn btn-secondary">
|
||||
<span data-text="cancel">Cancel</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Toast notifications -->
|
||||
<div id="toast-container" class="toast-container"></div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user