1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 07:55:36 +00:00

Merge pull request #3481 from haiwen/repire_empty_name

Fix a bug created when the name is empty
This commit is contained in:
Daniel Pan
2019-05-17 11:32:20 +08:00
committed by GitHub
9 changed files with 76 additions and 11 deletions

View File

@@ -14,11 +14,18 @@ class CreateDepartmentRepoDialog extends React.Component {
this.state = { this.state = {
repoName: '', repoName: '',
errMessage: '', errMessage: '',
isSubmitBtnActive: false,
}; };
this.newInput = React.createRef(); this.newInput = React.createRef();
} }
handleChange = (e) => { handleChange = (e) => {
if (!e.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({ this.setState({
repoName: e.target.value, repoName: e.target.value,
}); });
@@ -90,7 +97,7 @@ class CreateDepartmentRepoDialog extends React.Component {
{this.state.errMessage && <Alert color="danger">{this.state.errMessage}</Alert>} {this.state.errMessage && <Alert color="danger">{this.state.errMessage}</Alert>}
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="primary" onClick={this.handleSubmit}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmit} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -20,6 +20,7 @@ class CreateFile extends React.Component {
childName: props.fileType || '', childName: props.fileType || '',
isDraft: false, isDraft: false,
errMessage: '', errMessage: '',
isSubmitBtnActive: false,
}; };
this.newInput = React.createRef(); this.newInput = React.createRef();
} }
@@ -36,6 +37,12 @@ class CreateFile extends React.Component {
} }
handleChange = (e) => { handleChange = (e) => {
if (!e.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({ this.setState({
childName: e.target.value, childName: e.target.value,
}) ; }) ;
@@ -44,6 +51,7 @@ class CreateFile extends React.Component {
handleSubmit = () => { handleSubmit = () => {
let isDuplicated = this.checkDuplicatedName(); let isDuplicated = this.checkDuplicatedName();
let newName = this.state.childName; let newName = this.state.childName;
if (isDuplicated) { if (isDuplicated) {
let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.'); let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.');
errMessage = errMessage.replace('{name}', Utils.HTMLescape(newName)); errMessage = errMessage.replace('{name}', Utils.HTMLescape(newName));
@@ -148,7 +156,7 @@ class CreateFile extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.handleSubmit}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmit} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -18,7 +18,8 @@ class CreateForder extends React.Component {
this.state = { this.state = {
parentPath: '', parentPath: '',
childName: '', childName: '',
errMessage: '' errMessage: '',
isSubmitBtnActive: false,
}; };
this.newInput = React.createRef(); this.newInput = React.createRef();
} }
@@ -35,12 +36,19 @@ class CreateForder extends React.Component {
} }
handleChange = (e) => { handleChange = (e) => {
if (!e.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({childName: e.target.value}); this.setState({childName: e.target.value});
} }
handleSubmit = () => { handleSubmit = () => {
let newName = this.state.childName; let newName = this.state.childName;
let isDuplicated = this.checkDuplicatedName(); let isDuplicated = this.checkDuplicatedName();
if (isDuplicated) { if (isDuplicated) {
let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.'); let errMessage = gettext('The name "{name}" is already taken. Please choose a different name.');
errMessage = errMessage.replace('{name}', Utils.HTMLescape(newName)); errMessage = errMessage.replace('{name}', Utils.HTMLescape(newName));
@@ -88,7 +96,7 @@ class CreateForder extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.handleSubmit}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmit} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -11,6 +11,7 @@ class CreateGroupDialog extends React.Component {
this.state = { this.state = {
groupName: '', groupName: '',
errorMsg: '', errorMsg: '',
isSubmitBtnActive: false,
}; };
this.newInput = React.createRef(); this.newInput = React.createRef();
} }
@@ -22,6 +23,12 @@ class CreateGroupDialog extends React.Component {
handleGroupChange = (event) => { handleGroupChange = (event) => {
let name = event.target.value; let name = event.target.value;
if (!name.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({ this.setState({
groupName: name groupName: name
}); });
@@ -79,7 +86,7 @@ class CreateGroupDialog extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.props.toggleAddGroupModal}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.props.toggleAddGroupModal}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.handleSubmitGroup}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmitGroup} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -19,12 +19,19 @@ class CreateRepoDialog extends React.Component {
password1: '', password1: '',
password2: '', password2: '',
errMessage: '', errMessage: '',
permission: 'rw' permission: 'rw',
isSubmitBtnActive: false,
}; };
this.newInput = React.createRef(); this.newInput = React.createRef();
} }
handleRepoNameChange = (e) => { handleRepoNameChange = (e) => {
if (!e.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({repoName: e.target.value}); this.setState({repoName: e.target.value});
} }
@@ -205,7 +212,7 @@ class CreateRepoDialog extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.handleSubmit}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmit} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -16,6 +16,7 @@ class NewWikiDialog extends React.Component {
isExist: false, isExist: false,
name: '', name: '',
repoID: '', repoID: '',
isSubmitBtnActive: false,
}; };
this.newName = React.createRef(); this.newName = React.createRef();
} }
@@ -26,6 +27,12 @@ class NewWikiDialog extends React.Component {
} }
inputNewName = (e) => { inputNewName = (e) => {
if (!event.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({ this.setState({
name: e.target.value, name: e.target.value,
}); });
@@ -57,7 +64,7 @@ class NewWikiDialog extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.handleSubmit}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmit} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -17,6 +17,7 @@ class Rename extends React.Component {
this.state = { this.state = {
newName: '', newName: '',
errMessage: '', errMessage: '',
isSubmitBtnActive: false,
}; };
this.newInput = React.createRef(); this.newInput = React.createRef();
} }
@@ -43,6 +44,12 @@ class Rename extends React.Component {
} }
handleChange = (e) => { handleChange = (e) => {
if (!e.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({newName: e.target.value}); this.setState({newName: e.target.value});
} }
@@ -113,7 +120,7 @@ class Rename extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.handleSubmit}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmit} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -18,6 +18,7 @@ class Rename extends React.Component {
this.state = { this.state = {
newName: '', newName: '',
errMessage: '', errMessage: '',
isSubmitBtnActive: false,
}; };
this.newInput = React.createRef(); this.newInput = React.createRef();
} }
@@ -44,6 +45,12 @@ class Rename extends React.Component {
} }
handleChange = (e) => { handleChange = (e) => {
if (!e.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
this.setState({newName: e.target.value}); this.setState({newName: e.target.value});
} }
@@ -114,7 +121,7 @@ class Rename extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.toggle}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.handleSubmit}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.handleSubmit} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );

View File

@@ -10,10 +10,17 @@ class RenameGroupDialog extends React.Component {
super(props); super(props);
this.state = { this.state = {
newGroupName: this.props.currentGroupName, newGroupName: this.props.currentGroupName,
isSubmitBtnActive: false,
}; };
} }
handleGroupNameChange = (event) => { handleGroupNameChange = (event) => {
if (!event.target.value.trim()) {
this.setState({isSubmitBtnActive: false});
} else {
this.setState({isSubmitBtnActive: true});
}
let name = event.target.value; let name = event.target.value;
this.setState({ this.setState({
newGroupName: name newGroupName: name
@@ -52,7 +59,7 @@ class RenameGroupDialog extends React.Component {
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="secondary" onClick={this.props.toggleRenameGroupDialog}>{gettext('Cancel')}</Button> <Button color="secondary" onClick={this.props.toggleRenameGroupDialog}>{gettext('Cancel')}</Button>
<Button color="primary" onClick={this.renameGroup}>{gettext('Submit')}</Button> <Button color="primary" onClick={this.renameGroup} disabled={!this.state.isSubmitBtnActive}>{gettext('Submit')}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );