diff --git a/nfoguard-web/static/css/styles.css b/nfoguard-web/static/css/styles.css index ad39481..79e36fb 100644 --- a/nfoguard-web/static/css/styles.css +++ b/nfoguard-web/static/css/styles.css @@ -886,4 +886,194 @@ body { .d-block { display: block; } .d-flex { display: flex; } .justify-content-between { justify-content: space-between; } -.align-items-center { align-items: center; } \ No newline at end of file +.align-items-center { align-items: center; } + +/* Database Admin Tools Styles */ +.query-results { + margin-top: 1rem; + padding: 1rem; + background: #f8f9fa; + border: 1px solid var(--border-color); + border-radius: 0.375rem; +} + +.query-info { + padding: 1rem; + border-radius: 0.375rem; + margin-bottom: 1rem; + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; + font-size: 0.875rem; +} + +.query-info.success { + background-color: #d4edda; + border: 1px solid #c3e6cb; + color: #155724; +} + +.query-info.error { + background-color: #f8d7da; + border: 1px solid #f5c6cb; + color: #721c24; +} + +.results-table { + width: 100%; + border-collapse: collapse; + font-size: 0.875rem; + background: white; + border-radius: 0.375rem; + overflow: hidden; + box-shadow: var(--shadow); +} + +.results-table th { + background-color: var(--dark-color); + color: white; + padding: 0.75rem; + text-align: left; + font-weight: 600; +} + +.results-table td { + padding: 0.75rem; + border-bottom: 1px solid var(--border-color); + vertical-align: top; +} + +.results-table tr:hover { + background-color: #f8f9fa; +} + +.results-table td em { + color: var(--text-muted); + font-style: italic; +} + +.table-container { + max-height: 400px; + overflow-y: auto; + border: 1px solid var(--border-color); + border-radius: 0.375rem; +} + +.admin-tools { + display: flex; + flex-direction: column; + gap: 0.5rem; +} + +.admin-tools .btn { + text-align: left; + justify-content: flex-start; +} + +.admin-results { + margin-top: 1rem; + padding: 1rem; + background: #f8f9fa; + border: 1px solid var(--border-color); + border-radius: 0.375rem; +} + +.scan-summary, +.fix-summary { + padding: 1rem; + border-radius: 0.375rem; + margin-bottom: 1rem; +} + +.scan-summary { + background-color: #e7f3ff; + border: 1px solid #b3d9ff; +} + +.fix-summary.success { + background-color: #d4edda; + border: 1px solid #c3e6cb; + color: #155724; +} + +.fix-errors { + background-color: #fff3cd; + border: 1px solid #ffeaa7; + padding: 1rem; + border-radius: 0.375rem; + margin-top: 1rem; +} + +.fix-errors ul { + margin: 0.5rem 0 0 1rem; +} + +.missing-episodes { + margin-top: 1rem; +} + +.loading { + text-align: center; + padding: 2rem; + color: var(--text-muted); + font-style: italic; +} + +.loading::before { + content: "⏳ "; +} + +.success { + background-color: #d4edda; + border: 1px solid #c3e6cb; + color: #155724; + padding: 1rem; + border-radius: 0.375rem; + margin: 1rem 0; +} + +.error { + background-color: #f8d7da; + border: 1px solid #f5c6cb; + color: #721c24; + padding: 1rem; + border-radius: 0.375rem; + margin: 1rem 0; +} + +/* Make text areas more distinctive */ +textarea { + font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace; + font-size: 0.875rem; + resize: vertical; +} + +/* Button variations for admin tools */ +.btn.btn-info { + background-color: #17a2b8; + border-color: #17a2b8; + color: white; +} + +.btn.btn-info:hover { + background-color: #138496; + border-color: #117a8b; +} + +/* Responsive adjustments for admin tools */ +@media (max-width: 768px) { + .table-container { + max-height: 300px; + } + + .results-table { + font-size: 0.75rem; + } + + .results-table th, + .results-table td { + padding: 0.5rem; + } + + .admin-tools { + gap: 0.75rem; + } +} \ No newline at end of file diff --git a/nfoguard-web/static/index.html b/nfoguard-web/static/index.html index f434527..365a6fb 100644 --- a/nfoguard-web/static/index.html +++ b/nfoguard-web/static/index.html @@ -390,6 +390,82 @@ Refresh Stats + + +
Execute custom SQL queries on the NFOGuard database
+ + +Fix missing <dateadded> elements in NFO files
+Advanced database management tools
+