熊谷洸介(Kousuke Kumagai) 5 лет назад
Родитель
Сommit
fb2683c719
2 измененных файлов с 47 добавлено и 2 удалено
  1. 1 1
      config/env.dev.js
  2. 46 1
      src/client/js/components/Admin/Security/ShareLinkSetting.jsx

+ 1 - 1
config/env.dev.js

@@ -4,7 +4,7 @@ module.exports = {
   // MONGO_GRIDFS_TOTAL_LIMIT: 10485760,   // 10MB
   MATHJAX: 1,
   // NO_CDN: true,
-  MONGO_URI: 'mongodb://mongo:27017/growi',
+  MONGO_URI: 'mongodb://localhost:27017/growi',
   // REDIS_URI: 'http://redis:6379',
   ELASTICSEARCH_URI: 'http://elasticsearch:9200/growi',
   HACKMD_URI: 'http://localhost:3010',

+ 46 - 1
src/client/js/components/Admin/Security/ShareLinkSetting.jsx

@@ -6,8 +6,49 @@ import { withUnstatedContainers } from '../../UnstatedUtils';
 
 import AdminGeneralSecurityContainer from '../../../services/AdminGeneralSecurityContainer';
 
+import { toastSuccess, toastError } from '../../../util/apiNotification';
+
+import ShareLinkList from '../../ShareLinkList';
+
 class ShareLinkSetting extends React.Component {
 
+  constructor() {
+    super();
+    this.state = {
+      shareLinks: [],
+    };
+    this.deleteAllLinksButtonHandler = this.deleteAllLinksButtonHandler.bind(this);
+    this.deleteLinkById = this.deleteLinkById.bind(this);
+  }
+
+
+  async deleteLinkById() {
+    const { t, adminGeneralSecurityContainer } = this.props;
+
+    try {
+      await adminGeneralSecurityContainer.deleteLinkById();
+      toastSuccess(t('security_setting.updated_general_security_setting'));
+    }
+    catch (err) {
+      toastError(err);
+    }
+
+    this.retrieveShareLinks();
+  }
+
+  async deleteAllLinksButtonHandler() {
+    const { t, adminGeneralSecurityContainer } = this.props;
+    try {
+      await adminGeneralSecurityContainer.deleteAllLinksButtonHandler();
+      toastSuccess(t('security_setting.updated_general_security_setting'));
+    }
+    catch (err) {
+      toastError(err);
+    }
+
+    this.retrieveShareLinks();
+  }
+
   render() {
     return (
       <>
@@ -28,7 +69,10 @@ class ShareLinkSetting extends React.Component {
               </tr>
             </thead>
             <tbody>
-              {/* ShareLinkListを参考に */}
+              <ShareLinkList
+                shareLinks={this.state.shareLinks}
+                onClickDeleteButton={this.deleteLinkById}
+              />
             </tbody>
           </table>
         </div>
@@ -42,6 +86,7 @@ class ShareLinkSetting extends React.Component {
 const ShareLinkSettingWrapper = withUnstatedContainers(ShareLinkSetting, [AdminGeneralSecurityContainer]);
 
 ShareLinkSetting.propTypes = {
+  t: PropTypes.func.isRequired, //  i18next
   adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired,
 };