Compare commits

..

No commits in common. "a373410b894a66c8ea977f674c5c3febf2937bf9" and "0ae0f8bb7dd53d39d31587248a455506bc5f9f8e" have entirely different histories.

5 changed files with 16 additions and 81 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{
"name": "twitch-vod-manager",
"version": "4.6.34",
"version": "4.6.33",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "twitch-vod-manager",
"version": "4.6.34",
"version": "4.6.33",
"license": "MIT",
"dependencies": {
"axios": "^1.6.0",

View File

@ -1,6 +1,6 @@
{
"name": "twitch-vod-manager",
"version": "4.6.34",
"version": "4.6.33",
"description": "Twitch VOD Manager - Download Twitch VODs easily",
"main": "dist/main.js",
"author": "xRangerDE",

View File

@ -115,24 +115,24 @@
<!-- Events Viewer Modal -->
<div class="modal-overlay" id="eventsViewerModal" role="dialog" aria-modal="true" aria-labelledby="eventsViewerTitle">
<div class="modal viewer-modal viewer-modal-events">
<div class="modal" style="max-width: 700px; max-height: 80vh; display:flex; flex-direction:column;">
<button class="modal-close modal-close-localizable" aria-label="Close" onclick="closeEventsViewer()">x</button>
<h2 id="eventsViewerTitle" class="viewer-modal-title"></h2>
<div id="eventsViewerStatus" class="viewer-modal-status"></div>
<div id="eventsViewerList" class="viewer-modal-list"></div>
<h2 id="eventsViewerTitle" style="margin-top:0;"></h2>
<div id="eventsViewerStatus" style="color:var(--text-secondary); font-size:12px; margin-bottom:8px;"></div>
<div id="eventsViewerList" style="flex:1; overflow-y:auto; background: var(--bg-main); border:1px solid var(--border-soft); border-radius:6px; padding:8px;"></div>
</div>
</div>
<!-- Chat Replay Viewer Modal -->
<div class="modal-overlay" id="chatViewerModal" role="dialog" aria-modal="true" aria-labelledby="chatViewerTitle">
<div class="modal viewer-modal viewer-modal-chat">
<div class="modal" style="max-width: 800px; height: 80vh; display:flex; flex-direction:column;">
<button class="modal-close modal-close-localizable" aria-label="Close" onclick="closeChatViewer()">x</button>
<h2 id="chatViewerTitle" class="viewer-modal-title"></h2>
<div class="viewer-modal-filter-row">
<input type="text" id="chatViewerFilter" class="viewer-modal-filter-input" placeholder="Filter..." oninput="onChatViewerFilterChange()">
<span id="chatViewerStatus" class="viewer-modal-status viewer-modal-status-inline"></span>
<h2 id="chatViewerTitle" style="margin-top:0;"></h2>
<div class="form-row" style="margin-bottom:8px; gap:8px; flex-wrap:wrap; align-items:center;">
<input type="text" id="chatViewerFilter" placeholder="Filter..." oninput="onChatViewerFilterChange()" style="flex:1; min-width:160px; background: var(--bg-card); border:1px solid var(--border-soft); border-radius:6px; padding:6px 10px; color:var(--text); font-size:13px;">
<span id="chatViewerStatus" style="color:var(--text-secondary); font-size:12px;"></span>
</div>
<div id="chatViewerList" class="viewer-modal-list viewer-modal-list-chat"></div>
<div id="chatViewerList" style="flex:1; overflow-y:auto; background: var(--bg-main); border:1px solid var(--border-soft); border-radius:6px; padding:8px; font-family: 'Consolas', monospace; font-size: 12px;"></div>
</div>
</div>

View File

@ -1,3 +1,5 @@
let lastArchiveStatsScannedAt = '';
// Trivial property-access wrapper. The codebase's renderer relies on
// HTML-string rendering throughout (queue items, settings cards, etc.),
// and all dynamic inputs are passed through escapeStatsHtml below — no
@ -18,6 +20,7 @@ async function refreshArchiveStats(): Promise<void> {
try {
const stats = await window.api.getArchiveStats();
renderArchiveStats(stats);
lastArchiveStatsScannedAt = stats.scannedAt;
} catch (e) {
const summary = document.getElementById('statsSummaryGrid');
if (summary) summary.textContent = `Fehler: ${String(e)}`;

View File

@ -324,74 +324,6 @@ body {
margin-top: 10px;
}
/* ============================================
EVENTS / CHAT VIEWER MODALS shared structure
============================================
Both viewers used to roll their own inline-styled list container
+ status row. Extracted into a small shared family so the look
stays consistent if either one is touched independently later. */
.viewer-modal {
display: flex;
flex-direction: column;
}
.viewer-modal-events {
max-width: 700px;
max-height: 80vh;
}
.viewer-modal-chat {
max-width: 800px;
height: 80vh;
}
.viewer-modal-title {
margin-top: 0;
}
.viewer-modal-status {
color: var(--text-secondary);
font-size: 12px;
margin-bottom: 8px;
}
.viewer-modal-status-inline {
margin-bottom: 0;
}
.viewer-modal-list {
flex: 1;
overflow-y: auto;
background: var(--bg-main);
border: 1px solid var(--border-soft);
border-radius: 6px;
padding: 8px;
}
.viewer-modal-list-chat {
font-family: 'Consolas', 'Segoe UI Mono', monospace;
font-size: 12px;
}
.viewer-modal-filter-row {
display: flex;
margin-bottom: 8px;
gap: 8px;
flex-wrap: wrap;
align-items: center;
}
.viewer-modal-filter-input {
flex: 1;
min-width: 160px;
background: var(--bg-card);
border: 1px solid var(--border-soft);
border-radius: 6px;
padding: 6px 10px;
color: var(--text);
font-size: 13px;
}
.streamer-item .remove {
margin-left: auto;
opacity: 0;