Parcourir la source

Revert "reset pagesharemanagement"

This reverts commit c5d3489274fbdade110becaa912f04e95f853fea.
yusuketk il y a 5 ans
Parent
commit
c6114b8628
1 fichiers modifiés avec 66 ajouts et 1 suppressions
  1. 66 1
      src/client/js/components/Page/PageShareManagement.jsx

+ 66 - 1
src/client/js/components/Page/PageShareManagement.jsx

@@ -3,17 +3,24 @@ import PropTypes from 'prop-types';
 import { UncontrolledTooltip } from 'reactstrap';
 import { withTranslation } from 'react-i18next';
 import { withUnstatedContainers } from '../UnstatedUtils';
+
 import AppContainer from '../../services/AppContainer';
 import PageContainer from '../../services/PageContainer';
 import OutsideShareLinkModal from '../OutsideShareLinkModal';
 
+import { toastError } from '../../util/apiNotification';
+
+import ArchiveCreateModal from '../ArchiveCreateModal';
+
 const PageShareManagement = (props) => {
   const { t, appContainer, pageContainer } = props;
 
+  const { path } = pageContainer.state;
   const { currentUser } = appContainer;
 
   const [isOutsideShareLinkModalShown, setIsOutsideShareLinkModalShown] = useState(false);
 
+  const [isArchiveCreateModalShown, setIsArchiveCreateModalShown] = useState(false);
 
   function openOutsideShareLinkModalHandler() {
     setIsOutsideShareLinkModalShown(true);
@@ -23,6 +30,35 @@ const PageShareManagement = (props) => {
     setIsOutsideShareLinkModalShown(false);
   }
 
+
+  async function getExportPageFile(type) {
+    const pageId = pageContainer.state.pageId;
+    try {
+      const res = await appContainer.apiv3Get('/pages/export', { pageId, type });
+      return res;
+    }
+    catch (err) {
+      toastError(Error(t('export_bulk.failed_to_export')));
+    }
+  }
+
+  function exportPage(exportPageFile) {
+    // TODO implement
+  }
+
+  function exportPageHundler(type) {
+    const exportPageFile = getExportPageFile(type);
+    exportPage(exportPageFile);
+  }
+  function openArchiveModalHandler() {
+    setIsArchiveCreateModalShown(true);
+  }
+
+  function closeArchiveCreateModalHandler() {
+    setIsArchiveCreateModalShown(false);
+  }
+
+
   function renderModals() {
     return (
       <>
@@ -30,6 +66,12 @@ const PageShareManagement = (props) => {
           isOpen={isOutsideShareLinkModalShown}
           onClose={closeOutsideShareLinkModalHandler}
         />
+
+        <ArchiveCreateModal
+          isOpen={isArchiveCreateModalShown}
+          onClose={closeArchiveCreateModalHandler}
+          path={path}
+        />
       </>
     );
   }
@@ -71,9 +113,32 @@ const PageShareManagement = (props) => {
       {currentUser == null ? renderGuestUser() : renderCurrentUser()}
       <div className="dropdown-menu dropdown-menu-right">
         <button className="dropdown-item" type="button" onClick={openOutsideShareLinkModalHandler}>
-          <i className="icon-fw icon-link"></i>{t('Shere this page link to public')}
+          <i className="icon-fw icon-link"></i>
+          {t('Shere this page link to public')}
           <span className="ml-2 badge badge-info badge-pill">{pageContainer.state.shareLinksNumber}</span>
         </button>
+        <button
+          type="button"
+          className="dropdown-item"
+          onClick={() => {
+            exportPageHundler('markdown');
+          }}
+        >
+          <span>{t('export_bulk.export_page_markdown')}</span>
+        </button>
+        <button
+          type="button"
+          className="dropdown-item"
+          onClick={() => {
+            exportPageHundler('pdf');
+          }}
+        >
+          <span>{t('export_bulk.export_page_pdf')}</span>
+        </button>
+
+        <button className="dropdown-item" type="button" onClick={openArchiveModalHandler}>
+          <i className="icon-fw"></i>{t('Create Archive Page')}
+        </button>
       </div>
       {renderModals()}
     </>