feat(admin): add data tools for export, import, and wipe
Add admin.data.export and admin.data.import permissions Implement backend logic and API endpoints for data bundle management Add Data Tools tab to admin interface with scope selection Support Pokemon, Habitats, Items, Recipes, and Daily CheckList scopes
This commit is contained in:
@@ -832,6 +832,30 @@ export const systemWordingMessages = {
|
||||
itemList: 'Item list',
|
||||
recipeList: 'Recipe list',
|
||||
habitatList: 'Habitat list',
|
||||
dataTools: 'Data tools',
|
||||
dataToolRefresh: 'Refresh',
|
||||
dataToolExport: 'Export data',
|
||||
dataToolExportButton: 'Export JSON',
|
||||
dataToolImport: 'Import data',
|
||||
dataToolImportButton: 'Import',
|
||||
dataToolImportFile: 'Data bundle',
|
||||
dataToolImportMode: 'Import replaces the scopes included in the bundle.',
|
||||
dataToolWipe: 'Wipe data',
|
||||
dataToolWipeButton: 'Wipe',
|
||||
dataToolSelectScope: 'Select at least one data scope.',
|
||||
dataToolInvalidBundle: 'Data bundle is invalid.',
|
||||
dataToolImportConfirm: 'Import will replace: {scopes}.',
|
||||
dataToolWipeConfirm: 'Wipe will delete: {scopes}.',
|
||||
dataToolConfirmImport: 'Type IMPORT to confirm',
|
||||
dataToolConfirmWipe: 'Type WIPE to confirm',
|
||||
dataToolDependencyNote: 'Items include Recipes because recipes depend on items.',
|
||||
dataToolReplaceNote: 'Related records, translations, edit history, image history, and discussions are included.',
|
||||
dataToolUploadsNote: 'Uploaded files are not included in JSON exports.',
|
||||
dataToolScopePokemon: 'Pokemon',
|
||||
dataToolScopeHabitats: 'Habitats',
|
||||
dataToolScopeItems: 'Items',
|
||||
dataToolScopeRecipes: 'Recipes',
|
||||
dataToolScopeChecklist: 'Daily CheckList',
|
||||
languages: 'Languages',
|
||||
newConfig: 'New {name}',
|
||||
editConfig: 'Edit {name}',
|
||||
@@ -1055,6 +1079,9 @@ export const systemWordingMessages = {
|
||||
pokemonTypeDataUnavailable: 'Pokemon type data is unavailable',
|
||||
pokemonDataNotFound: 'Pokemon data was not found',
|
||||
pokemonDataIdMismatch: 'Pokemon data ID does not match this Pokemon',
|
||||
dataToolScopeRequired: 'Select at least one data scope',
|
||||
dataToolScopeInvalid: 'Data scope is invalid',
|
||||
dataToolBundleInvalid: 'Data bundle is invalid',
|
||||
pokemonImagePathInvalid: 'Pokemon image path is invalid',
|
||||
imagePathInvalid: 'Image path is invalid',
|
||||
imageUploadRequired: 'Please select an image',
|
||||
@@ -1946,6 +1973,30 @@ export const systemWordingMessages = {
|
||||
itemList: '物品列表',
|
||||
recipeList: '材料单列表',
|
||||
habitatList: '栖息地列表',
|
||||
dataTools: '数据工具',
|
||||
dataToolRefresh: '刷新',
|
||||
dataToolExport: '导出数据',
|
||||
dataToolExportButton: '导出 JSON',
|
||||
dataToolImport: '导入数据',
|
||||
dataToolImportButton: '导入',
|
||||
dataToolImportFile: '数据包',
|
||||
dataToolImportMode: '导入会替换数据包内包含的范围。',
|
||||
dataToolWipe: '清空数据',
|
||||
dataToolWipeButton: '清空',
|
||||
dataToolSelectScope: '请至少选择一个数据范围。',
|
||||
dataToolInvalidBundle: '数据包不合法。',
|
||||
dataToolImportConfirm: '导入将替换:{scopes}。',
|
||||
dataToolWipeConfirm: '清空将删除:{scopes}。',
|
||||
dataToolConfirmImport: '输入 IMPORT 确认',
|
||||
dataToolConfirmWipe: '输入 WIPE 确认',
|
||||
dataToolDependencyNote: '物品会连同材料单一起处理,因为材料单依赖物品。',
|
||||
dataToolReplaceNote: '关联记录、翻译、编辑历史、图片历史和讨论会一并处理。',
|
||||
dataToolUploadsNote: 'JSON 导出不包含上传文件本身。',
|
||||
dataToolScopePokemon: 'Pokemon',
|
||||
dataToolScopeHabitats: '栖息地',
|
||||
dataToolScopeItems: '物品',
|
||||
dataToolScopeRecipes: '材料单',
|
||||
dataToolScopeChecklist: '每日 CheckList',
|
||||
languages: '语言',
|
||||
newConfig: '新增{name}',
|
||||
editConfig: '编辑{name}',
|
||||
@@ -2169,6 +2220,9 @@ export const systemWordingMessages = {
|
||||
pokemonTypeDataUnavailable: 'Pokemon 属性数据不可用',
|
||||
pokemonDataNotFound: '未找到 Pokemon 数据',
|
||||
pokemonDataIdMismatch: 'Pokemon 数据 ID 与当前 Pokemon 不一致',
|
||||
dataToolScopeRequired: '请至少选择一个数据范围',
|
||||
dataToolScopeInvalid: '数据范围不合法',
|
||||
dataToolBundleInvalid: '数据包不合法',
|
||||
pokemonImagePathInvalid: 'Pokemon 图片路径不合法',
|
||||
imagePathInvalid: '图片路径不合法',
|
||||
imageUploadRequired: '请选择图片',
|
||||
|
||||
Reference in New Issue
Block a user