fix: trash duplicate path, journal tabs, today undefined, mouse back, inbox search
- Trash: removed duplicate fsPath display, folders/files open by clicking icon/name - Trash: removed separate 'Open' button, only restore/delete right-aligned - Trash: added ReadTrashFileContent binding + preview for files - Trash: breadcrumb path under title, compact date display - Journal: split into 'Предложения' + 'Журнал работы' tabs - Journal: suggestions tab opens by default - Today: fixed undefined in feed (null-guard on eventType/title) - Today: improved event type label readability (blue badge style) - Today: folder_deleted clicks navigate to trash - Mouse Back: added mouseup fallback for Wails compat, handle button 3/4 - SearchNodes: case-insensitive with LOWER() - Inbox assign: added search hint placeholder
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
export let onDeleteSuggestion = (s) => {}
|
||||
export let onOpenNodeFolder = (id) => {}
|
||||
export let onOpenInboxArtifact = (item) => {}
|
||||
export let onOpenTrashNode = (nodeId) => {}
|
||||
|
||||
let activeTab = 'feed'
|
||||
|
||||
@@ -47,6 +48,7 @@
|
||||
}
|
||||
|
||||
function feedItemLabel(ev) {
|
||||
if (!ev || !ev.eventType) return ''
|
||||
return eventLabel(ev.eventType)
|
||||
}
|
||||
|
||||
@@ -64,14 +66,15 @@
|
||||
}
|
||||
|
||||
function handleFeedTitleClick(ev) {
|
||||
if (!ev || !ev.eventType) return
|
||||
if (ev.eventType === 'folder_deleted') {
|
||||
onOpenNodeById(ev.nodeId)
|
||||
if (ev.targetId) onOpenTrashNode(ev.targetId)
|
||||
return
|
||||
}
|
||||
if (['file_added','file_deleted','file_renamed','file_copied','file_moved','folder_added','folder_renamed','folder_moved'].includes(ev.eventType)) {
|
||||
if (ev.targetId) {
|
||||
onOpenActivityTarget(ev)
|
||||
} else {
|
||||
} else if (ev.nodeId) {
|
||||
onOpenNodeById(ev.nodeId)
|
||||
}
|
||||
return
|
||||
@@ -79,20 +82,22 @@
|
||||
if (['note_created','note_updated','note_deleted'].includes(ev.eventType)) {
|
||||
if (ev.targetType === 'note' && ev.targetId) {
|
||||
onOpenActivityTarget(ev)
|
||||
} else {
|
||||
} else if (ev.nodeId) {
|
||||
onOpenNodeById(ev.nodeId)
|
||||
}
|
||||
return
|
||||
}
|
||||
if (ev.eventType === 'worklog_added') {
|
||||
onOpenNodeById(ev.nodeId)
|
||||
if (ev.nodeId) onOpenNodeById(ev.nodeId)
|
||||
return
|
||||
}
|
||||
if (['action_created','action_done'].includes(ev.eventType)) {
|
||||
onOpenNodeById(ev.nodeId)
|
||||
if (ev.nodeId) onOpenNodeById(ev.nodeId)
|
||||
return
|
||||
}
|
||||
onOpenActivityEvent(ev)
|
||||
if (ev.id || ev.nodeId) {
|
||||
onOpenActivityEvent(ev)
|
||||
}
|
||||
}
|
||||
|
||||
function feedItemSubtitle(ev) {
|
||||
@@ -186,9 +191,9 @@
|
||||
<span class="feed-icon">{feedItemIcon(ev.eventType)}</span>
|
||||
<div class="feed-body">
|
||||
<div class="feed-title-line">
|
||||
<span class="feed-type">{feedItemLabel(ev.eventType)}</span>
|
||||
<span class="feed-type">{feedItemLabel(ev)}</span>
|
||||
<span class="feed-colon">:</span>
|
||||
<span class="feed-title link-btn">{ev.title}</span>
|
||||
<span class="feed-title link-btn">{ev.title || ''}</span>
|
||||
</div>
|
||||
<div class="feed-meta-line">
|
||||
{#if feedItemSubtitle(ev)}
|
||||
@@ -365,7 +370,7 @@
|
||||
.feed-title:hover { text-decoration: underline; }
|
||||
.feed-meta-line { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
|
||||
.feed-path { font-size: 11px; color: #8ea0d8; max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
||||
.feed-event-type { font-size: 10px; color: #555; background: #1e1e2e; padding: 1px 6px; border-radius: 8px; }
|
||||
.feed-event-type { font-size: 10px; color: #a5b4fc; background: rgba(99,102,241,0.1); padding: 2px 8px; border-radius: 8px; font-weight: 500; }
|
||||
.feed-time { font-size: 11px; color: #555; margin-left: auto; flex-shrink: 0; }
|
||||
.feed-nav-btn { background: none; border: none; color: #555; cursor: pointer; padding: 4px; border-radius: 4px; flex-shrink: 0; margin-top: 2px; }
|
||||
.feed-nav-btn:hover { color: #a5b4fc; background: #1e1e30; }
|
||||
|
||||
Reference in New Issue
Block a user