mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-11 11:51:27 +00:00
add dep admin transfer dep repo
This commit is contained in:
@@ -15,12 +15,14 @@ import ResetEncryptedRepoPasswordDialog from '../../components/dialog/reset-encr
|
||||
import LibOldFilesAutoDelDialog from '../../components/dialog/lib-old-files-auto-del-dialog';
|
||||
import Rename from '../rename';
|
||||
import { seafileAPI } from '../../utils/seafile-api';
|
||||
import { userAPI } from '../../utils/user-api';
|
||||
import LibHistorySettingDialog from '../dialog/lib-history-setting-dialog';
|
||||
import toaster from '../toast';
|
||||
import RepoAPITokenDialog from '../dialog/repo-api-token-dialog';
|
||||
import RepoShareAdminDialog from '../dialog/repo-share-admin-dialog';
|
||||
import RepoMonitoredIcon from '../../components/repo-monitored-icon';
|
||||
import { GRID_MODE, LIST_MODE } from '../dir-view-mode/constants';
|
||||
import TransferDialog from '../dialog/transfer-dialog';
|
||||
|
||||
dayjs.extend(relativeTime);
|
||||
|
||||
@@ -37,6 +39,7 @@ const propTypes = {
|
||||
onItemDelete: PropTypes.func,
|
||||
onMonitorRepo: PropTypes.func,
|
||||
onContextMenu: PropTypes.func.isRequired,
|
||||
onTransferRepo: PropTypes.func
|
||||
};
|
||||
|
||||
class SharedRepoListItem extends React.Component {
|
||||
@@ -55,6 +58,7 @@ class SharedRepoListItem extends React.Component {
|
||||
isHistorySettingDialogShow: false,
|
||||
isDeleteDialogShow: false,
|
||||
isAPITokenDialogShow: false,
|
||||
isTransferDialogShow: false,
|
||||
isRepoShareAdminDialogOpen: false,
|
||||
isRepoDeleted: false,
|
||||
isChangePasswordDialogShow: false,
|
||||
@@ -166,6 +170,9 @@ class SharedRepoListItem extends React.Component {
|
||||
case 'Rename':
|
||||
this.onItemRenameToggle();
|
||||
break;
|
||||
case 'Transfer':
|
||||
this.onTransferToggle();
|
||||
break;
|
||||
case 'Folder Permission':
|
||||
this.onItemFolderPermissionToggle();
|
||||
break;
|
||||
@@ -231,6 +238,33 @@ class SharedRepoListItem extends React.Component {
|
||||
});
|
||||
};
|
||||
|
||||
onTransferToggle = () => {
|
||||
this.setState({ isTransferDialogShow: !this.state.isTransferDialogShow });
|
||||
};
|
||||
|
||||
onTransferRepo = (user) => {
|
||||
let repoID = this.props.repo.repo_id;
|
||||
let groupID = this.props.currentGroup.id;
|
||||
let email = null;
|
||||
if (Array.isArray(user)) {
|
||||
email = user[0].email;
|
||||
} else {
|
||||
email = user.email;
|
||||
}
|
||||
userAPI.depAdminTransferRepo(repoID, groupID, email).then(res => {
|
||||
this.props.onTransferRepo(repoID, groupID, email);
|
||||
let message = gettext('Successfully transferred the library.');
|
||||
toaster.success(message);
|
||||
}).catch(error => {
|
||||
if (error.response) {
|
||||
toaster.danger(error.response.data.error_msg || gettext('Error'), { duration: 3 });
|
||||
} else {
|
||||
toaster.danger(gettext('Failed. Please check the network.'), { duration: 3 });
|
||||
}
|
||||
});
|
||||
this.onTransferToggle();
|
||||
};
|
||||
|
||||
onRenameConfirm = (name) => {
|
||||
this.props.onItemRename(this.props.repo, name);
|
||||
this.onRenameCancel();
|
||||
@@ -322,6 +356,9 @@ class SharedRepoListItem extends React.Component {
|
||||
case 'Rename':
|
||||
translateResult = gettext('Rename');
|
||||
break;
|
||||
case 'Transfer':
|
||||
translateResult = gettext('Transfer');
|
||||
break;
|
||||
case 'Folder Permission':
|
||||
translateResult = gettext('Folder Permission');
|
||||
break;
|
||||
@@ -389,7 +426,7 @@ class SharedRepoListItem extends React.Component {
|
||||
if (isStaff) {
|
||||
if (repo.owner_email == currentGroup.id + '@seafile_group') {
|
||||
this.isDeparementOnwerGroupMember = true;
|
||||
operations = ['Rename'];
|
||||
operations = ['Rename', 'Transfer'];
|
||||
if (folderPermEnabled) {
|
||||
operations.push('Folder Permission');
|
||||
}
|
||||
@@ -822,6 +859,17 @@ class SharedRepoListItem extends React.Component {
|
||||
/>
|
||||
</ModalPortal>
|
||||
)}
|
||||
{this.state.isTransferDialogShow && (
|
||||
<ModalPortal>
|
||||
<TransferDialog
|
||||
itemName={repo.repo_name}
|
||||
submit={this.onTransferRepo}
|
||||
canTransferToDept={true}
|
||||
toggleDialog={this.onTransferToggle}
|
||||
isDepAdminTransfer={true}
|
||||
/>
|
||||
</ModalPortal>
|
||||
)}
|
||||
</Fragment>
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user