Просмотр исходного кода

add onTestConnectionInvoked and add workspacename

zahmis 4 лет назад
Родитель
Сommit
5bd39521ad

+ 5 - 1
src/client/js/components/Admin/SlackIntegration/CustomBotWithProxySettings.jsx

@@ -13,7 +13,7 @@ const logger = loggerFactory('growi:SlackBotSettings');
 
 
 const CustomBotWithProxySettings = (props) => {
 const CustomBotWithProxySettings = (props) => {
   const {
   const {
-    appContainer, slackAppIntegrations, proxyServerUri, onClickAddSlackWorkspaceBtn, connectionStatuses, onUpdateTokens,
+    appContainer, slackAppIntegrations, proxyServerUri, onClickAddSlackWorkspaceBtn, connectionStatuses, onUpdateTokens, onTestConnectionInvoked,
   } = props;
   } = props;
   const [newProxyServerUri, setNewProxyServerUri] = useState();
   const [newProxyServerUri, setNewProxyServerUri] = useState();
   const [integrationIdToDelete, setIntegrationIdToDelete] = useState(null);
   const [integrationIdToDelete, setIntegrationIdToDelete] = useState(null);
@@ -119,10 +119,13 @@ const CustomBotWithProxySettings = (props) => {
               </div>
               </div>
               <WithProxyAccordions
               <WithProxyAccordions
                 botType="customBotWithProxy"
                 botType="customBotWithProxy"
+                connectionStatuses={connectionStatuses}
+                workspaceName={workspaceName}
                 slackAppIntegrationId={slackAppIntegration._id}
                 slackAppIntegrationId={slackAppIntegration._id}
                 tokenGtoP={tokenGtoP}
                 tokenGtoP={tokenGtoP}
                 tokenPtoG={tokenPtoG}
                 tokenPtoG={tokenPtoG}
                 onUpdateTokens={onUpdateTokens}
                 onUpdateTokens={onUpdateTokens}
+                onTestConnectionInvoked={onTestConnectionInvoked}
               />
               />
             </React.Fragment>
             </React.Fragment>
           );
           );
@@ -159,6 +162,7 @@ CustomBotWithProxySettings.propTypes = {
   proxyServerUri: PropTypes.string,
   proxyServerUri: PropTypes.string,
   onClickAddSlackWorkspaceBtn: PropTypes.func,
   onClickAddSlackWorkspaceBtn: PropTypes.func,
   onDeleteSlackAppIntegration: PropTypes.func,
   onDeleteSlackAppIntegration: PropTypes.func,
+  onTestConnectionInvoked: PropTypes.func,
   connectionStatuses: PropTypes.object.isRequired,
   connectionStatuses: PropTypes.object.isRequired,
   onUpdateTokens: PropTypes.func,
   onUpdateTokens: PropTypes.func,
 };
 };

+ 1 - 0
src/client/js/components/Admin/SlackIntegration/SlackIntegration.jsx

@@ -150,6 +150,7 @@ const SlackIntegration = (props) => {
           onDeleteSlackAppIntegration={fetchSlackIntegrationData}
           onDeleteSlackAppIntegration={fetchSlackIntegrationData}
           connectionStatuses={connectionStatuses}
           connectionStatuses={connectionStatuses}
           onUpdateTokens={fetchSlackIntegrationData}
           onUpdateTokens={fetchSlackIntegrationData}
+          onTestConnectionInvoked={fetchSlackIntegrationData}
         />
         />
       );
       );
       break;
       break;

+ 13 - 4
src/client/js/components/Admin/SlackIntegration/WithProxyAccordions.jsx

@@ -178,7 +178,8 @@ const GeneratingTokensAndRegisteringProxyServiceProcess = withUnstatedContainers
   );
   );
 }, [AppContainer]);
 }, [AppContainer]);
 
 
-const TestProcess = ({ apiv3Post, slackAppIntegrationId }) => {
+const TestProcess = (props) => {
+  const { apiv3Post, slackAppIntegrationId, onTestConnectionInvoked } = props;
   const { t } = useTranslation();
   const { t } = useTranslation();
   const [testChannel, setTestChannel] = useState('');
   const [testChannel, setTestChannel] = useState('');
   const [logsValue, setLogsValue] = useState('');
   const [logsValue, setLogsValue] = useState('');
@@ -190,8 +191,14 @@ const TestProcess = ({ apiv3Post, slackAppIntegrationId }) => {
     try {
     try {
       await apiv3Post('/slack-integration-settings/with-proxy/relation-test', { slackAppIntegrationId, channel: testChannel });
       await apiv3Post('/slack-integration-settings/with-proxy/relation-test', { slackAppIntegrationId, channel: testChannel });
       setIsLatestConnectionSuccess(true);
       setIsLatestConnectionSuccess(true);
-      const newLogs = addLogs(logsValue, successMessage, null);
-      setLogsValue(newLogs);
+
+      if (onTestConnectionInvoked != null) {
+        console.log('ontest は nullじゃない');
+        onTestConnectionInvoked();
+        const newLogs = addLogs(logsValue, successMessage, null);
+        setLogsValue(newLogs);
+      }
+
     }
     }
     catch (error) {
     catch (error) {
       setIsLatestConnectionSuccess(false);
       setIsLatestConnectionSuccess(false);
@@ -248,6 +255,8 @@ const TestProcess = ({ apiv3Post, slackAppIntegrationId }) => {
 
 
 const WithProxyAccordions = (props) => {
 const WithProxyAccordions = (props) => {
   const { t } = useTranslation();
   const { t } = useTranslation();
+  const { connectionStatuses, workspaceName } = props;
+  console.log(workspaceName);
 
 
   const officialBotIntegrationProcedure = {
   const officialBotIntegrationProcedure = {
     '①': {
     '①': {
@@ -312,7 +321,7 @@ const WithProxyAccordions = (props) => {
       {Object.entries(integrationProcedureMapping).map(([key, value]) => {
       {Object.entries(integrationProcedureMapping).map(([key, value]) => {
         return (
         return (
           <Accordion
           <Accordion
-            title={<><span className="mr-2">{key}</span>{t(`admin:slack_integration.accordion.${value.title}`)}</>}
+            title={<><span className="mr-2">{key}</span>{t(`admin:slack_integration.accordion.${value.title}`)} {value.title === 'test_connection' && workspaceName != null && <i className="ml-3 text-success fa fa-check"></i>}</>}
             key={key}
             key={key}
           >
           >
             {value.content}
             {value.content}