import { decodeHtmlEntities } from 'common/string'; import { Fragment } from 'inferno'; import { useBackend } from '../backend'; import { Box, Button, LabeledList, Section, Tabs } from '../components'; import { Window } from '../layouts'; const RCS_MAINMENU = 0; // Settings menu const RCS_RQASSIST = 1; // Request supplies const RCS_RQSUPPLY = 2; // Request assistance const RCS_SENDINFO = 3; // Relay information const RCS_SENTPASS = 4; // Message sent successfully const RCS_SENTFAIL = 5; // Message sent unsuccessfully const RCS_VIEWMSGS = 6; // View messages const RCS_MESSAUTH = 7; // Authentication before sending const RCS_ANNOUNCE = 8; // Send announcement const RequestConsoleSettings = (props, context) => { const { act, data } = useBackend(context); const { silent } = data; return (
); }; const RequestConsoleSupplies = (props, context) => { const { act, data } = useBackend(context); const { department, supply_dept } = data; return (
); }; const RequestConsoleAssistance = (props, context) => { const { act, data } = useBackend(context); const { department, assist_dept } = data; return (
); }; const RequestConsoleRelay = (props, context) => { const { act, data } = useBackend(context); const { department, info_dept } = data; return (
); }; const RequestConsoleSendMenu = (props, context) => { const { act } = useBackend(context); const { dept_list, department } = props; return ( {dept_list.sort().map( (dept) => (dept !== department && ( } /> )) || null )} ); }; const RequestConsoleSendPass = (props, context) => { const { act, data } = useBackend(context); return (
Message Sent Successfully
); }; const RequestConsoleSendFail = (props, context) => { const { act, data } = useBackend(context); return (
An error occured. Message Not Sent.
); }; const RequestConsoleViewMessages = (props, context) => { const { act, data } = useBackend(context); const { message_log } = data; return (
{(message_log.length && message_log.map((msg, i) => ( act('print', { print: i + 1 })}> Print }> {decodeHtmlEntities(msg[1])} ))) || No messages.}
); }; const RequestConsoleMessageAuth = (props, context) => { const { act, data } = useBackend(context); const { message, recipient, priority, msgStamped, msgVerified } = data; return (
{message} {priority === 2 ? 'High Priority' : priority === 1 ? 'Normal Priority' : 'Unknown'} {decodeHtmlEntities(msgVerified) || 'No Validation'} {decodeHtmlEntities(msgStamped) || 'No Stamp'}
); }; const RequestConsoleAnnounce = (props, context) => { const { act, data } = useBackend(context); const { department, screen, message_log, newmessagepriority, silent, announcementConsole, assist_dept, supply_dept, info_dept, message, recipient, priority, msgStamped, msgVerified, announceAuth, } = data; return (
{(announceAuth && ( ID Verified. Authentication Accepted.
act('writeAnnouncement')}> Edit }> {message || 'No Message'}
)) || ( Swipe your ID card to authenticate yourself. )}
); }; let screenToTemplate = {}; screenToTemplate[RCS_MAINMENU] = RequestConsoleSettings; screenToTemplate[RCS_RQASSIST] = RequestConsoleAssistance; screenToTemplate[RCS_RQSUPPLY] = RequestConsoleSupplies; screenToTemplate[RCS_SENDINFO] = RequestConsoleRelay; screenToTemplate[RCS_SENTPASS] = RequestConsoleSendPass; screenToTemplate[RCS_SENTFAIL] = RequestConsoleSendFail; screenToTemplate[RCS_VIEWMSGS] = RequestConsoleViewMessages; screenToTemplate[RCS_MESSAUTH] = RequestConsoleMessageAuth; screenToTemplate[RCS_ANNOUNCE] = RequestConsoleAnnounce; export const RequestConsole = (props, context) => { const { act, data } = useBackend(context); const { screen, newmessagepriority, announcementConsole } = data; let BodyElement = screenToTemplate[screen]; return ( act('setScreen', { setScreen: RCS_VIEWMSGS })} icon="envelope-open-text"> Messages act('setScreen', { setScreen: RCS_RQASSIST })} icon="share-square"> Assistance act('setScreen', { setScreen: RCS_RQSUPPLY })} icon="share-square"> Supplies act('setScreen', { setScreen: RCS_SENDINFO })} icon="share-square-o"> Report {(announcementConsole && ( act('setScreen', { setScreen: RCS_ANNOUNCE })} icon="volume-up"> Announce )) || null} act('setScreen', { setScreen: RCS_MAINMENU })} icon="cog" /> {(newmessagepriority && (
1 ? 'NEW PRIORITY MESSAGES' : 'There are new messages!'} color={newmessagepriority > 1 ? 'bad' : 'average'} bold={newmessagepriority > 1} /> )) || null} ); };