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}
);
};