import { Fragment } from 'inferno'; import { useBackend, useSharedState } from '../backend'; import { Box, Button, LabeledList, Section, Tabs } from '../components'; import { Window } from '../layouts'; import { filter } from 'common/collections'; export const ResearchServerController = (props, context) => { const { act, data } = useBackend(context); return ( ); }; const ResearchControllerContent = (props, context) => { const { act, data } = useBackend(context); const { badmin, servers, consoles } = data; const [selectedServer, setSelectedServer] = useSharedState(context, 'selectedServer', null); let realServer = servers.find((s) => s.id === selectedServer); if (realServer) { return ; } return (
{servers.map((server) => ( ))}
); }; const ResearchServer = (props, context) => { const { act, data } = useBackend(context); const { badmin } = data; const { server, setSelectedServer } = props; const [tab, setTab] = useSharedState(context, 'tab', 0); return (
setSelectedServer(null)}> Back }> setTab(0)}> Access Rights setTab(1)}> Data Management {(badmin && ( setTab(2)} color="red"> Server-to-Server Transfer )) || null} {(tab === 0 && ) || null} {(tab === 1 && ) || null} {(tab === 2 && badmin && ) || null}
); }; const ResearchServerAccess = (props, context) => { const { act, data } = useBackend(context); const { server } = props; const { consoles } = data; const hasUploadAccess = (server, console) => { if (server.id_with_upload.indexOf(console.id) !== -1) { return true; } return false; }; const hasDownloadAccess = (server, console) => { if (server.id_with_download.indexOf(console.id) !== -1) { return true; } return false; }; return (
{consoles.length && consoles.map((console) => ( ))}
); }; const ResearchServerData = (props, context) => { const { act, data } = useBackend(context); const { server } = props; return (
{server.tech.map((tech) => ( act('reset_tech', { server: server.ref, tech: tech.id })} /> } /> ))}
{filter((design) => !!design.name)(server.designs).map((design) => ( act('reset_design', { server: server.ref, design: design.id })} /> } /> ))}
); }; const ResearchServerTransfer = (props, context) => { const { act, data } = useBackend(context); const { server } = props; const { badmin, servers } = data; if (!badmin) { return null; } return (
{servers.map((newserver) => ( Transfer from {server.name} To {newserver.name} } onClick={() => act('transfer_data', { server: server.ref, target: newserver.ref })} /> ))}
); };