-
+
diff --git a/frontend/src/pages/org-admin/org-departments-list.js b/frontend/src/pages/org-admin/org-departments-list.js
index 4bc1aac990..2e695fb4da 100644
--- a/frontend/src/pages/org-admin/org-departments-list.js
+++ b/frontend/src/pages/org-admin/org-departments-list.js
@@ -1,9 +1,9 @@
-import React, { Component, Fragment } from 'react';
+import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import moment from 'moment';
import { Link } from '@reach/router';
import { seafileAPI } from '../../utils/seafile-api';
-import { serviceURL, siteRoot, gettext, orgID, lang } from '../../utils/constants';
+import { 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';
@@ -63,13 +63,12 @@ class OrgDepartmentsList extends React.Component {
this.setState({ isShowAddDepartDialog: !this.state.isShowAddDepartDialog});
}
- componentWillMount() {
+ componentDidMount() {
this.listDepartGroups(this.props.groupID);
- window.onDepartChanged = this.onDepartChanged;
}
componentWillReceiveProps(nextProps) {
- if (this.props.groupID !== nextProps.groupID) {
+ if (this.props.groupID !== nextProps.groupID || this.props.isSubdepartChanged !== nextProps.isSubdepartChanged) {
this.listDepartGroups(nextProps.groupID);
}
}
@@ -82,8 +81,9 @@ class OrgDepartmentsList extends React.Component {
const topbarChildren = (
- {!this.props.groupID &&
+ {!this.props.groupID &&
+
}
{this.state.isShowAddDepartDialog && (
@@ -104,7 +104,9 @@ class OrgDepartmentsList extends React.Component {
-
+
{header}
+
{header}
+
{groups && groups.length > 0 ?
@@ -204,6 +206,7 @@ const GroupItemPropTypes = {
group: PropTypes.object.isRequired,
showSetGroupQuotaDialog: PropTypes.func.isRequired,
showDeleteDepartDialog: PropTypes.func.isRequired,
+ isSubdepartChanged: PropTypes.bool,
};
GroupItem.propTypes = GroupItemPropTypes;
diff --git a/frontend/src/pages/org-admin/org-departments.js b/frontend/src/pages/org-admin/org-departments.js
index 9a7a17b193..6e63088158 100644
--- a/frontend/src/pages/org-admin/org-departments.js
+++ b/frontend/src/pages/org-admin/org-departments.js
@@ -1,5 +1,4 @@
import React from 'react';
-import PropTypes from 'prop-types';
import '../../css/org-department-item.css';
class OrgDepartments extends React.Component {
diff --git a/frontend/src/pages/org-admin/org-groups.js b/frontend/src/pages/org-admin/org-groups.js
index d88dd6672e..6fa15a2499 100644
--- a/frontend/src/pages/org-admin/org-groups.js
+++ b/frontend/src/pages/org-admin/org-groups.js
@@ -1,4 +1,5 @@
import React, { Component, Fragment } from 'react';
+import PropTypes from 'prop-types';
import { Dropdown, DropdownToggle, DropdownMenu, DropdownItem } from 'reactstrap';
import OrgGroupInfo from '../../models/org-group';
import Toast from '../../components/toast';
@@ -100,7 +101,8 @@ class OrgGroups extends Component {
onUnfreezedItem={this.onUnfreezedItem}
deleteGroupItem={this.deleteGroupItem}
/>
- )})}
+ );
+ })}
@@ -116,6 +118,14 @@ class OrgGroups extends Component {
}
}
+const GroupItemPropTypes = {
+ group: PropTypes.object.isRequired,
+ isItemFreezed: PropTypes.bool.isRequired,
+ onFreezedItem: PropTypes.func.isRequired,
+ onUnfreezedItem: PropTypes.func.isRequired,
+ deleteGroupItem: PropTypes.func.isRequired,
+};
+
class GroupItem extends React.Component {
constructor(props) {
@@ -230,4 +240,6 @@ class GroupItem extends React.Component {
}
+GroupItem.propTypes = GroupItemPropTypes;
+
export default OrgGroups;
diff --git a/frontend/src/pages/org-admin/org-links.js b/frontend/src/pages/org-admin/org-links.js
index 682bedd725..3f1a0e8735 100644
--- a/frontend/src/pages/org-admin/org-links.js
+++ b/frontend/src/pages/org-admin/org-links.js
@@ -1,4 +1,4 @@
-import React, { Component, Fragment } from 'react';
+import React, { Fragment } from 'react';
import PropTypes from 'prop-types';
import moment from 'moment';
import { seafileAPI } from '../../utils/seafile-api';
diff --git a/frontend/src/pages/org-admin/org-logs-file-audit.js b/frontend/src/pages/org-admin/org-logs-file-audit.js
index 2d1445d2f1..778697ae91 100644
--- a/frontend/src/pages/org-admin/org-logs-file-audit.js
+++ b/frontend/src/pages/org-admin/org-logs-file-audit.js
@@ -129,6 +129,9 @@ const propTypes = {
filterUser: PropTypes.func.isRequired,
filterRepo: PropTypes.func.isRequired,
isItemFreezed: PropTypes.bool.isRequired,
+ fileEvent: PropTypes.object.isRequired,
+ userSelected: PropTypes.string,
+ repoSelected: PropTypes.string,
};
class FileAuditItem extends React.Component {
diff --git a/frontend/src/pages/org-admin/org-logs-perm-audit.js b/frontend/src/pages/org-admin/org-logs-perm-audit.js
index 362664a64e..1f3e571699 100644
--- a/frontend/src/pages/org-admin/org-logs-perm-audit.js
+++ b/frontend/src/pages/org-admin/org-logs-perm-audit.js
@@ -111,6 +111,7 @@ const propTypes = {
filterUser: PropTypes.func.isRequired,
isItemFreezed: PropTypes.bool.isRequired,
userSelected: PropTypes.string.isRequired,
+ permEvent: PropTypes.object.isRequired,
};
class PermAuditItem extends React.Component {
diff --git a/frontend/src/pages/org-admin/org-logs.js b/frontend/src/pages/org-admin/org-logs.js
index 3b17fc31c0..115ca62aeb 100644
--- a/frontend/src/pages/org-admin/org-logs.js
+++ b/frontend/src/pages/org-admin/org-logs.js
@@ -1,4 +1,5 @@
import React, { Component, Fragment } from 'react';
+import PropTypes from 'prop-types';
import { Link } from '@reach/router';
import { siteRoot, gettext } from '../../utils/constants';
import MainPanelTopbar from './main-panel-topbar';
@@ -22,13 +23,22 @@ class OrgLogs extends Component {
@@ -40,4 +50,11 @@ class OrgLogs extends Component {
}
}
+const propTypes = {
+ currentTab: PropTypes.string.isRequired,
+ tabItemClick: PropTypes.func.isRequired,
+};
+
+OrgLogs.propTypes = propTypes;
+
export default OrgLogs;
diff --git a/frontend/src/pages/org-admin/org-user-item.js b/frontend/src/pages/org-admin/org-user-item.js
index f7ec4c21bc..52c5ca54c1 100644
--- a/frontend/src/pages/org-admin/org-user-item.js
+++ b/frontend/src/pages/org-admin/org-user-item.js
@@ -7,6 +7,7 @@ import Toast from '../../components/toast';
import UserStatusEditor from '../../components/select-editor/user-status-editor';
const propTypes = {
+ user: PropTypes.object,
currentTab: PropTypes.string,
toggleRevokeAdmin: PropTypes.func,
isItemFreezed: PropTypes.bool.isRequired,
diff --git a/frontend/src/pages/org-admin/org-users.js b/frontend/src/pages/org-admin/org-users.js
index 671b467d7d..6dd44ec379 100644
--- a/frontend/src/pages/org-admin/org-users.js
+++ b/frontend/src/pages/org-admin/org-users.js
@@ -1,4 +1,5 @@
import React, { Component, Fragment } from 'react';
+import PropTypes from 'prop-types';
import OrgUsersList from './org-users-list';
import OrgAdminList from './org-admin-list';
import MainPanelTopbar from './main-panel-topbar';
@@ -9,7 +10,7 @@ import InviteUserDialog from '../../components/dialog/org-admin-invite-user-dial
import Toast from '../../components/toast';
import { seafileAPI } from '../../utils/seafile-api';
import OrgUserInfo from '../../models/org-user';
-import { siteRoot, gettext, invitationLink, orgID } from '../../utils/constants';
+import { gettext, invitationLink, orgID } from '../../utils/constants';
class OrgUsers extends Component {
@@ -133,13 +134,13 @@ class OrgUsers extends Component {
topbarChildren = (
- {this.state.isShowAddOrgAdminDialog &&
-
-
-
- }
+ {this.state.isShowAddOrgAdminDialog &&
+
+
+
+ }
);
} else if (this.props.currentTab === 'users') {
@@ -206,4 +207,11 @@ class OrgUsers extends Component {
}
}
+const propTypes = {
+ currentTab: PropTypes.string.isRequired,
+ tabItemClick: PropTypes.func.isRequired,
+};
+
+OrgUsers.propTypes = propTypes;
+
export default OrgUsers;
- this.tabItemClick('logadmin')}> - {gettext('File Access')} + {gettext('File Access')} +
- this.tabItemClick('file-update')}> - {gettext('File Update')} + {gettext('File Update')} +
- this.tabItemClick('perm-audit')}> - {gettext('Permission')} + {gettext('Permission')} +