feat: Add NFO configuration settings (Task 7)
- Added NFOConfig model with TMDB API key, auto-create, media downloads, image size settings - Created NFO settings section in UI with form fields and validation - Implemented nfo-config.js module for loading, saving, and testing TMDB connection - Added TMDB API key validation endpoint (POST /api/config/tmdb/validate) - Integrated NFO config into AppConfig and ConfigUpdate models - Added 5 unit tests for NFO config model validation - Added API test for TMDB validation endpoint - All 16 config model tests passing, all 10 config API tests passing - Documented in docs/task7_status.md (100% complete)
This commit is contained in:
@@ -349,6 +349,85 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- NFO Metadata Configuration -->
|
||||
<div class="config-section">
|
||||
<h4 data-text="nfo-config">NFO Metadata Settings</h4>
|
||||
|
||||
<div class="config-item">
|
||||
<label for="tmdb-api-key" data-text="tmdb-api-key">TMDB API Key:</label>
|
||||
<input type="text" id="tmdb-api-key" placeholder="Enter your TMDB API key" class="input-field">
|
||||
<small class="config-hint" data-text="tmdb-api-hint">
|
||||
Required for NFO metadata. Get your API key from <a href="https://www.themoviedb.org/settings/api" target="_blank">TMDB</a>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="config-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" id="nfo-auto-create">
|
||||
<span class="checkbox-custom"></span>
|
||||
<span data-text="nfo-auto-create">Auto-create NFO files</span>
|
||||
</label>
|
||||
<small class="config-hint" data-text="nfo-auto-create-hint">
|
||||
Automatically create NFO metadata when downloading new series
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="config-item">
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" id="nfo-update-on-scan">
|
||||
<span class="checkbox-custom"></span>
|
||||
<span data-text="nfo-update-on-scan">Update NFO on rescan</span>
|
||||
</label>
|
||||
<small class="config-hint" data-text="nfo-update-hint">
|
||||
Refresh existing NFO files when rescanning library
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="config-item">
|
||||
<h5 data-text="media-downloads">Media File Downloads</h5>
|
||||
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" id="nfo-download-poster" checked>
|
||||
<span class="checkbox-custom"></span>
|
||||
<span data-text="download-poster">Download poster.jpg</span>
|
||||
</label>
|
||||
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" id="nfo-download-logo" checked>
|
||||
<span class="checkbox-custom"></span>
|
||||
<span data-text="download-logo">Download logo.png</span>
|
||||
</label>
|
||||
|
||||
<label class="checkbox-label">
|
||||
<input type="checkbox" id="nfo-download-fanart" checked>
|
||||
<span class="checkbox-custom"></span>
|
||||
<span data-text="download-fanart">Download fanart.jpg</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="config-item">
|
||||
<label for="nfo-image-size" data-text="image-size">Image Quality:</label>
|
||||
<select id="nfo-image-size" class="input-field">
|
||||
<option value="original">Original (Best Quality)</option>
|
||||
<option value="w500">Medium (w500)</option>
|
||||
</select>
|
||||
<small class="config-hint" data-text="image-size-hint">
|
||||
Original provides best quality but larger file sizes
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div class="config-actions">
|
||||
<button id="save-nfo-config" class="btn btn-primary">
|
||||
<i class="fas fa-save"></i>
|
||||
<span data-text="save-nfo-config">Save NFO Settings</span>
|
||||
</button>
|
||||
<button id="test-tmdb-connection" class="btn btn-secondary">
|
||||
<i class="fas fa-plug"></i>
|
||||
<span data-text="test-tmdb">Test TMDB Connection</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Configuration Management -->
|
||||
<div class="config-section">
|
||||
<h4 data-text="config-management">Configuration Management</h4>
|
||||
@@ -463,6 +542,7 @@
|
||||
<script src="/static/js/index/logging-config.js"></script>
|
||||
<script src="/static/js/index/advanced-config.js"></script>
|
||||
<script src="/static/js/index/main-config.js"></script>
|
||||
<script src="/static/js/index/nfo-config.js"></script>
|
||||
<script src="/static/js/index/config-manager.js"></script>
|
||||
<script src="/static/js/index/socket-handler.js"></script>
|
||||
<script src="/static/js/index/app-init.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user