import React, { Component, Fragment } from 'react'; import { Utils } from '../../../utils/utils'; import { seafileAPI } from '../../../utils/seafile-api'; import { gettext, mediaUrl, logoPath, orgID, orgEnableAdminCustomLogo, orgEnableAdminCustomName } 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'; class OrgWebSettings extends Component { constructor(props) { super(props); this.state = { loading: true, errorMsg: '', config_dict: null, logoPath: logoPath, file_ext_white_list: '', }; } componentDidMount () { seafileAPI.orgAdminGetOrgInfo().then((res) => { this.setState({ loading: false, config_dict: res.data, file_ext_white_list: res.data.file_ext_white_list }); }).catch((error) => { this.setState({ loading: false, errorMsg: Utils.getErrorMsg(error, true) // true: show login tip if 403 }); }); } updateName= (key, newOrgName) => { seafileAPI.orgAdminUpdateName(orgID, newOrgName).then((res) => { this.setState({ config_dict: res.data }); toaster.success(gettext('Success')); }).catch((error) => { let errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); }); }; updateLogo = (file) => { seafileAPI.orgAdminUpdateLogo(orgID, file).then((res) => { this.setState({ logoPath: res.data.logo_path }); toaster.success(gettext('Success')); }).catch((error) => { let errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); }); }; updateFileExtWhiteList = (key, value) => { seafileAPI.orgAdminSetSysSettingInfo(orgID, key, value).then((res) => { this.setState({ file_ext_white_list: res.data.file_ext_white_list }); toaster.success(gettext('Success')); }).catch((error) => { let errMessage = Utils.getErrorMsg(error); toaster.danger(errMessage); }); }; render() { const { loading, errorMsg, config_dict, file_ext_white_list } = 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 && }
}
); } } export default OrgWebSettings;