2
0
Эх сурвалжийг харах

Merge branch 'support/share-link-for-outside-for-merge' into support/create-link-test

itizawa 5 жил өмнө
parent
commit
63fcf2c03a

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

@@ -10,7 +10,7 @@ class ShareLinkSetting extends React.Component {
 
   render() {
     return (
-      <div className="container">
+      <>
         <div className="mb-3">
           <h2 className="alert-anchor border-bottom">Shared Link List</h2>
         </div>
@@ -33,7 +33,7 @@ class ShareLinkSetting extends React.Component {
           </table>
         </div>
 
-      </div>
+      </>
     );
   }
 

+ 27 - 5
src/client/js/components/OutsideShareLinkModal.jsx

@@ -31,6 +31,25 @@ class OutsideShareLinkModal extends React.Component {
     this.deleteLinkById = this.deleteLinkById.bind(this);
   }
 
+  componentDidMount() {
+    this.retrieveShareLinks();
+  }
+
+  async retrieveShareLinks() {
+    const { appContainer, pageContainer } = this.props;
+    const { pageId } = pageContainer.state;
+
+    try {
+      const res = await appContainer.apiv3.get('/share-links/', { relatedPage: pageId });
+      const { shareLinksResult } = res.data;
+      this.setState({ shareLinks: shareLinksResult });
+    }
+    catch (err) {
+      toastError(err);
+    }
+
+  }
+
   toggleShareLinkFormHandler() {
     this.setState({ isOpenShareLinkForm: !this.state.isOpenShareLinkForm });
   }
@@ -48,7 +67,7 @@ class OutsideShareLinkModal extends React.Component {
       toastError(err);
     }
 
-    // TODO GW-2764 retrieve share links
+    this.retrieveShareLinks();
   }
 
   async deleteLinkById(shareLinkId) {
@@ -57,13 +76,13 @@ class OutsideShareLinkModal extends React.Component {
     try {
       const res = await appContainer.apiv3Delete(`/share-links/${shareLinkId}`);
       const { deletedShareLink } = res.data;
-      toastSuccess(t('remove_share_link_success', { shareLinkId: deletedShareLink._id }));
+      toastSuccess(t('toaster.remove_share_link_success', { shareLinkId: deletedShareLink._id }));
     }
     catch (err) {
       toastError(err);
     }
 
-    // TODO GW-2764 retrieve share links
+    this.retrieveShareLinks();
   }
 
   render() {
@@ -79,7 +98,10 @@ class OutsideShareLinkModal extends React.Component {
             </div>
 
             <div>
-              <ShareLinkList shareLinks={this.state.shareLinks} />
+              <ShareLinkList
+                shareLinks={this.state.shareLinks}
+                onClickDeleteButton={this.deleteLinkById}
+              />
               <button
                 className="btn btn-outline-secondary d-block mx-auto px-5 mb-3"
                 type="button"
@@ -87,7 +109,7 @@ class OutsideShareLinkModal extends React.Component {
               >
                 {this.state.isOpenShareLinkForm ? 'Close' : 'New'}
               </button>
-              {this.state.isOpenShareLinkForm && <ShareLinkForm onCloseForm={this.toggleShareLinkFormHandler} onClickDeleteButton={this.deleteLinkById} />}
+              {this.state.isOpenShareLinkForm && <ShareLinkForm onCloseForm={this.toggleShareLinkFormHandler} />}
             </div>
           </div>
         </ModalBody>

+ 3 - 3
src/client/js/components/ShareLinkList.jsx

@@ -21,9 +21,9 @@ const ShareLinkList = (props) => {
     return (
       <>
         {props.shareLinks.map(shareLink => (
-          <tr>
-            <td>{shareLink.link}</td>
-            <td>{shareLink.expiration}</td>
+          <tr key={shareLink._id}>
+            <td>{shareLink._id}</td>
+            <td>{shareLink.expiredAt}</td>
             <td>{shareLink.description}</td>
             <td>
               <button className="btn btn-outline-warning" type="button" onClick={() => deleteLinkHandler(shareLink._id)}>

+ 2 - 2
src/server/routes/apiv3/share-links.js

@@ -8,7 +8,7 @@ const express = require('express');
 
 const router = express.Router();
 
-const { body, query } = require('express-validator/check');
+const { body } = require('express-validator/check');
 
 const ErrorV3 = require('../../models/vo/error-apiv3');
 
@@ -48,7 +48,7 @@ module.exports = (crowi) => {
    *          200:
    *            description: Succeeded to get share links
    */
-  router.get('/', loginRequired, csrf, apiV3FormValidator, async(req, res) => {
+  router.get('/', loginRequired, async(req, res) => {
     const { relatedPage } = req.query;
     try {
       const shareLinksResult = await ShareLink.find({ relatedPage: { $in: relatedPage } });