1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-14 14:21:23 +00:00
Files
seahub/frontend/src/pages/org-admin/index.js

161 lines
5.7 KiB
JavaScript
Raw Normal View History

// Import React!
import React from 'react';
import ReactDOM from 'react-dom';
import { Router } from '@reach/router';
import { siteRoot } from '../../utils/constants';
import SidePanel from './side-panel';
import OrgUsers from './org-users';
import OrgUsersList from './org-users-list';
import OrgAdminList from './org-admin-list';
import OrgGroups from './org-groups';
import OrgLibraries from './org-libraries';
2019-03-18 13:15:08 +08:00
import OrgInfo from './org-info';
2019-03-26 16:56:15 +08:00
import OrgLinks from './org-links';
import OrgDepartments from './org-departments';
import OrgDepartmentsList from './org-departments-list';
import OrgDepartmentItem from './org-department-item';
import OrgLogs from './org-logs';
import OrgLogsFileAudit from './org-logs-file-audit';
import OrgLogsFileUpdate from './org-logs-file-update';
import OrgLogsPermAudit from './org-logs-perm-audit';
import '../../assets/css/fa-solid.css';
import '../../assets/css/fa-regular.css';
import '../../assets/css/fontawesome.css';
import '../../css/layout.css';
import '../../css/toolbar.css';
class Org extends React.Component {
constructor(props) {
super(props);
this.state = {
isSidePanelClosed: false,
isShowAddOrgUserDialog: false,
isShowAddOrgAdminDialog: false,
isInviteUserDialogOpen: false,
2019-04-29 22:20:56 +08:00
isShowAddDepartDialog: false,
2019-04-30 10:28:32 +08:00
isShowAddMemberDialog: false,
isShowAddRepoDialog: false,
currentTab: 'users',
};
}
componentDidMount() {
let href = window.location.href.split('/');
let currentTab = href[href.length - 2];
if (currentTab == 'useradmin') {
currentTab = 'users';
}
if (currentTab > 0) {
currentTab = 'departmentadmin';
}
this.setState({currentTab: currentTab});
}
onCloseSidePanel = () => {
this.setState({isSidePanelClosed: !this.state.isSidePanelClosed});
}
tabItemClick = (param) => {
this.setState({currentTab: param});
2019-05-02 20:37:09 +08:00
}
toggleAddOrgUser = () => {
this.setState({isShowAddOrgUserDialog: !this.state.isShowAddOrgUserDialog});
}
toggleAddOrgAdmin = () => {
this.setState({isShowAddOrgAdminDialog: !this.state.isShowAddOrgAdminDialog});
}
toggleInviteUserDialog = () => {
this.setState({isInviteUserDialogOpen: !this.state.isInviteUserDialogOpen});
}
2019-04-29 22:20:56 +08:00
toggleAddDepartDialog = () => {
this.setState({ isShowAddDepartDialog: !this.state.isShowAddDepartDialog});
}
2019-04-30 10:28:32 +08:00
toggleAddMemberDialog = () => {
this.setState({ isShowAddMemberDialog: !this.state.isShowAddMemberDialog });
}
toggleAddRepoDialog = () => {
this.setState({ isShowAddRepoDialog: !this.state.isShowAddRepoDialog });
}
2019-04-29 22:20:56 +08:00
render() {
let { isSidePanelClosed, currentTab, isShowAddOrgUserDialog, isShowAddOrgAdminDialog, isInviteUserDialogOpen } = this.state;
return (
<div id="main">
2019-05-02 20:37:09 +08:00
<SidePanel
isSidePanelClosed={isSidePanelClosed}
onCloseSidePanel={this.onCloseSidePanel}
2019-04-29 22:20:56 +08:00
currentTab={currentTab}
2019-05-02 20:37:09 +08:00
tabItemClick={this.tabItemClick}
/>
<div className="main-panel o-hidden">
<Router className="reach-router">
2019-05-02 20:37:09 +08:00
<OrgInfo path={siteRoot + 'org/orgmanage'} currentTab={currentTab}/>
<OrgUsers
path={siteRoot + 'org/useradmin'}
currentTab={currentTab}
tabItemClick={this.tabItemClick}
2019-05-02 20:37:09 +08:00
toggleAddOrgAdmin={this.toggleAddOrgAdmin}
toggleAddOrgUser={this.toggleAddOrgUser}
>
2019-05-02 20:37:09 +08:00
<OrgUsersList path="/"
currentTab={currentTab}
isShowAddOrgUserDialog={isShowAddOrgUserDialog}
isInviteUserDialogOpen={isInviteUserDialogOpen}
toggleAddOrgUser={this.toggleAddOrgUser}
toggleInviteUserDialog={this.toggleInviteUserDialog}
/>
<OrgAdminList path="admins"
currentTab={currentTab}
isShowAddOrgAdminDialog={isShowAddOrgAdminDialog}
toggleAddOrgAdmin={this.toggleAddOrgAdmin}
/>
</OrgUsers>
2019-05-02 20:37:09 +08:00
<OrgGroups path={siteRoot + 'org/groupadmin'} currentTab={currentTab}/>
<OrgLibraries path={siteRoot + 'org/repoadmin'} currentTab={currentTab}/>
<OrgLinks path={siteRoot + 'org/publinkadmin'} currentTab={currentTab}/>
<OrgDepartments path={siteRoot + 'org/departmentadmin'} currentTab={currentTab}>
2019-04-29 22:20:56 +08:00
<OrgDepartmentsList
path='/'
2019-05-02 20:37:09 +08:00
currentTab={currentTab}
2019-04-29 22:20:56 +08:00
isShowAddDepartDialog={this.state.isShowAddDepartDialog}
toggleAddDepartDialog={this.toggleAddDepartDialog}
/>
<OrgDepartmentItem
2019-04-30 18:04:41 +08:00
path='groups/:groupID'
2019-05-02 20:37:09 +08:00
currentTab={currentTab}
2019-04-29 22:20:56 +08:00
isShowAddDepartDialog={this.state.isShowAddDepartDialog}
toggleAddDepartDialog={this.toggleAddDepartDialog}
2019-04-30 10:28:32 +08:00
isShowAddMemberDialog={this.state.isShowAddMemberDialog}
toggleAddMemberDialog={this.toggleAddMemberDialog}
isShowAddRepoDialog={this.state.isShowAddRepoDialog}
toggleAddRepoDialog={this.toggleAddRepoDialog}
2019-04-29 22:20:56 +08:00
/>
</OrgDepartments>
<OrgLogs
path={siteRoot + 'org/logadmin'}
currentTab={currentTab}
tabItemClick={this.tabItemClick}
>
<OrgLogsFileAudit path='/' currentTab={currentTab} />
<OrgLogsFileUpdate path={siteRoot + 'file-update'} currentTab={currentTab} />
<OrgLogsPermAudit path={siteRoot + 'perm-audit'} currentTab={currentTab} />
</OrgLogs>
</Router>
2019-05-02 20:37:09 +08:00
</div>
</div>
);
}
}
ReactDOM.render(
<Org />,
document.getElementById('wrapper')
);