Revert "12/21 modernizations from TG live"
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
component.exports = {
|
||||
computed: {
|
||||
clickable () {
|
||||
if (this.get('enabled') && (!this.get('state') || this.get('state') == "toggle")) {
|
||||
if (this.get('enabled') && !this.get('state')) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@@ -18,8 +18,6 @@
|
||||
},
|
||||
styles () {
|
||||
let extra = ''
|
||||
if (this.get('class'))
|
||||
extra += ' ' + this.get('class');
|
||||
if (this.get('tooltip-side'))
|
||||
extra = ` tooltip-${this.get('tooltip-side')}`
|
||||
if (this.get('grid'))
|
||||
@@ -35,35 +33,15 @@
|
||||
} else {
|
||||
return `inactive disabled ${extra}`
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
oninit () {
|
||||
this.on('press', (event) => {
|
||||
const { action, params } = this.get()
|
||||
act(this.get('config.ref'), action, params)
|
||||
event.node.blur()
|
||||
})
|
||||
},
|
||||
data: {
|
||||
iconStackToHTML(icon_stack){ //turns a string such as 'square-o 2x, twitter 1x' into fully valid fontawesome syntax+HTML
|
||||
let resultHTML = '';
|
||||
let icons = icon_stack.split(',');
|
||||
if(icons.length){
|
||||
resultHTML += '<span class=\"fa-stack\">';
|
||||
for (let iconinfo of icons){
|
||||
let regex = /([\w\-]+)\s*(\dx)/g;
|
||||
let components = regex.exec(iconinfo);
|
||||
let icon = components[1]; //0 is the entire string
|
||||
let size = components[2];
|
||||
resultHTML += '<i class=\"fa fa-' + icon + ' fa-stack-' + size + '\"></i>';
|
||||
}
|
||||
}
|
||||
if(resultHTML){
|
||||
resultHTML += '</span>';
|
||||
}
|
||||
return resultHTML;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -77,8 +55,5 @@
|
||||
{{#if icon}}
|
||||
<i class='fa fa-{{icon}}'></i>
|
||||
{{/if}}
|
||||
{{#if icon_stack}}
|
||||
{{{iconStackToHTML(icon_stack)}}}
|
||||
{{/if}}
|
||||
{{yield}}
|
||||
</span>
|
||||
|
||||
@@ -14,8 +14,8 @@ span.button
|
||||
@extend {context} $fontReset
|
||||
display: inline-block
|
||||
vertical-align: middle
|
||||
min-height: 20px
|
||||
line-height: @min-height - 3px
|
||||
height: 20px
|
||||
line-height: @height - 3px
|
||||
padding: 0 5px
|
||||
white-space: nowrap
|
||||
|
||||
@@ -27,7 +27,6 @@ span.button
|
||||
buttoncolor(normal, button-color-normal)
|
||||
buttoncolor(disabled, button-color-disabled)
|
||||
buttoncolor(selected, button-color-selected)
|
||||
buttoncolor(toggle, button-color-selected)
|
||||
buttoncolor(caution, button-color-caution)
|
||||
buttoncolor(danger, button-color-danger)
|
||||
|
||||
@@ -40,5 +39,3 @@ span:not(.button) + span.button
|
||||
|
||||
span.button + span:not(.button)
|
||||
margin-left: 5px
|
||||
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ component.exports = {
|
||||
const onrelease = (event) => this.set({ drag: false, x: null, y: null })
|
||||
|
||||
this.observe('config.fancy', (newkey, oldkey, keypath) => {
|
||||
winset(this.get('config.window'), 'titlebar', !newkey && this.get('config.titlebar'))
|
||||
winset(this.get('config.window'), 'titlebar', !newkey)
|
||||
|
||||
if (newkey) {
|
||||
document.addEventListener('mousemove', ondrag)
|
||||
@@ -46,13 +46,11 @@ component.exports = {
|
||||
}
|
||||
</script>
|
||||
|
||||
{{#if config.titlebar}}
|
||||
<header class='titlebar' on-mousedown='drag'>
|
||||
<i class='statusicon fa fa-eye fa-2x {{visualStatus}}'></i>
|
||||
<span class='title'>{{yield}}</span>
|
||||
{{#if config.fancy}}
|
||||
<i class='minimize fa fa-minus fa-2x' on-click='minimize'></i>
|
||||
<i class='close fa fa-close fa-2x' on-click='close'></i>
|
||||
{{/if}}
|
||||
</header>
|
||||
{{/if}}
|
||||
<header class='titlebar' on-mousedown='drag'>
|
||||
<i class='statusicon fa fa-eye fa-2x {{visualStatus}}'></i>
|
||||
<span class='title'>{{yield}}</span>
|
||||
{{#if config.fancy}}
|
||||
<i class='minimize fa fa-minus fa-2x' on-click='minimize'></i>
|
||||
<i class='close fa fa-close fa-2x' on-click='close'></i>
|
||||
{{/if}}
|
||||
</header>
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
|
||||
<script>
|
||||
component.exports = {
|
||||
computed: {
|
||||
healthState () {
|
||||
const health = this.get('data.health')
|
||||
if (health > 70) return 'good'
|
||||
else if (health > 50) return 'average'
|
||||
else return 'bad'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
|
||||
{{#if data.restoring}}
|
||||
<ui-notice>
|
||||
<span>Reconstruction in progress!</span>
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
|
||||
|
||||
<ui-display>
|
||||
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Inserted AI:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
<ui-button icon='eject' action='PRG_eject' state='{{data.nocard ? "disabled" : null}}'>{{data.name ? data.name : "---"}}</ui-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{#if data.error}}
|
||||
<b>ERROR: {{data.error}}</b>
|
||||
{{else}}
|
||||
<h2>System Status</h2>
|
||||
<div class="item">
|
||||
<div class="itemLabel">
|
||||
Current AI:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{data.name}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Status:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{#if data.isDead}}
|
||||
Nonfunctional
|
||||
{{else}}
|
||||
Functional
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
System Integrity:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
<ui-bar min='0' max='100' value='{{data.health}}'
|
||||
state='{{healthState}}'>{{Math.round(adata.health)}}%</ui-bar>
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Active Laws:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
<table>
|
||||
{{#each data.ai_laws}}
|
||||
<tr><td><span class='highlight'>{{.}}</span>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
<ui-section label='Operations'>
|
||||
<ui-button icon='plus' style='{{data.restoring ? "disabled" : null}}' action='PRG_beginReconstruction'>Begin Reconstruction</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
|
||||
</ui-display>
|
||||
@@ -27,10 +27,6 @@
|
||||
action='tox_scrub' params='{"id_tag": "{{id_tag}}", "val": {{+!filter_toxins}}}'>Plasma</ui-button>
|
||||
<ui-button icon='{{filter_bz ? "check-square-o" : "square-o"}}' style='{{filter_bz ? "selected" : null}}'
|
||||
action='bz_scrub' params='{"id_tag": "{{id_tag}}", "val": {{+!filter_bz}}}'>BZ</ui-button>
|
||||
<ui-button icon='{{filter_freon ? "check-square-o" : "square-o"}}' style='{{filter_freon ? "selected" : null}}'
|
||||
action='freon_scrub' params='{"id_tag": "{{id_tag}}", "val": {{+!filter_freon}}}'>Freon</ui-button>
|
||||
<ui-button icon='{{filter_water_vapor ? "check-square-o" : "square-o"}}' style='{{filter_water_vapor ? "selected" : null}}'
|
||||
action='water_vapor_scrub' params='{"id_tag": "{{id_tag}}", "val": {{+!filter_water_vapor}}}'>Water Vapor</ui-button>
|
||||
</ui-section>
|
||||
</ui-subdisplay>
|
||||
{{else}}
|
||||
|
||||
@@ -42,92 +42,84 @@
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{{#if data.failTime}}
|
||||
<ui-notice>
|
||||
<b><h3>SYSTEM FAILURE</h3></b>
|
||||
<i>I/O regulators malfunction detected! Waiting for system reboot...</i><br>
|
||||
Automatic reboot in {{data.failTime}} seconds...
|
||||
<ui-button icon='refresh' action='reboot'>Reboot Now</ui-button><br><br><br>
|
||||
</ui-notice>
|
||||
{{else}}
|
||||
<ui-notice>
|
||||
{{#if data.siliconUser}}
|
||||
<ui-section label='Interface Lock'>
|
||||
<ui-button icon='{{data.locked ? "lock" : "unlock"}}' action='lock'>{{data.locked ? "Engaged" : "Disengaged"}}</ui-button>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<span>Swipe an ID card to {{data.locked ? "unlock" : "lock"}} this interface.</span>
|
||||
{{/if}}
|
||||
</ui-notice>
|
||||
<ui-display title='Power Status'>
|
||||
<ui-section label='Main Breaker'>
|
||||
{{#if data.locked && !data.siliconUser}}
|
||||
<span class='{{data.isOperating ? "good" : "bad"}}'>{{data.isOperating ? "On" : "Off"}}</span>
|
||||
{{else}}
|
||||
<ui-button icon='{{data.isOperating ? "power-off" : "close"}}' style='{{data.isOperating ? "selected" : null}}'
|
||||
action='breaker'>{{data.isOperating ? "On" : "Off"}}</ui-button>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
<ui-section label='External Power'>
|
||||
<span class='{{powerState(data.externalPower)}}'>{{data.externalPower == 2 ? "Good" : data.externalPower == 1 ? "Low" : "None"}}</span>
|
||||
</ui-section>
|
||||
<ui-section label='Power Cell'>
|
||||
{{#if data.powerCellStatus != null}}
|
||||
<ui-bar min='0' max='100' value='{{data.powerCellStatus}}' state='{{powerCellStatusState}}'>{{Math.fixed(adata.powerCellStatus)}}%</ui-bar>
|
||||
{{else}}
|
||||
<span class='bad'>Removed</span>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
{{#if data.powerCellStatus != null}}
|
||||
<ui-section label='Charge Mode'>
|
||||
{{#if data.locked && !data.siliconUser}}
|
||||
<span class='{{data.chargeMode ? "good" : "bad"}}'>{{data.chargeMode ? "Auto" : "Off"}}</span>
|
||||
{{else}}
|
||||
<ui-button icon='{{data.chargeMode ? "refresh" : "close"}}' style='{{data.chargeMode ? "selected" : null}}'
|
||||
action='charge'>{{data.chargeMode ? "Auto" : "Off"}}</ui-button>
|
||||
{{/if}}
|
||||
|
||||
[<span class='{{powerState(data.chargingStatus)}}'>{{data.chargingStatus == 2 ? "Fully Charged" : data.chargingStatus == 1 ? "Charging" : "Not Charging"}}</span>]
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Power Channels'>
|
||||
{{#each data.powerChannels}}
|
||||
<ui-section label='{{title}}' nowrap>
|
||||
<div class='content'>{{Math.round(adata.powerChannels[@index].powerLoad)}} W</div>
|
||||
<div class='content'><span class='{{status >= 2 ? "good" : "bad"}}'>{{status >= 2 ? "On" : "Off"}}</span></div>
|
||||
<div class='content'>[<span>{{status == 1 || status == 3 ? "Auto" : "Manual"}}</span>]</div>
|
||||
<div class='content' style='float:right'>
|
||||
{{#if !data.locked || data.siliconUser}}
|
||||
<ui-button icon='refresh' state='{{status == 1 || status == 3 ? "selected" : null}}'
|
||||
action='channel' params='{{topicParams.auto}}'>Auto</ui-button>
|
||||
<ui-button icon='power-off' state='{{status == 2 ? "selected" : null}}' action='channel'
|
||||
params='{{topicParams.on}}'>On</ui-button>
|
||||
<ui-button icon='close' state='{{status == 0 ? "selected" : null}}' action='channel'
|
||||
params='{{topicParams.off}}'>Off</ui-button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
<ui-section label='Total Load'>
|
||||
<span class='bold'>{{Math.round(adata.totalLoad)}} W</span>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{#if data.siliconUser}}
|
||||
<ui-display title='System Overrides'>
|
||||
<ui-button icon='lightbulb-o' action='overload'>Overload</ui-button>
|
||||
{{#if data.malfStatus}}
|
||||
<ui-button icon='{{malfIcon}}' state='{{data.malfStatus == 4 ? "disabled" : null}}' action='{{malfAction}}'>{{malfButton}}</ui-button>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
<ui-notice>
|
||||
<ui-section label='Cover Lock'>
|
||||
{{#if data.locked && !data.siliconUser}}
|
||||
<span>{{data.coverLocked ? "Engaged" : "Disengaged"}}</span>
|
||||
{{else}}
|
||||
<ui-button icon='{{data.coverLocked ? "lock" : "unlock"}}' action='cover'>{{data.coverLocked ? "Engaged" : "Disengaged"}}</ui-button>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
|
||||
<ui-notice>
|
||||
{{#if data.siliconUser}}
|
||||
<ui-section label='Interface Lock'>
|
||||
<ui-button icon='{{data.locked ? "lock" : "unlock"}}' action='lock'>{{data.locked ? "Engaged" : "Disengaged"}}</ui-button>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<span>Swipe an ID card to {{data.locked ? "unlock" : "lock"}} this interface.</span>
|
||||
{{/if}}
|
||||
</ui-notice>
|
||||
<ui-display title='Power Status'>
|
||||
<ui-section label='Main Breaker'>
|
||||
{{#if data.locked && !data.siliconUser}}
|
||||
<span class='{{data.isOperating ? "good" : "bad"}}'>{{data.isOperating ? "On" : "Off"}}</span>
|
||||
{{else}}
|
||||
<ui-button icon='{{data.isOperating ? "power-off" : "close"}}' style='{{data.isOperating ? "selected" : null}}'
|
||||
action='breaker'>{{data.isOperating ? "On" : "Off"}}</ui-button>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
<ui-section label='External Power'>
|
||||
<span class='{{powerState(data.externalPower)}}'>{{data.externalPower == 2 ? "Good" : data.externalPower == 1 ? "Low" : "None"}}</span>
|
||||
</ui-section>
|
||||
<ui-section label='Power Cell'>
|
||||
{{#if data.powerCellStatus != null}}
|
||||
<ui-bar min='0' max='100' value='{{data.powerCellStatus}}' state='{{powerCellStatusState}}'>{{Math.fixed(adata.powerCellStatus)}}%</ui-bar>
|
||||
{{else}}
|
||||
<span class='bad'>Removed</span>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
{{#if data.powerCellStatus != null}}
|
||||
<ui-section label='Charge Mode'>
|
||||
{{#if data.locked && !data.siliconUser}}
|
||||
<span class='{{data.chargeMode ? "good" : "bad"}}'>{{data.chargeMode ? "Auto" : "Off"}}</span>
|
||||
{{else}}
|
||||
<ui-button icon='{{data.chargeMode ? "refresh" : "close"}}' style='{{data.chargeMode ? "selected" : null}}'
|
||||
action='charge'>{{data.chargeMode ? "Auto" : "Off"}}</ui-button>
|
||||
{{/if}}
|
||||
|
||||
[<span class='{{powerState(data.chargingStatus)}}'>{{data.chargingStatus == 2 ? "Fully Charged" : data.chargingStatus == 1 ? "Charging" : "Not Charging"}}</span>]
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Power Channels'>
|
||||
{{#each data.powerChannels}}
|
||||
<ui-section label='{{title}}' nowrap>
|
||||
<div class='content'>{{Math.round(adata.powerChannels[@index].powerLoad)}} W</div>
|
||||
<div class='content'><span class='{{status >= 2 ? "good" : "bad"}}'>{{status >= 2 ? "On" : "Off"}}</span></div>
|
||||
<div class='content'>[<span>{{status == 1 || status == 3 ? "Auto" : "Manual"}}</span>]</div>
|
||||
<div class='content' style='float:right'>
|
||||
{{#if !data.locked || data.siliconUser}}
|
||||
<ui-button icon='refresh' state='{{status == 1 || status == 3 ? "selected" : null}}'
|
||||
action='channel' params='{{topicParams.auto}}'>Auto</ui-button>
|
||||
<ui-button icon='power-off' state='{{status == 2 ? "selected" : null}}' action='channel'
|
||||
params='{{topicParams.on}}'>On</ui-button>
|
||||
<ui-button icon='close' state='{{status == 0 ? "selected" : null}}' action='channel'
|
||||
params='{{topicParams.off}}'>Off</ui-button>
|
||||
{{/if}}
|
||||
</div>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
<ui-section label='Total Load'>
|
||||
<span class='bold'>{{Math.round(adata.totalLoad)}} W</span>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{#if data.siliconUser}}
|
||||
<ui-display title='System Overrides'>
|
||||
<ui-button icon='lightbulb-o' action='overload'>Overload</ui-button>
|
||||
{{#if data.malfStatus}}
|
||||
<ui-button icon='{{malfIcon}}' state='{{data.malfStatus == 4 ? "disabled" : null}}' action='{{malfAction}}'>{{malfButton}}</ui-button>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
<ui-notice>
|
||||
<ui-section label='Cover Lock'>
|
||||
{{#if data.locked && !data.siliconUser}}
|
||||
<span>{{data.coverLocked ? "Engaged" : "Disengaged"}}</span>
|
||||
{{else}}
|
||||
<ui-button icon='{{data.coverLocked ? "lock" : "unlock"}}' action='cover'>{{data.coverLocked ? "Engaged" : "Disengaged"}}</ui-button>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
</ui-notice>
|
||||
|
||||
@@ -23,9 +23,5 @@
|
||||
action='filter' params='{"mode": "n2o"}'>N2O</ui-button>
|
||||
<ui-button state='{{data.filter_type == "bz" ? "selected" : null}}'
|
||||
action='filter' params='{"mode": "bz"}'>BZ</ui-button>
|
||||
<ui-button state='{{data.filter_type == "freon" ? "selected" : null}}'
|
||||
action='filter' params='{"mode": "freon"}'>Freon</ui-button>
|
||||
<ui-button state='{{data.filter_type == "water_vapor" ? "selected" : null}}'
|
||||
action='filter' params='{"mode": "water_vapor"}'>Water Vapor</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
{{#if data.notice}}
|
||||
<ui-notice>
|
||||
{{data.notice}}
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
<ui-display title='Bluespace Artillery Control' button>
|
||||
{{#if data.connected}}
|
||||
<ui-section label='Target'>
|
||||
<ui-button icon='crosshairs' action='recalibrate'>{{data.target}}</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Controls'>
|
||||
<ui-button icon='warning' state='{{data.ready ? null : "disabled"}}' action='fire'>FIRE!</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if !data.connected}}
|
||||
<ui-section label='Maintenance'>
|
||||
<ui-button icon='wrench' action='build'>Complete Deployment.</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
@@ -25,9 +25,7 @@
|
||||
{{#if data.loan && !data.requestonly}}
|
||||
<ui-section label='Loan'>
|
||||
{{#if !data.loan_dispatched}}
|
||||
<ui-button
|
||||
state='{{data.away && data.docked ? null : "disabled"}}'
|
||||
action='loan'>Loan Shuttle</ui-button>
|
||||
<ui-button action='loan'>Loan Shuttle</ui-button>
|
||||
{{else}}
|
||||
<span class='bad'>Loaned to Centcom</span>
|
||||
{{/if}}
|
||||
|
||||
@@ -11,6 +11,11 @@
|
||||
<span>{{desc}}</span>
|
||||
<span>{{helptext}}</span>
|
||||
<span>Cost: {{dna_cost}}</span>
|
||||
|
||||
{{#if required_absorbtions}}
|
||||
<span>Required Absorbtions: {{required_absorbtions}}
|
||||
{{/if}}
|
||||
|
||||
<ui-button
|
||||
state='{{owned ? "selected" : can_purchase ? null : "disabled"}}'
|
||||
action='evolve'
|
||||
|
||||
@@ -64,15 +64,12 @@
|
||||
<ui-button action='createPill' params='{"many": 1}' state='{{data.bufferContents ? null : "disabled"}}' >Create Multiple Pills</ui-button>
|
||||
<br/>
|
||||
<br/>
|
||||
<ui-button action='createPatch' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Patch (max 40µ)</ui-button>
|
||||
<ui-button action='createPatch' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Patch (max 50µ)</ui-button>
|
||||
<br/>
|
||||
<ui-button action='createPatch' params='{"many": 1}' state='{{data.bufferContents ? null : "disabled"}}' >Create Multiple Patches</ui-button>
|
||||
<br/>
|
||||
<br/>
|
||||
<ui-button action='createBottle' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Bottle (max 30µ)</ui-button>
|
||||
<br/>
|
||||
<ui-button action='createBottle' params='{"many": 1}' state='{{data.bufferContents ? null : "disabled"}}' >Dispense Buffer to Bottles</ui-button>
|
||||
|
||||
<ui-button action='createBottle' state='{{data.bufferContents ? null : "disabled"}}' >Create Bottle (max 30µ)</ui-button>
|
||||
</ui-display>
|
||||
|
||||
{{else}}
|
||||
@@ -80,7 +77,7 @@
|
||||
<ui-button action='createPill' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Pack (max 10µ)</ui-button>
|
||||
<br/>
|
||||
<br/>
|
||||
<ui-button action='createBottle' params='{"many": 0}' state='{{data.bufferContents ? null : "disabled"}}' >Create Bottle (max 50µ)</ui-button>
|
||||
<ui-button action='createBottle' state='{{data.bufferContents ? null : "disabled"}}' >Create Bottle (max 50µ)</ui-button>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
{{elseif data.screen == "analyze"}}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
<ui-display>
|
||||
<ui-button action='toggle'>{{data.recollection ? "Recital":"Recollection"}}</ui-button>
|
||||
</ui-display>
|
||||
{{#if data.recollection}}
|
||||
<ui-display>
|
||||
{{{data.rec_text}}}
|
||||
</ui-display>
|
||||
{{else}}
|
||||
<ui-display title='Components (with Global Cache)' button>
|
||||
<ui-section>
|
||||
{{{data.components}}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
<ui-display>
|
||||
<ui-section>
|
||||
<ui-button state='{{data.selected == "Driver" ? "selected" : null}}' action='select' params='{"category": "Driver"}'>Driver</ui-button>
|
||||
<ui-button state='{{data.selected == "Script" ? "selected" : null}}' action='select' params='{"category": "Script"}'>Scripts</ui-button>
|
||||
<ui-button state='{{data.selected == "Application" ? "selected" : null}}' action='select' params='{"category": "Application"}'>Applications</ui-button>
|
||||
<ui-button state='{{data.selected == "Revenant" ? "selected" : null}}' action='select' params='{"category": "Revenant"}'>Revenant</ui-button>
|
||||
<ui-button state='{{data.selected == "Judgement" ? "selected" : null}}' action='select' params='{"category": "Judgement"}'>Judgement</ui-button>
|
||||
<br>{{{data.tier_info}}}
|
||||
</ui-section><hr>
|
||||
<ui-section>
|
||||
{{#each data.scripture}}
|
||||
<div><ui-button tooltip='{{{tip}}}' tooltip-side='right' action='recite' params='{"category": "{{type}}"}'>Recite: {{{required}}}</ui-button>
|
||||
{{#if quickbind}}
|
||||
{{#if bound}}
|
||||
<ui-button action='bind' params='{"category": "{{type}}"}'>Unbind {{{bound}}}</ui-button>
|
||||
{{else}}
|
||||
<ui-button action='bind' params='{"category": "{{type}}"}'>Quickbind</ui-button>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{{name}}} {{{descname}}} {{{invokers}}}</div>
|
||||
{{/each}}
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
@@ -1,89 +0,0 @@
|
||||
|
||||
<ui-button icon='circle' action='clean_order'>Clear Order</ui-button><br><br>
|
||||
<i>Your new computer device you always dreamed of is just four steps away...</i><hr>
|
||||
{{#if data.state == 0}} <!-- Device type selection -->
|
||||
<div class='item'>
|
||||
<h2>Step 1: Select your device type</h2>
|
||||
<ui-button icon='calc' action='pick_device' params='{"pick" : "1"}'>Laptop</ui-button>
|
||||
<ui-button icon='calc' action='pick_device' params='{"pick" : "2"}'>LTablet</ui-button>
|
||||
</div>
|
||||
{{elseif data.state == 1}}
|
||||
<div class='item'>
|
||||
<h2>Step 2: Personalise your device</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td><b>Current Price:</b>
|
||||
<td>{{data.totalprice}}C
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Battery:</b>
|
||||
<td><ui-button action='hw_battery' params='{"battery" : "1"}' state='{{data.hw_battery == 1 ? "selected" : null}}'>Standard</ui-button>
|
||||
<td><ui-button action='hw_battery' params='{"battery" : "2"}' state='{{data.hw_battery == 2 ? "selected" : null}}'>Upgraded</ui-button>
|
||||
<td><ui-button action='hw_battery' params='{"battery" : "3"}' state='{{data.hw_battery == 3 ? "selected" : null}}'>Advanced</ui-button>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Hard Drive:</b>
|
||||
<td><ui-button action='hw_disk' params='{"disk" : "1"}' state='{{data.hw_disk == 1 ? "selected" : null}}'>Standard</ui-button>
|
||||
<td><ui-button action='hw_disk' params='{"disk" : "2"}' state='{{data.hw_disk == 2 ? "selected" : null}}'>Upgraded</ui-button>
|
||||
<td><ui-button action='hw_disk' params='{"disk" : "3"}' state='{{data.hw_disk == 3 ? "selected" : null}}'>Advanced</ui-button>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Network Card:</b>
|
||||
<td><ui-button action='hw_netcard' params='{"netcard" : "0"}' state='{{data.hw_netcard == 0 ? "selected" : null}}'>None</ui-button>
|
||||
<td><ui-button action='hw_netcard' params='{"netcard" : "1"}' state='{{data.hw_netcard == 1 ? "selected" : null}}'>Standard</ui-button>
|
||||
<td><ui-button action='hw_netcard' params='{"netcard" : "2"}' state='{{data.hw_netcard == 2 ? "selected" : null}}'>Advanced</ui-button>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Nano Printer:</b>
|
||||
<td><ui-button action='hw_nanoprint' params='{"print" : "0"}' state='{{data.hw_nanoprint == 0 ? "selected" : null}}'>None</ui-button>
|
||||
<td><ui-button action='hw_nanoprint' params='{"print" : "1"}' state='{{data.hw_nanoprint == 1 ? "selected" : null}}'>Standard</ui-button>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Card Reader:</b>
|
||||
<td><ui-button action='hw_card' params='{"card" : "0"}' state='{{data.hw_card == 0 ? "selected" : null}}'>None</ui-button>
|
||||
<td><ui-button action='hw_card' params='{"card" : "1"}' state='{{data.hw_card == 1 ? "selected" : null}}'>Standard</ui-button>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{{#if data.devtype != 2}} {{! No tablets}}
|
||||
<table>
|
||||
<tr>
|
||||
<td><b>Processor Unit:</b>
|
||||
<td><ui-button action='hw_cpu' params='{"cpu" : "1"}' state='{{data.hw_cpu == 1 ? "selected" : null}}'>Standard</ui-button>
|
||||
<td><ui-button action='hw_cpu' params='{"cpu" : "2"}' state='{{data.hw_cpu == 2 ? "selected" : null}}'>Advanced</ui-button>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b>Tesla Relay:</b>
|
||||
<td><ui-button action='hw_tesla' params='{"tesla" : "0"}' state='{{data.hw_tesla == 0 ? "selected" : null}}'>None</ui-button>
|
||||
<td><ui-button action='hw_tesla' params='{"tesla" : "1"}' state='{{data.hw_tesla == 1 ? "selected" : null}}'>Standard</ui-button>
|
||||
</tr>
|
||||
</table>
|
||||
{{/if}}
|
||||
<table>
|
||||
<tr>
|
||||
<td><b>Confirm Order:</b>
|
||||
<td><ui-button action='confirm_order'>CONFIRM</ui-button>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<b>Battery</b> allows your device to operate without external utility power source. Advanced batteries increase battery life.<br>
|
||||
<b>Hard Drive</b> stores file on your device. Advanced drives can store more files, but use more power, shortening battery life.<br>
|
||||
<b>Network Card</b> allows your device to wirelessly connect to stationwide NTNet network. Basic cards are limited to on-station use, while advanced cards can operate anywhere near the station, which includes the asteroid outposts.<br>
|
||||
<b>Processor Unit</b> is critical for your device's functionality. It allows you to run programs from your hard drive. Advanced CPUs use more power, but allow you to run more programs on background at once.<br>
|
||||
<b>Tesla Relay</b> is an advanced wireless power relay that allows your device to connect to nearby area power controller to provide alternative power source. This component is currently unavailable on tablet computers due to size restrictions.<br>
|
||||
<b>Nano Printer</b> is device that allows for various paperwork manipulations, such as, scanning of documents or printing new ones. This device was certified EcoFriendlyPlus and is capable of recycling existing paper for printing purposes.<br>
|
||||
<b>Card Reader</b> adds a slot that allows you to manipulate RFID cards. Please note that this is not necessary to allow the device to read your identification, it is just necessary to manipulate other cards.
|
||||
</div>
|
||||
{{elseif data.state == 2}}
|
||||
<h2>Step 3: Payment</h2>
|
||||
<b>Your device is now ready for fabrication..</b><br>
|
||||
<i>Please ensure the required amount of credits are in the machine, then press purchase.</i><br>
|
||||
<i>Current credits: <b>{{data.credits}}C</b></i><br>
|
||||
<i>Total price: <b>{{data.totalprice}}C</b></i><br><br>
|
||||
<ui-button action='purchase' state='{{data.credits >= data.totalprice ? null : "disabled"}}'>PURCHASE</ui-button>
|
||||
|
||||
{{elseif data.state == 3}}
|
||||
<h2>Step 4: Thank you for your purchase</h2><br>
|
||||
<b>Should you experience any issues with your new device, contact your local network admin for assistance.</b>
|
||||
{{/if}}
|
||||
@@ -1,47 +0,0 @@
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
<ui-display>
|
||||
<i>No program loaded. Please select program from list below.</i>
|
||||
<table>
|
||||
{{#each data.programs}}
|
||||
<tr><td><ui-button action='PC_runprogram' params='{"name": "{{name}}"}'>
|
||||
{{desc}}
|
||||
</ui-button>
|
||||
<td><ui-button state='{{running ? null : "disabled"}}' icon='close' action='PC_killprogram' params='{"name": "{{name}}"}'></ui-button>
|
||||
{{/each}}
|
||||
</table>
|
||||
</ui-display>
|
||||
@@ -1,34 +0,0 @@
|
||||
<ui-display>
|
||||
<ui-section label='State'>
|
||||
{{#if data.mode == 0}}
|
||||
<span class='bad'>Off</span>
|
||||
{{else}}
|
||||
{{#if data.mode == -1}}
|
||||
<span class='bad'>Power Disabled</span>
|
||||
|
||||
{{else}}
|
||||
{{#if data.mode == 1}}
|
||||
<span class='average'>Pressurizing</span>
|
||||
{{else}}
|
||||
<span class='good'>Ready</span>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
<ui-section label='Pressure'>
|
||||
<ui-bar min='0' max='100' value='{{data.per}}' state='good'>{{data.per}}%</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Handle'>
|
||||
<ui-button
|
||||
icon='{{data.flush ? "toggle-on" : "toggle-off" }}'
|
||||
state='{{data.isai || data.mode == -1 ? 'disabled' : null}}'
|
||||
action='{{data.flush ? "handle-0" : "handle-1" }}'>
|
||||
{{data.flush ? "Disengage" : "Engage" }}</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Eject'>
|
||||
<ui-button icon='sign-out' state='{{data.isai ? 'disabled' : null}}' action='eject'>Eject Contents</ui-button><br/>
|
||||
</ui-section>
|
||||
<ui-section label='Power'>
|
||||
<ui-button icon='power-off' state='{{data.mode == -1 ? 'disabled' : null}}' action='{{data.mode ? "pump-0" : "pump-1" }}' style='{{data.mode ? "selected" : null }}'></ui-button><br/>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -1,22 +0,0 @@
|
||||
<ui-display title='DNA Vault Database'>
|
||||
<ui-section label='Human DNA'>
|
||||
<ui-bar min='0' max='{{data.dna_max}}' value='{{data.dna}}'>{{data.dna}}/{{data.dna_max}} Samples</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Plant Data'>
|
||||
<ui-bar min='0' max='{{data.plants_max}}' value='{{data.plants}}'>{{data.plants}}/{{data.plants_max}} Samples</ui-bar>
|
||||
</ui-section>
|
||||
<ui-section label='Animal Data'>
|
||||
<ui-bar min='0' max='{{data.animals_max}}' value='{{data.animals}}'>{{data.animals}}/{{data.animals_max}} Samples</ui-bar>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{#if data.completed && !data.used}}
|
||||
<ui-display title ='Personal Gene Therapy'>
|
||||
<ui-section>
|
||||
<span>Applicable gene therapy treatments:</span>
|
||||
</ui-section>
|
||||
<ui-section>
|
||||
<ui-button action='gene' params='{"choice": "{{data.choiceA}}"}'>{{data.choiceA}}</ui-button>
|
||||
<ui-button action='gene' params='{"choice": "{{data.choiceB}}"}'>{{data.choiceB}}</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
@@ -1,98 +0,0 @@
|
||||
|
||||
<ui-display>
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
{{#if data.error}}
|
||||
<h2>An error has occurred and this program can not continue.</h2>
|
||||
Additional information: {{data.error}}<br>
|
||||
<i>Please try again. If the problem persists contact your system administrator for assistance.</i>
|
||||
<ui-button action='PRG_closefile'>Restart program</ui-button>
|
||||
{{else}}
|
||||
{{#if data.filename}}
|
||||
<h2>Viewing file {{data.filename}}</h2>
|
||||
<div class='item'>
|
||||
<ui-button action='PRG_closefile'>CLOSE</ui-button>
|
||||
<ui-button action='PRG_edit'>EDIT</ui-button>
|
||||
<ui-button action='PRG_printfile'>PRINT</ui-button>
|
||||
</div><hr>
|
||||
{{data.filedata}}
|
||||
{{else}}
|
||||
<h2>Available files (local):</h2>
|
||||
<table>
|
||||
<tr><th>File name
|
||||
<th>File type
|
||||
<th>File size (GQ)
|
||||
<th>Operations
|
||||
{{#each data.files}}
|
||||
<tr><td>{{name}}
|
||||
<td>.{{type}}
|
||||
<td>{{size}}GQ
|
||||
<td>
|
||||
<ui-button action='PRG_openfile' params='{"name": "{{name}}"}'>VIEW</ui-button>
|
||||
<ui-button state='{{undeletable ? "disabled" : null}}' action='PRG_deletefile' params='{"name": "{{name}}"}'>DELETE</ui-button>
|
||||
<ui-button state='{{undeletable ? "disabled" : null}}' action='PRG_rename' params='{"name": "{{name}}"}'>RENAME</ui-button>
|
||||
<ui-button state='{{undeletable ? "disabled" : null}}' action='PRG_clone' params='{"name": "{{name}}"}'>CLONE</ui-button>
|
||||
{{#if data.usbconnected}}
|
||||
<ui-button state='{{undeletable ? "disabled" : null}}' action='PRG_copytousb' params='{"name": "{{name}}"}'>EXPORT</ui-button>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</table>
|
||||
{{#if data.usbconnected}}
|
||||
<h2>Available files (portable device):</h2>
|
||||
<table>
|
||||
<tr><th>File name
|
||||
<th>File type
|
||||
<th>File size (GQ)
|
||||
<th>Operations
|
||||
{{#each data.usbfiles}}
|
||||
<tr><td>{{name}}
|
||||
<td>.{{type}}
|
||||
<td>{{size}}GQ
|
||||
<td>
|
||||
<ui-button state='{{undeletable ? "disabled" : null}}' action='PRG_usbdeletefile' params='{"name": "{{name}}"}'>DELETE</ui-button>
|
||||
{{#if data.usbconnected}}
|
||||
<ui-button state='{{undeletable ? "disabled" : null}}' action='PRG_copyfromusb' params='{"name": "{{name}}"}'>IMPORT</ui-button>
|
||||
{{/if}}
|
||||
{{/each}}
|
||||
</table>
|
||||
{{/if}}
|
||||
<ui-button action='PRG_newtextfile'>NEW DATA FILE</ui-button>
|
||||
{{/if}}
|
||||
|
||||
{{/if}}
|
||||
|
||||
</ui-display>
|
||||
@@ -1,5 +1,5 @@
|
||||
<ui-display>
|
||||
<center><ui-button action="handle_id">{{data.id ? data.id_name : "-------------"}}</ui-button></center>
|
||||
<center><ui-button action="handle_id">{{data.id ? data.id.name : "-------------"}}</ui-button></center>
|
||||
</ui-display>
|
||||
<ui-display title='Stored Items'>
|
||||
{{#each data.mobs}}
|
||||
|
||||
@@ -1,259 +0,0 @@
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
{{#if data.have_id_slot}}
|
||||
<ui-button action='PRG_switchm' icon='home' params='{"target" : "mod"}' state='{{data.mmode == 1 ? "disabled" : null}}'>Access Modification</ui-button>
|
||||
{{/if}}
|
||||
<ui-button action='PRG_switchm' icon='folder-open' params='{"target" : "manage"}' state='{{data.mmode == 2 ? "disabled" : null}}'>Job Management</ui-button>
|
||||
<ui-button action='PRG_switchm' icon='folder-open' params='{"target" : "manifest"}' state='{{!data.mmode ? "disabled" : null}}'>Crew Manifest</ui-button>
|
||||
{{#if data.have_printer}}
|
||||
<ui-button action='PRG_print' icon='print' state='{{!data.mmode || data.has_id && data.mmode == 1 ? null : "disabled"}}'>Print</ui-button>
|
||||
{{/if}}
|
||||
|
||||
{{#if !data.mmode}}
|
||||
<div class='item'>
|
||||
<h2>Crew Manifest</h2>
|
||||
<br>Please use security record computer to modify entries.<br><br>
|
||||
</div>
|
||||
{{#each data.manifest}}
|
||||
<div class='item'>
|
||||
{{name}} - {{rank}}
|
||||
</div>
|
||||
{{/each}}
|
||||
|
||||
{{elseif data.mmode == 2}}
|
||||
<div class='item'>
|
||||
<h2>Job Management</h2>
|
||||
</div>
|
||||
<table>
|
||||
<tr><td style='width:25%'><b>Job</b></td><td style='width:25%'><b>Slots</b></td><td style='width:25%'><b>Open job</b></td><td style='width:25%'><b>Close job</b></td></tr>
|
||||
{{#each data.slots}}
|
||||
|
||||
<tr><td>{{title}}</td><td>{{current}}/{{total}}</td><td><ui-button action='PRG_open_job' params='{"target" : "{{title}}"}' state='{{status_open ? null : "disabled"}}'>{{desc_open}}</ui-button><br></td><td><ui-button action='PRG_close_job' params='{"target" : "{{title}}"}' state='{{status_close ? null : "disabled"}}'>{{desc_close}}</ui-button>
|
||||
</td></tr>
|
||||
|
||||
{{/each}}
|
||||
</table>
|
||||
|
||||
|
||||
{{else}}
|
||||
<div class='item'>
|
||||
<h2>Access Modification</h2>
|
||||
</div>
|
||||
|
||||
{{#if !data.has_id}}
|
||||
<span class='alert'><i>Please insert the ID into the terminal to proceed.</i></span><br>
|
||||
{{/if}}
|
||||
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Target Identity:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
<ui-button icon='eject' action='PRG_eject' params='{"target" : "id"}'>{{data.id_name}}</ui-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Auth Identity:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
<ui-button icon='eject' action='PRG_eject' params='{"target" : "auth"}'>{{data.auth_name}}</ui-button>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
{{#if data.authenticated}}
|
||||
{{#if data.has_id}}
|
||||
<div class='item'>
|
||||
<h2>Details</h2>
|
||||
</div>
|
||||
|
||||
{{#if data.minor}}
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Registered Name:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
{{data.id_owner}}
|
||||
</div>
|
||||
</div>
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Rank:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
{{data.id_rank}}
|
||||
</div>
|
||||
</div>
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Demote:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
<ui-button action='PRG_terminate' icon='gear' state='{{data.id_rank == "Unassigned" ? "disabled" : null}}'>Demote {{data.id_owner}}</ui-button>
|
||||
</div>
|
||||
</div>
|
||||
{{else}}
|
||||
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Registered Name:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
<ui-button action='PRG_edit' icon='pencil' params='{"name" : "1"}'>{{data.id_owner}}</ui-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class='item'>
|
||||
<h2>Assignment</h2>
|
||||
</div>
|
||||
<ui-button action='PRG_togglea' icon='gear'>{{data.assignments ? "Hide assignments" : "Show assignments"}}</ui-button>
|
||||
<div class='item'>
|
||||
<span id='allvalue.jobsslot'>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
<div class='item'>
|
||||
{{#if data.assignments}}
|
||||
<div id="all-value.jobs">
|
||||
<table>
|
||||
<tr>
|
||||
<th></th><th>Command</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Special</th>
|
||||
<td>
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "Captain"}' state='{{data.id_rank == "Captain" ? "selected" : null}}'>Captain</ui-button>
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "Custom"}'>Custom</ui-button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="color: '#FFA500';">Engineering</th>
|
||||
<td>
|
||||
{{#each data.engineering_jobs}}
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "{{job}}"}' state='{{data.id_rank == job ? "selected" : null}}'>{{display_name}}</ui-button>
|
||||
{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="color: '#008000';">Medical</th>
|
||||
<td>
|
||||
{{#each data.medical_jobs}}
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "{{job}}"}' state='{{data.id_rank == job ? "selected" : null}}'>{{display_name}}</ui-button>
|
||||
{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="color: '#800080';">Science</th>
|
||||
<td>
|
||||
{{#each data.science_jobs}}
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "{{job}}"}' state='{{data.id_rank == job ? "selected" : null}}'>{{display_name}}</ui-button>
|
||||
{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="color: '#DD0000';">Security</th>
|
||||
<td>
|
||||
{{#each data.security_jobs}}
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "{{job}}"}' state='{{data.id_rank == job ? "selected" : null}}'>{{display_name}}</ui-button>
|
||||
{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="color: '#cc6600';">Cargo</th>
|
||||
<td>
|
||||
{{#each data.cargo_jobs}}
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "{{job}}"}' state='{{data.id_rank == job ? "selected" : null}}'>{{display_name}}</ui-button>
|
||||
{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="color: '#808080';">Civilian</th>
|
||||
<td>
|
||||
{{#each data.civilian_jobs}}
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "{{job}}"}' state='{{data.id_rank == job ? "selected" : null}}'>{{display_name}}</ui-button>
|
||||
{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
{{#if data.centcom_access}}
|
||||
<tr>
|
||||
<th style="color: '#A52A2A';">CentCom</th>
|
||||
<td>
|
||||
{{#each data.centcom_jobs}}
|
||||
|
||||
<ui-button action='PRG_assign' params='{"assign_target" : "{{job}}"}' state='{{data.id_rank == job ? "selected" : null}}'>{{display_name}}</ui-button>
|
||||
{{/each}}
|
||||
</td>
|
||||
</tr>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
{{#if data.centcom_access}}
|
||||
<div class='item'>
|
||||
<h2>Central Command</h2>
|
||||
</div>
|
||||
<div class='item' style='width: 100%'>
|
||||
{{#each data.all_centcom_access}}
|
||||
<div class='itemContentWide'>
|
||||
<ui-button action='PRG_access' params='{"access_target" : "{{ref}}", "allowed" : "{{allowed}}"}' state='{{allowed ? "toggle" : null}}'>{{desc}}</ui-button>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{else}}
|
||||
<div class='item'>
|
||||
<h2>{{data.station_name}}</h2>
|
||||
</div>
|
||||
<div class='item' style='width: 100%'>
|
||||
{{#each data.regions}}
|
||||
<div style='float: left; width: 175px; min-height: 250px'>
|
||||
<div class='average'><ui-button action='PRG_regsel' state='{{selected ? "toggle" : null}}' params='{"region" : "{{regid}}"}'><b>{{name}}</b></ui-button></div>
|
||||
<br>
|
||||
{{#each accesses}}
|
||||
<div class='itemContentWide'>
|
||||
<ui-button action='PRG_access' params='{"access_target" : "{{ref}}", "allowed" : "{{allowed}}"}' state='{{allowed ? "toggle" : null}}'>{{desc}}</ui-button>
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/each}}
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
@@ -1,40 +0,0 @@
|
||||
<script>
|
||||
component.exports = {
|
||||
computed: {
|
||||
occupantStatState () {
|
||||
switch (this.get('data.occupant.stat')) {
|
||||
case 0: return 'good'
|
||||
case 1: return 'average'
|
||||
default: return 'bad'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<ui-display title='Occupant'>
|
||||
<ui-section label='Occupant'>
|
||||
<span>{{data.occupant.name ? data.occupant.name : "No Occupant"}}</span>
|
||||
</ui-section>
|
||||
{{#if data.occupied}}
|
||||
<ui-section label='State'>
|
||||
<span class='{{occupantStatState}}'>{{data.occupant.stat == 0 ? "Conscious" : data.occupant.stat == 1 ? "Unconcious" : "Dead"}}</span>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Controls'>
|
||||
<ui-section label='Door'>
|
||||
<ui-button icon='{{data.open ? "unlock" : "lock"}}' action='door'>{{data.open ? "Open" : "Closed"}}</ui-button>
|
||||
</ui-section>
|
||||
<ui-section label='Uses'>
|
||||
{{ data.ready_implants }}
|
||||
{{#if data.replenishing}}
|
||||
<span class='fa fa-cog fa-spin'/>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
<ui-section label='Activate'>
|
||||
<ui-button state='{{data.occupied && data.ready_implants > 0 && data.ready ? null : "disabled"}}' action='implant'>
|
||||
{{ data.ready ? (data.special_name ? data.special_name : "Implant") : "Recharging"}}
|
||||
</ui-button><br/>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -19,7 +19,7 @@
|
||||
<ui-display title={{data.name || "Empty Card"}} button>
|
||||
{{#partial button}}
|
||||
{{#if data.name}}
|
||||
<ui-button icon='trash' state='{{data.isDead ? "disabled" : null}}' action='wipe'>{{data.wiping ? "Stop Wiping" : "Wipe"}} AI</ui-button>
|
||||
<ui-button icon='trash' state='{{data.wiping || data.isDead ? "disabled" : null}}' action='wipe'>Wipe AI</ui-button>
|
||||
{{/if}}
|
||||
{{/partial}}
|
||||
{{#if data.name}}
|
||||
|
||||
@@ -1,104 +0,0 @@
|
||||
|
||||
<script>
|
||||
component.exports = {
|
||||
data: {
|
||||
chargeState(charge) {
|
||||
let max = this.get('data.battery.max')
|
||||
if(charge > (max/2)) return 'good'
|
||||
else if(charge > (max/4)) return 'average'
|
||||
else return 'bad'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
<ui-display>
|
||||
<i>Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device.</i><hr>
|
||||
<ui-display title='Power Supply'>
|
||||
{{#if data.battery}}
|
||||
<ui-section label='Battery Status'>
|
||||
Active
|
||||
</ui-section>
|
||||
<ui-section label='Battery Rating'>
|
||||
{{data.battery.max}}
|
||||
</ui-section>
|
||||
<ui-section label='Battery Charge'>
|
||||
<ui-bar min='0' max='{{adata.battery.max}}' value='{{adata.battery.charge}}' state='{{chargeState(adata.battery.charge)}}'>{{Math.round(adata.battery.charge)}}/{{adata.battery.max}}</ui-bar>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<ui-section label='Battery Status'>
|
||||
Not Available
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
|
||||
<ui-section label='Power Usage'>
|
||||
{{data.power_usage}}W
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
<ui-display title='File System'>
|
||||
<ui-section label='Used Capacity'>
|
||||
<ui-bar min='0' max='{{adata.disk_size}}' value='{{adata.disk_used}}' state='good'>{{Math.round(adata.disk_used)}}GQ/{{adata.disk_size}}GQ</ui-bar>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
|
||||
<ui-display title='Computer Components'>
|
||||
|
||||
{{#each data.hardware}}
|
||||
<ui-subdisplay title='{{name}}'>
|
||||
|
||||
<i>{{desc}}</i><br>
|
||||
<ui-section label='State'>
|
||||
|
||||
|
||||
{{enabled ? "Enabled" : "Disabled"}}
|
||||
</ui-section>
|
||||
|
||||
<ui-section Label='Power Usage'>
|
||||
{{powerusage}}W
|
||||
</ui-section>
|
||||
{{#if !critical}}
|
||||
<ui-section label='Toggle Component'>
|
||||
<ui-button icon='{{enabled ? "power-off" : "close"}}' action='PC_toggle_component' params='{"name": "{{name}}"}'>
|
||||
{{enabled ? "On" : "Off"}}
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
<br><br>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
</ui-display>
|
||||
@@ -1,103 +0,0 @@
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
<ui-display>
|
||||
{{#if data.adminmode}}
|
||||
<h1>ADMINISTRATIVE MODE</h1>
|
||||
{{/if}}
|
||||
|
||||
{{#if data.title}}
|
||||
<div class="itemLabel">
|
||||
Current channel:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{data.title}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Operator access:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{#if data.is_operator}}
|
||||
<b>Enabled</b>
|
||||
{{else}}
|
||||
<b>Disabled</b>
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Controls:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
<table>
|
||||
<tr><td><ui-button action='PRG_speak'>Send message</ui-button>
|
||||
<tr><td><ui-button action='PRG_changename'>Change nickname</ui-button>
|
||||
<tr><td><ui-button action='PRG_toggleadmin'>Toggle administration mode</ui-button>
|
||||
<tr><td><ui-button action='PRG_leavechannel'>Leave channel</ui-button>
|
||||
<tr><td><ui-button action='PRG_savelog'>Save log to local drive</ui-button>
|
||||
{{#if data.is_operator}}
|
||||
<tr><td><ui-button action='PRG_renamechannel'>Rename channel</ui-button>
|
||||
<tr><td><ui-button action='PRG_setpassword'>Set password</ui-button>
|
||||
<tr><td><ui-button action='PRG_deletechannel'>Delete channel</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<b>Chat Window</b>
|
||||
<div class="statusDisplay" style="overflow: auto;">
|
||||
<div class="item">
|
||||
<div class="itemContent" style="width: 100%;">
|
||||
{{#each data.messages}}
|
||||
{{msg}}<br>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<b>Connected Users</b><br>
|
||||
{{#each data.clients}}
|
||||
{{name}}<br>
|
||||
{{/each}}
|
||||
{{else}}
|
||||
<b>Controls:</b>
|
||||
<table>
|
||||
<tr><td><ui-button action='PRG_changename'>Change nickname</ui-button>
|
||||
<tr><td><ui-button action='PRG_newchannel'>New Channel</ui-button>
|
||||
<tr><td><ui-button action='PRG_toggleadmin'>Toggle administration mode</ui-button>
|
||||
</table>
|
||||
<b>Available channels:</b>
|
||||
<table>
|
||||
{{#each data.all_channels}}
|
||||
<tr><td><ui-button action='PRG_joinchannel' params='{"id": "{{id}}"}'>{{chan}}</ui-button><br>
|
||||
{{/each}}
|
||||
</table>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
@@ -1,58 +0,0 @@
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
<ui-display>
|
||||
{{#if data.error}}
|
||||
##SYSTEM ERROR: {{data.error}}<ui-button action='PRG_reset'>RESET</ui-button>
|
||||
{{elseif data.target}}
|
||||
##DoS traffic generator active. Tx: {{data.speed}}GQ/s<br>
|
||||
{{#each data.dos_strings}}
|
||||
{{nums}}<br>
|
||||
{{/each}}
|
||||
<ui-button action='PRG_reset'>ABORT</ui-button>
|
||||
{{else}}
|
||||
##DoS traffic generator ready. Select target device.<br>
|
||||
{{#if data.focus}}
|
||||
Targeted device ID: {{data.focus}}
|
||||
{{else}}
|
||||
Targeted device ID: None
|
||||
{{/if}}
|
||||
<ui-button action='PRG_execute'>EXECUTE</ui-button><div style="clear:both"></div>
|
||||
Detected devices on network:<br>
|
||||
{{#each data.relays}}
|
||||
<ui-button action='PRG_target_relay' params='{"targid": "{{id}}"}'>{{id}}</ui-button>
|
||||
{{/each}}
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
@@ -1,122 +0,0 @@
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
<ui-display>
|
||||
<i>Welcome to software download utility. Please select which software you wish to download.</i><hr>
|
||||
{{#if data.error}}
|
||||
<ui-display title='Download Error'>
|
||||
<ui-section label='Information'>
|
||||
{{data.error}}
|
||||
</ui-section>
|
||||
<ui-section label='Reset Program'>
|
||||
<ui-button icon='times' action='PRG_reseterror'>
|
||||
RESET
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{else}}
|
||||
{{#if data.downloadname}}
|
||||
<ui-display title='Download Running'>
|
||||
<i>Please wait...</i>
|
||||
<ui-section label='File name'>
|
||||
{{data.downloadname}}
|
||||
</ui-section>
|
||||
<ui-section label='File description'>
|
||||
{{data.downloaddesc}}
|
||||
</ui-section>
|
||||
<ui-section label='File size'>
|
||||
{{data.downloadcompletion}}GQ / {{data.downloadsize}}GQ
|
||||
</ui-section>
|
||||
<ui-section label='Transfer Rate'>
|
||||
{{data.downloadspeed}} GQ/s
|
||||
</ui-section>
|
||||
<ui-section label='Download progress'>
|
||||
<ui-bar min='0' max='{{adata.downloadsize}}' value='{{adata.downloadcompletion}}' state='good'>{{Math.round(adata.downloadcompletion)}}/{{adata.downloadsize}}</ui-bar>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if !data.downloadname}}
|
||||
{{#if !data.error}}
|
||||
<ui-display title='Primary software repository'>
|
||||
<ui-section label='Hard drive'>
|
||||
<ui-bar min='0' max='{{adata.disk_size}}' value='{{adata.disk_used}}' state='good'>{{Math.round(adata.disk_used)}}GQ/{{adata.disk_size}}GQ</ui-bar>
|
||||
</ui-section>
|
||||
{{#each data.downloadable_programs}}
|
||||
<ui-section label='File name'>
|
||||
{{filename}} ({{size}} GQ)
|
||||
</ui-section>
|
||||
<ui-section label='Program name'>
|
||||
{{filedesc}}
|
||||
</ui-section>
|
||||
<ui-section label='Description'>
|
||||
{{fileinfo}}
|
||||
</ui-section>
|
||||
<ui-section label='Compatibility'>
|
||||
{{compatibility}}
|
||||
</ui-section>
|
||||
<ui-section label='File controls'>
|
||||
<ui-button icon='signal' action='PRG_downloadfile' params='{"filename": "{{filename}}"}'>
|
||||
DOWNLOAD
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{#if data.hackedavailable}}
|
||||
<ui-display title='UNKNOWN software repository'>
|
||||
<i>Please note that NanoTrasen does not recommend download of software from non-official servers.</i>
|
||||
{{#each data.hacked_programs}}
|
||||
<ui-section label='File name'>
|
||||
{{filename}} ({{size}} GQ)
|
||||
</ui-section>
|
||||
<ui-section label='Program name'>
|
||||
{{filedesc}}
|
||||
</ui-section>
|
||||
<ui-section label='Description'>
|
||||
{{fileinfo}}
|
||||
</ui-section>
|
||||
<ui-section label='File controls'>
|
||||
<ui-button icon='signal' action='PRG_downloadfile' params='{"filename": "{{filename}}"}'>
|
||||
DOWNLOAD
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
<br><br><hr><i>NTOS v2.0.4b Copyright NanoTrasen 2557 - 2559</i>
|
||||
</ui-display>
|
||||
@@ -1,126 +0,0 @@
|
||||
|
||||
|
||||
<ui-display>
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
<ui-display title='WIRELESS CONNECTIVITY'>
|
||||
|
||||
<ui-section label='Active NTNetRelays'>
|
||||
<b>{{data.ntnetrelays}}</b>
|
||||
</ui-section>
|
||||
{{#if data.ntnetrelays}}
|
||||
<ui-section label='System status'>
|
||||
<b>{{data.ntnetstatus ? "ENABLED" : "DISABLED"}}</b>
|
||||
</ui-section>
|
||||
<ui-section label='Control'>
|
||||
|
||||
<ui-button icon='plus' action='toggleWireless'>
|
||||
TOGGLE
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
<br><br>
|
||||
<i>Caution - Disabling wireless transmitters when using wireless device may prevent you from re-enabling them again!</i>
|
||||
{{else}}
|
||||
<br><p>Wireless coverage unavailable, no relays are connected.</p>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
|
||||
|
||||
<ui-display title='FIREWALL CONFIGURATION'>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>PROTOCOL
|
||||
<th>STATUS
|
||||
<th>CONTROL
|
||||
<tr>
|
||||
<td>Software Downloads
|
||||
<td>{{data.config_softwaredownload ? 'ENABLED' : 'DISABLED'}}
|
||||
<td> <ui-button action='toggle_function' params='{"id": "1"}'>TOGGLE</ui-button>
|
||||
<tr>
|
||||
<td>Peer to Peer Traffic
|
||||
<td>{{data.config_peertopeer ? 'ENABLED' : 'DISABLED'}}
|
||||
<td><ui-button action='toggle_function' params='{"id": "2"}'>TOGGLE</ui-button>
|
||||
<tr>
|
||||
<td>Communication Systems
|
||||
<td>{{data.config_communication ? 'ENABLED' : 'DISABLED'}}
|
||||
<td><ui-button action='toggle_function' params='{"id": "3"}'>TOGGLE</ui-button>
|
||||
<tr>
|
||||
<td>Remote System Control
|
||||
<td>{{data.config_systemcontrol ? 'ENABLED' : 'DISABLED'}}
|
||||
<td><ui-button action='toggle_function' params='{"id": "4"}'>TOGGLE</ui-button>
|
||||
</table>
|
||||
</ui-display>
|
||||
|
||||
<ui-display title='SECURITY SYSTEMS'>
|
||||
|
||||
{{#if data.idsalarm}}
|
||||
<ui-notice>
|
||||
<h1>NETWORK INCURSION DETECTED</h1>
|
||||
</ui-notice>
|
||||
<i>An abnormal activity has been detected in the network. Please verify system logs for more information</i>
|
||||
|
||||
{{/if}}
|
||||
<ui-section label='Intrusion Detection System'>
|
||||
<b>{{data.idsstatus ? 'ENABLED' : 'DISABLED'}}</b>
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Maximal Log Count'>
|
||||
<b>{{data.ntnetmaxlogs}}</b>
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Controls'>
|
||||
</ui-section>
|
||||
<table>
|
||||
<tr><td><ui-button action='resetIDS'>RESET IDS</ui-button>
|
||||
<tr><td><ui-button action='toggleIDS'>TOGGLE IDS</ui-button>
|
||||
<tr><td><ui-button action='updatemaxlogs'>SET LOG LIMIT</ui-button>
|
||||
<tr><td><ui-button action='purgelogs'>PURGE LOGS</ui-button>
|
||||
</table>
|
||||
|
||||
<ui-subdisplay title='System Logs'>
|
||||
<div class="statusDisplay" style="overflow: auto;">
|
||||
<div class="item">
|
||||
<div class="itemContent" style="width: 100%;">
|
||||
{{#each data.ntnetlogs}}
|
||||
{{entry}}<br>
|
||||
{{/each}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ui-display>
|
||||
|
||||
</ui-display>
|
||||
@@ -1,22 +0,0 @@
|
||||
<ui-display title='Relay'>
|
||||
{{#if data.dos_crashed}}
|
||||
<h2>NETWORK BUFFERS OVERLOADED</h2>
|
||||
<h3>Overload Recovery Mode</h3>
|
||||
<i>This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue.</i>
|
||||
<h3>ADMINISTRATIVE OVERRIDE</h3>
|
||||
<b> CAUTION - Data loss may occur </b>
|
||||
<ui-button icon='signal' action='restart'>
|
||||
Purge buffered traffic
|
||||
</ui-button>
|
||||
{{else}}
|
||||
<ui-section label='Relay status'>
|
||||
<ui-button icon='power-off' action='toggle'>
|
||||
{{data.enabled ? "ENABLED" : "DISABLED"}}
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
|
||||
<ui-section label='Network buffer status'>
|
||||
{{data.dos_overload}} / {{data.dos_capacity}} GQ
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
@@ -1,136 +0,0 @@
|
||||
|
||||
<ui-display>
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
{{#if data.error}}
|
||||
<div class='item'>
|
||||
<h2>An error has occurred during operation...</h2>
|
||||
<b>Additional information: </b>{{data.error}}<br>
|
||||
<ui-button action='PRG_reset'>Clear</ui-button>
|
||||
</div>
|
||||
{{elseif data.downloading}}
|
||||
<h2>Download in progress...</h2>
|
||||
<div class="itemLabel">
|
||||
Downloaded file:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{data.download_name}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Download progress:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{data.download_progress}} / {{data.download_size}} GQ
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Transfer speed:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{data.download_netspeed}}GQ/s
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Controls:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
<ui-button action='PRG_reset'>Abort download</ui-button>
|
||||
</div>
|
||||
{{elseif data.uploading}}
|
||||
<h2>Server enabled</h2>
|
||||
<div class="itemLabel">
|
||||
Connected clients:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{data.upload_clients}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Provided file:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{data.upload_filename}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Server password:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
{{#if data.upload_haspassword}}
|
||||
ENABLED
|
||||
{{else}}
|
||||
DISABLED
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class="itemLabel">
|
||||
Commands:
|
||||
</div>
|
||||
<div class="itemContent">
|
||||
<ui-button action='PRG_setpassword'>Set password</ui-button>
|
||||
<ui-button action='PRG_reset'>Exit server</ui-button>
|
||||
</div>
|
||||
{{elseif data.upload_filelist}}
|
||||
<h2>File transfer server ready. Select file to upload: </h2>
|
||||
<table>
|
||||
<tr><th>File name<th>File size<th>Controls
|
||||
{{#each data.upload_filelist}}
|
||||
<tr><td>{{filename}}
|
||||
<td>{{size}}GQ
|
||||
<td><ui-button action='PRG_uploadfile' params='{"id": "{{uid}}"}'>Select</ui-button>
|
||||
{{/each}}
|
||||
</table>
|
||||
<hr>
|
||||
<ui-button action='PRG_setpassword'>Set password</ui-button>
|
||||
<ui-button action='PRG_reset'>Return</ui-button>
|
||||
{{else}}
|
||||
<h2>Available files:</h2>
|
||||
<table border="1" style="border-collapse: collapse"><tr><th>Server UID<th>File Name<th>File Size<th>Password Protection<th>Operations
|
||||
{{#each data.servers}}
|
||||
<tr><td>{{uid}}
|
||||
<td>{{filename}}
|
||||
<td>{{size}}GQ
|
||||
{{#if haspassword}}
|
||||
<td>Enabled
|
||||
{{/if}}
|
||||
{{#if !haspassword}}
|
||||
<td>Disabled
|
||||
{{/if}}
|
||||
|
||||
<td><ui-button action='PRG_downloadfile' params='{"id": "{{uid}}"}'>Download</ui-button>
|
||||
{{/each}}
|
||||
</table>
|
||||
<hr>
|
||||
<ui-button action='PRG_uploadmenu'>Send file</ui-button>
|
||||
{{/if}}
|
||||
|
||||
</ui-display>
|
||||
@@ -1,68 +0,0 @@
|
||||
<ui-display title="Auth. Disk:">
|
||||
{{#if data.disk_present}}
|
||||
<ui-button icon='eject' style='selected' action='eject_disk'>++++++++++</ui-button>
|
||||
{{else}}
|
||||
<ui-button icon='plus' action='insert_disk'>----------</ui-button>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Status'>
|
||||
<span>{{data.status1}}-{{data.status2}}</span>
|
||||
</ui-display>
|
||||
<ui-display title='Timer'>
|
||||
<ui-section label='Time to Detonation'>
|
||||
<span>{{data.timing ? data.time_left : data.timer_set}}</span>
|
||||
</ui-section>
|
||||
{{^data.timing}}
|
||||
<ui-section label='Adjust Timer'>
|
||||
<ui-button icon='refresh' state='{{data.disk_present && data.code_approved && data.timer_is_not_default ? null : "disabled"}}'
|
||||
action='timer' params='{"change": "reset"}'>Reset</ui-button>
|
||||
<ui-button icon='minus' state='{{data.disk_present && data.code_approved && data.timer_is_not_min ? null : "disabled"}}'
|
||||
action='timer' params='{"change": "decrease"}'>Decrease</ui-button>
|
||||
<ui-button icon='pencil' state='{{data.disk_present && data.code_approved ? null : "disabled"}}' action='timer' params='{"change": "input"}'>Set</ui-button>
|
||||
<ui-button icon='plus' state='{{data.disk_present && data.code_approved && data.timer_is_not_max ? null : "disabled"}}'
|
||||
action='timer' params='{"change": "increase"}'>Increase</ui-button>
|
||||
</ui-section>
|
||||
{{/data.timing}}
|
||||
<ui-section label='Timer'>
|
||||
<ui-button icon='clock-o' style='{{data.timing ? "danger" : "caution"}}'
|
||||
action='toggle_timer'
|
||||
state='{{data.disk_present && data.code_approved && !data.safety ? null : "disabled"}}'>
|
||||
{{data.timing ? "On" : "Off"}}
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
<ui-display title='Anchoring'>
|
||||
<ui-button
|
||||
state='{{data.disk_present && data.code_approved ? null : "disabled"}}'
|
||||
icon='{{data.anchored ? "lock" : "unlock"}}'
|
||||
style='{{data.anchored ? null : "caution"}}'
|
||||
action='anchor'>{{data.anchored ? "Engaged" : "Off"}}</ui-button>
|
||||
</ui-display>
|
||||
<ui-display title='Safety'>
|
||||
<ui-button
|
||||
state='{{data.disk_present && data.code_approved ? null : "disabled"}}'
|
||||
icon='{{data.safety ? "lock" : "unlock"}}' action='safety'
|
||||
style='{{data.safety ? "caution" : "danger"}}'>
|
||||
<span>{{data.safety ? "On" : "Off"}}</span>
|
||||
</ui-button>
|
||||
</ui-display>
|
||||
<ui-display title='Code'>
|
||||
<ui-section label='Message'>{{data.message}}</ui-section>
|
||||
<ui-section label='Keypad'>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"1"}'>1</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"2"}'>2</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"3"}'>3</ui-button>
|
||||
<br>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"4"}'>4</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"5"}'>5</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"6"}'>6</ui-button>
|
||||
<br>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"7"}'>7</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"8"}'>8</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"9"}'>9</ui-button>
|
||||
<br>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"R"}'>R</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"0"}'>0</ui-button>
|
||||
<ui-button action='keypad' state='{{data.disk_present ? null : "disabled"}}' params='{"digit":"E"}'>E</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
@@ -2,145 +2,87 @@
|
||||
import { filterMulti } from 'util/filter'
|
||||
component.exports = {
|
||||
data: {
|
||||
filter: '',
|
||||
tooltiptext(req_text, catalyst_text, tool_text){
|
||||
//This function is to get around the issue where you can't embed moustache variables within moustache statements
|
||||
//It's also less cramped than the tooltip attribute of the button tag :P
|
||||
let text = ""
|
||||
if(req_text){
|
||||
text += "REQUIREMENTS: " + req_text + " "
|
||||
}
|
||||
if(catalyst_text){
|
||||
text += "CATALYSTS: " + catalyst_text + " "
|
||||
}
|
||||
if(tool_text){
|
||||
text += "TOOLS: " + tool_text
|
||||
}
|
||||
return text
|
||||
}
|
||||
filter: ''
|
||||
},
|
||||
oninit () {
|
||||
this.on({
|
||||
hover (event) {
|
||||
this.set('hovered', event.context.params)
|
||||
},
|
||||
unhover (event) {
|
||||
this.set('hovered')
|
||||
}
|
||||
})
|
||||
this.observe('filter', (newkey, oldkey, keypath) => {
|
||||
let categories = null
|
||||
if(this.get('data.display_compact')){
|
||||
//This doesn't work, but it's necessary to not cause a script error with compact mode
|
||||
//Also hidden in compact mode
|
||||
categories = this.findAll('.section')
|
||||
} else {
|
||||
categories = this.findAll('.display:not(:first-child)')
|
||||
}
|
||||
const categories = this.findAll('.display:not(:first-child)')
|
||||
filterMulti(categories, this.get('filter').toLowerCase())
|
||||
}, { init: false })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<ui-display title='{{data.category}}'>
|
||||
{{#if data.busy}}
|
||||
<ui-section>
|
||||
Crafting... <i class='fa-spin fa fa-spinner'></i>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<ui-section>
|
||||
<ui-button icon='arrow-left' action='backwardCat'>
|
||||
{{data.prev_cat}}
|
||||
</ui-button>
|
||||
<ui-button icon='arrow-right' action='forwardCat'>
|
||||
{{data.next_cat}}
|
||||
</ui-button>
|
||||
{{#if data.display_craftable_only}}
|
||||
<ui-button icon='lock' action='toggle_recipes'>
|
||||
Showing Craftable Recipes
|
||||
</ui-button>
|
||||
{{else}}
|
||||
<ui-button icon='unlock' action='toggle_recipes'>
|
||||
Showing All Recipes
|
||||
</ui-button>
|
||||
{{/if}}
|
||||
<ui-button icon='{{data.display_compact ? "check-square-o" : "square-o"}}' action='toggle_compact'>
|
||||
Compact
|
||||
</ui-button>
|
||||
{{#if config.fancy}}
|
||||
{{^data.display_compact}} {{! This doesn't work in compact mode, so let's hide it}}
|
||||
<ui-input value='{{filter}}' placeholder='Filter..'/>
|
||||
{{/data.display_compact}}
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
{{#if data.display_compact}}
|
||||
<ui-display>
|
||||
{{#each data.can_craft}}
|
||||
<ui-section label='{{name}}'>
|
||||
<ui-button tooltip='{{tooltiptext(req_text, catalyst_text, tool_text)}}' tooltip-side='right' action='make' params='{"recipe": "{{ref}}"}' on-hover='hover' on-unhover='unhover' icon='gears'>
|
||||
Craft
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
{{^data.display_craftable_only}}
|
||||
{{#each data.cant_craft}}
|
||||
<ui-section label='{{name}}'>
|
||||
<ui-button tooltip='{{tooltiptext(req_text, catalyst_text, tool_text)}}' tooltip-side='right' state='disabled' on-hover='hover' on-unhover='unhover' icon='gears'>
|
||||
Craft
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
{{/data.display_craftable_only}}
|
||||
</ui-display>
|
||||
{{else}}
|
||||
{{#each data.can_craft}}
|
||||
<ui-display title='{{name}}'>
|
||||
{{#if req_text}}
|
||||
<ui-section label='Requirements'>
|
||||
{{req_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if catalyst_text}}
|
||||
<ui-section label='Catalysts'>
|
||||
{{catalyst_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if tool_text}}
|
||||
<ui-section label='Tools'>
|
||||
{{tool_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
<ui-section>
|
||||
<ui-button icon='gears' action='make' params='{"recipe": "{{ref}}"}'>
|
||||
Craft
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/each}}
|
||||
{{^data.display_craftable_only}}
|
||||
{{#each data.cant_craft}}
|
||||
<ui-display title='{{name}}'>
|
||||
{{#if req_text}}
|
||||
<ui-section label='Requirements'>
|
||||
{{req_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if catalyst_text}}
|
||||
<ui-section label='Catalysts'>
|
||||
{{catalyst_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if tool_text}}
|
||||
<ui-section label='Tools'>
|
||||
{{tool_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{/each}}
|
||||
{{/data.display_craftable_only}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{#if data.busy}}
|
||||
<ui-section>
|
||||
Crafting... <i class='fa-spin fa fa-spinner'></i>
|
||||
</ui-section>
|
||||
{{else}}
|
||||
<ui-section>
|
||||
<ui-button icon='arrow-left' action ='backwardCat'>
|
||||
{{data.prev_cat}}
|
||||
</ui-button>
|
||||
<ui-button icon='arrow-right' action='forwardCat'>
|
||||
{{data.next_cat}}
|
||||
</ui-button>
|
||||
{{#if data.display_craftable_only}}
|
||||
<ui-button icon='lock' action='toggle_recipes'>
|
||||
Showing Craftable Recipes
|
||||
</ui-button>
|
||||
{{else}}
|
||||
<ui-button icon='unlock' action='toggle_recipes'>
|
||||
Showing All Recipes
|
||||
</ui-button>
|
||||
{{/if}}
|
||||
{{#if config.fancy}}
|
||||
<ui-input value='{{filter}}' placeholder='Filter..'/>
|
||||
{{/if}}
|
||||
</ui-section>
|
||||
{{#each data.can_craft}}
|
||||
<ui-display title='{{name}}'>
|
||||
{{#if req_text}}
|
||||
<ui-section label='Requirements'>
|
||||
{{req_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if catalyst_text}}
|
||||
<ui-section label='Catalysts'>
|
||||
{{catalyst_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if tool_text}}
|
||||
<ui-section label='Tools'>
|
||||
{{tool_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
<ui-section>
|
||||
<ui-button icon='gears' action='make' params='{"recipe": "{{ref}}"}'>
|
||||
Craft
|
||||
</ui-button>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{/each}}
|
||||
{{^data.display_craftable_only}}
|
||||
{{#each data.cant_craft}}
|
||||
<ui-display title='{{name}}'>
|
||||
{{#if req_text}}
|
||||
<ui-section label='Requirements'>
|
||||
{{req_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if catalyst_text}}
|
||||
<ui-section label='Catalysts'>
|
||||
{{catalyst_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
{{#if tool_text}}
|
||||
<ui-section label='Tools'>
|
||||
{{tool_text}}
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
{{/each}}
|
||||
{{/data.display_craftable_only}}
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
<script>
|
||||
component.exports = {
|
||||
data: {
|
||||
chargingState (status) {
|
||||
switch (status) {
|
||||
case 2: return 'good'
|
||||
case 1: return 'average'
|
||||
default: return 'bad'
|
||||
}
|
||||
},
|
||||
chargingMode (status) {
|
||||
if (status == 2) return 'Full'
|
||||
else if (status == 1) return 'Charging'
|
||||
else return 'Draining'
|
||||
},
|
||||
channelState (status) {
|
||||
if (status >= 2) return 'good'
|
||||
else return 'bad'
|
||||
},
|
||||
channelPower (status) {
|
||||
if (status >= 2) return 'On'
|
||||
else return 'Off'
|
||||
},
|
||||
channelMode (status) {
|
||||
if (status == 1 || status == 3) return 'Auto'
|
||||
else return 'Manual'
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
graphData () {
|
||||
const history = this.get('data.history')
|
||||
return Object.keys(history).map(key => {
|
||||
return history[key].map((point, index) => {
|
||||
return { x: index, y: point }
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
<ui-display title='Network'>
|
||||
{{#if config.fancy}}
|
||||
<ui-linegraph points='{{graphData}}' height='500'
|
||||
legend='["Available", "Load"]' colors='["rgb(0, 102, 0)", "rgb(153, 0, 0)"]'
|
||||
xunit='seconds ago' xfactor='{{data.interval}}' yunit='W' yfactor='1'
|
||||
xinc='{{data.stored / 10}}' yinc='9'/>
|
||||
{{else}}
|
||||
<ui-section label='Available'>
|
||||
<span>{{data.supply}} W</span>
|
||||
</ui-section>
|
||||
<ui-section label='Load'>
|
||||
<span>{{data.demand}} W</span>
|
||||
</ui-section>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
<ui-display title='Areas'>
|
||||
<ui-section nowrap>
|
||||
<div class='content'>Area</div>
|
||||
<div class='content'>Charge</div>
|
||||
<div class='content'>Load</div>
|
||||
<div class='content'>Status</div>
|
||||
<div class='content'>Equipment</div>
|
||||
<div class='content'>Lighting</div>
|
||||
<div class='content'>Environment</div>
|
||||
</ui-section>
|
||||
{{#each data.areas}}
|
||||
<ui-section label='{{name}}' nowrap>
|
||||
<div class='content'>{{Math.round(adata.areas[@index].charge)}} %</div>
|
||||
<div class='content'>{{Math.round(adata.areas[@index].load)}} W</div>
|
||||
<div class='content'><span class='{{chargingState(charging)}}'>{{chargingMode(charging)}}</span></div>
|
||||
<div class='content'><span class='{{channelState(eqp)}}'>{{channelPower(eqp)}} [<span>{{channelMode(eqp)}}</span>]</span></div>
|
||||
<div class='content'><span class='{{channelState(lgt)}}'>{{channelPower(lgt)}} [<span>{{channelMode(lgt)}}</span>]</span></div>
|
||||
<div class='content'><span class='{{channelState(env)}}'>{{channelPower(env)}} [<span>{{channelMode(env)}}</span>]</span></div>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
@@ -1,60 +0,0 @@
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
<ui-display>
|
||||
<div class='item'>
|
||||
<div class='itemLabel'>
|
||||
Payload status:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
{{#if data.armed}}
|
||||
ARMED
|
||||
{{else}}
|
||||
DISARMED
|
||||
{{/if}}
|
||||
</div>
|
||||
<div class='itemLabel'>
|
||||
Controls:
|
||||
</div>
|
||||
<div class='itemContent'>
|
||||
<table>
|
||||
<tr><td><ui-button action='PRG_obfuscate'>OBFUSCATE PROGRAM NAME</ui-button>
|
||||
<tr><td><ui-button action='PRG_arm' state='{{data.armed ? "danger" : null}}'>{{data.armed ? "DISARM" : "ARM"}}</ui-button>
|
||||
<ui-button icon='radiation' state='{{data.armed ? null : "disabled"}}' action='PRG_activate'>ACTIVATE</ui-button>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</ui-display>
|
||||
@@ -1,21 +0,0 @@
|
||||
{{#if data.notice}}
|
||||
<ui-notice>
|
||||
{{data.notice}}
|
||||
</ui-notice>
|
||||
{{/if}}
|
||||
<ui-display title='Satellite Network Control' button>
|
||||
{{#each data.satellites}}
|
||||
<ui-section candystripe nowrap>
|
||||
<div class='content'>#{{id}}</div>
|
||||
<div class='content'>{{mode}}</div>
|
||||
<div class='content'>
|
||||
<ui-button action='toggle' params='{"id": "{{id}}"}'>{{active ? "Deactivate" : "Activate"}}</ui-button>
|
||||
</div>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{#if data.meteor_shield}}
|
||||
<ui-display title='Station Shield Coverage'>
|
||||
<ui-bar min='0' max='{{data.meteor_shield_coverage_max}}' value='{{data.meteor_shield_coverage}}'>{{100 * data.meteor_shield_coverage / data.meteor_shield_coverage_max}} %</ui-bar>
|
||||
<ui-display>
|
||||
{{/if}}
|
||||
@@ -1,47 +0,0 @@
|
||||
|
||||
<div style="float: left">
|
||||
<div class='item'>
|
||||
<table><tr>
|
||||
{{#if data.PC_batteryicon && data.PC_showbatteryicon}}
|
||||
<td><img src='{{data.PC_batteryicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_batterypercent && data.PC_showbatteryicon}}
|
||||
<td><b>{{data.PC_batterypercent}}</b>
|
||||
{{/if}}
|
||||
{{#if data.PC_ntneticon}}
|
||||
<td><img src='{{data.PC_ntneticon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_apclinkicon}}
|
||||
<td><img src='{{data.PC_apclinkicon}}'>
|
||||
{{/if}}
|
||||
{{#if data.PC_stationtime}}
|
||||
<td><b>{{data.PC_stationtime}}<b>
|
||||
{{/if}}
|
||||
{{#each data.PC_programheaders}}
|
||||
<td><img src='{{icon}}'>
|
||||
{{/each}}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: right">
|
||||
<table><tr>
|
||||
<td><ui-button action='PC_shutdown'>Shutdown</ui-button>
|
||||
{{#if data.PC_showexitprogram}}
|
||||
<td><ui-button action='PC_exit'>EXIT PROGRAM</ui-button>
|
||||
<td><ui-button action='PC_minimize'>Minimize Program</ui-button>
|
||||
{{/if}}
|
||||
</table>
|
||||
</div>
|
||||
<div style="clear: both">
|
||||
|
||||
{{#each data.alarms:class}}
|
||||
<ui-display title='{{class}} Alarms'>
|
||||
<ul>
|
||||
{{#each .}}
|
||||
<li>{{.}}</li>
|
||||
{{else}}
|
||||
<li>System Nominal</li>
|
||||
{{/each}}
|
||||
</ul>
|
||||
</ui-display>
|
||||
{{/each}}
|
||||
@@ -1,6 +1,8 @@
|
||||
<script>
|
||||
import { filterMulti } from 'util/filter'
|
||||
component.exports = {
|
||||
data: {
|
||||
filter: ''
|
||||
},
|
||||
oninit () {
|
||||
this.on({
|
||||
@@ -13,12 +15,19 @@
|
||||
this.set('hovered')
|
||||
}
|
||||
})
|
||||
this.observe('filter', (newkey, oldkey, keypath) => {
|
||||
const categories = this.findAll('.display:not(:first-child)')
|
||||
filterMulti(categories, this.get('filter').toLowerCase())
|
||||
}, { init: false })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<ui-display title='Uplink' button>
|
||||
{{#partial button}}
|
||||
{{#if config.fancy}}
|
||||
<ui-input value='{{filter}}' placeholder='Filter...'/>
|
||||
{{/if}}
|
||||
{{#if data.lockable}}
|
||||
<ui-button icon='lock' action='lock'>Lock</ui-button>
|
||||
{{/if}}
|
||||
@@ -28,16 +37,14 @@
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{#each data.categories}}
|
||||
<ui-display>
|
||||
<ui-button action='select' params='{"category": "{{name}}"}'>{{name}}</ui-button>
|
||||
{{#each items}}
|
||||
<ui-section label='{{name}}' candystripe right>
|
||||
<ui-button tooltip='{{name}}: {{desc}}' tooltip-side='left'
|
||||
state='{{data.telecrystals < cost || (data.telecrystals - hovered.cost < cost && hovered.item != name) ? "disabled" : null}}'
|
||||
action='buy' params='{"category": "{{category}}", "item": {{name}}, "cost": {{cost}}}'
|
||||
on-hover='hover' on-unhover='unhover'>{{cost}} TC</ui-button>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
<ui-display title='{{name}}'>
|
||||
{{#each items}}
|
||||
<ui-section label='{{name}}' candystripe right>
|
||||
<ui-button tooltip='{{name}}: {{desc}}' tooltip-side='left'
|
||||
state='{{data.telecrystals < cost || (data.telecrystals - hovered.cost < cost && hovered.item != name) ? "disabled" : null}}'
|
||||
action='buy' params='{"category": "{{category}}", "item": {{name}}, "cost": {{cost}}}'
|
||||
on-hover='hover' on-unhover='unhover'>{{cost}} TC</ui-button>
|
||||
</ui-section>
|
||||
{{/each}}
|
||||
</ui-display>
|
||||
{{/each}}
|
||||
|
||||
|
||||
@@ -1,49 +0,0 @@
|
||||
<script>
|
||||
component.exports = {
|
||||
data: {
|
||||
healthState(health) {
|
||||
let maxhealth = this.get('data.vr_avatar.maxhealth')
|
||||
if(health > (maxhealth/1.5)) return 'good'
|
||||
else if(health > (maxhealth/3)) return 'average'
|
||||
else return 'bad'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<ui-display>
|
||||
{{#if data.vr_avatar}}
|
||||
<ui-display title='Virtual Avatar'>
|
||||
<ui-section label='Name'>
|
||||
{{data.vr_avatar.name}}
|
||||
</ui-section>
|
||||
<ui-section label='Status'>
|
||||
{{data.vr_avatar.status}}
|
||||
</ui-section>
|
||||
<ui-section label='Health'>
|
||||
<ui-bar min='0' max='{{adata.vr_avatar.maxhealth}}' value='{{adata.vr_avatar.health}}' state='{{healthState(adata.vr_avatar.health)}}'>{{Math.round(adata.vr_avatar.health)}}/{{adata.vr_avatar.maxhealth}}</ui-bar>
|
||||
</ui-section>
|
||||
</ui-display>
|
||||
{{else}}
|
||||
<ui-display title='Virtual Avatar'>
|
||||
No Virtual Avatar detected
|
||||
</ui-display>
|
||||
{{/if}}
|
||||
<ui-display title='VR Commands'>
|
||||
<ui-button icon='{{data.toggle_open ? "times" : "plus"}}' action='toggle_open'>
|
||||
{{data.toggle_open ? "Close" : "Open"}} the VR Sleeper
|
||||
</ui-button>
|
||||
{{#if data.isoccupant}}
|
||||
<ui-button icon='signal' action='vr_connect'>
|
||||
Connect to VR
|
||||
</ui-button>
|
||||
{{/if}}
|
||||
{{#if data.vr_avatar}}
|
||||
<ui-button icon='ban' action='delete_avatar'>
|
||||
Delete Virtual Avatar
|
||||
</ui-button>
|
||||
{{/if}}
|
||||
</ui-display>
|
||||
</ui-display>
|
||||
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
body.clockwork
|
||||
color-normal = #B18B25
|
||||
color-good = #CFBA47
|
||||
color-average = #896B19
|
||||
color-bad = #5F380E
|
||||
color-highlight = #B18B25
|
||||
text-color-normal = #B18B25
|
||||
text-color-inverse = #2D1400
|
||||
background-color-start = #B18B25
|
||||
background-color-end = #5F380E
|
||||
rule-color-normal = #B18B25
|
||||
rule-color-dark = #896B19
|
||||
titlebar-color-text = #CFBA47
|
||||
titlebar-color-button = #CFBA47
|
||||
titlebar-color-background = #5F380E
|
||||
titlebar-color-coreshadow = #170800
|
||||
titlebar-color-shadow = alpha(#000, 0.1)
|
||||
resize-color = #5F380E
|
||||
display-color-title = #CFBA47
|
||||
display-color-background = alpha(#2D1400, 0.9)
|
||||
display-color-shadow = alpha(#000, 0.3)
|
||||
notice-color-first = #000000
|
||||
notice-color-second = #170800
|
||||
section-color-label = #B18B25
|
||||
bar-color-normal = #B18B25
|
||||
bar-color-good = #CFBA47
|
||||
bar-color-average = #896B19
|
||||
bar-color-bad = #5F380E
|
||||
bar-color-border = #170800
|
||||
bar-color-background = #2D1400
|
||||
button-color-normal = #5F380E
|
||||
button-color-disabled = #2D1400
|
||||
button-color-selected = #CFBA47
|
||||
button-color-caution = yellow-orange
|
||||
button-color-danger = yellow
|
||||
button-color-border = #170800
|
||||
button-lighten-hover = 5%
|
||||
input-color-text = #B18B25
|
||||
input-color-background = #CFBA47
|
||||
tooltip-color-border = #170800
|
||||
tooltip-color-background = #2D1400
|
||||
|
||||
background: linear-gradient(to bottom,
|
||||
background-color-start 0%,
|
||||
background-color-end 100%)
|
||||
@import "util/*"
|
||||
@import "components/*"
|
||||
+2
-2
@@ -44,10 +44,10 @@ act(ref, 'tgui:initialize')
|
||||
|
||||
// Load fonts.
|
||||
import { loadCSS } from 'fg-loadcss'
|
||||
loadCSS('font-awesome.min.css')
|
||||
loadCSS('https://cdn.jsdelivr.net/fontawesome/4.5.0/css/font-awesome.min.css')
|
||||
// Handle font loads.
|
||||
import FontFaceObserver from 'fontfaceobserver'
|
||||
const fontawesome = new FontFaceObserver('FontAwesome')
|
||||
fontawesome.load('\uf240')
|
||||
fontawesome.check('\uf240')
|
||||
.then(() => document.body.classList.add('icons'))
|
||||
.catch(() => document.body.classList.add('no-icons'))
|
||||
|
||||
+1
-3
@@ -58,6 +58,4 @@ component.exports = {
|
||||
<warnings/>
|
||||
<interface/>
|
||||
</main>
|
||||
{{#if config.titlebar}}
|
||||
<resize/>
|
||||
{{/if}}
|
||||
<resize/>
|
||||
|
||||
Reference in New Issue
Block a user