|
|
@@ -14,7 +14,9 @@ import { withUnstatedContainers } from './UnstatedUtils';
|
|
|
import { toastError } from '~/client/util/apiNotification';
|
|
|
|
|
|
import AppContainer from '~/client/services/AppContainer';
|
|
|
-import PageContainer from '~/client/services/PageContainer';
|
|
|
+
|
|
|
+import { apiv3Get, apiv3Put } from '~/client/util/apiv3-client';
|
|
|
+
|
|
|
import ApiErrorMessageList from './PageManagement/ApiErrorMessageList';
|
|
|
import ComparePathsTable from './ComparePathsTable';
|
|
|
import DuplicatedPathsTable from './DuplicatedPathsTable';
|
|
|
@@ -22,11 +24,9 @@ import DuplicatedPathsTable from './DuplicatedPathsTable';
|
|
|
|
|
|
const PageRenameModal = (props) => {
|
|
|
const {
|
|
|
- t, appContainer, pageContainer,
|
|
|
+ t, appContainer, path, pageId, revisionId,
|
|
|
} = props;
|
|
|
|
|
|
- const { path } = pageContainer.state;
|
|
|
-
|
|
|
const { crowi } = appContainer.config;
|
|
|
|
|
|
const [pageNameInput, setPageNameInput] = useState(path);
|
|
|
@@ -37,7 +37,7 @@ const PageRenameModal = (props) => {
|
|
|
const [existingPaths, setExistingPaths] = useState([]);
|
|
|
const [isRenameRecursively, SetIsRenameRecursively] = useState(true);
|
|
|
const [isRenameRedirect, SetIsRenameRedirect] = useState(false);
|
|
|
- const [isRenameMetadata, SetIsRenameMetadata] = useState(false);
|
|
|
+ const [isRemainMetadata, SetIsRemainMetadata] = useState(false);
|
|
|
const [subordinatedError] = useState(null);
|
|
|
const [isRenameRecursivelyWithoutExistPath, setIsRenameRecursivelyWithoutExistPath] = useState(true);
|
|
|
|
|
|
@@ -53,13 +53,13 @@ const PageRenameModal = (props) => {
|
|
|
SetIsRenameRedirect(!isRenameRedirect);
|
|
|
}
|
|
|
|
|
|
- function changeIsRenameMetadataHandler() {
|
|
|
- SetIsRenameMetadata(!isRenameMetadata);
|
|
|
+ function changeIsRemainMetadataHandler() {
|
|
|
+ SetIsRemainMetadata(!isRemainMetadata);
|
|
|
}
|
|
|
|
|
|
const updateSubordinatedList = useCallback(async() => {
|
|
|
try {
|
|
|
- const res = await appContainer.apiv3Get('/pages/subordinated-list', { path });
|
|
|
+ const res = await apiv3Get('/pages/subordinated-list', { path });
|
|
|
const { subordinatedPaths } = res.data;
|
|
|
setSubordinatedPages(subordinatedPaths);
|
|
|
}
|
|
|
@@ -67,7 +67,7 @@ const PageRenameModal = (props) => {
|
|
|
setErrs(err);
|
|
|
toastError(t('modal_rename.label.Fail to get subordinated pages'));
|
|
|
}
|
|
|
- }, [appContainer, path, t]);
|
|
|
+ }, [path, t]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
if (props.isOpen) {
|
|
|
@@ -78,7 +78,7 @@ const PageRenameModal = (props) => {
|
|
|
|
|
|
const checkExistPaths = async(newParentPath) => {
|
|
|
try {
|
|
|
- const res = await appContainer.apiv3Get('/page/exist-paths', { fromPath: path, toPath: newParentPath });
|
|
|
+ const res = await apiv3Get('/page/exist-paths', { fromPath: path, toPath: newParentPath });
|
|
|
const { existPaths } = res.data;
|
|
|
setExistingPaths(existPaths);
|
|
|
}
|
|
|
@@ -112,12 +112,15 @@ const PageRenameModal = (props) => {
|
|
|
setErrs(null);
|
|
|
|
|
|
try {
|
|
|
- const response = await pageContainer.rename(
|
|
|
- pageNameInput,
|
|
|
- isRenameRecursively,
|
|
|
+ const response = await apiv3Put('/pages/rename', {
|
|
|
+ revisionId,
|
|
|
+ pageId,
|
|
|
+ isRecursively: isRenameRecursively,
|
|
|
isRenameRedirect,
|
|
|
- isRenameMetadata,
|
|
|
- );
|
|
|
+ isRemainMetadata,
|
|
|
+ newPagePath: pageNameInput,
|
|
|
+ path,
|
|
|
+ });
|
|
|
|
|
|
const { page } = response.data;
|
|
|
const url = new URL(page.path, 'https://dummy');
|
|
|
@@ -215,12 +218,12 @@ const PageRenameModal = (props) => {
|
|
|
<input
|
|
|
className="custom-control-input"
|
|
|
name="remain_metadata"
|
|
|
- id="cbRenameMetadata"
|
|
|
+ id="cbRemainMetadata"
|
|
|
type="checkbox"
|
|
|
- checked={isRenameMetadata}
|
|
|
- onChange={changeIsRenameMetadataHandler}
|
|
|
+ checked={isRemainMetadata}
|
|
|
+ onChange={changeIsRemainMetadataHandler}
|
|
|
/>
|
|
|
- <label className="custom-control-label" htmlFor="cbRenameMetadata">
|
|
|
+ <label className="custom-control-label" htmlFor="cbRemainMetadata">
|
|
|
{ t('modal_rename.label.Do not update metadata') }
|
|
|
<p className="form-text text-muted mt-0">{ t('modal_rename.help.metadata') }</p>
|
|
|
</label>
|
|
|
@@ -244,17 +247,17 @@ const PageRenameModal = (props) => {
|
|
|
/**
|
|
|
* Wrapper component for using unstated
|
|
|
*/
|
|
|
-const PageRenameModalWrapper = withUnstatedContainers(PageRenameModal, [AppContainer, PageContainer]);
|
|
|
-
|
|
|
+const PageRenameModalWrapper = withUnstatedContainers(PageRenameModal, [AppContainer]);
|
|
|
|
|
|
PageRenameModal.propTypes = {
|
|
|
t: PropTypes.func.isRequired, // i18next
|
|
|
appContainer: PropTypes.instanceOf(AppContainer).isRequired,
|
|
|
- pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
|
|
|
|
|
|
isOpen: PropTypes.bool.isRequired,
|
|
|
onClose: PropTypes.func.isRequired,
|
|
|
|
|
|
+ pageId: PropTypes.string.isRequired,
|
|
|
+ revisionId: PropTypes.string.isRequired,
|
|
|
path: PropTypes.string.isRequired,
|
|
|
};
|
|
|
|