diff --git a/projects/app/src/pageComponents/account/team/OperationLog/index.tsx b/projects/app/src/pageComponents/account/team/OperationLog/index.tsx
index 9e56cd0db..8a19a5f42 100644
--- a/projects/app/src/pageComponents/account/team/OperationLog/index.tsx
+++ b/projects/app/src/pageComponents/account/team/OperationLog/index.tsx
@@ -1,6 +1,5 @@
import {
Box,
- Button,
Flex,
Table,
TableContainer,
@@ -11,12 +10,11 @@ import {
Tr,
HStack
} from '@chakra-ui/react';
-import { useState, useEffect, useMemo } from 'react';
+import { useState, useEffect, useMemo, useCallback } from 'react';
import { useTranslation } from 'next-i18next';
import MyBox from '@fastgpt/web/components/common/MyBox';
import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination';
import { getOperationLogs } from '@/web/support/user/team/operantionLog/api';
-import { TeamPermission } from '@fastgpt/global/support/permission/user/controller';
import { operationLogMap } from '@fastgpt/service/support/operationLog/constants';
import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants';
import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time';
@@ -26,7 +24,8 @@ import MultipleSelect, {
} from '@fastgpt/web/components/common/MySelect/MultipleSelect';
import Avatar from '@fastgpt/web/components/common/Avatar';
import { getTeamMembers } from '@/web/support/user/team/api';
-import { createMetadataProcessorMap, type MetadataProcessor } from './processors';
+import { specialProcessors } from './processors';
+import { defaultMetadataProcessor } from './processors/commonProcessor';
function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) {
const { t } = useTranslation();
@@ -59,13 +58,14 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) {
[t]
);
- const processMetadataByEvent = useMemo(() => {
- const metadataProcessorMap = createMetadataProcessorMap();
- return (event: string, metadata: any) => {
- const processor = metadataProcessorMap[event as OperationLogEventEnum];
- return processor ? processor(metadata, t) : metadata;
- };
- }, [t]);
+ const processMetadataByEvent = useCallback(
+ (event: string, metadata: any) => {
+ const defaultFormat = defaultMetadataProcessor(metadata, t);
+ const specialFormat = specialProcessors[event as OperationLogEventEnum]?.(defaultFormat, t);
+ return specialFormat || defaultFormat;
+ },
+ [t]
+ );
const {
data: operationLogs = [],
@@ -182,7 +182,7 @@ function OperationLogTable({ Tabs }: { Tabs: React.ReactNode }) {
{formatTime2YMDHMS(log.timestamp)} |
{t(i18nData.typeLabel)} |
- {t(i18nData.content, metadata as any) as string} |
+ {t(i18nData.content as any, metadata)} |
) : null;
})}
diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/appProcessors.ts b/projects/app/src/pageComponents/account/team/OperationLog/processors/appProcessors.ts
index a96cb8731..ac453b4f3 100644
--- a/projects/app/src/pageComponents/account/team/OperationLog/processors/appProcessors.ts
+++ b/projects/app/src/pageComponents/account/team/OperationLog/processors/appProcessors.ts
@@ -1,5 +1,4 @@
import { AppPermission } from '@fastgpt/global/support/permission/app/controller';
-import { createSpecialProcessor } from './commonProcessor';
export const processUpdateAppCollaboratorSpecific = (metadata: any) => {
const permissionValue = parseInt(metadata.permission, 10);
@@ -12,6 +11,6 @@ export const processUpdateAppCollaboratorSpecific = (metadata: any) => {
};
};
-export const createAppProcessors = () => ({
- UPDATE_APP_COLLABORATOR: createSpecialProcessor(processUpdateAppCollaboratorSpecific)
-});
+export const createAppProcessors = {
+ UPDATE_APP_COLLABORATOR: processUpdateAppCollaboratorSpecific
+};
diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/commonProcessor.ts b/projects/app/src/pageComponents/account/team/OperationLog/processors/commonProcessor.ts
index 4ea243cb3..a4556a628 100644
--- a/projects/app/src/pageComponents/account/team/OperationLog/processors/commonProcessor.ts
+++ b/projects/app/src/pageComponents/account/team/OperationLog/processors/commonProcessor.ts
@@ -10,13 +10,11 @@ export interface CommonMetadataFields {
export const defaultMetadataProcessor = (metadata: CommonMetadataFields, t: any): any => {
const result = { ...metadata };
- const translatableFields = ['appType', 'datasetType', 'operationName', 'itemName'];
-
- Object.entries(metadata)
- .filter(([key, value]) => translatableFields.includes(key) && value)
- .forEach(([key, value]) => {
+ Object.entries(metadata).forEach(([key, value]) => {
+ if (typeof value === 'string' && value.includes(':')) {
result[key] = t(value as any);
- });
+ }
+ });
if (metadata.newItemNames) {
if (Array.isArray(metadata.newItemNames)) {
@@ -33,11 +31,3 @@ export const defaultMetadataProcessor = (metadata: CommonMetadataFields, t: any)
return result;
};
-
-export const createSpecialProcessor = (specificProcessor: (metadata: any) => any) => {
- return (metadata: any, t: any) => {
- let processedMetadata = defaultMetadataProcessor(metadata, t);
- processedMetadata = specificProcessor(processedMetadata);
- return processedMetadata;
- };
-};
diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/datasetProcessors.ts b/projects/app/src/pageComponents/account/team/OperationLog/processors/datasetProcessors.ts
index c9c30bda6..968b17657 100644
--- a/projects/app/src/pageComponents/account/team/OperationLog/processors/datasetProcessors.ts
+++ b/projects/app/src/pageComponents/account/team/OperationLog/processors/datasetProcessors.ts
@@ -1,5 +1,4 @@
import { DatasetPermission } from '@fastgpt/global/support/permission/dataset/controller';
-import { createSpecialProcessor } from './commonProcessor';
export const processUpdateDatasetCollaboratorSpecific = (metadata: any) => {
const permissionValue = parseInt(metadata.permission, 10);
@@ -12,6 +11,6 @@ export const processUpdateDatasetCollaboratorSpecific = (metadata: any) => {
};
};
-export const createDatasetProcessors = () => ({
- UPDATE_DATASET_COLLABORATOR: createSpecialProcessor(processUpdateDatasetCollaboratorSpecific)
-});
+export const createDatasetProcessors = {
+ UPDATE_DATASET_COLLABORATOR: processUpdateDatasetCollaboratorSpecific
+};
diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/index.ts b/projects/app/src/pageComponents/account/team/OperationLog/processors/index.ts
index 10981efb4..baaa4e2fc 100644
--- a/projects/app/src/pageComponents/account/team/OperationLog/processors/index.ts
+++ b/projects/app/src/pageComponents/account/team/OperationLog/processors/index.ts
@@ -1,30 +1,11 @@
-import { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants';
-import { defaultMetadataProcessor } from './commonProcessor';
+import type { OperationLogEventEnum } from '@fastgpt/global/support/operationLog/constants';
import { createTeamProcessors } from './teamProcessors';
import { createAppProcessors } from './appProcessors';
import { createDatasetProcessors } from './datasetProcessors';
export type MetadataProcessor = (metadata: any, t: any) => any;
-
-export const createMetadataProcessorMap = (): Record => {
- const specialProcessors: Partial> = {
- ...createTeamProcessors(),
- ...createAppProcessors(),
- ...createDatasetProcessors()
- };
-
- const processorMap = {} as Record;
-
- Object.values(OperationLogEventEnum).forEach((event) => {
- processorMap[event] =
- specialProcessors[event] ||
- ((metadata: any, t: any) => defaultMetadataProcessor(metadata, t));
- });
-
- return processorMap;
+export const specialProcessors: Partial> = {
+ ...createTeamProcessors,
+ ...createAppProcessors,
+ ...createDatasetProcessors
};
-
-export * from './commonProcessor';
-export * from './teamProcessors';
-export * from './appProcessors';
-export * from './datasetProcessors';
diff --git a/projects/app/src/pageComponents/account/team/OperationLog/processors/teamProcessors.ts b/projects/app/src/pageComponents/account/team/OperationLog/processors/teamProcessors.ts
index 928a8c3c1..147d1b733 100644
--- a/projects/app/src/pageComponents/account/team/OperationLog/processors/teamProcessors.ts
+++ b/projects/app/src/pageComponents/account/team/OperationLog/processors/teamProcessors.ts
@@ -1,5 +1,4 @@
import { TeamPermission } from '@fastgpt/global/support/permission/user/controller';
-import { createSpecialProcessor } from './commonProcessor';
export const processAssignPermissionSpecific = (metadata: any) => {
const permissionValue = parseInt(metadata.permission, 10);
@@ -14,6 +13,6 @@ export const processAssignPermissionSpecific = (metadata: any) => {
};
};
-export const createTeamProcessors = () => ({
- ASSIGN_PERMISSION: createSpecialProcessor(processAssignPermissionSpecific)
-});
+export const createTeamProcessors = {
+ ASSIGN_PERMISSION: processAssignPermissionSpecific
+};
diff --git a/projects/app/src/pages/api/core/app/update.ts b/projects/app/src/pages/api/core/app/update.ts
index 1bf4ed6ed..b43537bf0 100644
--- a/projects/app/src/pages/api/core/app/update.ts
+++ b/projects/app/src/pages/api/core/app/update.ts
@@ -205,18 +205,16 @@ const logAppMove = ({
app: any;
targetName: string;
}) => {
- (async () => {
- addOperationLog({
- tmbId,
- teamId,
- event: OperationLogEventEnum.MOVE_APP,
- params: {
- appName: app.name,
- targetFolderName: targetName,
- appType: getI18nAppType(app.type)
- }
- });
- })();
+ addOperationLog({
+ tmbId,
+ teamId,
+ event: OperationLogEventEnum.MOVE_APP,
+ params: {
+ appName: app.name,
+ targetFolderName: targetName,
+ appType: getI18nAppType(app.type)
+ }
+ });
};
const logAppUpdate = ({
@@ -232,39 +230,37 @@ const logAppUpdate = ({
name?: string;
intro?: string;
}) => {
- (async () => {
- const getUpdateItems = () => {
- const names: string[] = [];
- const values: string[] = [];
+ const getUpdateItems = () => {
+ const names: string[] = [];
+ const values: string[] = [];
- if (name !== undefined) {
- names.push(i18nT('common:core.app.name'));
- values.push(name);
- }
+ if (name !== undefined) {
+ names.push(i18nT('common:core.app.name'));
+ values.push(name);
+ }
- if (intro !== undefined) {
- names.push(i18nT('common:Intro'));
- values.push(intro);
- }
+ if (intro !== undefined) {
+ names.push(i18nT('common:Intro'));
+ values.push(intro);
+ }
- return {
- names,
- values
- };
+ return {
+ names,
+ values
};
+ };
- const { names: newItemNames, values: newItemValues } = getUpdateItems();
+ const { names: newItemNames, values: newItemValues } = getUpdateItems();
- addOperationLog({
- tmbId,
- teamId,
- event: OperationLogEventEnum.UPDATE_APP_INFO,
- params: {
- appName: app.name,
- newItemNames: newItemNames,
- newItemValues: newItemValues,
- appType: getI18nAppType(app.type)
- }
- });
- })();
+ addOperationLog({
+ tmbId,
+ teamId,
+ event: OperationLogEventEnum.UPDATE_APP_INFO,
+ params: {
+ appName: app.name,
+ newItemNames: newItemNames,
+ newItemValues: newItemValues,
+ appType: getI18nAppType(app.type)
+ }
+ });
};