1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-02 23:48:47 +00:00

repair groupownedgroup create bug

This commit is contained in:
shanshuirenjia
2018-12-16 11:17:17 +08:00
parent d7564bcbba
commit 4cbc72819e
5 changed files with 56 additions and 8 deletions

View File

@@ -28,9 +28,8 @@ class CreateDepartmentRepoDialog extends React.Component {
let isValid = this.validateRepoName();
if (isValid) {
let repo = this.createRepo(this.state.repoName);
this.props.onCreateRepo(repo);
this.props.onCreateRepo(repo, 'department');
}
}
handleKeyPress = (e) => {

View File

@@ -146,6 +146,7 @@ class SharedRepoListItem extends React.Component {
onItemDelete = () => {
// todo
this.props.onItemDelete(this.props.repo);
}
toggleShareDialog = () => {

View File

@@ -8,6 +8,7 @@ const propTypes = {
repoList: PropTypes.array.isRequired,
isShowTableThread: PropTypes.bool,
onItemUnshare: PropTypes.func.isRequired,
onItemDelete: PropTypes.func.isRequired,
};
class SharedRepoListView extends React.Component {
@@ -37,6 +38,7 @@ class SharedRepoListView extends React.Component {
isItemFreezed={this.state.isItemFreezed}
onFreezedItem={this.onFreezedItem}
onItemUnshare={this.props.onItemUnshare}
onItemDelete={this.props.onItemDelete}
/>
);
})}

View File

@@ -152,8 +152,27 @@ class GroupView extends React.Component {
this.setState({isCreateRepoDialogShow: !this.state.isCreateRepoDialogShow});
}
onCreateRepo = (repo) => {
onCreateRepo = (repo, groupOwnerType) => {
let groupId = this.props.groupID;
if (groupOwnerType && groupOwnerType === 'department') {
seafileAPI.createGroupOwnedLibrary(groupId, repo).then(res => { //need modify endpoint api
let object = {
repo_id: res.data.id,
repo_name: res.data.name,
owner_email: res.data.owner,
permission: res.data.permission,
mtime: res.data.mtime,
size: res.data.size,
encrypted: res.data.encrypted,
};
let repo = new RepoInfo(object);
let repoList = this.addRepoItem(repo);
this.setState({repoList: repoList});
}).then(() => {
//todo
});
} else {
seafileAPI.createGroupRepo(groupId, repo).then(res => {
let repo = new RepoInfo(res.data);
let repoList = this.addRepoItem(repo);
@@ -161,9 +180,22 @@ class GroupView extends React.Component {
}).catch(() => {
//todo
});
}
this.onCreateRepoToggle();
}
onItemDelete = (repo) => {
let groupID = this.props.groupID;
seafileAPI.deleteGroupOwnedLibrary(groupID, repo.repo_id).then(() => {
let repoList = this.state.repoList.filter(item => {
return item.repo_id !== repo.repo_id;
});
this.setState({repoList: repoList});
}).catch(() => {
// todo;
});
}
addRepoItem = (repo) => {
let newRepoList = this.state.repoList.map(item => {return item;});
newRepoList.push(repo);
@@ -232,6 +264,7 @@ class GroupView extends React.Component {
repoList={this.state.repoList}
currentGroup={this.state.currentGroup}
onItemUnshare={this.onItemUnshare}
onItemDelete={this.onItemDelete}
/>
}
</div>

View File

@@ -44,6 +44,18 @@ class RepoListViewPanel extends React.Component {
});
}
onItemDelete = (repo) => {
let group = this.props.group;
seafileAPI.deleteGroupOwnedLibrary(group.id, repo.repo_id).then(() => {
let repoList = this.state.repoList.filter(item => {
return item.repo_id !== repo.repo_id;
});
this.setState({repoList: repoList});
}).catch(() => {
// todo;
});
}
render() {
let group = this.props.group;
const emptyTip = <p className="group-item-empty-tip">{gettext('No libraries')}</p>;
@@ -60,6 +72,7 @@ class RepoListViewPanel extends React.Component {
currentGroup={this.props.group}
repoList={this.state.repoList}
onItemUnshare={this.onItemUnshare}
onItemDelete={this.onItemDelete}
/>
}
</div>