Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions frontend/src/i18n/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -1432,6 +1432,8 @@
"processedFileType": "Processed File Type",
"beforeSize": "Before Size",
"afterSize": "After Size",
"result": "Result",
"resultDetail": "Result Detail",
"status": "Status",
"actions": "Actions",
"searchFileName": "Search file name",
Expand Down
2 changes: 2 additions & 0 deletions frontend/src/i18n/locales/zh/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -1432,6 +1432,8 @@
"processedFileType": "处理后文件类型",
"beforeSize": "处理前大小",
"afterSize": "处理后大小",
"result": "处理结果",
"resultDetail": "处理结果详情",
"status": "状态",
"actions": "操作",
"searchFileName": "搜索文件名",
Expand Down
47 changes: 47 additions & 0 deletions frontend/src/pages/DataCleansing/Detail/components/FileTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,53 @@ export default function FileTable({result, fetchTaskResult}) {
<span className="font-mono text-sm">{formatFileSize(number)}</span>
),
},
{
title: t("dataCleansing.detail.fileTable.result"),
dataIndex: "result",
key: "result",
width: 200,
render: (text: string) => {
if (!text) return <span className="text-gray-400">-</span>;

try {
const parsed = JSON.parse(text);
const jsonString = JSON.stringify(parsed, null, 2);
const displayText = typeof parsed === 'object'
? (Array.isArray(parsed) ? `[${parsed.length} items]` : '{...}')
: String(parsed);

return (
<Popover
content={
<pre className="max-w-md max-h-64 overflow-auto text-xs bg-gray-50 p-2 rounded">
{jsonString}
</pre>
}
title={t("dataCleansing.detail.fileTable.resultDetail")}
trigger="click"
>
<span className="font-mono text-sm text-blue-600 cursor-pointer hover:text-blue-800">
{displayText}
</span>
</Popover>
);
} catch {
const displayText = text.length > 30 ? text.substring(0, 30) + '...' : text;
return (
<Popover
content={<div className="max-w-md text-sm">{text}</div>}
title={t("dataCleansing.detail.fileTable.resultDetail")}
trigger="click"
disabled={text.length <= 30}
>
<span className="font-mono text-sm cursor-default">
{displayText}
</span>
</Popover>
);
}
},
},
{
title: t("dataCleansing.detail.fileTable.status"),
dataIndex: "status",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ async def scan_dataset(
target_file_path.parent.mkdir(parents=True, exist_ok=True)

query = text("""
SELECT id, file_name, file_path, file_type, file_size
SELECT id, file_name, file_path, file_type, file_size, metadata
FROM t_dm_dataset_files
WHERE dataset_id = :dataset_id
ORDER BY created_at
Expand All @@ -340,12 +340,22 @@ async def scan_dataset(
if succeed_files and file.id in succeed_files:
continue

metadata_dict = {}
if file.metadata:
try:
parsed = json.loads(file.metadata)
if isinstance(parsed, dict):
metadata_dict = parsed
except (json.JSONDecodeError, TypeError):
pass

file_info = {
"fileId": file.id,
"fileName": file.file_name,
"filePath": file.file_path,
"fileType": file.file_type,
"fileSize": file.file_size,
"metadata": metadata_dict,
}
f.write(json.dumps(file_info, ensure_ascii=False) + "\n")

Expand Down
2 changes: 2 additions & 0 deletions runtime/python-executor/datamate/wrappers/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ def load_meta(self, line):
meta["sourceFileType"] = meta.get("fileType")
if meta.get("fileSize"):
meta["sourceFileSize"] = meta.get("fileSize")
else:
meta["sourceFileSize"] = 0
if not meta.get("totalPageNum"):
meta["totalPageNum"] = 0
if not meta.get("extraFilePath"):
Expand Down
Loading