UNPKG

passbolt-styleguide

Version:

Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.

196 lines (182 loc) 7.71 kB
/** * Passbolt ~ Open source password manager for teams * Copyright (c) 2020 Passbolt SA (https://www.passbolt.com) * * Licensed under GNU Affero General Public License version 3 of the or any later version. * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) 2020 Passbolt SA (https://www.passbolt.com) * @license https://opensource.org/licenses/AGPL-3.0 AGPL License * @link https://www.passbolt.com Passbolt(tm) */ import React, {Component} from "react"; import PropTypes from "prop-types"; import {withAppContext} from "../../contexts/AppContext"; import { AdministrationWorkspaceMenuTypes, withAdministrationWorkspace } from "../../contexts/AdministrationWorkspaceContext"; import DisplayMainMenu from "../Common/Menu/DisplayMainMenu"; import Logo from "../Common/Navigation/Header/Logo"; import DisplayUserBadgeMenu from "../User/DisplayUserBadgeMenu/DisplayUserBadgeMenu"; import DisplayAdministrationMenu from "./DisplayAdministrationMenu/DisplayAdministrationMenu"; import DisplayMfaAdministration from "./DisplayMfaAdministration/DisplayMfaAdministration"; import DisplayAdministrationWorkspaceBreadcrumb from "./DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb"; import DisplayUserDirectoryAdministration from "./DisplayUserDirectoryAdministration/DisplayUserDirectoryAdministration"; import DisplayEmailNotificationsAdministration from "./DisplayEmailNotificationsAdministration/DisplayEmailNotificationsAdministration"; import SearchBar from "../Common/Navigation/Search/SearchBar"; import DisplaySubscriptionKey from "./DisplaySubscriptionKey/DisplaySubscriptionKey"; import DisplayInternationalizationAdministration from "./DisplayInternationalizationAdministration/DisplayInternationalizationAdministration"; import ManageAccountRecoveryAdministrationSettings from "./ManageAccountRecoveryAdministrationSettings/ManageAccountRecoveryAdministrationSettings"; import ManageSmtpAdministrationSettings from "./ManageSmtpAdministrationSettings/ManageSmtpAdministrationSettings.js"; import DisplaySelfRegistrationAdministration from "./DisplaySelfRegistrationAdministration/DisplaySelfRegistrationAdministration"; import ManageSsoSettings from "./ManageSsoSettings/ManageSsoSettings"; import DisplayMfaPolicyAdministration from "./DisplayMfaPolicyAdministration/DisplayMfaPolicyAdministration"; class AdministrationWorkspace extends Component { /** * If MFA menu is selected * @returns {boolean} */ isMfaSelected() { return AdministrationWorkspaceMenuTypes.MFA === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If MFA policy menu is selected * @returns {boolean} */ isMfaPolicySelected() { return AdministrationWorkspaceMenuTypes.MFA_POLICY === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If User directory menu is selected * @returns {boolean} */ isUserDirectorySelected() { return AdministrationWorkspaceMenuTypes.USER_DIRECTORY === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If Email notifications menu is selected * @returns {boolean} */ isEmailNotificationsSelected() { return AdministrationWorkspaceMenuTypes.EMAIL_NOTIFICATION === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If Subscription menu is selected * @returns {boolean} */ isSubscriptionSelected() { return AdministrationWorkspaceMenuTypes.SUBSCRIPTION === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If Internationalization menu is selected * @returns {boolean} */ isInternationalizationSelected() { return AdministrationWorkspaceMenuTypes.INTERNATIONALIZATION === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If Account Recovery menu is selected * @returns {boolean} */ isAccountRecoverySelected() { return AdministrationWorkspaceMenuTypes.ACCOUNT_RECOVERY === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If SMTP settings menu is selected * @returns {boolean} */ isSmtpSettingsSelected() { return AdministrationWorkspaceMenuTypes.SMTP_SETTINGS === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If Self registration settings menu is selected * @returns {boolean} */ isSelfRegistrationSelected() { return AdministrationWorkspaceMenuTypes.SELF_REGISTRATION === this.props.administrationWorkspaceContext.selectedAdministration; } /** * If SSO menu is selected * @returns {boolean} */ isSsoSelected() { return AdministrationWorkspaceMenuTypes.SSO === this.props.administrationWorkspaceContext.selectedAdministration; } render() { const AdministrationWorkspaceAction = this.props.administrationWorkspaceContext.administrationWorkspaceAction; return ( <div id="container" className="page administration"> <div id="app" tabIndex="1000"> <div className="header first"> <DisplayMainMenu/> </div> <div className="header second"> <Logo/> <SearchBar disabled={true}/> <DisplayUserBadgeMenu baseUrl={this.props.context.trustedDomain || this.props.context.userSettings.getTrustedDomain()} user={this.props.context.loggedInUser}/> </div> <div className="header third"> <div className="col1 main-action-wrapper"> </div> <AdministrationWorkspaceAction/> </div> <div className="panel main"> <div> <div className="panel left"> <DisplayAdministrationMenu/> </div> <div className="panel middle"> <DisplayAdministrationWorkspaceBreadcrumb/> <div className="grid grid-responsive-12"> {this.isMfaSelected() && <DisplayMfaAdministration/> } {this.isMfaPolicySelected() && <DisplayMfaPolicyAdministration/> } {this.isUserDirectorySelected() && <DisplayUserDirectoryAdministration/> } {this.isEmailNotificationsSelected() && <DisplayEmailNotificationsAdministration/> } {this.isSubscriptionSelected() && <DisplaySubscriptionKey/> } {this.isInternationalizationSelected() && <DisplayInternationalizationAdministration/> } {this.isAccountRecoverySelected() && <ManageAccountRecoveryAdministrationSettings/> } {this.isSmtpSettingsSelected() && <ManageSmtpAdministrationSettings/> } {this.isSelfRegistrationSelected() && <DisplaySelfRegistrationAdministration/> } {this.isSsoSelected() && <ManageSsoSettings/> } </div> </div> </div> </div> </div> </div> ); } } AdministrationWorkspace.propTypes = { context: PropTypes.any, // The application context provider administrationWorkspaceContext: PropTypes.object, // The administration workspace context }; export default withAppContext(withAdministrationWorkspace(AdministrationWorkspace));