diff --git a/tgui/packages/tgui/interfaces/SkillPanel.js b/tgui/packages/tgui/interfaces/SkillPanel.js
index 18bfeae62d..ed9d1c96d4 100644
--- a/tgui/packages/tgui/interfaces/SkillPanel.js
+++ b/tgui/packages/tgui/interfaces/SkillPanel.js
@@ -1,6 +1,6 @@
import { Fragment } from 'inferno';
import { useBackend } from '../backend';
-import { Box, Button, LabeledList, ProgressBar, Section } from '../components';
+import { Box, Button, LabeledList, ProgressBar, Section, Window } from '../components';
export const SkillPanel = (props, context) => {
const { act, data } = useBackend(context);
@@ -15,107 +15,111 @@ export const SkillPanel = (props, context) => {
fontWeight: 'bold',
};
return (
- act('toggle_mods')} />
- )}>
-
- {skills.map(skill => (
-
-
- {skill.desc}
-
- `Modifiers: ${skill.modifiers}`
-
-
- {!!skill.level_based && (
-
- {see_mods ? (
-
- Level: [
-
- {skill.lvl_mod}
- ]
-
- ) : (
-
- Level: [
-
- {skill.lvl_base}
- ]
-
- )}
+
+
+ act('toggle_mods')} />
+ )}>
+
+ {skills.map(skill => (
+
+
+ {skill.desc}
+
+ `Modifiers: ${skill.modifiers}`
+
- Total Experience:
- {see_mods ? (
- [{skill.value_mod} XP]
- ) : (
- [{skill.value_base} XP]
- )}
-
- XP To Next Level:
- {skill.max_lvl !== (see_mods
- ? skill.lvl_mod_num
- : skill.lvl_base_num) ? (
-
- {see_mods ? (
- {skill.xp_next_lvl_mod}
- ) : (
- {skill.xp_next_lvl_base}
- )}
-
- ) : (
-
- [MAXXED]
-
- )}
-
- )}
- {see_mods ? (
- {skill.mod_readout}
- ) : (
- {skill.base_readout}
- )}
- {see_mods ? (
-
- ) : (
-
- )}
-
- {!!data.admin && (
-
-
- )}
-
-
-
- ))}
-
-
+ {see_mods ? (
+ {skill.mod_readout}
+ ) : (
+ {skill.base_readout}
+ )}
+ {see_mods ? (
+
+ ) : (
+
+ )}
+
+ {!!data.admin && (
+
+ act('adj_exp', {
+ skill: skill.path,
+ })} />
+ act('set_exp', {
+ skill: skill.path,
+ })} />
+ {!!skill.level_based && (
+ act('set_lvl', {
+ skill: skill.path,
+ })} />
+ )}
+
+ )}
+
+
+
+ ))}
+
+
+
+
);
};
diff --git a/tgui/packages/tgui/interfaces/TelecommsInteraction.js b/tgui/packages/tgui/interfaces/TelecommsInteraction.js
index 259e6f9a23..17e82abc10 100644
--- a/tgui/packages/tgui/interfaces/TelecommsInteraction.js
+++ b/tgui/packages/tgui/interfaces/TelecommsInteraction.js
@@ -2,7 +2,7 @@ import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { toFixed } from 'common/math';
import { RADIO_CHANNELS } from '../constants';
-import { Button, LabeledList, NumberInput, NoticeBox, Section, Input } from '../components';
+import { Button, LabeledList, NumberInput, NoticeBox, Section, Input, Window } from '../components';
export const TeleInteract = (props, context) => {
const { act, data } = useBackend(context);
@@ -24,215 +24,221 @@ export const TeleInteract = (props, context) => {
isbus = false,
} = machine;
return (
-
- {!!notice && (
-
- {notice}
-
- )}
-
-
-
- act('toggle')}
- />
-
- {power ? (
-
-
- act('machine', {
- 'id': value,
- })} />
+
+
+
+ {!!notice && (
+
+ {notice}
+
+ )}
+
+
+
+ act('toggle')}
+ />
-
- act('machine', {
- 'network': value,
- })} />
-
-
- {prefab ? 'TRUE' : 'FALSE'}
-
- {isrelay ? (
+ {power ? (
-
- act('relay', {
- 'broadcast': true,
- })}
- />
+
+ act('machine', {
+ 'id': value,
+ })} />
-
- act('relay', {
- 'receiving': true,
- })}
- />
+
+ act('machine', {
+ 'network': value,
+ })} />
+
+ {prefab ? 'TRUE' : 'FALSE'}
+
+ {isrelay ? (
+
+
+ act('relay', {
+ 'broadcast': true,
+ })}
+ />
+
+
+ act('relay', {
+ 'receiving': true,
+ })}
+ />
+
+
+ ) : (
+ ''
+ )}
+ {isbus ? (
+
+ act('frequency', {
+ 'toggle': true,
+ })}
+ />
+ {machine.chang_frequency ? (
+ toFixed(value, 1)}
+ onChange={(e, value) => act('frequency', {
+ 'adjust': value,
+ })} />
+ ) : (
+ ''
+ )}
+
+ ) : (
+ ''
+ )}
+ {hidden ? (
+
+ {'ACTIVE'}
+
+ ) : (
+ ''
+ )}
+ {multitool ? (
+
+ act('multitool', {
+ 'Link': true,
+ })}
+ />
+ act('multitool', {
+ 'Flush': true,
+ })}
+ />
+
+ ) : (
+ act('multitool', {
+ 'Add': true,
+ })}
+ />
+ )}>
+ {multitool_buf ? (
+ `${multitool_buf.name} (${multitool_buf.id})`
+ ) : (
+ ''
+ )}
+
+ ) : (
+ ''
+ )}
) : (
''
)}
- {isbus ? (
-
+
+ {power ? (
+
+
+
+ {links.map(entity => {
+ return (
+ act('unlink', {
+ 'value': entity.ref,
+ })}
+ />
+ )}>
+ {`${entity.name} (${entity.id})`}
+
+ );
+ })}
+
+
+
act('frequency', {
- 'toggle': true,
+ content="Add Filter"
+ onClick={() => act('freq', {
+ 'add': true,
})}
/>
- {machine.chang_frequency ? (
- toFixed(value, 1)}
- onChange={(e, value) => act('frequency', {
- 'adjust': value,
- })} />
- ) : (
- ''
- )}
-
- ) : (
- ''
- )}
- {hidden ? (
-
- {'ACTIVE'}
-
- ) : (
- ''
- )}
- {multitool ? (
-
- act('multitool', {
- 'Link': true,
- })}
- />
- act('multitool', {
- 'Flush': true,
- })}
- />
-
- ) : (
- act('multitool', {
- 'Add': true,
- })}
- />
- )}>
- {multitool_buf ? (
- `${multitool_buf.name} (${multitool_buf.id})`
- ) : (
- ''
- )}
-
- ) : (
- ''
- )}
-
- ) : (
- ''
- )}
-
- {power ? (
-
-
-
- {links.map(entity => {
- return (
-
+
+ {(freq_listening && freq_listening.length) ? (
+ freq_listening.map(thing => {
+ const valid = RADIO_CHANNELS
+ .find(channel => channel.freq === thing);
+ return (
act('unlink', {
- 'value': entity.ref,
+ key={thing}
+ content={valid ? (
+
+ {`${thing} (${valid.name})`}
+
+ ) : (
+ thing
+ )}
+ onClick={() => act('freq', {
+ 'remove': thing,
})}
/>
- )}>
- {`${entity.name} (${entity.id})`}
-
- );
- })}
-
-
-
- act('freq', {
- 'add': true,
- })}
- />
-
-
- {(freq_listening && freq_listening.length) ? (
- freq_listening.map(thing => {
- const valid = RADIO_CHANNELS
- .find(channel => channel.freq === thing);
- return (
-
- {`${thing} (${valid.name})`}
-
- ) : (
- thing
- )}
- onClick={() => act('freq', {
- 'remove': thing,
- })}
- />
- );
- })
- ) : (
- ''
- )}
-
-
- ) : (
- ''
- )}
-
-
+ );
+ })
+ ) : (
+ ''
+ )}
+
+
+ ) : (
+ ''
+ )}
+
+
+
+
);
};
diff --git a/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js b/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js
index fb67464604..aabda7d6c9 100644
--- a/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js
+++ b/tgui/packages/tgui/interfaces/TelecommsLogBrowser.js
@@ -1,6 +1,6 @@
import { Fragment } from 'inferno';
import { useBackend } from '../backend';
-import { Button, LabeledList, NoticeBox, Section, Tabs, Input } from '../components';
+import { Button, LabeledList, NoticeBox, Section, Tabs, Input, Window } from '../components';
export const TeleLogBrowser = (props, context) => {
const { act, data } = useBackend(context);
@@ -13,162 +13,167 @@ export const TeleLogBrowser = (props, context) => {
} = data;
const operational = (selected && selected.status);
return (
-
- {!!notice && (
-
- {notice}
-
- )}
-
- )}>
- {servers ? (
- `${servers.length} currently probed and buffered`
- ) : (
- 'Buffer is empty!'
- )}
-
- act('mainmenu')}
- />
- )}>
- {selected ? (
- `${selected.name} (${selected.id})`
- ) : (
- "None (None)"
- )}
-
-
- {selected ? (
- selected.traffic <= 1024 ? (
- `${selected.traffic} Gigabytes`
- ) : (
- `${Math.round(selected.traffic/1024)} Terrabytes`
- )
- ) : (
- '0 Gigabytes'
- )}
-
-
- {operational ? (
- 'Running'
- ) : (
- 'Server down!'
- )}
-
-
-
-
-
-
- {(servers && servers.length) ? (
-
- {servers.map(server => {
- return (
-
+
+
+ {!!notice && (
+
+ {notice}
+
+ )}
+
+ )}>
+ {servers ? (
+ `${servers.length} currently probed and buffered`
+ ) : (
+ 'Buffer is empty!'
+ )}
+
+ act('mainmenu')}
+ />
+ )}>
+ {selected ? (
+ `${selected.name} (${selected.id})`
+ ) : (
+ "None (None)"
+ )}
+
+
+ {selected ? (
+ selected.traffic <= 1024 ? (
+ `${selected.traffic} Gigabytes`
+ ) : (
+ `${Math.round(selected.traffic/1024)} Terrabytes`
+ )
+ ) : (
+ '0 Gigabytes'
+ )}
+
+
+ {operational ? (
+ 'Running'
+ ) : (
+ 'Server down!'
+ )}
+
+
+
+
+
+
+ {(servers && servers.length) ? (
+
+ {servers.map(server => {
+ return (
+ act('viewmachine', {
- 'value': server.id,
- })} />
- )}>
- {`${server.name} (${server.id})`}
-
- );
- })}
-
- ) : (
- '404 Servers not found. Have you tried scanning the network?'
- )}
-
-
-
-
- {(operational && selected_logs) ? (
- selected_logs.map(logs => {
- return (
-
-
- act('delete', {
- 'value': logs.ref,
- })} />
- )}>
- {logs.name}
-
-
- {logs.input_type}
-
- {logs.source && (
-
- {`[${logs.source.name}] (Job: [${logs.source.job}])`}
+ onClick={() => act('viewmachine', {
+ 'value': server.id,
+ })} />
+ )}>
+ {`${server.name} (${server.id})`}
- )}
- {logs.race && (
-
- {logs.race}
-
- )}
-
- {logs.message}
-
-
-
- );
- })
- ) : (
- "No server selected!"
- )}
-
-
-
-
+ );
+ })}
+
+ ) : (
+ '404 Servers not found. Have you tried scanning the network?'
+ )}
+
+
+
+
+ {(operational && selected_logs) ? (
+ selected_logs.map(logs => {
+ return (
+
+
+ act('delete', {
+ 'value': logs.ref,
+ })} />
+ )}>
+ {logs.name}
+
+
+ {logs.input_type}
+
+ {logs.source && (
+
+ {`[${logs.source.name}]
+ (Job: [${logs.source.job}])`}
+
+ )}
+ {logs.race && (
+
+ {logs.race}
+
+ )}
+
+ {logs.message}
+
+
+
+ );
+ })
+ ) : (
+ "No server selected!"
+ )}
+
+
+
+
+
+
);
};
diff --git a/tgui/packages/tgui/interfaces/TelecommsMonitor.js b/tgui/packages/tgui/interfaces/TelecommsMonitor.js
index 30aa05f1fe..26454d3f7f 100644
--- a/tgui/packages/tgui/interfaces/TelecommsMonitor.js
+++ b/tgui/packages/tgui/interfaces/TelecommsMonitor.js
@@ -1,7 +1,7 @@
import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { RADIO_CHANNELS } from '../constants';
-import { Box, Button, LabeledList, NoticeBox, Section, Tabs, Input } from '../components';
+import { Box, Button, LabeledList, NoticeBox, Section, Tabs, Input, Window } from '../components';
export const Telemonitor = (props, context) => {
@@ -16,206 +16,212 @@ export const Telemonitor = (props, context) => {
const operational = (selected && selected.status);
return (
-
- {!!notice && (
-
- {notice}
-
- )}
-
- )}>
- {!selected ? (
- servers ? (
- `${servers.length} currently probed and buffered`
- ) : (
- 'Buffer is empty!'
- )
- ) : (
- selected_servers ? (
- `${selected_servers.length} currently probed and buffered`
- ) : (
- 'Connected devices is empty!'
- )
- )}
-
- act('mainmenu')}
- />
- )}>
- {selected ? (
- `${selected.name} (${selected.id})`
- ) : (
- "None (None)"
- )}
-
-
-
-
-
-
- {(servers && servers.length) ? (
-
- {servers.map(server => {
- return (
- act('viewmachine', {
- 'value': server.id,
- })} />
- )}>
- {`${server.name} (${server.id})`}
-
- );
- })}
-
- ) : (
- '404 Servers not found. Have you tried scanning the network?'
- )}
-
-
-
-
+
+
+
+ {!!notice && (
+
+ {notice}
+
+ )}
+
)}>
- {operational ? ( // Not to be confused to totaltraffic
- selected.traffic <= 1024 ? (
- `${Math.max(selected.traffic, 0)} Gigabytes`
+ {!selected ? (
+ servers ? (
+ `${servers.length} currently probed and buffered`
) : (
- `${Math.round(selected.traffic/1024)} Terrabytes`
+ 'Buffer is empty!'
)
) : (
- '0 Gigabytes'
- )}
-
-
- {operational ? (
- selected.netspeed <= 1024 ? (
- `${selected.netspeed} Gigabytes/second`
+ selected_servers ? (
+ `${selected_servers.length} currently probed and buffered`
) : (
- `${Math.round(selected.netspeed/1024)} Terrabytes/second`
+ 'Connected devices is empty!'
)
- ) : (
- '0 Gigabytes/second'
)}
act('mainmenu')}
+ />
)}>
- {(operational && selected.long_range_link) ? (
- 'true'
+ {selected ? (
+ `${selected.name} (${selected.id})`
) : (
- 'false'
+ "None (None)"
)}
-
-
- {operational && selected.freq_listening.map(thing => {
- const valid = RADIO_CHANNELS
- .find(channel => channel.freq === thing);
- return (
- (valid) ? (
-
- {`[${thing}] (${valid.name}) `}
-
- ) : (
- `[${thing}] `
- )
- );
- })}
-
-
-
- {(operational && selected_servers) ? (
-
- {selected_servers.map(server => {
- return (
- act('viewmachine', {
- 'value': server.id,
- })} />
- )}>
- {`${server.name} (${server.id})`}
-
- );
- })}
-
- ) : (
- !operational ? (
- "Server currently down! Cannot fetch the buffer list!"
- ) : (
- "Buffer is empty!"
- )
- )}
-
-
-
-
+
+
+
+ {(servers && servers.length) ? (
+
+ {servers.map(server => {
+ return (
+ act('viewmachine', {
+ 'value': server.id,
+ })} />
+ )}>
+ {`${server.name} (${server.id})`}
+
+ );
+ })}
+
+ ) : (
+ '404 Servers not found. Have you tried scanning the network?'
+ )}
+
+
+
+
+
+
+ {operational ? (
+ 'Running'
+ ) : (
+ 'Server down!'
+ )}
+
+
+ {operational ? ( // Not to be confused to totaltraffic
+ selected.traffic <= 1024 ? (
+ `${Math.max(selected.traffic, 0)} Gigabytes`
+ ) : (
+ `${Math.round(selected.traffic/1024)} Terrabytes`
+ )
+ ) : (
+ '0 Gigabytes'
+ )}
+
+
+ {operational ? (
+ selected.netspeed <= 1024 ? (
+ `${selected.netspeed} Gigabytes/second`
+ ) : (
+ `${Math.round(selected.netspeed/1024)}
+ Terrabytes/second`
+ )
+ ) : (
+ '0 Gigabytes/second'
+ )}
+
+
+ {(operational && selected.long_range_link) ? (
+ 'true'
+ ) : (
+ 'false'
+ )}
+
+
+
+ {operational && selected.freq_listening.map(thing => {
+ const valid = RADIO_CHANNELS
+ .find(channel => channel.freq === thing);
+ return (
+ (valid) ? (
+
+ {`[${thing}] (${valid.name}) `}
+
+ ) : (
+ `[${thing}] `
+ )
+ );
+ })}
+
+
+
+
+ {(operational && selected_servers) ? (
+
+ {selected_servers.map(server => {
+ return (
+ act('viewmachine', {
+ 'value': server.id,
+ })} />
+ )}>
+ {`${server.name} (${server.id})`}
+
+ );
+ })}
+
+ ) : (
+ !operational ? (
+ "Server currently down! Cannot fetch the buffer list!"
+ ) : (
+ "Buffer is empty!"
+ )
+ )}
+
+
+
+
+
+
+
);
};
diff --git a/tgui/packages/tgui/interfaces/TelecommsPDALog.js b/tgui/packages/tgui/interfaces/TelecommsPDALog.js
index d14bf38aa7..5cb8e0196c 100644
--- a/tgui/packages/tgui/interfaces/TelecommsPDALog.js
+++ b/tgui/packages/tgui/interfaces/TelecommsPDALog.js
@@ -1,7 +1,7 @@
import { Fragment } from 'inferno';
import { useBackend } from '../backend';
import { act as _act } from '../byond';
-import { Button, LabeledList, NoticeBox, Section, Tabs, Input } from '../components';
+import { Button, LabeledList, NoticeBox, Section, Tabs, Input, Window } from '../components';
export const TelePDALog = (props, context) => {
const { act, data } = useBackend(context);
@@ -64,357 +64,362 @@ export const TelePDALog = (props, context) => {
}
return (
-
- {!!notice && (
-
- {notice}
-
- )}
-
- )}>
- {servers ? (
- `${servers.length} currently probed and buffered`
- ) : (
- 'Buffer is empty!'
- )}
-
-
- act('change_auth')}
- />
- {canhack && (
- act('hack')}
- />
- )}
-
- )}>
- {authenticated ? "KEY OK" : "KEY FAIL"}
-
-
- act('auth')}
- />
- act('mainmenu')}
- />
-
- )}>
- {selected ? (
- `${selected.name} (${selected.id})`
- ) : (
- "None (None)"
- )}
-
-
- {selected ? (
- selected.status ? (
- 'Running'
- ) : (
- 'Server down! Logging and messaging functionality unavailable!'
- )
- ):(
- 'No server selected'
- )}
-
-
-
-
-
-
- {(servers && servers.length) ? (
-
- {servers.map(server => {
- return (
- act('viewmachine', {
- 'value': server.id,
- })} />
- )}>
- {`${server.name} (${server.id})`}
-
- );
- })}
-
- ) : (
- '404 Servers not found. Have you tried scanning the network?'
- )}
-
-
-
-
- act('refresh')}
- />
- act('clear_log', {
- 'value': 'pda_logs',
- })}
- />
-
- {(message_logs && message_logs.length) ? (
- message_logs.map(message => {
- return (
-
-
- act('del_log', {
- 'ref': message.ref,
- })}
- />
- )}>
- {message.sender}
-
-
- {message.recipient}
-
- _act(message.ref, 'photo')}
- />
- )
- )}>
- {message.message}
-
-
-
- );
- })
- ) : (
- 'Error: Logs empty'
- )}
-
-
-
-
-
- act('refresh')}
- />
- act('clear_log', {
- 'value': 'rc_msgs',
- })}
- />
-
- {(recon_logs && recon_logs.length) ? (
- recon_logs.map(message => {
- return (
-
-
- act('del_log', {
- 'ref': message.ref,
- })}
- />
- )}>
- {message.sender}
-
-
- {message.recipient}
-
-
- {message.message}
-
-
- {message.stamp !== 'Unstamped' ? (
- {message.stamp}
- ) : (
- message.stamp
- )}
-
-
- {message.auth}
-
-
- {message.priority === 'Extreme' ? (
- !!{message.priority}!!
- ) : (
- message.priority
- )}
-
-
-
- );
- })
- ) : (
- 'Error: No logs found'
- )}
-
-
-
-
-
-
-
-
+
+
+
+ {(servers && servers.length) ? (
+
+ {servers.map(server => {
+ return (
+ act('viewmachine', {
+ 'value': server.id,
+ })} />
+ )}>
+ {`${server.name} (${server.id})`}
+
+ );
+ })}
+
+ ) : (
+ '404 Servers not found. Have you tried scanning the network?'
+ )}
+
+
+
+
+ act('refresh')}
+ />
+ act('clear_log', {
+ 'value': 'pda_logs',
+ })}
+ />
+
+ {(message_logs && message_logs.length) ? (
+ message_logs.map(message => {
+ return (
+
+
+ act('del_log', {
+ 'ref': message.ref,
+ })}
+ />
+ )}>
+ {message.sender}
+
+
+ {message.recipient}
+
+ _act(message.ref, 'photo')}
+ />
+ )
+ )}>
+ {message.message}
+
+
+
+ );
+ })
+ ) : (
+ 'Error: Logs empty'
+ )}
+
+
+
+
+
+ act('refresh')}
+ />
+ act('clear_log', {
+ 'value': 'rc_msgs',
+ })}
+ />
+
+ {(recon_logs && recon_logs.length) ? (
+ recon_logs.map(message => {
+ return (
+
+
+ act('del_log', {
+ 'ref': message.ref,
+ })}
+ />
+ )}>
+ {message.sender}
+
+
+ {message.recipient}
+
+
+ {message.message}
+
+
+ {message.stamp !== 'Unstamped' ? (
+ {message.stamp}
+ ) : (
+ message.stamp
+ )}
+
+
+ {message.auth}
+
+
+ {message.priority === 'Extreme' ? (
+ !!{message.priority}!!
+ ) : (
+ message.priority
+ )}
+
+
+
+ );
+ })
+ ) : (
+ 'Error: No logs found'
+ )}
+
+
+
+
+
+ act('fake', {
+ 'reset': true,
+ })}
+ />
+ act('fake', {
+ 'send': true,
+ })}
+ />
+
+
+
+ act('fake', {
+ 'sender': value,
+ })}
+ />
+
+
+ act('fake', {
+ 'job': value,
+ })}
+ />
+
+
+ act('fake', {
+ 'recepient': true,
+ })}
+ />
+
+
+ act('fake', {
+ 'message': value,
+ })}
+ />
+
+
+
+
+
+
+
+
);
};