Futa Arai 2 лет назад
Родитель
Сommit
f1b09483f8

+ 2 - 2
apps/app/public/static/locales/en_US/admin.json

@@ -1065,8 +1065,8 @@
     "description_form_detail": "Please note that edited value will be overwritten on next sync if description mapper is set in sync settings",
     "only_description_edit_allowed": "Only description can be edited for external user groups",
     "sync_being_executed": "There is a running external group sync process started by you or another user. The next sync cannot be executed until this finishes.",
-    "sync_succeeded": "Sync succeeded",
-    "sync_failed": "Sync failed",
+    "sync_succeeded": "External group sync succeeded",
+    "sync_failed": "External group sync failed",
     "ldap": {
       "group_sync_settings": "LDAP Group Sync Settings",
       "group_search_base_DN": "Group Search Base DN",

+ 3 - 3
apps/app/public/static/locales/ja_JP/admin.json

@@ -1073,9 +1073,9 @@
     "update_sync_settings_failed": "同期設定の更新が失敗しました",
     "description_form_detail": "同期設定で「説明」の mapper が設定されている場合、編集内容は再同期によって上書きされることに注意してください",
     "only_description_edit_allowed": "外部グループは説明の編集のみが可能です",
-    "sync_being_executed": "自身または他のユーザが実行した外部グループの同期が実行されており、これが終わるまで次の実行ができません",
-    "sync_succeeded": "同期に成功しました",
-    "sync_failed": "同期に失敗しました",
+    "sync_being_executed": "自身または他のユーザが実行した外部グループ同期が終了するまで次の実行ができません",
+    "sync_succeeded": "外部グループ同期に成功しました",
+    "sync_failed": "外部グループ同期に失敗しました",
     "ldap": {
       "group_sync_settings": "LDAP グループ同期設定",
       "group_search_base_DN": "グループ検索ベース DN",

+ 2 - 2
apps/app/public/static/locales/zh_CN/admin.json

@@ -1073,8 +1073,8 @@
     "description_form_detail": "Please note that edited value will be overwritten on next sync if description mapper is set in sync settings",
     "only_description_edit_allowed": "Only description can be edited for external user groups",
     "sync_being_executed": "There is a running external group sync process started by you or another user. The next sync cannot be executed until this finishes.",
-    "sync_succeeded": "Sync succeeded",
-    "sync_failed": "Sync failed",
+    "sync_succeeded": "External group sync succeeded",
+    "sync_failed": "External group sync failed",
     "ldap": {
       "group_sync_settings": "LDAP Group Sync Settings",
       "group_search_base_DN": "Group Search Base DN",

+ 26 - 21
apps/app/src/features/external-user-group/client/components/ExternalUserGroup/SyncExecution.tsx

@@ -40,30 +40,35 @@ export const SyncExecution = ({
   });
 
   useEffect(() => {
-    if (socket != null) {
-      socket.off(SocketEventName.externalUserGroup[provider].GroupSyncProgress);
-      socket.on(SocketEventName.externalUserGroup[provider].GroupSyncProgress, (data) => {
-        setSyncStatus(SyncStatus.syncExecuting);
-        setProgress({
-          total: data.totalCount,
-          current: data.count,
-        });
-      });
+    if (socket == null) return;
 
-      socket.off(SocketEventName.externalUserGroup[provider].GroupSyncCompleted);
-      socket.on(SocketEventName.externalUserGroup[provider].GroupSyncCompleted, () => {
-        setSyncStatus(SyncStatus.syncCompleted);
-        mutateExternalUserGroups();
-        toastSuccess(t('external_user_group.sync_succeeded'));
-      });
+    const eventName = SocketEventName.externalUserGroup[provider];
 
-      socket.off(SocketEventName.externalUserGroup[provider].GroupSyncFailed);
-      socket.on(SocketEventName.externalUserGroup[provider].GroupSyncFailed, () => {
-        setSyncStatus(SyncStatus.syncFailed);
-        mutateExternalUserGroups();
-        toastError(t('external_user_group.sync_failed'));
+    socket.on(eventName.GroupSyncProgress, (data) => {
+      setSyncStatus(SyncStatus.syncExecuting);
+      setProgress({
+        total: data.totalCount,
+        current: data.count,
       });
-    }
+    });
+
+    socket.on(eventName.GroupSyncCompleted, () => {
+      setSyncStatus(SyncStatus.syncCompleted);
+      mutateExternalUserGroups();
+      toastSuccess(t('external_user_group.sync_succeeded'));
+    });
+
+    socket.on(eventName.GroupSyncFailed, () => {
+      setSyncStatus(SyncStatus.syncFailed);
+      mutateExternalUserGroups();
+      toastError(t('external_user_group.sync_failed'));
+    });
+
+    return () => {
+      socket.off(eventName.GroupSyncProgress);
+      socket.off(eventName.GroupSyncCompleted);
+      socket.off(eventName.GroupSyncFailed);
+    };
   }, [socket, mutateExternalUserGroups, t, provider]);
 
   const onSyncBtnClick = useCallback(async(e) => {

+ 4 - 3
apps/app/src/server/service/search-delegator/elasticsearch.ts

@@ -9,6 +9,7 @@ import { SearchDelegatorName } from '~/interfaces/named-query';
 import {
   ISearchResult, ISearchResultData, SORT_AXIS, SORT_ORDER,
 } from '~/interfaces/search';
+import { SocketEventName } from '~/interfaces/websocket';
 import loggerFactory from '~/utils/logger';
 
 import {
@@ -301,7 +302,7 @@ class ElasticsearchDelegator implements SearchDelegator<Data, ESTermsKey, ESQuer
       logger.error('error.meta.body', error?.meta?.body);
 
       const socket = this.socketIoService.getAdminSocket();
-      socket.emit('rebuildingFailed', { error: error.message });
+      socket.emit(SocketEventName.RebuildingFailed, { error: error.message });
 
       throw error;
     }
@@ -582,7 +583,7 @@ class ElasticsearchDelegator implements SearchDelegator<Data, ESTermsKey, ESQuer
           logger.info(`Adding pages progressing: (count=${count}, errors=${bulkResponse.errors}, took=${bulkResponse.took}ms)`);
 
           if (shouldEmitProgress) {
-            socket?.emit('addPageProgress', { totalCount, count, skipped });
+            socket?.emit(SocketEventName.AddPageProgress, { totalCount, count, skipped });
           }
         }
         catch (err) {
@@ -606,7 +607,7 @@ class ElasticsearchDelegator implements SearchDelegator<Data, ESTermsKey, ESQuer
         logger.info(`Adding pages has completed: (totalCount=${totalCount}, skipped=${skipped})`);
 
         if (shouldEmitProgress) {
-          socket?.emit('finishAddPage', { totalCount, count, skipped });
+          socket?.emit(SocketEventName.FinishAddPage, { totalCount, count, skipped });
         }
         callback();
       },