feat: restore Wolai workspace navigation and assets
This commit is contained in:
@@ -221,6 +221,8 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
const loadKnowledgeRagStatus = (...args) => sidebarPageSettings.loadKnowledgeRagStatus(...args);
|
||||
const openKnowledgeRagDashboard = (...args) => sidebarPageSettings.openKnowledgeRagDashboard(...args);
|
||||
const createKnowledgeRagKnowledgeBase = (...args) => sidebarPageSettings.createKnowledgeRagKnowledgeBase(...args);
|
||||
const deleteKnowledgeRagKnowledgeBase = (...args) => sidebarPageSettings.deleteKnowledgeRagKnowledgeBase(...args);
|
||||
const toggleKnowledgeRagCreateCard = (...args) => sidebarPageSettings.toggleKnowledgeRagCreateCard(...args);
|
||||
const setActiveKnowledgeRagDetailTab = (...args) => sidebarPageSettings.setActiveKnowledgeRagDetailTab(...args);
|
||||
const performKnowledgeRagSearch = (...args) => sidebarPageSettings.performKnowledgeRagSearch(...args);
|
||||
const saveKnowledgeRagSearchParams = (...args) => sidebarPageSettings.saveKnowledgeRagSearchParams(...args);
|
||||
@@ -367,6 +369,7 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
openPageTreeContextMenu: (...args) => openPageTreeContextMenu(...args),
|
||||
updateTitleEverywhere: (...args) => updateTitleEverywhere(...args),
|
||||
});
|
||||
const selectSidebarPageTreeDocument = (...args) => sidebarPageTree.selectSidebarPageTreeDocument(...args);
|
||||
const fileTreePageTitle = (...args) => sidebarTreeLiveApply.fileTreePageTitle(...args);
|
||||
const isFileTreePageRow = (...args) => sidebarTreeLiveApply.isFileTreePageRow(...args);
|
||||
const normalizeFileTreePageRenameTitle = (...args) => sidebarTreeLiveApply.normalizeFileTreePageRenameTitle(...args);
|
||||
@@ -476,6 +479,22 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
return true;
|
||||
}
|
||||
|
||||
function knowledgeHostUrl(options) {
|
||||
options = options || {};
|
||||
var knowledgeUrl = new URL('/knowledge', window.location.origin);
|
||||
var workspaceId = String(options.workspaceId || currentWorkspaceId() || resolveWorkspaceId(document.body) || '').trim();
|
||||
var sourceKind = String(options.sourceKind || currentSourceKind() || '').trim();
|
||||
var rootUri = String(options.rootUri || currentRootUri() || '').trim();
|
||||
var treeView = String(options.treeView || activeSidebarTreeMode() || '').trim();
|
||||
var fileTreeScope = String(options.fileTreeScope || currentFileTreeScope() || '').trim();
|
||||
if (workspaceId) knowledgeUrl.searchParams.set('workspaceId', workspaceId);
|
||||
if (sourceKind) knowledgeUrl.searchParams.set('sourceKind', sourceKind);
|
||||
if (rootUri) knowledgeUrl.searchParams.set('rootUri', rootUri);
|
||||
if (treeView) knowledgeUrl.searchParams.set('treeView', treeView);
|
||||
if (fileTreeScope) knowledgeUrl.searchParams.set('fileTreeScope', fileTreeScope);
|
||||
return knowledgeUrl.pathname + knowledgeUrl.search;
|
||||
}
|
||||
|
||||
function currentTopbarTitle() {
|
||||
var title = document.querySelector('[data-page-title-current="true"]');
|
||||
return title && title.textContent ? title.textContent.trim() : '无标题';
|
||||
@@ -2058,6 +2077,7 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
openEditorAttachmentEditTab: (...args) => openEditorAttachmentEditTab(...args),
|
||||
openEditorAttachmentNewWindow: (...args) => openEditorAttachmentNewWindow(...args),
|
||||
openLocalResourceInActiveTab: (...args) => openLocalResourceInActiveTab(...args),
|
||||
knowledgeHostUrl,
|
||||
refreshLocalFolderSidebarSnapshot,
|
||||
removeFileTreeAssetRow,
|
||||
revealFileTreeResource,
|
||||
@@ -2162,7 +2182,7 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
'<span class="wolai-search-sort-control"><span>按创建时间</span><button type="button" class="wolai-search-sort-value" data-search-sort="created" aria-label="按创建时间范围">所有</button></span>' +
|
||||
'</div>' +
|
||||
'<div class="wolai-search-options-right">' +
|
||||
'<span class="wolai-search-switch-control"><span>全盘知识库</span><button type="button" class="wolai-search-switch is-on" data-search-switch="knowledge" role="switch" aria-checked="true" aria-label="全盘知识库检索"></button></span>' +
|
||||
'<span class="wolai-search-switch-control"><span>全盘知识库</span><button type="button" class="wolai-search-switch" data-search-switch="knowledge" role="switch" aria-checked="false" aria-label="全盘知识库检索"></button></span>' +
|
||||
'<span class="wolai-search-switch-control"><span>页面内搜索</span><button type="button" class="wolai-search-switch" data-search-switch="page" role="switch" aria-checked="false" aria-label="页面内搜索"></button></span>' +
|
||||
'<span class="wolai-search-switch-control"><span>折叠同来源</span><button type="button" class="wolai-search-switch is-on" data-search-switch="collapseSource" role="switch" aria-checked="true" aria-label="默认折叠相同来源结果"></button></span>' +
|
||||
'</div>' +
|
||||
@@ -2174,7 +2194,7 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
document.body.appendChild(overlay);
|
||||
var input = overlay.querySelector('[data-testid="wolai-search-input"]');
|
||||
var closeButton = overlay.querySelector('[data-testid="wolai-search-close"]');
|
||||
applySearchSwitchState(overlay, { knowledge: true, collapseSource: readSearchCollapseSourcesDefault() });
|
||||
applySearchSwitchState(overlay, { knowledge: false, collapseSource: readSearchCollapseSourcesDefault() });
|
||||
var initialKnowledgeModeSelect = overlay.querySelector('[data-search-knowledge-mode]');
|
||||
if (initialKnowledgeModeSelect && 'value' in initialKnowledgeModeSelect) initialKnowledgeModeSelect.value = 'exact';
|
||||
if (input) input.addEventListener('input', function() {
|
||||
@@ -2986,10 +3006,20 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
return;
|
||||
}
|
||||
|
||||
var knowledgeHostTrigger = closestAction(e.target, '[data-mnote-action="open-knowledge-host"]');
|
||||
if (knowledgeHostTrigger) {
|
||||
var hostUrl = knowledgeHostUrl();
|
||||
if (knowledgeHostTrigger instanceof HTMLAnchorElement) knowledgeHostTrigger.setAttribute('href', hostUrl);
|
||||
if (knowledgeHostTrigger instanceof HTMLAnchorElement && (e.metaKey || e.ctrlKey || e.shiftKey || e.button === 1)) return;
|
||||
e.preventDefault();
|
||||
window.location.href = hostUrl;
|
||||
return;
|
||||
}
|
||||
|
||||
var knowledgeRagSettingsTrigger = closestAction(e.target, '[data-mnote-action="open-knowledge-rag-settings"]');
|
||||
if (knowledgeRagSettingsTrigger) {
|
||||
e.preventDefault();
|
||||
window.location.href = '/knowledge';
|
||||
window.location.href = knowledgeHostUrl();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3069,7 +3099,16 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
void createKnowledgeRagKnowledgeBase();
|
||||
return;
|
||||
}
|
||||
if (knowledgeRagActionName === 'delete-kb') {
|
||||
void deleteKnowledgeRagKnowledgeBase();
|
||||
return;
|
||||
}
|
||||
if (knowledgeRagActionName === 'toggle-create-kb') {
|
||||
toggleKnowledgeRagCreateCard();
|
||||
return;
|
||||
}
|
||||
if (knowledgeRagActionName === 'focus-create-kb') {
|
||||
toggleKnowledgeRagCreateCard();
|
||||
var createKbInput = document.querySelector('[data-knowledge-rag-create-kb-name]');
|
||||
if (createKbInput instanceof HTMLInputElement) createKbInput.focus();
|
||||
return;
|
||||
@@ -3870,21 +3909,44 @@ import { createSidebarPageSettingsRuntime } from './sidebar-page-settings-runtim
|
||||
});
|
||||
syncSidebarFileTreeSelection();
|
||||
schedulePendingLocalFolderRestoreFocus();
|
||||
window.addEventListener('mnote:primary-document-activated', function(event) {
|
||||
var detail = event && event.detail ? event.detail : {};
|
||||
var recentPageOptionsApply = { documentId: '', at: 0 };
|
||||
function applyPrimaryPageOptionsOnce(documentId) {
|
||||
var normalizedDocumentId = searchText(documentId || currentDocumentId() || '');
|
||||
pageUiState.pageOptions = null;
|
||||
applyPageOptionsToShell();
|
||||
if (isPageSettingsOpen()) renderPageSettingsPopover();
|
||||
selectSidebarFileTreeDocument(detail.documentId, { scrollIntoView: false });
|
||||
recentPageOptionsApply = { documentId: normalizedDocumentId, at: Date.now() };
|
||||
}
|
||||
function hasRecentPageOptionsApply(documentId) {
|
||||
var normalizedDocumentId = searchText(documentId || currentDocumentId() || '');
|
||||
return normalizedDocumentId
|
||||
&& recentPageOptionsApply.documentId === normalizedDocumentId
|
||||
&& Date.now() - recentPageOptionsApply.at < 1000;
|
||||
}
|
||||
window.addEventListener('mnote:primary-document-activated', function(event) {
|
||||
var detail = event && event.detail ? event.detail : {};
|
||||
if (!hasRecentPageOptionsApply(detail.documentId)) {
|
||||
applyPrimaryPageOptionsOnce(detail.documentId);
|
||||
}
|
||||
if (detail.pageBlockNavigation === true) {
|
||||
detail.sidebarSelectionHandled = false;
|
||||
return;
|
||||
}
|
||||
if (activeSidebarTreeMode() === 'filetree') {
|
||||
detail.sidebarSelectionHandled = selectSidebarFileTreeDocument(detail.documentId, {
|
||||
rootUri: detail.rootUri || currentRootUri(),
|
||||
scrollIntoView: false
|
||||
});
|
||||
} else {
|
||||
detail.sidebarSelectionHandled = selectSidebarPageTreeDocument(detail.documentId, { scrollIntoView: false });
|
||||
}
|
||||
});
|
||||
window.addEventListener('mnote:page-aggregate-synced', function(event) {
|
||||
var detail = event && event.detail ? event.detail : {};
|
||||
if (detail.scriptId && detail.scriptId !== '__MNOTE_PAGE_AGGREGATE__') return;
|
||||
var documentId = searchText(detail.documentId || '');
|
||||
if (documentId && currentDocumentId() && documentId !== currentDocumentId()) return;
|
||||
pageUiState.pageOptions = null;
|
||||
applyPageOptionsToShell();
|
||||
if (isPageSettingsOpen()) renderPageSettingsPopover();
|
||||
applyPrimaryPageOptionsOnce(documentId);
|
||||
});
|
||||
restoreSidebarTreeTab();
|
||||
if (window.location.pathname === '/debug/knowledge-rag' || window.location.pathname === '/knowledge') {
|
||||
|
||||
Reference in New Issue
Block a user