import Axios from 'axios'; import React, { Component } from 'react'; import { Nav, Tab, Tabs } from 'react-bootstrap'; import ReactDOM from 'react-dom'; import { toast } from 'react-toastify'; import SettingsInput from './SettingsInput'; import ResetSettings from './tabs/ResetSettings'; import BackupSettings from './tabs/BackupSettings'; import GeneralSettings from './tabs/GeneralSettings'; import GraphsSettings from './tabs/GraphsSettings'; import HealthchecksSettings from './tabs/HealthchecksSettings'; import NotificationsSettings from './tabs/NotificationsSettings'; import Authentication from '../Authentication/Authentication'; import TableSettings from './tabs/TableSettings'; export default class SettingsTabs extends Component { constructor(props) { super(props) this.state = { tab: "Tables", data: this.props.data } } generateTabs = () => { var tabs = [ 'General', 'Graphs', 'Tables', 'Notifications', 'healthchecks.io', 'Reset', 'Backup/Restore', ]; if(window.config.auth) { tabs.push('Authentication'); } return tabs.map((tab) => { return }); } switchTab = (tab) => { this.setState({ tab: tab }); } save = (settings, name) => { var url = 'api/settings/bulk?token=' + window.token; var data = []; settings.forEach(e => { if(e.type !== 'btn-get') { var res = { name: e.obj.name, value: e.obj.value }; data.push(res); } }); data = { data: data }; Axios.post(url, data) .then((resp) => { toast.success(name + ' settings updated'); Axios.get('api/settings/config') .then((resp) => { window.config = resp.data; }) }) .catch((err) => { if(err.response.status == 422) { toast.error('Your input was invalid'); } else { toast.error('Something went wrong') } }) } generateInputs = (settings, handler) => { return settings.map((setting) => { return }) } getTabContent = () => { var data = this.state.data; switch(this.state.tab) { case 'General': return case 'Graphs': return case 'Tables': return case 'Notifications': return case 'healthchecks.io': return case 'Reset': return case 'Backup/Restore': return case 'Authentication': return } } render() { var tabs = this.generateTabs(); var activeTab = this.state.tab; var tabContent = this.getTabContent(); return (
{ this.switchTab(tab) }} activeKey={activeTab} > {tabs}
{tabContent}
); } } if (document.getElementById('settingsTabs')) { ReactDOM.render(, document.getElementById('settingsTabs')); }