import React, { Component, Fragment } from 'react'; import { seafileAPI } from '../../utils/seafile-api'; import { gettext } from '../../utils/constants'; import { Utils } from '../../utils/utils'; import Loading from '../../components/loading'; import OrgAdminUserNav from '../../components/org-admin-user-nav'; import SetOrgUserName from '../../components/dialog/set-org-user-name'; import SetOrgUserContactEmail from '../../components/dialog/set-org-user-contact-email'; import SetOrgUserQuota from '../../components/dialog/set-org-user-quota'; import MainPanelTopbar from './main-panel-topbar'; import '../../css/org-admin-user.css'; const { orgID, orgName } = window.org.pageOptions; class OrgUserProfile extends Component { constructor(props) { super(props); this.state = { loading: true, errorMsg: '' }; } componentDidMount() { seafileAPI.orgAdminGetOrgUserInfo(orgID, this.props.email).then((res) => { this.setState(Object.assign({ loading: false }, res.data)); }).catch((error) => { this.setState({ loading: false, errorMsg: Utils.getErrorMsg(error, true) // true: show login tip if 403 }); }); } updateName = (name) => { this.setState({ name: name }); } updateContactEmail = (contactEmail) => { this.setState({ contact_email: contactEmail }); } updateQuota = (quota) => { this.setState({ quota_total: quota }); } render() { return (
); } } class Content extends Component { constructor(props) { super(props); this.state = { isSetNameDialogOpen: false, isSetContactEmailDialogOpen: false, isSetQuotaDialogOpen: false }; } toggleSetNameDialog = () => { this.setState({ isSetNameDialogOpen: !this.state.isSetNameDialogOpen }); } toggleSetContactEmailDialog = () => { this.setState({ isSetContactEmailDialogOpen: !this.state.isSetContactEmailDialogOpen }); } toggleSetQuotaDialog = () => { this.setState({ isSetQuotaDialogOpen: !this.state.isSetQuotaDialogOpen }); } render() { const { loading, errorMsg, avatar_url, email, contact_email, name, quota_total, quota_usage } = this.props.data; const { isSetNameDialogOpen, isSetContactEmailDialogOpen, isSetQuotaDialogOpen } = this.state; if (loading) { return ; } if (errorMsg) { return

{errorMsg}

; } return (
{gettext('Avatar')}
ID
{email}
{gettext('Name')}
{name || '--'}
{gettext('Contact Email')}
{contact_email || '--'}
{gettext('Organization')}
{orgName}
{gettext('Space Used / Quota')}
{`${Utils.bytesToSize(quota_usage)}${quota_total > 0 ? ' / ' + Utils.bytesToSize(quota_total) : ''}`}
{isSetNameDialogOpen && } {isSetContactEmailDialogOpen && } {isSetQuotaDialogOpen && }
); } } export default OrgUserProfile;