diff --git a/frontend/src/core/pagetype/form/panel/ActivitySection.vue b/frontend/src/core/pagetype/form/panel/ActivitySection.vue index 91706fea7..ec55e86d9 100644 --- a/frontend/src/core/pagetype/form/panel/ActivitySection.vue +++ b/frontend/src/core/pagetype/form/panel/ActivitySection.vue @@ -327,13 +327,34 @@ function buildTimelineItems() { }) } - // 8. Info logs + // 8. Info logs — Rename/Merge/Restore 前端翻译,Info/Label/Edit 直接使用 for (const i of info.info_logs || []) { - items.push({ - creation: i.creation, - content: `${i.owner} ${i.content || ''}`, - icon: 'tabler:info-circle', - }) + const isSelf = i.owner === currentUser.value + const ownerHtml = `${i.owner}` + // 从后端 content 的 标签提取数据值(old/new 名称) + const vals = [...(i.content || '').matchAll(/(.*?)<\/strong>/g)].map(m => `${m[1]}`) + + let content = `${ownerHtml} ${i.content || ''}` + let icon = 'tabler:info-circle' + + if (i.comment_type === 'Rename' && vals.length === 2) { + content = isSelf + ? t('You renamed from {0} to {1}', vals) + : t('{0} renamed from {1} to {2}', [ownerHtml, ...vals]) + icon = 'tabler:edit' + } else if (i.comment_type === 'Merge' && vals.length === 2) { + content = isSelf + ? t('You merged {0} into {1}', vals) + : t('{0} merged {1} into {2}', [ownerHtml, ...vals]) + icon = 'tabler:merge' + } else if (i.comment_type === 'Restore' && vals.length === 2) { + content = isSelf + ? t('You restored {0} as {1}', vals) + : t('{0} restored {1} as {2}', [ownerHtml, ...vals]) + icon = 'tabler:refresh' + } + + items.push({ creation: i.creation, content, icon }) } // 9. Workflow logs diff --git a/jingrow/core/pagetype/deleted_page/deleted_page.py b/jingrow/core/pagetype/deleted_page/deleted_page.py index 962689f5d..27a0ce219 100644 --- a/jingrow/core/pagetype/deleted_page/deleted_page.py +++ b/jingrow/core/pagetype/deleted_page/deleted_page.py @@ -58,7 +58,7 @@ def restore(name, alert=True): pg.set(workflow_state_fieldname, None) pg.insert() - pg.add_comment("Edit", _("restored {0} as {1}").format(deleted.deleted_name, pg.name)) + pg.add_comment("Restore", _("restored {0} as {1}").format(deleted.deleted_name, pg.name)) deleted.new_name = pg.name deleted.restored = 1 diff --git a/jingrow/desk/form/load.py b/jingrow/desk/form/load.py index 14ab82030..2cbf18e74 100644 --- a/jingrow/desk/form/load.py +++ b/jingrow/desk/form/load.py @@ -170,7 +170,7 @@ def add_comments(pg, docinfo): docinfo.assignment_logs.append(c) case "Attachment" | "Attachment Removed": docinfo.attachment_logs.append(c) - case "Info" | "Edit" | "Label": + case "Info" | "Edit" | "Label" | "Rename" | "Merge" | "Restore": docinfo.info_logs.append(c) case "Like": docinfo.like_logs.append(c) diff --git a/jingrow/locale/zh.po b/jingrow/locale/zh.po index 06bd9393f..3d4750e01 100644 --- a/jingrow/locale/zh.po +++ b/jingrow/locale/zh.po @@ -30515,6 +30515,12 @@ msgstr "地图标记" msgid "merged {0} into {1}" msgstr "将{0}合并至{1}" +msgid "You merged {0} into {1}" +msgstr "您将{0}合并至{1}" + +msgid "{0} merged {1} into {2}" +msgstr "{0}将{1}合并至{2}" + #: jingrow/website/pagetype/blog_post/templates/blog_post.html:25 #: jingrow/website/pagetype/blog_post/templates/blog_post_row.html:36 msgid "min read" @@ -30797,6 +30803,12 @@ msgstr "已移除{0}的行" msgid "renamed from {0} to {1}" msgstr "从{0}重命名为{1}" +msgid "You renamed from {0} to {1}" +msgstr "您从{0}重命名为{1}" + +msgid "{0} renamed from {1} to {2}" +msgstr "{0}从{1}重命名为{2}" + #. Option for the 'Icon' (Select) field in PageType 'Workflow State' #: jingrow/workflow/pagetype/workflow_state/workflow_state.json msgid "repeat" @@ -30837,6 +30849,12 @@ msgstr "响应" msgid "restored {0} as {1}" msgstr "已恢复{0}为{1}" +msgid "You restored {0} as {1}" +msgstr "您已恢复{0}为{1}" + +msgid "{0} restored {1} as {2}" +msgstr "{0}已恢复{1}为{2}" + #. Option for the 'Icon' (Select) field in PageType 'Workflow State' #: jingrow/workflow/pagetype/workflow_state/workflow_state.json msgid "retweet" diff --git a/jingrow/model/rename_page.py b/jingrow/model/rename_page.py index 42717e399..9d811235c 100644 --- a/jingrow/model/rename_page.py +++ b/jingrow/model/rename_page.py @@ -210,9 +210,9 @@ def rename_page( rename_password(pagetype, old, new) if merge: - new_page.add_comment("Edit", _("merged {0} into {1}").format(jingrow.bold(old), jingrow.bold(new))) + new_page.add_comment("Merge", _("merged {0} into {1}").format(jingrow.bold(old), jingrow.bold(new))) else: - new_page.add_comment("Edit", _("renamed from {0} to {1}").format(jingrow.bold(old), jingrow.bold(new))) + new_page.add_comment("Rename", _("renamed from {0} to {1}").format(jingrow.bold(old), jingrow.bold(new))) if merge: jingrow.delete_page(pagetype, old) diff --git a/jingrow/model/rename_pg.py b/jingrow/model/rename_pg.py index dbb032aef..22c3643fa 100644 --- a/jingrow/model/rename_pg.py +++ b/jingrow/model/rename_pg.py @@ -210,9 +210,9 @@ def rename_pg( rename_password(pagetype, old, new) if merge: - new_pg.add_comment("Edit", _("merged {0} into {1}").format(jingrow.bold(old), jingrow.bold(new))) + new_pg.add_comment("Merge", _("merged {0} into {1}").format(jingrow.bold(old), jingrow.bold(new))) else: - new_pg.add_comment("Edit", _("renamed from {0} to {1}").format(jingrow.bold(old), jingrow.bold(new))) + new_pg.add_comment("Rename", _("renamed from {0} to {1}").format(jingrow.bold(old), jingrow.bold(new))) if merge: jingrow.delete_pg(pagetype, old)