From 398c9f3f96895c751bcb1c39656527f4dbc2b752 Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Fri, 17 May 2019 10:01:57 +0800 Subject: [PATCH 1/3] Fix a bug created when the name is empty --- frontend/src/components/dialog/create-file-dialog.js | 7 +++++++ frontend/src/components/dialog/create-folder-dialog.js | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/frontend/src/components/dialog/create-file-dialog.js b/frontend/src/components/dialog/create-file-dialog.js index a3d755f176..0e380e0799 100644 --- a/frontend/src/components/dialog/create-file-dialog.js +++ b/frontend/src/components/dialog/create-file-dialog.js @@ -44,6 +44,13 @@ class CreateFile extends React.Component { handleSubmit = () => { let isDuplicated = this.checkDuplicatedName(); let newName = this.state.childName; + + if (!newName.trim()) { + let errMessage = gettext('The file name is empty'); + this.setState({errMessage: errMessage}); + return; + } + if (isDuplicated) { let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.'); errMessage = errMessage.replace('{name}', Utils.HTMLescape(newName)); diff --git a/frontend/src/components/dialog/create-folder-dialog.js b/frontend/src/components/dialog/create-folder-dialog.js index 8ea6896bcf..442af140f6 100644 --- a/frontend/src/components/dialog/create-folder-dialog.js +++ b/frontend/src/components/dialog/create-folder-dialog.js @@ -41,6 +41,12 @@ class CreateForder extends React.Component { handleSubmit = () => { let newName = this.state.childName; let isDuplicated = this.checkDuplicatedName(); + if (!newName.trim()) { + let errMessage = gettext('The folder name is empty'); + this.setState({errMessage: errMessage}); + return; + } + if (isDuplicated) { let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.'); errMessage = errMessage.replace('{name}', Utils.HTMLescape(newName)); From d70051f087637dcf3d976c3ed15c4f454f2e3281 Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Fri, 17 May 2019 11:09:05 +0800 Subject: [PATCH 2/3] When it is empty, submit btn is disabled --- .../dialog/create-department-repo-dialog.js | 9 ++++++++- .../src/components/dialog/create-file-dialog.js | 15 ++++++++------- .../components/dialog/create-folder-dialog.js | 16 +++++++++------- .../src/components/dialog/create-group-dialog.js | 9 ++++++++- .../src/components/dialog/create-repo-dialog.js | 11 +++++++++-- frontend/src/components/dialog/rename-dialog.js | 9 ++++++++- .../components/dialog/rename-grid-item-dialog.js | 9 ++++++++- .../src/components/dialog/rename-group-dialog.js | 9 ++++++++- 8 files changed, 66 insertions(+), 21 deletions(-) diff --git a/frontend/src/components/dialog/create-department-repo-dialog.js b/frontend/src/components/dialog/create-department-repo-dialog.js index e688946af5..c569fb07aa 100644 --- a/frontend/src/components/dialog/create-department-repo-dialog.js +++ b/frontend/src/components/dialog/create-department-repo-dialog.js @@ -14,11 +14,18 @@ class CreateDepartmentRepoDialog extends React.Component { this.state = { repoName: '', errMessage: '', + isSubmitBtnActive: false, }; this.newInput = React.createRef(); } handleChange = (e) => { + if (!e.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + this.setState({ repoName: e.target.value, }); @@ -90,7 +97,7 @@ class CreateDepartmentRepoDialog extends React.Component { {this.state.errMessage && {this.state.errMessage}} - + ); diff --git a/frontend/src/components/dialog/create-file-dialog.js b/frontend/src/components/dialog/create-file-dialog.js index 0e380e0799..dcdb00fb84 100644 --- a/frontend/src/components/dialog/create-file-dialog.js +++ b/frontend/src/components/dialog/create-file-dialog.js @@ -20,6 +20,7 @@ class CreateFile extends React.Component { childName: props.fileType || '', isDraft: false, errMessage: '', + isSubmitBtnActive: false, }; this.newInput = React.createRef(); } @@ -36,6 +37,12 @@ class CreateFile extends React.Component { } handleChange = (e) => { + if (!e.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + this.setState({ childName: e.target.value, }) ; @@ -45,12 +52,6 @@ class CreateFile extends React.Component { let isDuplicated = this.checkDuplicatedName(); let newName = this.state.childName; - if (!newName.trim()) { - let errMessage = gettext('The file name is empty'); - this.setState({errMessage: errMessage}); - return; - } - if (isDuplicated) { let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.'); errMessage = errMessage.replace('{name}', Utils.HTMLescape(newName)); @@ -155,7 +156,7 @@ class CreateFile extends React.Component { - + ); diff --git a/frontend/src/components/dialog/create-folder-dialog.js b/frontend/src/components/dialog/create-folder-dialog.js index 442af140f6..b9aee6b25c 100644 --- a/frontend/src/components/dialog/create-folder-dialog.js +++ b/frontend/src/components/dialog/create-folder-dialog.js @@ -18,7 +18,8 @@ class CreateForder extends React.Component { this.state = { parentPath: '', childName: '', - errMessage: '' + errMessage: '', + isSubmitBtnActive: false, }; this.newInput = React.createRef(); } @@ -35,17 +36,18 @@ class CreateForder extends React.Component { } handleChange = (e) => { + if (!e.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + this.setState({childName: e.target.value}); } handleSubmit = () => { let newName = this.state.childName; let isDuplicated = this.checkDuplicatedName(); - if (!newName.trim()) { - let errMessage = gettext('The folder name is empty'); - this.setState({errMessage: errMessage}); - return; - } if (isDuplicated) { let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.'); @@ -94,7 +96,7 @@ class CreateForder extends React.Component { - + ); diff --git a/frontend/src/components/dialog/create-group-dialog.js b/frontend/src/components/dialog/create-group-dialog.js index 9b05c1136b..e798892519 100644 --- a/frontend/src/components/dialog/create-group-dialog.js +++ b/frontend/src/components/dialog/create-group-dialog.js @@ -11,6 +11,7 @@ class CreateGroupDialog extends React.Component { this.state = { groupName: '', errorMsg: '', + isSubmitBtnActive: false, }; this.newInput = React.createRef(); } @@ -22,6 +23,12 @@ class CreateGroupDialog extends React.Component { handleGroupChange = (event) => { let name = event.target.value; + + if (!name.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } this.setState({ groupName: name }); @@ -79,7 +86,7 @@ class CreateGroupDialog extends React.Component { - + ); diff --git a/frontend/src/components/dialog/create-repo-dialog.js b/frontend/src/components/dialog/create-repo-dialog.js index be598b06c4..22a8742e71 100644 --- a/frontend/src/components/dialog/create-repo-dialog.js +++ b/frontend/src/components/dialog/create-repo-dialog.js @@ -19,12 +19,19 @@ class CreateRepoDialog extends React.Component { password1: '', password2: '', errMessage: '', - permission: 'rw' + permission: 'rw', + isSubmitBtnActive: false, }; this.newInput = React.createRef(); } handleRepoNameChange = (e) => { + if (!e.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + this.setState({repoName: e.target.value}); } @@ -205,7 +212,7 @@ class CreateRepoDialog extends React.Component { - + ); diff --git a/frontend/src/components/dialog/rename-dialog.js b/frontend/src/components/dialog/rename-dialog.js index 743880f4d2..55d13596d0 100644 --- a/frontend/src/components/dialog/rename-dialog.js +++ b/frontend/src/components/dialog/rename-dialog.js @@ -17,6 +17,7 @@ class Rename extends React.Component { this.state = { newName: '', errMessage: '', + isSubmitBtnActive: false, }; this.newInput = React.createRef(); } @@ -43,6 +44,12 @@ class Rename extends React.Component { } handleChange = (e) => { + if (!e.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + this.setState({newName: e.target.value}); } @@ -113,7 +120,7 @@ class Rename extends React.Component { - + ); diff --git a/frontend/src/components/dialog/rename-grid-item-dialog.js b/frontend/src/components/dialog/rename-grid-item-dialog.js index 37aaab922f..7173b497d6 100644 --- a/frontend/src/components/dialog/rename-grid-item-dialog.js +++ b/frontend/src/components/dialog/rename-grid-item-dialog.js @@ -18,6 +18,7 @@ class Rename extends React.Component { this.state = { newName: '', errMessage: '', + isSubmitBtnActive: false, }; this.newInput = React.createRef(); } @@ -44,6 +45,12 @@ class Rename extends React.Component { } handleChange = (e) => { + if (!e.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + this.setState({newName: e.target.value}); } @@ -114,7 +121,7 @@ class Rename extends React.Component { - + ); diff --git a/frontend/src/components/dialog/rename-group-dialog.js b/frontend/src/components/dialog/rename-group-dialog.js index 7afffef6dc..bc2cecaf41 100644 --- a/frontend/src/components/dialog/rename-group-dialog.js +++ b/frontend/src/components/dialog/rename-group-dialog.js @@ -10,10 +10,17 @@ class RenameGroupDialog extends React.Component { super(props); this.state = { newGroupName: this.props.currentGroupName, + isSubmitBtnActive: false, }; } handleGroupNameChange = (event) => { + if (!event.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + let name = event.target.value; this.setState({ newGroupName: name @@ -52,7 +59,7 @@ class RenameGroupDialog extends React.Component { - + ); From e538bbc2847a472820736511e4b6653601848932 Mon Sep 17 00:00:00 2001 From: zxj96 <519213124@qq.com> Date: Fri, 17 May 2019 11:11:59 +0800 Subject: [PATCH 3/3] Add new-wiki-dialog.js --- frontend/src/components/dialog/new-wiki-dialog.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/dialog/new-wiki-dialog.js b/frontend/src/components/dialog/new-wiki-dialog.js index cb1fcc4122..34ba8c55a9 100644 --- a/frontend/src/components/dialog/new-wiki-dialog.js +++ b/frontend/src/components/dialog/new-wiki-dialog.js @@ -16,6 +16,7 @@ class NewWikiDialog extends React.Component { isExist: false, name: '', repoID: '', + isSubmitBtnActive: false, }; this.newName = React.createRef(); } @@ -26,6 +27,12 @@ class NewWikiDialog extends React.Component { } inputNewName = (e) => { + if (!event.target.value.trim()) { + this.setState({isSubmitBtnActive: false}); + } else { + this.setState({isSubmitBtnActive: true}); + } + this.setState({ name: e.target.value, }); @@ -57,7 +64,7 @@ class NewWikiDialog extends React.Component { - + );