itizawa 5 lat temu
rodzic
commit
f1e081b75e

+ 37 - 0
src/client/js/components/Admin/App/MailSetting.jsx

@@ -2,6 +2,7 @@ import React from 'react';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
 
+import { toastSuccess, toastError } from '../../../util/apiNotification';
 import { withUnstatedContainers } from '../../UnstatedUtils';
 
 import AppContainer from '../../../services/AppContainer';
@@ -14,6 +15,18 @@ function MailSetting(props) {
   const { t, adminAppContainer } = props;
   const transmissionMethods = ['smtp', 'ses'];
 
+  async function submitHandler() {
+    const { t } = props;
+
+    try {
+      await adminAppContainer.updateMailSettingHandler();
+      toastSuccess(t('toaster.update_successed', { target: t('admin:app_setting.ses_settings') }));
+    }
+    catch (err) {
+      toastError(err);
+    }
+  }
+
   return (
     <React.Fragment>
       <div className="row form-group mb-5">
@@ -53,8 +66,32 @@ function MailSetting(props) {
             })}
         </div>
       </div>
+
       {adminAppContainer.state.transmissionMethod === 'smtp' && <SmtpSetting />}
       {adminAppContainer.state.transmissionMethod === 'ses' && <SesSetting />}
+
+      <div className="row my-3">
+        <div className="offset-5">
+          <button type="button" className="btn btn-primary" onClick={submitHandler} disabled={adminAppContainer.state.retrieveError != null}>
+            { t('Update') }
+          </button>
+        </div>
+        {/* {adminAppContainer.state.transmissionMethod === 'smtp' &&
+        (
+          return (
+        <div className="offset-1">
+          <button
+            type="button"
+            className="btn btn-secondary"
+            onClick={openInitializeValueModal}
+            disabled={adminAppContainer.state.retrieveError != null}
+          >
+            {t('admin:app_setting.initialize_mail_settings')}
+          </button>
+        </div>
+        ))
+        } */}
+      </div>
     </React.Fragment>
   );
 

+ 1 - 27
src/client/js/components/Admin/App/SesSetting.jsx

@@ -2,34 +2,16 @@
 import React from 'react';
 import PropTypes from 'prop-types';
 import { withTranslation } from 'react-i18next';
-import loggerFactory from '@alias/logger';
 
 import { withUnstatedContainers } from '../../UnstatedUtils';
-import { toastSuccess, toastError } from '../../../util/apiNotification';
 import { withLoadingSppiner } from '../../SuspenseUtils';
 
 
 import AppContainer from '../../../services/AppContainer';
 import AdminAppContainer from '../../../services/AdminAppContainer';
 
-const logger = loggerFactory('growi:smtpSettings');
-
-
 function SmtpSetting(props) {
-  const { adminAppContainer, t } = props;
-
-  async function submitHandler() {
-    const { t } = props;
-
-    try {
-      await adminAppContainer.updateSesSettingHandler();
-      toastSuccess(t('toaster.update_successed', { target: t('admin:app_setting.ses_settings') }));
-    }
-    catch (err) {
-      toastError(err);
-      logger.error(err);
-    }
-  }
+  const { adminAppContainer } = props;
 
   return (
     <React.Fragment>
@@ -66,14 +48,6 @@ function SmtpSetting(props) {
             />
           </div>
         </div>
-
-        <div className="row my-3">
-          <div className="mx-auto">
-            <button type="button" className="btn btn-primary" onClick={submitHandler} disabled={adminAppContainer.state.retrieveError != null}>
-              { t('Update') }
-            </button>
-          </div>
-        </div>
       </div>
 
     </React.Fragment>

+ 3 - 35
src/client/js/components/Admin/App/SmtpSetting.jsx

@@ -28,28 +28,14 @@ function SmtpSetting(props) {
 
   const [isInitializeValueModalOpen, setIsInitializeValueModalOpen] = useState(false);
 
-  function openInitializeValueModal() {
-    setIsInitializeValueModalOpen(true);
-
-  }
+  // function openInitializeValueModal() {
+  //   setIsInitializeValueModalOpen(true);
+  // }
 
   function closeInitializeValueModal() {
     setIsInitializeValueModalOpen(false);
   }
 
-  async function submitHandler() {
-    const { t, adminAppContainer } = props;
-
-    try {
-      await adminAppContainer.updateSmtpSettingHandler();
-      toastSuccess(t('toaster.update_successed', { target: t('admin:app_setting.smtp_settings') }));
-    }
-    catch (err) {
-      toastError(err);
-      logger.error(err);
-    }
-  }
-
   async function initialize() {
     const { t, adminAppContainer } = props;
 
@@ -131,24 +117,6 @@ function SmtpSetting(props) {
             />
           </div>
         </div>
-
-        <div className="row my-3">
-          <div className="offset-5">
-            <button type="button" className="btn btn-primary" onClick={submitHandler} disabled={adminAppContainer.state.retrieveError != null}>
-              { t('Update') }
-            </button>
-          </div>
-          <div className="offset-1">
-            <button
-              type="button"
-              className="btn btn-secondary"
-              onClick={openInitializeValueModal}
-              disabled={adminAppContainer.state.retrieveError != null}
-            >
-              {t('admin:app_setting.initialize_mail_settings')}
-            </button>
-          </div>
-        </div>
       </div>
 
 

+ 9 - 7
src/client/js/services/AdminAppContainer.js

@@ -249,13 +249,11 @@ export default class AdminAppContainer extends Container {
    * @memberOf AdminAppContainer
    * @return {Array} Appearance
    */
-  async updateMailSettingHandler() {
-    const response = await this.appContainer.apiv3.put('/app-settings/mail-setting', {
-      fromAddress: this.state.fromAddress,
-      transmissionMethod: this.state.transmissionMethod,
-    });
-    const { mailSettingParams } = response.data;
-    return mailSettingParams;
+  updateMailSettingHandler() {
+    if (this.state.transmissionMethod === 'smtp') {
+      return this.updateSmtpSettingHandler();
+    }
+    return this.updateSesSettingHandler();
   }
 
   /**
@@ -265,6 +263,8 @@ export default class AdminAppContainer extends Container {
    */
   async updateSmtpSettingHandler() {
     const response = await this.appContainer.apiv3.put('/app-settings/smtp-setting', {
+      fromAddress: this.state.fromAddress,
+      transmissionMethod: this.state.transmissionMethod,
       smtpHost: this.state.smtpHost,
       smtpPort: this.state.smtpPort,
       smtpUser: this.state.smtpUser,
@@ -281,6 +281,8 @@ export default class AdminAppContainer extends Container {
    */
   async updateSesSettingHandler() {
     const response = await this.appContainer.apiv3.put('/app-settings/ses-setting', {
+      fromAddress: this.state.fromAddress,
+      transmissionMethod: this.state.transmissionMethod,
       sesAccessKeyId: this.state.sesAccessKeyId,
       sesSecretAccessKey: this.state.sesSecretAccessKey,
     });