notes.html (4417B)
1 {{template "_header" .}} 2 3 <div class="toolbar"> 4 <div class="toolbar-group"> 5 <input type="text" class="search-box" id="search-input" placeholder="Filter notes..."> 6 </div> 7 <div class="toolbar-group"> 8 <label>Filter by Category:</label> 9 <select id="category-filter" onchange="filterByCategory()"> 10 <option value="">All Categories</option> 11 <option value="__uncategorized__">Uncategorized</option> 12 {{range .Data.Categories}} 13 <option value="{{.}}">{{.}}</option> 14 {{end}} 15 </select> 16 </div> 17 <div class="toolbar-group"> 18 <button class="btn btn-secondary" onclick="clearFilters()">Clear</button> 19 <button class="btn btn-secondary" onclick="previewProcessing()">Preview</button> 20 </div> 21 <div class="toolbar-actions"> 22 <button class="btn btn-success" onclick="saveNotes()">Save</button> 23 </div> 24 </div> 25 26 <div id="message" class="message"></div> 27 28 <div class="editor-container"> 29 <div class="editor-pane"> 30 <div class="pane-header">Editor</div> 31 <textarea id="editor" placeholder="Enter your notes here... 32 Format: category > value 33 Example: 34 websites > https://example.com 35 tools > useful-tool 36 ideas > interesting concept">{{.Data.Content}}</textarea> 37 </div> 38 <div class="editor-pane"> 39 <div class="pane-header">Preview</div> 40 <div class="preview-content" id="preview">{{.Data.Content}}</div> 41 </div> 42 </div> 43 44 45 <details><summary>Statistics</summary> 46 <div class="stats-bar"> 47 <div class="stat"> 48 <span class="stat-label">Total Lines:</span> 49 <span class="stat-value" id="total-lines">{{.Data.Stats.total_lines}}</span> 50 </div> 51 <div class="stat"> 52 <span class="stat-label">Categorized:</span> 53 <span class="stat-value" id="categorized-lines">{{.Data.Stats.categorized_lines}}</span> 54 </div> 55 <div class="stat"> 56 <span class="stat-label">Uncategorized:</span> 57 <span class="stat-value" id="uncategorized-lines">{{.Data.Stats.uncategorized}}</span> 58 </div> 59 <div class="stat"> 60 <span class="stat-label">Categories:</span> 61 <span class="stat-value" id="unique-categories">{{.Data.Stats.unique_categories}}</span> 62 </div> 63 </div> 64 </details> 65 66 <details><summary>Sed Operations</summary> 67 <div class="operations-panel"> 68 {{if .Data.SedRules}} 69 <div class="operations-grid"> 70 {{range $index, $rule := .Data.SedRules}} 71 <button class="operation-btn" onclick="applySedRule({{$index}})"> 72 <div class="operation-name">{{$rule.Name}}</div> 73 <div class="operation-desc">{{$rule.Description}}</div> 74 </button> 75 {{end}} 76 </div> 77 {{else}} 78 <div style="padding: 15px; background-color: #f8f9fa; border: 1px solid #ddd; border-radius: 4px; color: #666;"> 79 No sed rules configured. Add sed rules in the <a href="/admin" style="color: #007bff;">Admin → Sed Rules</a> section. 80 </div> 81 {{end}} 82 </details> 83 84 <details><summary>Import and Export</summary> 85 86 <div class="import-form"> 87 <button class="btn btn-primary" onclick="exportNotes()">Export</button> 88 <h4 style="margin-bottom: 10px">Import Notes</h4> 89 <form action="/notes/import" method="POST" enctype="multipart/form-data"> 90 <input type="file" name="file" accept=".txt" required> 91 <label class="checkbox-label"> 92 <input type="checkbox" name="merge" value="true"> 93 <span>Merge with existing notes (instead of replacing)</span> 94 </label> 95 <button type="submit" class="btn btn-primary" style="margin-top: 10px;">Import</button> 96 </form> 97 </div> 98 99 </details> 100 101 </div> 102 103 <script src="/static/notes.js" defer></script> 104 {{template "_footer"}}