From 1589282891fd45ce95e95c193f9288997ba1eb5d Mon Sep 17 00:00:00 2001 From: Alex P Date: Wed, 25 Apr 2018 12:29:58 -0700 Subject: [PATCH] Implement SubSections in Chronograf admin page --- .../chronograf/AdminChronografPage.js | 64 +++++++++++++++++-- ui/src/index.tsx | 5 +- ui/src/side_nav/containers/SideNav.tsx | 12 ++-- 3 files changed, 69 insertions(+), 12 deletions(-) diff --git a/ui/src/admin/containers/chronograf/AdminChronografPage.js b/ui/src/admin/containers/chronograf/AdminChronografPage.js index 2815bd1fa4..5e1eb9f77d 100644 --- a/ui/src/admin/containers/chronograf/AdminChronografPage.js +++ b/ui/src/admin/containers/chronograf/AdminChronografPage.js @@ -2,10 +2,52 @@ import React from 'react' import PropTypes from 'prop-types' import {connect} from 'react-redux' -import AdminTabs from 'src/admin/components/chronograf/AdminTabs' +import SubSections from 'src/shared/components/SubSections' import FancyScrollbar from 'shared/components/FancyScrollbar' -const AdminChronografPage = ({me}) => ( +import UsersPage from 'src/admin/containers/chronograf/UsersPage' +import AllUsersPage from 'src/admin/containers/chronograf/AllUsersPage' +import OrganizationsPage from 'src/admin/containers/chronograf/OrganizationsPage' +import ProvidersPage from 'src/admin/containers/ProvidersPage' + +import { + isUserAuthorized, + ADMIN_ROLE, + SUPERADMIN_ROLE, +} from 'src/auth/Authorized' + +const sections = me => [ + { + url: 'current-organization', + name: 'Current Org', + enabled: isUserAuthorized(me.role, ADMIN_ROLE), + component: ( + + ), + }, + { + url: 'all-users', + name: 'All Users', + enabled: isUserAuthorized(me.role, SUPERADMIN_ROLE), + component: , + }, + { + url: 'all-organizations', + name: 'All Orgs', + enabled: isUserAuthorized(me.role, SUPERADMIN_ROLE), + component: ( + + ), + }, + { + url: 'organization-mappings', + name: 'Org Mappings', + enabled: isUserAuthorized(me.role, SUPERADMIN_ROLE), + component: , + }, +] + +const AdminChronografPage = ({me, source, params: {tab}}) => (
@@ -16,9 +58,12 @@ const AdminChronografPage = ({me}) => (
-
- -
+
@@ -35,6 +80,15 @@ AdminChronografPage.propTypes = { id: string.isRequired, }), }).isRequired, + params: shape({ + tab: string, + }).isRequired, + source: shape({ + id: string.isRequired, + links: shape({ + users: string.isRequired, + }), + }).isRequired, } const mapStateToProps = ({auth: {me}}) => ({ diff --git a/ui/src/index.tsx b/ui/src/index.tsx index 5f8572b98f..9d8b0d651f 100644 --- a/ui/src/index.tsx +++ b/ui/src/index.tsx @@ -146,7 +146,10 @@ class Root extends PureComponent<{}, State> { path="kapacitors/:id/edit:hash" component={KapacitorPage} /> - + diff --git a/ui/src/side_nav/containers/SideNav.tsx b/ui/src/side_nav/containers/SideNav.tsx index 7c8e93e623..2240357b05 100644 --- a/ui/src/side_nav/containers/SideNav.tsx +++ b/ui/src/side_nav/containers/SideNav.tsx @@ -122,14 +122,16 @@ class SideNav extends PureComponent { - + Chronograf @@ -163,9 +165,7 @@ class SideNav extends PureComponent { const mapStateToProps = ({ auth: {isUsingAuth, logoutLink, me}, - app: { - ephemeral: {inPresentationMode}, - }, + app: {ephemeral: {inPresentationMode}}, links, }) => ({ isHidden: inPresentationMode,