mirror of
https://github.com/zadam/trilium.git
synced 2026-05-07 21:37:44 +02:00
feat(client/import_preview): count attachments
This commit is contained in:
@@ -2295,6 +2295,8 @@
|
||||
"notes_count_other": "{{count}} notes",
|
||||
"attributes_count_one": "{{count}} attribute",
|
||||
"attributes_count_other": "{{count}} attributes",
|
||||
"attachments_count_one": "{{count}} attachment",
|
||||
"attachments_count_other": "{{count}} attachments",
|
||||
"cancel": "Cancel",
|
||||
"import": "Import",
|
||||
"import_with_timeout": "Import ({{timeout}})",
|
||||
|
||||
@@ -156,6 +156,7 @@ function SinglePreview({ preview }: { preview: ImportPreviewResponse }) {
|
||||
<div className="stats">
|
||||
<span>{t("import_preview.notes_count", { count: preview.numNotes })}</span>
|
||||
<span>{t("import_preview.attributes_count", { count: preview.numAttributes })}</span>
|
||||
<span>{t("import_preview.attachments_count", { count: preview.numAttachments })}</span>
|
||||
</div>
|
||||
|
||||
<div className="dangerous-categories">
|
||||
|
||||
@@ -33,11 +33,28 @@ describe("Preview meta", () => {
|
||||
type: "label",
|
||||
name: "customRequestHandler",
|
||||
value: ""
|
||||
},
|
||||
{
|
||||
type: "label",
|
||||
name: "safe",
|
||||
value: ""
|
||||
}
|
||||
],
|
||||
attachments: [
|
||||
{
|
||||
attachmentId: "YRAEUXCDKNtn",
|
||||
title: "icon-color.svg",
|
||||
role: "image",
|
||||
mime: "image/svg+xml",
|
||||
position: 10,
|
||||
dataFileName: "Trilium Demo_icon-color.svg"
|
||||
}
|
||||
]
|
||||
});
|
||||
const result = previewMeta(meta);
|
||||
expect(result.numNotes).toBe(3);
|
||||
expect(result.numAttributes).toBe(4);
|
||||
expect(result.numAttachments).toBe(1);
|
||||
expect(result.isDangerous).toBe(true);
|
||||
expect(result.dangerousAttributes).toContain("widget");
|
||||
expect(result.dangerousAttributes).toContain("customRequestHandler");
|
||||
|
||||
@@ -33,6 +33,7 @@ interface PreviewContext {
|
||||
dangerousAttributeCategories: Set<DangerousAttributeCategory>;
|
||||
numNotes: number;
|
||||
numAttributes: number;
|
||||
numAttachments: number;
|
||||
}
|
||||
|
||||
export function previewMeta(meta: NoteMetaFile): Omit<ImportPreviewResponse, "id" | "fileName"> {
|
||||
@@ -40,7 +41,8 @@ export function previewMeta(meta: NoteMetaFile): Omit<ImportPreviewResponse, "id
|
||||
dangerousAttributes: new Set<string>(),
|
||||
dangerousAttributeCategories: new Set<DangerousAttributeCategory>(),
|
||||
numNotes: 0,
|
||||
numAttributes: 0
|
||||
numAttributes: 0,
|
||||
numAttachments: 0
|
||||
};
|
||||
previewMetaInternal(meta.files, context);
|
||||
|
||||
@@ -49,7 +51,8 @@ export function previewMeta(meta: NoteMetaFile): Omit<ImportPreviewResponse, "id
|
||||
dangerousAttributes: Array.from(context.dangerousAttributes),
|
||||
dangerousAttributeCategories: Array.from(context.dangerousAttributeCategories),
|
||||
numNotes: context.numNotes,
|
||||
numAttributes: context.numAttributes
|
||||
numAttributes: context.numAttributes,
|
||||
numAttachments: context.numAttachments
|
||||
};
|
||||
}
|
||||
|
||||
@@ -72,6 +75,10 @@ function previewMetaInternal(metaFiles: NoteMeta[], context: PreviewContext) {
|
||||
}
|
||||
}
|
||||
|
||||
if (metaFile.attachments) {
|
||||
context.numAttachments += metaFile.attachments.length;
|
||||
}
|
||||
|
||||
if (metaFile.children) {
|
||||
previewMetaInternal(metaFile.children, context);
|
||||
}
|
||||
|
||||
@@ -306,6 +306,7 @@ export interface ImportPreviewResponse {
|
||||
fileName: string;
|
||||
numNotes: number;
|
||||
numAttributes: number;
|
||||
numAttachments: number;
|
||||
isDangerous: boolean;
|
||||
dangerousAttributeCategories: string[];
|
||||
dangerousAttributes: string[];
|
||||
|
||||
Reference in New Issue
Block a user