|
|
@@ -7,6 +7,8 @@ import ButtonToolbar from 'react-bootstrap/es/ButtonToolbar';
|
|
|
import SplitButton from 'react-bootstrap/es/SplitButton';
|
|
|
import MenuItem from 'react-bootstrap/es/MenuItem';
|
|
|
|
|
|
+import loggerFactory from '@alias/logger';
|
|
|
+
|
|
|
import PageContainer from '../services/PageContainer';
|
|
|
import AppContainer from '../services/AppContainer';
|
|
|
import EditorContainer from '../services/EditorContainer';
|
|
|
@@ -15,6 +17,7 @@ import { createSubscribedElement } from './UnstatedUtils';
|
|
|
import SlackNotification from './SlackNotification';
|
|
|
import GrantSelector from './SavePageControls/GrantSelector';
|
|
|
|
|
|
+const logger = loggerFactory('growi:SavePageControls');
|
|
|
|
|
|
class SavePageControls extends React.Component {
|
|
|
|
|
|
@@ -45,12 +48,19 @@ class SavePageControls extends React.Component {
|
|
|
this.props.editorContainer.setState(data);
|
|
|
}
|
|
|
|
|
|
- save() {
|
|
|
+ async save() {
|
|
|
const { pageContainer, editorContainer } = this.props;
|
|
|
// disable unsaved warning
|
|
|
editorContainer.disableUnsavedWarning();
|
|
|
- // save
|
|
|
- pageContainer.saveAndReload(editorContainer.getCurrentOptionsToSave());
|
|
|
+
|
|
|
+ try {
|
|
|
+ // save
|
|
|
+ await pageContainer.saveAndReload(editorContainer.getCurrentOptionsToSave());
|
|
|
+ }
|
|
|
+ catch (error) {
|
|
|
+ logger.error('failed to save', error);
|
|
|
+ pageContainer.showErrorToastr(error);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
saveAndOverwriteScopesOfDescendants() {
|