From 1857314bd69a4ab0ef3fdcde2c880a8769e3fdcf Mon Sep 17 00:00:00 2001 From: Michael An <2331806369@qq.com> Date: Tue, 7 May 2024 18:17:43 +0800 Subject: [PATCH] optimize codes --- .../src/pages/wiki/css/view-structure.css | 7 +++++ .../view-structure/add-exist-file-dialog.js | 28 ++++++++++++------- .../view-structure/add-new-page-dialog.js | 15 +++++----- 3 files changed, 32 insertions(+), 18 deletions(-) diff --git a/frontend/src/pages/wiki/css/view-structure.css b/frontend/src/pages/wiki/css/view-structure.css index c30de819d76..606e3088206 100644 --- a/frontend/src/pages/wiki/css/view-structure.css +++ b/frontend/src/pages/wiki/css/view-structure.css @@ -355,6 +355,13 @@ color: #fff; } +.dtable-dropdown-menu.large .dropdown-item { + min-height: 32px; + padding: 3px 12px; + display: flex; + align-items: center; +} + /* dark mode */ .view-structure-dark.view-structure, .view-structure-dark.view-structure .view-folder .icon-expand-folder { diff --git a/frontend/src/pages/wiki/view-structure/add-exist-file-dialog.js b/frontend/src/pages/wiki/view-structure/add-exist-file-dialog.js index d53245e5415..2e7df26521f 100644 --- a/frontend/src/pages/wiki/view-structure/add-exist-file-dialog.js +++ b/frontend/src/pages/wiki/view-structure/add-exist-file-dialog.js @@ -23,7 +23,6 @@ class AddExistFileDialog extends React.Component { repo: null, selectedPath: '', errMessage: '', - newFileName: '', }; } @@ -34,20 +33,29 @@ class AddExistFileDialog extends React.Component { } }; - onFileNameChange = (event) => { - this.setState({ newFileName: event.target.value }); - }; - toggle = () => { this.props.toggle(); }; + checkName = (newName) => { + if (newName === '') { + toaster.danger(gettext('Name cannot be empty')); + return false; + } + if (newName.includes('/')) { + toaster.danger(gettext('Name cannot contain slash')); + return false; + } + if (newName.includes('\\')) { + toaster.danger(gettext('Name cannot contain backslash')); + return false; + } + return true; + }; + onSubmit = () => { const pageName = this.state.pageName.trim(); - if (pageName === '') { - toaster.danger(gettext('Page name cannot be empty')); - return; - } + if (!this.checkName(pageName)) return; let { selectedPath } = this.state; if (selectedPath.endsWith('.sdoc') === false && selectedPath.endsWith('.md') === false) { toaster.danger(gettext('Please select an existing sdoc or markdown file')); @@ -91,7 +99,7 @@ class AddExistFileDialog extends React.Component { return ( {gettext('Add existing file')} - +
diff --git a/frontend/src/pages/wiki/view-structure/add-new-page-dialog.js b/frontend/src/pages/wiki/view-structure/add-new-page-dialog.js index fb846371a8b..1150c9ce750 100644 --- a/frontend/src/pages/wiki/view-structure/add-new-page-dialog.js +++ b/frontend/src/pages/wiki/view-structure/add-new-page-dialog.js @@ -12,6 +12,8 @@ const propTypes = { onAddNewPage: PropTypes.func, }; +const NEW_WIKI_FILE_PATH = '/wiki-pages/'; + class AddNewPageDialog extends React.Component { constructor(props) { @@ -19,21 +21,19 @@ class AddNewPageDialog extends React.Component { this.state = { pageName: '', isLoading: true, - repo: null, errMessage: '', newFileName: '', }; } componentDidMount() { - const path = '/wiki-pages/'; - seafileAPI.getDirInfo(repoID, path).then((res) => { - if (res.data.path === path) { + seafileAPI.getDirInfo(repoID, NEW_WIKI_FILE_PATH).then((res) => { + if (res.data.path === NEW_WIKI_FILE_PATH) { this.setState({ isLoading: false }); } }).catch((error) => { if (error.response.data.error_msg === 'Folder /wiki-pages/ not found.') { - seafileAPI.createDir(repoID, path).then((res) => { + seafileAPI.createDir(repoID, NEW_WIKI_FILE_PATH).then((res) => { if (res.data === 'success') { this.setState({ isLoading: false }); } @@ -86,8 +86,7 @@ class AddNewPageDialog extends React.Component { const newFileName = this.state.newFileName.trim(); if (this.checkName(pageName) && this.checkName(newFileName)) { this.setState({ isLoading: true }); - const path = '/wiki-pages/'; - this.createFile(pageName, `${path}${newFileName}.sdoc`); + this.createFile(pageName, `${NEW_WIKI_FILE_PATH}${newFileName}.sdoc`); } }; @@ -120,7 +119,7 @@ class AddNewPageDialog extends React.Component { return ( {gettext('Add page')} - +