mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-04 16:31:13 +00:00
repair groupownedgroup create bug
This commit is contained in:
@@ -28,9 +28,8 @@ class CreateDepartmentRepoDialog extends React.Component {
|
|||||||
let isValid = this.validateRepoName();
|
let isValid = this.validateRepoName();
|
||||||
if (isValid) {
|
if (isValid) {
|
||||||
let repo = this.createRepo(this.state.repoName);
|
let repo = this.createRepo(this.state.repoName);
|
||||||
this.props.onCreateRepo(repo);
|
this.props.onCreateRepo(repo, 'department');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handleKeyPress = (e) => {
|
handleKeyPress = (e) => {
|
||||||
|
@@ -146,6 +146,7 @@ class SharedRepoListItem extends React.Component {
|
|||||||
|
|
||||||
onItemDelete = () => {
|
onItemDelete = () => {
|
||||||
// todo
|
// todo
|
||||||
|
this.props.onItemDelete(this.props.repo);
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleShareDialog = () => {
|
toggleShareDialog = () => {
|
||||||
|
@@ -8,6 +8,7 @@ const propTypes = {
|
|||||||
repoList: PropTypes.array.isRequired,
|
repoList: PropTypes.array.isRequired,
|
||||||
isShowTableThread: PropTypes.bool,
|
isShowTableThread: PropTypes.bool,
|
||||||
onItemUnshare: PropTypes.func.isRequired,
|
onItemUnshare: PropTypes.func.isRequired,
|
||||||
|
onItemDelete: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
class SharedRepoListView extends React.Component {
|
class SharedRepoListView extends React.Component {
|
||||||
@@ -37,6 +38,7 @@ class SharedRepoListView extends React.Component {
|
|||||||
isItemFreezed={this.state.isItemFreezed}
|
isItemFreezed={this.state.isItemFreezed}
|
||||||
onFreezedItem={this.onFreezedItem}
|
onFreezedItem={this.onFreezedItem}
|
||||||
onItemUnshare={this.props.onItemUnshare}
|
onItemUnshare={this.props.onItemUnshare}
|
||||||
|
onItemDelete={this.props.onItemDelete}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
@@ -152,8 +152,27 @@ class GroupView extends React.Component {
|
|||||||
this.setState({isCreateRepoDialogShow: !this.state.isCreateRepoDialogShow});
|
this.setState({isCreateRepoDialogShow: !this.state.isCreateRepoDialogShow});
|
||||||
}
|
}
|
||||||
|
|
||||||
onCreateRepo = (repo) => {
|
onCreateRepo = (repo, groupOwnerType) => {
|
||||||
let groupId = this.props.groupID;
|
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 => {
|
seafileAPI.createGroupRepo(groupId, repo).then(res => {
|
||||||
let repo = new RepoInfo(res.data);
|
let repo = new RepoInfo(res.data);
|
||||||
let repoList = this.addRepoItem(repo);
|
let repoList = this.addRepoItem(repo);
|
||||||
@@ -161,9 +180,22 @@ class GroupView extends React.Component {
|
|||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
//todo
|
//todo
|
||||||
});
|
});
|
||||||
|
}
|
||||||
this.onCreateRepoToggle();
|
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) => {
|
addRepoItem = (repo) => {
|
||||||
let newRepoList = this.state.repoList.map(item => {return item;});
|
let newRepoList = this.state.repoList.map(item => {return item;});
|
||||||
newRepoList.push(repo);
|
newRepoList.push(repo);
|
||||||
@@ -232,6 +264,7 @@ class GroupView extends React.Component {
|
|||||||
repoList={this.state.repoList}
|
repoList={this.state.repoList}
|
||||||
currentGroup={this.state.currentGroup}
|
currentGroup={this.state.currentGroup}
|
||||||
onItemUnshare={this.onItemUnshare}
|
onItemUnshare={this.onItemUnshare}
|
||||||
|
onItemDelete={this.onItemDelete}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
@@ -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() {
|
render() {
|
||||||
let group = this.props.group;
|
let group = this.props.group;
|
||||||
const emptyTip = <p className="group-item-empty-tip">{gettext('No libraries')}</p>;
|
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}
|
currentGroup={this.props.group}
|
||||||
repoList={this.state.repoList}
|
repoList={this.state.repoList}
|
||||||
onItemUnshare={this.onItemUnshare}
|
onItemUnshare={this.onItemUnshare}
|
||||||
|
onItemDelete={this.onItemDelete}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user