fix: handle local mindmap trash and block insertion
This commit is contained in:
@@ -2648,15 +2648,20 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
|
||||
function appendUploadedAssetRow(asset, documentId) {
|
||||
var assetId = String(asset && asset.id || '').trim();
|
||||
if (!assetId) return;
|
||||
if (revealFileTreeAssetRow(assetId)) return;
|
||||
if (!assetId) return false;
|
||||
if (revealFileTreeAssetRow(assetId)) return true;
|
||||
var objectKind = String(asset && (asset.objectKind || asset.resourceKind || '') || '').trim();
|
||||
if (!objectKind && (String(asset && (asset.asset_type || asset.assetType) || '').trim() === 'mindmap' || /\.mindmap\.json$/i.test(assetId))) {
|
||||
objectKind = 'mindmap';
|
||||
}
|
||||
var targetDocumentId = String(documentId || asset.document_id || asset.documentId || currentDocumentId() || '').trim();
|
||||
var parentRow = targetDocumentId
|
||||
? document.querySelector('.tree-row[data-shell-mode="filetree"][data-row-id="' + cssEscape('doc:' + targetDocumentId) + '"]')
|
||||
: null;
|
||||
if (!parentRow && currentSourceKind() === 'local_folder' && objectKind === 'mindmap') return false;
|
||||
if (!parentRow) parentRow = document.querySelector('.tree-row[data-shell-mode="filetree"][data-row-kind="document"]');
|
||||
var root = document.querySelector('#sidebar-file-tree-root .tree-root');
|
||||
if (!root && !parentRow) return;
|
||||
if (!root && !parentRow) return false;
|
||||
var parentLi = parentRow ? parentRow.closest('.tree-node') : null;
|
||||
var children = parentLi ? parentLi.querySelector(':scope > .tree-children') : null;
|
||||
if (parentLi && !children) {
|
||||
@@ -2675,10 +2680,6 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
var container = children || root;
|
||||
var li = document.createElement('li');
|
||||
li.className = 'tree-node';
|
||||
var objectKind = String(asset && (asset.objectKind || asset.resourceKind || '') || '').trim();
|
||||
if (!objectKind && (String(asset && (asset.asset_type || asset.assetType) || '').trim() === 'mindmap' || /\.mindmap\.json$/i.test(assetId))) {
|
||||
objectKind = 'mindmap';
|
||||
}
|
||||
var objectIdentity = {
|
||||
objectKind: objectKind || 'attachment',
|
||||
documentId: targetDocumentId || null,
|
||||
@@ -2697,6 +2698,7 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
container.appendChild(li);
|
||||
revealFileTreeRow(li.querySelector('.tree-row'));
|
||||
document.documentElement.setAttribute('data-mnote-last-upload-asset-id', assetId);
|
||||
return true;
|
||||
}
|
||||
|
||||
function removeFileTreeAssetRow(assetId) {
|
||||
@@ -2826,7 +2828,8 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
if (!target || !target.documentId || !target.mindmapId) return;
|
||||
var asset = mindmapAssetFromTarget(target.documentId, target.mindmapId, payload && payload.writeResult);
|
||||
if (!asset) return;
|
||||
appendUploadedAssetRow(asset, target.documentId);
|
||||
var appended = appendUploadedAssetRow(asset, target.documentId);
|
||||
if (!appended && currentSourceKind() === 'local_folder') void refreshLocalFolderSidebarSnapshot();
|
||||
document.documentElement.setAttribute('data-mnote-assets-local-applied', 'true');
|
||||
document.documentElement.setAttribute('data-mnote-last-mindmap-asset-id', asset.id || target.mindmapId);
|
||||
}
|
||||
@@ -8914,6 +8917,8 @@ mod tests {
|
||||
assert!(SIDEBAR_TREE_JS.contains("withLocalMindmapSourceParams"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("url.searchParams.set('sourceKind', 'local_folder')"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("url.searchParams.set('rootUri', rootUri)"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("if (!parentRow && currentSourceKind() === 'local_folder' && objectKind === 'mindmap') return false;"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("if (!appended && currentSourceKind() === 'local_folder') void refreshLocalFolderSidebarSnapshot();"));
|
||||
assert!(SIDEBAR_TREE_JS
|
||||
.contains("data-mnote-last-mindmap-asset-open-mode', 'local-mindmap-object-shell'"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("buildLocalOnlyOfficeOpenUrl"));
|
||||
|
||||
Reference in New Issue
Block a user