Skip to content

Commit 8d5e8cd

Browse files
ozgesolidkeyclaude
andcommitted
Rework range selection, highlights, and terminal UX
Range selection: - Replace toolbar Range button with context menu items - "Range from here" sets start, "Range to here" opens Notes modal - Escape cancels pending range selection Highlights: - Merge single/all highlight into one toggle item - Preserve whitespace in selected text for highlight patterns - Duplicate pattern toggles off existing highlight instead of adding - Replace window.prompt() with proper modal for highlight group naming Bookmarks: - Prevent duplicate bookmarks on the same line Terminal: - Move terminal from sidebar to Quake-style drop-down overlay - Semi-transparent panel with backdrop blur, slides from top - Click outside or Escape to auto-hide - Functional drag-resize from bottom handle - Toggle via Ctrl+` or new toolbar button Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 84ff98b commit 8d5e8cd

3 files changed

Lines changed: 910 additions & 117 deletions

File tree

src/renderer/index.html

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,20 @@
1313
</head>
1414
<body>
1515
<div id="app">
16+
<!-- Title Bar (drag region) -->
17+
<div class="titlebar">
18+
<img src="assets/logo.png" alt="LOGAN" class="titlebar-logo" id="logo" title="Open LOGAN on GitHub">
19+
<span class="titlebar-text">LOGAN</span>
20+
<div class="titlebar-spacer"></div>
21+
<div id="window-controls" class="window-controls hidden">
22+
<button id="btn-win-minimize" class="window-control-btn" title="Minimize">&#x2014;</button>
23+
<button id="btn-win-maximize" class="window-control-btn" title="Maximize">&#9633;</button>
24+
<button id="btn-win-close" class="window-control-btn close" title="Close">&#10005;</button>
25+
</div>
26+
</div>
1627
<!-- Toolbar -->
1728
<div class="toolbar">
1829
<div class="toolbar-left">
19-
<img src="assets/logo.png" alt="LOGAN" class="toolbar-logo" id="logo" title="Open LOGAN on GitHub">
20-
<div class="separator"></div>
2130
<button id="btn-open-file" class="toolbar-btn" title="Open file">
2231
<span class="icon">&#128194;</span> Open File
2332
</button>
@@ -45,6 +54,7 @@
4554
<button id="btn-json-format" class="toolbar-btn" title="Format & highlight JSON in logs">JSON</button>
4655
</div>
4756
<div class="toolbar-right">
57+
<button id="btn-terminal-toggle" class="toolbar-btn small" title="Toggle Terminal (Ctrl+`)">&#9000;</button>
4858
<button id="btn-settings" class="toolbar-btn small" title="Settings">&#9881;</button>
4959
<button id="btn-help" class="toolbar-btn small" title="Keyboard shortcuts & help (F1)">&#9432;</button>
5060
<button id="btn-toggle-sidebar" class="toolbar-btn small" title="Toggle sidebar">&#9776;</button>
@@ -194,29 +204,33 @@
194204
<span class="section-toggle">&#9660;</span>
195205
</div>
196206
<div class="section-content">
207+
<div id="highlight-groups-bar" class="highlight-groups-bar">
208+
<div id="highlight-groups-chips" class="highlight-groups-chips"></div>
209+
<div class="highlight-groups-actions">
210+
<button id="btn-save-highlight-group" class="highlight-group-btn" title="Save current highlights as a group">Save</button>
211+
<button id="btn-delete-highlight-group" class="highlight-group-btn danger" title="Delete active group" style="display:none">Del</button>
212+
</div>
213+
</div>
197214
<div id="highlights-list" class="highlights-content">
198215
<p class="placeholder">No highlight rules</p>
199216
</div>
200217
<button id="btn-add-highlight" class="add-btn">+ Add Highlight Rule</button>
201218
</div>
202219
</div>
203220

