|
@@ -8,6 +8,8 @@ import AppContainer from '../../services/AppContainer';
|
|
|
import PageContainer from '../../services/PageContainer';
|
|
import PageContainer from '../../services/PageContainer';
|
|
|
import OutsideShareLinkModal from '../OutsideShareLinkModal';
|
|
import OutsideShareLinkModal from '../OutsideShareLinkModal';
|
|
|
|
|
|
|
|
|
|
+import { toastError } from '../../util/apiNotification';
|
|
|
|
|
+
|
|
|
|
|
|
|
|
const PageShareManagement = (props) => {
|
|
const PageShareManagement = (props) => {
|
|
|
const { t, appContainer, pageContainer } = props;
|
|
const { t, appContainer, pageContainer } = props;
|
|
@@ -24,6 +26,27 @@ const PageShareManagement = (props) => {
|
|
|
setIsOutsideShareLinkModalShown(false);
|
|
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 renderModals() {
|
|
function renderModals() {
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
@@ -75,6 +98,12 @@ const PageShareManagement = (props) => {
|
|
|
<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>
|
|
<span className="ml-2 badge badge-info badge-pill">{pageContainer.state.shareLinksNumber}</span>
|
|
|
</button>
|
|
</button>
|
|
|
|
|
+ <button type="button" className="dropdown-item" onClick={() => { exportPageHundler('markdown') }}>
|
|
|
|
|
+ <span>Export page as Markdown</span>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ <button type="button" className="dropdown-item" onClick={() => { exportPageHundler('pdf') }}>
|
|
|
|
|
+ <span>Export page as PDF</span>
|
|
|
|
|
+ </button>
|
|
|
</div>
|
|
</div>
|
|
|
{renderModals()}
|
|
{renderModals()}
|
|
|
</>
|
|
</>
|