import React from 'react'; import PropTypes from 'prop-types'; import { seafileAPI } from '../../utils/seafile-api'; import { Utils } from '../../utils/utils.js'; import { serviceURL, mediaUrl, gettext, orgID } from '../../utils/constants'; import OrgDepartmentsList from './org-departments-list'; import ModalPortal from '../../components/modal-portal'; import AddMemberDialog from '../../components/dialog/org-add-member-dialog'; import DeleteMemberDialog from '../../components/dialog/org-delete-member-dialog'; import AddRepoDialog from '../../components/dialog/org-add-repo-dialog'; import DeleteRepoDialog from '../../components/dialog/org-delete-repo-dialog'; import RoleEditor from '../../components/select-editor/role-editor'; import '../../css/org-department-item.css'; class OrgDepartmentItem extends React.Component { constructor(props) { super(props); this.state = { members: [], repos: [], groups: [], ancestorGroups: [], deletedMember: {}, deletedRepo: {}, showAddMemberDialog: false, showDeleteMemberDialog: false, showAddRepoDialog: false, showDeleteRepoDialog: false, isItemFreezed: false, groupID: null, groupName: '', } } listOrgGroupRepo = (groupID) => { seafileAPI.orgAdminListDepartGroupRepos(orgID, groupID).then(res => { this.setState({ repos: res.data.libraries }); }); } listOrgMembers = (groupID) => { seafileAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => { this.setState({ members: res.data.members, groups: res.data.groups, ancestorGroups: res.data.ancestor_groups, groupName: res.data.name, }); }); } showAddMemberDialog = () => { this.setState({ showAddMemberDialog: true }); } showDeleteMemberDialog = (member) => { this.setState({ showDeleteMemberDialog: true, deletedMember: member }); } showAddRepoDialog = () => { this.setState({ showAddRepoDialog: true }); } showDeleteRepoDialog = (repo) => { this.setState({ showDeleteRepoDialog: true, deletedRepo: repo }); } toggleCancel = () => { this.setState({ showAddMemberDialog: false, showDeleteMemberDialog: false, showAddRepoDialog: false, showDeleteRepoDialog: false, }); } onRepoChanged = () => { this.listOrgGroupRepo(this.state.groupID); } onMemberChanged = () => { this.listOrgMembers(this.state.groupID); } toggleItemFreezed = (isFreezed) => { this.setState({ isItemFreezed: isFreezed }); } componentWillMount() { const href = window.location.href; let path = href.slice(href.indexOf('groups/')); let groupID = path.slice(7, path.length - 1); this.setState({ groupID: groupID }); this.listOrgGroupRepo(groupID); this.listOrgMembers(groupID); } render() { const members = this.state.members; const repos = this.state.repos; return (
{gettext('No members')}
:{gettext('Name')} | {gettext('Role')} |
---|
{gettext('Name')} | {gettext('Size')} |
---|
{gettext('No libraries')}
}