diff --git a/frontend/src/css/org-admin-info-page.css b/frontend/src/css/org-admin-info-page.css new file mode 100644 index 0000000000..d4538c2a51 --- /dev/null +++ b/frontend/src/css/org-admin-info-page.css @@ -0,0 +1,50 @@ +.org-admin-info-content { + background: #f5f5f5; +} + +.org-admin-info-content .info-content-item { + padding: 30px; + background: #fff; + border: 1px solid #e4e4e4; + border-radius: 5px; + width: calc(50% - 5.5px); + margin-bottom: 11px; +} + +.org-admin-info-content .info-content-item-img { + margin-right: 15px; +} + +.org-admin-info-content .info-content-item-heading { + font-size: 1rem; + font-weight: 500; + margin-bottom: 5px; +} + +.org-admin-info-content .info-content-name-text { + font-size: .875rem; + margin: 0; +} + +.org-admin-info-content .info-content-user-text { + text-align: center; + font-size: 2rem; + font-weight: 500; + margin: 16px 0 0; +} + +.org-admin-info-content .info-content-space-text { + font-size: 1.875rem; + font-weight: 500; + margin: 5px 0 0; +} + +.org-admin-info-content .progress { + height: 6px; + margin: 20px 0 5px; +} + +.org-admin-info-content .progress-text { + font-size: .8125rem; + color: #666666; +} diff --git a/frontend/src/pages/org-admin/org-info.js b/frontend/src/pages/org-admin/org-info.js index 83e00027f1..2c197eb388 100644 --- a/frontend/src/pages/org-admin/org-info.js +++ b/frontend/src/pages/org-admin/org-info.js @@ -1,9 +1,11 @@ import React, { Component, Fragment } from 'react'; import { seafileAPI } from '../../utils/seafile-api'; -import { gettext, orgMemberQuotaEnabled} from '../../utils/constants'; +import { mediaUrl, gettext, orgMemberQuotaEnabled} from '../../utils/constants'; import { Utils } from '../../utils/utils'; import MainPanelTopbar from './main-panel-topbar'; +import '../../css/org-admin-info-page.css'; + class OrgInfo extends Component { constructor(props) { @@ -20,18 +22,25 @@ class OrgInfo extends Component { componentDidMount() { seafileAPI.orgAdminGetOrgInfo().then(res => { + const { + org_id, org_name, + member_quota, member_usage, active_members, + storage_quota, storage_usage + } = res.data; this.setState({ - org_name: res.data.org_name, - storage_quota: res.data.storage_quota, - storage_usage: res.data.storage_usage, - member_quota: res.data.member_quota, - member_usage: res.data.member_usage, - active_members: res.data.active_members + org_id, org_name, + member_quota, member_usage, active_members, + storage_quota, storage_usage }); }); } render() { + const { + org_id, org_name, + member_quota, member_usage, active_members, + storage_quota, storage_usage + } = this.state; return ( @@ -40,18 +49,62 @@ class OrgInfo extends Component {

{gettext('Info')}

-
-
- {this.state.org_name} -
{gettext('Space Used')}
+
+
+
+ +
+

{gettext('Team name')}

+

{org_name}

+
+
- {(this.state.storage_quota > 0) ?
{Utils.bytesToSize(this.state.storage_usage)} / {Utils.bytesToSize(this.state.storage_quota)}
:
{Utils.bytesToSize(this.state.storage_usage)}
} +
+ +
+

{gettext('ID')}

+

{org_id}

+
+
- {orgMemberQuotaEnabled ?
{gettext('Active Users')} / {gettext('Total Users')} / {gettext('Limits')}
:
{gettext('Active Users')} / {gettext('Total Users')}
} +
- {orgMemberQuotaEnabled ?
{(this.state.active_members > 0) ? this.state.active_members : '--'} / {(this.state.member_usage > 0) ? this.state.member_usage : '--'} / {(this.state.member_quota > 0) ? this.state.member_quota : '--'}
:
{this.state.active_members > 0 ? this.state.active_members : '--'} / {this.state.member_usage > 0 ? this.state.member_usage : '--'}
} +
+

{gettext('Active users')}

+

{active_members}

+
-
+
+

{gettext('Total users')}

+

{member_usage}

+
+ + {orgMemberQuotaEnabled && +
+

{gettext('User number limit')}

+

{member_quota > 0 ? member_quota : '--'}

+
+ } + +
+ +
+

{gettext('Space used')}

+ {storage_quota > 0 ? ( + <> +

{`${(storage_usage/storage_quota * 100).toFixed(2)}%`}

+
+
+
+
+

{`${Utils.bytesToSize(storage_usage)} / ${Utils.bytesToSize(storage_quota)}`}

+
+ + ) : ( +

{Utils.bytesToSize(storage_usage)}

+ )} +
+