import React, { Component, Fragment } from 'react'; import { Utils } from '../../../utils/utils'; import { orgAdminAPI } from '../../../utils/org-admin-api'; import { gettext, mediaUrl, logoPath, orgID, orgEnableAdminCustomLogo, orgEnableAdminCustomName, enableMultiADFS } from '../../../utils/constants'; import Loading from '../../../components/loading'; import toaster from '../../../components/toast'; import MainPanelTopbar from '../main-panel-topbar'; import Section from './section'; import InputItem from './input-item'; import FileItem from './file-item'; import '../../../css/system-admin-web-settings.css'; import CheckboxItem from '../../sys-admin/web-settings/checkbox-item'; const { sysEnableUserCleanTrash, sysEnableEncryptedLibrary } = window.org.pageOptions; class OrgWebSettings extends Component { constructor(props) { super(props); this.state = { loading: true, errorMsg: '', config_dict: null, logoPath: logoPath, file_ext_white_list: '', force_adfs_login: false, disable_org_encrypted_library: false, disable_org_user_clean_trash: false }; } componentDidMount() { orgAdminAPI.orgAdminGetOrgInfo().then((res) => { this.setState({ loading: false, config_dict: res.data, file_ext_white_list: res.data.file_ext_white_list, force_adfs_login: res.data.force_adfs_login, disable_org_encrypted_library: res.data.disable_org_encrypted_library, disable_org_user_clean_trash: res.data.disable_org_user_clean_trash }); }).catch((error) => { this.setState({ loading: false, errorMsg: Utils.getErrorMsg(error, true) // true: show login tip if 403 }); }); } updateName = (key, newOrgName) => { orgAdminAPI.orgAdminUpdateName(orgID, newOrgName).then((res) => { this.setState({ config_dict: res.data }); toaster.success(gettext('Name updated')); }).catch((error) => { let errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); }); }; updateLogo = (file) => { orgAdminAPI.orgAdminUpdateLogo(orgID, file).then((res) => { this.setState({ logoPath: res.data.logo_path }); toaster.success(gettext('Logo updated')); }).catch((error) => { let errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); }); }; orgSaveSetting = (key, value) => { orgAdminAPI.orgAdminSetSysSettingInfo(orgID, key, value).then((res) => { toaster.success(gettext('System settings updated')); }).catch((error) => { let errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); }); }; render() { const { loading, errorMsg, config_dict, file_ext_white_list, force_adfs_login, disable_org_encrypted_library, disable_org_user_clean_trash } = this.state; let logoPath = this.state.logoPath; logoPath = logoPath.indexOf('image-view') != -1 ? logoPath : mediaUrl + logoPath; return (

{gettext('Settings')}

{loading && } {errorMsg &&

{errorMsg}

} {(!loading && !errorMsg) && config_dict &&

{ orgEnableAdminCustomLogo && }
{enableMultiADFS &&
} {(sysEnableUserCleanTrash || sysEnableEncryptedLibrary) &&
{sysEnableEncryptedLibrary && } {sysEnableUserCleanTrash && }
}
}
); } } export default OrgWebSettings;