204-
<!-- Terminal Section -->
205-
<div class="sidebar-section" id="section-terminal">
206-
<div class="section-header" data-section="terminal">
207-
<span class="section-title">Terminal</span>
208-
<button id="btn-terminal-toggle" class="section-btn" title="Toggle Terminal (Ctrl+`)"></button>
209-
</div>
210-
<div id="terminal-panel" class="terminal-section-content hidden">
211-
<div id="terminal-resize-handle" class="terminal-resize-handle"></div>
212-
<div id="terminal-container" class="terminal-container"></div>
213-
</div>
214-
</div>
215221
</aside>
216222

217223
<!-- Sidebar Resize Handle -->
218224
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
219225

226+
<!-- Terminal Overlay (Quake-style drop-down) -->
227+
<div id="terminal-overlay" class="terminal-overlay hidden">
228+
<div id="terminal-panel" class="terminal-drop-panel">
229+
<div id="terminal-container" class="terminal-container"></div>
230+
<div id="terminal-resize-handle" class="terminal-resize-handle-bottom"></div>
231+
</div>
232+
</div>
233+
220234
<!-- Log Viewer -->
221235
<main class="log-viewer">
222236
<div id="editor-container" class="editor-container">
@@ -289,20 +303,28 @@ <h3>Filter Settings</h3>
289303
<label class="checkbox-label"><input type="checkbox" name="level" value="info" checked> Info</label>
290304
<label class="checkbox-label"><input type="checkbox" name="level" value="debug"> Debug</label>
291305
<label class="checkbox-label"><input type="checkbox" name="level" value="trace"> Trace</label>
306+
<label class="checkbox-label"><input type="checkbox" name="level" value="other" checked> Other</label>
292307
</div>
293308
</div>
294309
<div class="filter-group">
295310
<label for="include-patterns">Include Patterns (one per line)</label>
296311
<textarea id="include-patterns" class="filter-textarea" placeholder="e.g., error\nfailed"></textarea>
312+
<div class="context-lines-row">
313+
<label for="basic-context-lines">Context lines around matches:</label>
314+
<input type="number" id="basic-context-lines" class="context-lines-input" value="0" min="0" max="50">
315+
</div>
297316
</div>
298317
<div class="filter-group">
299318
<label for="exclude-patterns">Exclude Patterns (one per line)</label>
300319
<textarea id="exclude-patterns" class="filter-textarea" placeholder="e.g., heartbeat\nhealth"></textarea>
301320
</div>
302321
<div class="filter-group">
303-
<label class="checkbox-label">
304-
<input type="checkbox" id="collapse-duplicates"> Collapse duplicate lines
305-
</label>
322+
<div class="checkbox-group">
323+
<label class="checkbox-label"><input type="checkbox" id="filter-match-case"> Match Case</label>
324+
<label class="checkbox-label"><input type="checkbox" id="filter-exact-match"> Exact Match</label>
325+
326+
327+
</div>
306328
</div>
307329
</div>
308330
<div class="modal-footer">
@@ -602,6 +624,13 @@ <h3>Settings</h3>
602624
<button class="modal-close" data-modal="settings-modal">&times;</button>
603625
</div>
604626
<div class="modal-body">
627+
<div class="settings-group">
628+
<label for="theme-select">Theme</label>
629+
<select id="theme-select" class="settings-select">
630+
<option value="dark">Dark</option>
631+
<option value="paper">Paper (Eye Comfort)</option>
632+
</select>
633+
</div>
605634
<div class="settings-group">
606635
<label for="scroll-speed">Scroll Speed</label>
607636
<div class="slider-container">
@@ -630,6 +659,13 @@ <h3>Settings</h3>
630659
</label>
631660
<p class="hint">Automatically run analysis when a file is opened</p>
632661
</div>
662+
<div class="settings-group">
663+
<label>Sidebar Sections</label>
664+
<div class="settings-checkboxes" id="sidebar-section-toggles">
665+
<!-- Populated dynamically from renderer.ts -->
666+
</div>
667+
<p class="hint">Toggle visibility of sidebar sections</p>
668+
</div>
633669
</div>
634670
<div class="modal-footer">
635671
<button id="btn-reset-settings" class="secondary-btn">Reset to Defaults</button>

0 commit comments

Comments
 (0)