Changeset 0.28.3.1 (#188)

This commit is contained in:
2026-03-14 14:43:55 +00:00
parent f68a58b073
commit 205a770c74
46 changed files with 720 additions and 406 deletions

View File

@@ -66,9 +66,9 @@ function _noteListItem(note, isSearch) {
<div class="note-item ${_selectedNoteIds.has(note.id) ? 'selected' : ''}" data-note-id="${note.id}">
<div class="note-select-col" style="display:${_notesSelectMode ? '' : 'none'}">
<input type="checkbox" class="note-checkbox" data-id="${note.id}" ${checked}
onclick="event.stopPropagation(); _toggleNoteSelect('${note.id}', this.checked)">
data-action="_toggleNoteSelectCb" data-args='${JSON.stringify([note.id])}' data-pass-el">
</div>
<div class="note-content-col" onclick="${_notesSelectMode ? `_toggleNoteSelect('${note.id}')` : `openNoteEditor('${note.id}')`}">
<div class="note-content-col" data-action="_noteItemClick" data-args='${JSON.stringify([note.id])}'">
<div class="note-item-header">
<span class="note-item-title">${esc(note.title)}</span>
<span class="note-item-time">${time}</span>
@@ -422,7 +422,7 @@ async function _loadBacklinks(noteId) {
countEl.textContent = links.length;
container.style.display = links.length > 0 ? '' : 'none';
listEl.innerHTML = links.map(n => `
<div class="note-backlink-item" onclick="openNoteEditor('${n.id}')">
<div class="note-backlink-item" data-action="openNoteEditor" data-args='${JSON.stringify([n.id])}'">
<span class="note-backlink-title">${esc(n.title)}</span>
<span class="note-backlink-folder text-muted">${esc(n.folder_path)}</span>
</div>
@@ -454,12 +454,12 @@ function _renderWikilinksInReadMode(containerEl) {
const tid = `transclusion-${++transclusionId}`;
return `<div class="transclusion-embed" id="${tid}" data-title="${esc(titleTrimmed)}">
<div class="transclusion-header">
<span class="wikilink-chip wikilink-transclusion" onclick="_navigateToLinkedNote('${esc(titleTrimmed)}')" title="Open: ${esc(titleTrimmed)}">↗ ${esc(displayText)}</span>
<span class="wikilink-chip wikilink-transclusion" data-action="_navigateToLinkedNote" data-args='${JSON.stringify([esc(titleTrimmed)])}'" title="Open: ${esc(titleTrimmed)}">↗ ${esc(displayText)}</span>
</div>
<div class="transclusion-content"><span class="text-muted">Loading…</span></div>
</div>`;
}
return `<span class="wikilink-chip" onclick="_navigateToLinkedNote('${esc(titleTrimmed)}')" title="Link: ${esc(titleTrimmed)}">${esc(displayText)}</span>`;
return `<span class="wikilink-chip" data-action="_navigateToLinkedNote" data-args='${JSON.stringify([esc(titleTrimmed)])}'" title="Link: ${esc(titleTrimmed)}">${esc(displayText)}</span>`;
}
);
containerEl.innerHTML = rendered;
@@ -818,7 +818,7 @@ function _registerNotesPanel() {
</div>
<!-- Backlinks -->
<div id="noteBacklinks" class="note-backlinks" style="display:none;">
<div class="note-backlinks-header" onclick="toggleBacklinks()">
<div class="note-backlinks-header" data-action="toggleBacklinks">
Backlinks <span id="noteBacklinksCount" class="badge">0</span>
</div>
<div id="noteBacklinksList" class="note-backlinks-list"></div>
@@ -832,8 +832,8 @@ function _registerNotesPanel() {
<span id="graphNodeCount">0</span> notes · <span id="graphEdgeCount">0</span> links
</span>
<div style="flex:1"></div>
<button class="btn-small" onclick="_graphToggleOrphans()" title="Toggle orphan nodes">Orphans</button>
<button class="btn-small" onclick="_graphResetZoom()" title="Reset zoom">Reset</button>
<button class="btn-small" data-action="_graphToggleOrphans" title="Toggle orphan nodes">Orphans</button>
<button class="btn-small" data-action="_graphResetZoom" title="Reset zoom">Reset</button>
</div>
<canvas id="noteGraphCanvas" style="width:100%;display:block;"></canvas>
</div>`;
@@ -944,17 +944,33 @@ function _initNotesListeners() {
// All wiring moved into _registerNotesPanel().
}
// ── Wrappers for compound onclick expressions ──
// Checkbox toggle: reads .checked from the clicked element
function _toggleNoteSelectCb(el, noteId) {
_toggleNoteSelect(noteId, el.checked);
}
// Note list item click: mode-dependent dispatch
function _noteItemClick(noteId) {
if (_notesSelectMode) {
_toggleNoteSelect(noteId);
} else {
openNoteEditor(noteId);
}
}
// ── Exports ─────────────────────────────────
window._currentNote = _currentNote;
window._editingNoteId = _editingNoteId;
window._initNotesListeners = _initNotesListeners;
window._registerNotesPanel = _registerNotesPanel;
window.deleteNote = deleteNote;
window.openNoteEditor = openNoteEditor;
window.openNotes = openNotes;
window.saveMessageToNote = saveMessageToNote;
window.saveNote = saveNote;
window._toggleNoteSelect = _toggleNoteSelect;
window._navigateToLinkedNote = _navigateToLinkedNote;
window.toggleBacklinks = toggleBacklinks;
sb.register('_currentNote', _currentNote);
sb.register('_editingNoteId', _editingNoteId);
sb.register('_initNotesListeners', _initNotesListeners);
sb.register('_registerNotesPanel', _registerNotesPanel);
sb.register('deleteNote', deleteNote);
sb.register('openNoteEditor', openNoteEditor);
sb.register('openNotes', openNotes);
sb.register('saveMessageToNote', saveMessageToNote);
sb.register('saveNote', saveNote);
sb.register('_toggleNoteSelect', _toggleNoteSelect);
sb.register('_navigateToLinkedNote', _navigateToLinkedNote);
sb.register('toggleBacklinks', toggleBacklinks);
sb.register('_toggleNoteSelectCb', _toggleNoteSelectCb);
sb.register('_noteItemClick', _noteItemClick);
})();