From 400f4e4aea33d7592f3c3d56d7b7a04f15843431 Mon Sep 17 00:00:00 2001 From: Michael An <1822852997@qq.com> Date: Thu, 2 May 2019 19:25:56 +0800 Subject: [PATCH] use Link instead A tag --- .../pages/org-admin/org-department-item.js | 18 ++++++++++----- .../pages/org-admin/org-departments-list.js | 23 ++++++++++++------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/frontend/src/pages/org-admin/org-department-item.js b/frontend/src/pages/org-admin/org-department-item.js index 2190965f0d..5304cd6acd 100644 --- a/frontend/src/pages/org-admin/org-department-item.js +++ b/frontend/src/pages/org-admin/org-department-item.js @@ -1,8 +1,9 @@ import React from 'react'; import PropTypes from 'prop-types'; +import { Link } from '@reach/router'; import { seafileAPI } from '../../utils/seafile-api'; import { Utils } from '../../utils/utils.js'; -import { serviceURL, gettext, orgID } from '../../utils/constants'; +import { serviceURL, siteRoot, 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'; @@ -84,6 +85,13 @@ class OrgDepartmentItem extends React.Component { this.listOrgMembers(groupID); } + componentWillReceiveProps(nextProps) { + if (this.props.groupID !== nextProps.groupID) { + this.listOrgGroupRepo(nextProps.groupID); + this.listOrgMembers(nextProps.groupID); + } + } + render() { const { members, repos } = this.state; const groupID = this.props.groupID; @@ -94,14 +102,12 @@ class OrgDepartmentItem extends React.Component {

{groupID ? - {gettext('Departments')} + {gettext('Departments')} : {gettext('Departments')} } {this.state.ancestorGroups.map(ancestor => { - let newHref = serviceURL + '/org/departmentadmin/groups/' + ancestor.id + '/'; - return ( - {' / '}{ancestor.name} - ); + let newHref = siteRoot + 'org/departmentadmin/groups/' + ancestor.id + '/'; + return {' / '}{ancestor.name}; })} {groupID && {' / '}{this.state.groupName}}

diff --git a/frontend/src/pages/org-admin/org-departments-list.js b/frontend/src/pages/org-admin/org-departments-list.js index c38b751778..5f3df45d8e 100644 --- a/frontend/src/pages/org-admin/org-departments-list.js +++ b/frontend/src/pages/org-admin/org-departments-list.js @@ -1,8 +1,9 @@ import React from 'react'; import PropTypes from 'prop-types'; import moment from 'moment'; +import { Link } from '@reach/router'; import { seafileAPI } from '../../utils/seafile-api'; -import { serviceURL, gettext, orgID, lang } from '../../utils/constants'; +import { serviceURL, siteRoot, gettext, orgID, lang } from '../../utils/constants'; import { Utils } from '../../utils/utils.js'; import ModalPortal from '../../components/modal-portal'; import AddDepartDialog from '../../components/dialog/org-add-department-dialog'; @@ -25,9 +26,9 @@ class OrgDepartmentsList extends React.Component { }; } - listDepartGroups = () => { - if (this.props.groupID) { - seafileAPI.orgAdminListGroupInfo(orgID, this.props.groupID, true).then(res => { + listDepartGroups = (groupID) => { + if (groupID) { + seafileAPI.orgAdminListGroupInfo(orgID, groupID, true).then(res => { this.setState({ groups: res.data.groups }); }); } else { @@ -53,11 +54,17 @@ class OrgDepartmentsList extends React.Component { } onDepartChanged = () => { - this.listDepartGroups(); + this.listDepartGroups(this.props.groupID); } componentWillMount() { - this.listDepartGroups(); + this.listDepartGroups(this.props.groupID); + } + + componentWillReceiveProps(nextProps) { + if (this.props.groupID !== nextProps.groupID) { + this.listDepartGroups(nextProps.groupID); + } } render() { @@ -165,10 +172,10 @@ class GroupItem extends React.Component { render() { const group = this.props.group; const highlight = this.state.highlight; - const newHref = serviceURL + '/org/departmentadmin/groups/' + group.id + '/'; + const newHref = siteRoot+ 'org/departmentadmin/groups/' + group.id + '/'; return ( - {group.name} + {group.name} {moment(group.created_at).fromNow()} {Utils.bytesToSize(group.quota)}{' '}