Merge pull request #14367 from Kyep/tgui_firealarm

Replaces firealarm interface
This commit is contained in:
AffectedArc07
2020-09-19 14:11:18 +01:00
committed by GitHub
5 changed files with 13 additions and 917 deletions
+13 -63
View File
@@ -30,7 +30,6 @@ FIRE ALARM
light_range = 7
light_color = "#ff3232"
var/last_process = 0
var/wiresexposed = 0
var/buildstage = 2 // 2 = complete, 1 = no wires, 0 = circuit gone
var/enabled = FALSE
@@ -85,7 +84,8 @@ FIRE ALARM
return attack_hand(user)
/obj/machinery/firealarm/attack_ghost(mob/user)
ui_interact(user)
if(user.can_admin_interact())
toggle_alarm(user)
/obj/machinery/firealarm/emp_act(severity)
if(prob(50/severity))
@@ -218,21 +218,6 @@ FIRE ALARM
else
set_light(l_power = 0)
/obj/machinery/firealarm/process()//Note: this processing was mostly phased out due to other code, and only runs when needed
if(stat & (NOPOWER|BROKEN))
return
if(timing)
if(time > 0)
time = time - ((world.timeofday - last_process)/10)
else
alarm()
time = 0
timing = 0
STOP_PROCESSING(SSobj, src)
updateDialog()
last_process = world.timeofday
/obj/machinery/firealarm/power_change()
if(powered(ENVIRON))
stat &= ~NOPOWER
@@ -249,56 +234,21 @@ FIRE ALARM
if(user.incapacitated())
return 1
ui_interact(user)
toggle_alarm(user)
/obj/machinery/firealarm/ui_interact(mob/user, ui_key = "main", datum/nanoui/ui = null, force_open = 1, var/master_ui = null, var/datum/topic_state/state = GLOB.default_state)
ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "firealarm.tmpl", name, 400, 400, state = state)
ui.open()
ui.set_auto_update(1)
/obj/machinery/firealarm/ui_data(mob/user, ui_key = "main", datum/topic_state/state = GLOB.default_state)
var/data[0]
/obj/machinery/firealarm/proc/toggle_alarm(mob/user)
var/area/A = get_area(src)
data["fire"] = A.fire
data["timing"] = timing
if(istype(A))
add_fingerprint(user)
if(A.fire)
reset()
else
alarm()
data["sec_level"] = get_security_level()
var/second = round(time % 60)
var/minute = round(time / 60)
data["time_left"] = "[minute ? "[minute]:" : ""][add_zero(num2text(second), 2)]"
return data
/obj/machinery/firealarm/Topic(href, href_list)
if(..())
return 1
if(buildstage != 2)
return 1
add_fingerprint(usr)
if(href_list["reset"])
reset()
else if(href_list["alarm"])
alarm()
else if(href_list["time"])
var/oldTiming = timing
timing = text2num(href_list["time"])
last_process = world.timeofday
if(oldTiming != timing)
if(timing)
START_PROCESSING(SSobj, src)
else
STOP_PROCESSING(SSobj, src)
else if(href_list["tp"])
var/tp = text2num(href_list["tp"])
time += tp
time = min(max(round(time), 0), 120)
/obj/machinery/firealarm/examine(mob/user)
. = ..()
. += "It shows the alert level as: <B><U>[capitalize(get_security_level())]</U></B>."
/obj/machinery/firealarm/proc/reset()
if(!working || !report_fire_alarms)
-309
View File
@@ -1,309 +0,0 @@
{{if data.printing}}
<h5 class='average'>The computer is currently busy.</h5>
<div class='notice'>
<center>Printing...</center>
</div>
<p>
Thank you for your patience!
</p>
{{else}}
{{:helper.link('Access Modification', 'home', {'action' : 'PRG_mode', 'mode_target' : 0}, !data.mode ? 'disabled' : null)}}
{{:helper.link('Job Management', 'gear', {'action' : 'PRG_mode', 'mode_target' : 1}, data.mode == 1 ? 'disabled' : null)}}
{{:helper.link('Crew Manifest', 'folder-open', {'action' : 'PRG_mode', 'mode_target' : 2}, data.mode == 2 ? 'disabled' : null)}}
{{:helper.link('Print', 'print', {'action' : 'PRG_print'}, data.printer && (data.mode == 2 || data.has_modify && !data.mode) ? null : 'disabled')}}
{{:helper.link('Records', 'file', {'action' : 'PRG_mode', 'mode_target' : 3}, (data.mode == 3) ? 'disabled' : null)}}
{{if data.mode == 1}}
<div class='item'>
<h2>Job Management</h2>
</div>
<div class='item'>
<div class='itemLabel'>
Authorized Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.scan_name, 'eject', {'action' : 'PRG_scan'})}}
</div>
<div class='itemLabel'>
Cooldown:
</div>
<div class='itemContent'>
{{if data.cooldown_mins > 0 || data.cooldown_mins == 0 && data.cooldown_secs > 0}}
<span class='bad'>Next change in: {{:data.cooldown_mins}}:{{:data.cooldown_secs}}</span>
{{else}}
<span class='good'>Ready</span>
{{/if}}
</div>
</div>
<hr>
<div class='item'>
{{for data.job_slots}}
<div class='item'>
<span class="average" style="font-weight: bold;">{{:value.title}}: {{:value.current_positions}}/{{:value.total_positions}}</span>
{{:helper.link('-', null, {'action' : 'PRG_make_job_unavailable', 'job' : value.title}, value.can_close == 1 && data.authenticated ? null : 'disabled')}}
{{:helper.link('+', null, {'action' : 'PRG_make_job_available', 'job' : value.title}, value.can_open == 1 && data.authenticated ? null : 'disabled')}}
{{:helper.link('Pri', null, {'action' : 'PRG_prioritize_job', 'job' : value.title}, value.can_prioritize > 0 && data.authenticated ? null : 'disabled')}} {{if value.can_prioritize == 2}}<span class='warning'>Priority Job</span> {{/if}}
</div>
{{/for}}
</div>
{{else data.mode == 2}}
<div class='item'>
<h2>Crew Manifest</h2>
</div>
<div class='item'>
{{:data.manifest}}
</div>
{{else data.mode == 3}}
<div class='item'>
<h2>Records</h2>
</div>
<div class='item'>
<div class='itemLabel'>
Authorized Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.scan_name, 'eject', {'action' : 'PRG_scan'})}}
</div>
</div>
<div class='item'>
{{if data.authenticated}}
{{:data.id_change_html}}
{{if data.centcom_access}}
{{:helper.link('Delete Records By: ' + data.scan_owner, null, {'action' : 'PRG_wipe_my_logs'}, null, 'linkDanger')}}
{{/if}}
{{if !data.target_dept}}
{{:helper.link('Delete ALL Records', null, {'action' : 'PRG_wipe_all_logs'}, null, 'linkDanger')}}
{{/if}}
{{else}}
<span class='exclamation-triangle'><i>Please insert an authorized ID into the terminal to proceed.</i></span><br>
{{/if}}
</div>
{{else}}
<div class='item'>
<h2>Access Modification</h2>
</div>
{{if !data.authenticated}}
<span class='exclamation-triangle'><i>Please insert the IDs into the terminal to proceed.</i></span><br>
{{/if}}
<div class='item'>
<div class='itemLabel'>
Target Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.target_name, 'eject', {'action' : 'PRG_modify'})}}
</div>
</div>
<div class='item'>
<div class='itemLabel'>
Authorized Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.scan_name, 'eject', {'action' : 'PRG_scan'})}}
</div>
</div>
<hr>
{{if data.authenticated}}
<script type="text/javascript">
function markRed(){
var nameField = document.getElementById('namefield');
nameField.style.backgroundColor = "#FFDDDD";
}
function markGreen(){
var nameField = document.getElementById('namefield');
nameField.style.backgroundColor = "#DDFFDD";
}
function markAccountGreen(){
var nameField = document.getElementById('accountfield');
nameField.style.backgroundColor = "#DDFFDD";
}
function markAccountRed(){
var nameField = document.getElementById('accountfield');
nameField.style.backgroundColor = "#FFDDDD";
}
function showAll(){
var allJobsSlot = document.getElementById('allvalue.jobsslot');
allJobsSlot.innerHTML = "<a href='#' onclick='hideAll()'>Hide</a><br>";
var allJobs = document.getElementById('all-value.jobs');
allJobs.style.display = 'block';
}
function hideAll(){
var allJobsSlot = document.getElementById('allvalue.jobsslot');
allJobsSlot.innerHTML = "<a href='#' onclick='showAll()'>{{:data.target_rank}}</a>";
var allJobs = document.getElementById('all-value.jobs');
allJobs.style.display = 'none';
}
</script>
{{if data.has_modify}}
<div class='item'>
<h2>Details</h2>
</div>
<form name='cardcomp' action='?src={{:data.src}}' method='get'>
<div class='item'>
<div class='itemLabel'>
<input type='hidden' name='src' value='{{:data.src}}'>
<input type='hidden' name='action' value='PRG_reg'>
Registered Name:
</div>
<div class='itemContent'>
<input type='text' id='namefield' name='reg' value='{{:data.target_owner}}' onchange='markRed()'>
<input type='submit' value='Rename' onclick='markGreen()'>
</div>
</div>
</form>
<form name='accountnum' action='?src={{:data.src}}' method='get'>
<div class='item'>
<div class='itemLabel'>
<input type='hidden' name='src' value='{{:data.src}}'>
<input type='hidden' name='action' value='PRG_account'>
Account Number:
</div>
<div class='itemContent'>
<input type='text' id='accountfield' name='account' value='{{:data.account_number}}' onchange='markAccountRed()'>
<input type='submit' value='Modify' onclick='markAccountGreen()'>
</div>
</div>
</form>
<div class='item'>
<div class='itemLabel'>
Terminations:
</div>
<div class='itemContent'>
{{if data.target_rank == "Terminated"}}
<span class='bad'>{{:data.target_owner}} has already been terminated!</span>
{{else}}
{{:helper.link('Terminate ' + data.target_owner, 'gear', {'action' : 'PRG_terminate'}, data.target_rank == "Terminated" ? 'disabled' : null, data.target_rank == "Terminated" ? 'disabled' : 'linkDanger')}}
{{/if}}
</div>
</div>
<div class='item'>
<h2>Assignment</h2>
</div>
<div class='item'>
<span id='allvalue.jobsslot'>
<a href='#' onclick='showAll()'>{{:data.target_rank}}</a>
</span>
</div>
<div class='item'>
<div id="all-value.jobs" style='display: none;'>
<table>
<tr>
<th>Special</th>
<td>
{{for data.top_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#FFA500';">Engineering</th>
<td>
{{for data.engineering_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#008000';">Medical</th>
<td>
{{for data.medical_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#DD0000';">Security</th>
<td>
{{for data.security_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#C060C0';">Science</th>
<td>
{{for data.science_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#A0A0A0';">Support</th>
<td>
{{for data.support_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#808080';">Civilian</th>
<td>
{{for data.civilian_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{if data.centcom_access}}
<tr>
<th style="color: '#A52A2A';">CentComm</th>
<td>
{{for data.centcom_jobs}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
</table>
</div>
</div>
{{if data.centcom_access}}
<div class='item'>
<h2>Central Command</h2>
</div>
<div class='item'>
{{for data.all_centcom_access}}
{{:helper.link(value.desc, '', {'action' : 'PRG_access', 'access_target' : value.ref, 'allowed' : value.allowed}, null, value.allowed ? 'selected' : null)}}
{{/for}}
<div class="item">
<div class='average'><b>Card Skin</b></div>
{{for data.all_centcom_skins}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_skin', 'skin_target' : value.skin}, null,(data.current_skin == value.skin) ? 'selected' : null )}}
{{/for}}
</div>
</div>
{{else}}
<div class='item'>
<h2>{{:data.station_name}}</h2>
</div>
<div class='item'>
{{for data.regions}}
<div style='float: left; width: 175px; min-height: 250px'>
<div class='average'><b>{{:value.name}}</b></div>
{{for value.accesses :accessValue:accessKey}}
<div class='itemContentWide'>
{{:helper.link(accessValue.desc, '', {'action' : 'PRG_access', 'access_target' : accessValue.ref, 'allowed' : accessValue.allowed}, null, accessValue.allowed ? 'selected' : null)}}
</div>
{{/for}}
</div>
{{/for}}
<div style='float: left;'>
<div class='average'><b>Card Skin</b></div>
{{for data.card_skins}}
{{:helper.link(value.display_name, '', {'action' : 'PRG_skin', 'skin_target' : value.skin}, null,(data.current_skin == value.skin) ? 'selected' : null )}}
{{/for}}
</div>
</div>
{{/if}}
{{/if}}
{{/if}}
{{/if}}
{{/if}}
-129
View File
@@ -1,129 +0,0 @@
{{if !data.authenticated}}
<div class="notice">Please swipe your ID card. {{:helper.link('Log In', 'unlock', {'PRG_login' : 1}, null, 'fixed')}}</div>
{{else}}
{{if !data.is_ai}}
<div class="notice">Please remember to {{:helper.link('Log Out', 'lock', {'PRG_logout' : 1}, null, 'fixed')}}</div>
{{/if}}
{{if data.lastCallLoc}}
<div class="line">Most recent shuttle call/recall traced to: <b>{{:data.lastCallLoc}}</b></div>
{{else}}
<div class="line">Unable to trace most recent shuttle call/recall signal.</div>
{{/if}}
<div class="item">
<h3>Emergency Shuttle:</h3>
{{if data.shuttle.eta}}
<div class="itemLabel">ETA:</div>
<div class="itemContents">
{{>data.shuttle.eta}}
</div>
{{/if}}<!-- SHUTTLE ETA -->
<div class="itemLabel">Options:</div>
<div class="itemContents">
{{if data.shuttle.callStatus == 1 && !data.is_ai}}
{{:helper.link('Cancel Shuttle', 'arrow-left', {'PRG_operation' : 'cancelshuttle'})}}
{{else data.shuttle.callStatus == 2}}
{{:helper.link('Call Shuttle', 'arrow-circle-down', {'PRG_operation' : 'callshuttle'})}}
{{/if}}
</div>
</div>
{{if data.screen==1}}
<!-- MAIN SCREEN -->
<h3>Menu</h3>
<div class="item">
{{if data.authenticated==2}}
<div class="line">
{{:helper.link('Make an Announcement', 'info', {'PRG_operation' : 'announce'})}}
</div>
<div class="line">
{{if data.emagged}}
{{:helper.link('Message [UNKNOWN]', 'envelope', {'PRG_operation' : 'MessageSyndicate'})}}
{{else}}
{{:helper.link('Message CentComm', 'envelope', {'PRG_operation' : 'MessageCentcomm'})}}
{{/if}}
</div>
<div class="line">
{{:helper.link('Request Nuclear Authentication Codes', 'exclamation-triangle', {'PRG_operation' : 'nukerequest'})}}
</div>
{{/if}}
<div class="line">
{{:helper.link('Change Alert Level', 'signal', {'PRG_operation' : 'changeseclevel'})}}
</div>
<div class="line">
{{:helper.link('Change Status Displays', 'info', {'PRG_operation' : 'status'})}}
</div>
<div class="line">
{{:helper.link('Message List', 'comment', {'PRG_operation' : 'messagelist'})}}
</div>
<div class="line">
{{:helper.link('Restart Nano-Mob Hunter GO! Server', 'power-off', {'PRG_operation' : 'RestartNanoMob'})}}
</div>
</div>
{{else data.screen==2}}
<!-- STATUS DISPLAYS -->
<h2>Status Displays</h2>
{{:helper.link('Back', 'home', {'PRG_operation' : 'main'})}}
<h3>Presets</h3>
{{for data.stat_display.presets}}
<div class="line">
<div class="statusLabel">{{:helper.link(value.label, 'info', {'PRG_operation' : 'setstat', 'statdisp' : value.name}, name == data.stat_display.type ? 'selected' : null)}}</div>
</div>
{{/for}}
<h3>Alerts</h3>
{{for data.stat_display.alerts}}
<div class="line">
<div class="statusLabel">{{:helper.link(value.label, 'exclamation-triangle', {'PRG_operation' : 'setstat', 'statdisp' : 'alert', 'alert' : value.alert}, value.alert == data.stat_display.type ? 'selected' : null)}}</div>
</div>
{{/for}}
<h3>Messages</h3>
<div class="item">
{{if data.stat_display.type}}
<div class="line">
<div class="statusLabel">{{:helper.link('Line 1:', 'gear', {'PRG_operation':'setmsg1'})}}</div>
<div class="statusValue">{{>data.stat_display.line_1}}</div>
</div>
<div class="line">
<div class="statusLabel">{{:helper.link('Line 2:', 'gear', {'PRG_operation':'setmsg2'})}}</div>
<div class="statusValue">{{>data.stat_display.line_2}}</div>
</div>
{{/if}}
</div>
{{else data.screen==3}}
<!-- MESSAGES -->
<h3>Messages</h3>
{{if data.current_message}}
{{:helper.link('Messages', 'home', {'PRG_operation' : 'messagelist'})}}
<h3>{{:data.current_message_title}}</h3>
<div class="item">
{{:data.current_message}}
</div>
{{else}}
{{:helper.link('Back', 'home', {'PRG_operation' : 'main'})}}
{{for data.messages}}
<div class="line">
<b>{{:value.title}}</b><br>
{{:helper.link('Open', 'envelope-o', {'PRG_operation' : 'messagelist', 'msgid' : value.id})}}
{{:helper.link('Delete', 'close', {'PRG_operation' : 'delmessage', 'msgid' : value.id})}}
</div>
{{/for}}
{{/if}}
{{else data.screen==4}}
<!-- ALERT LEVEL -->
<h3>Security Level</h3>
{{:helper.link('Back', 'home', {'PRG_operation' : 'main'})}}
<div class="item">
<div class="line">
<div class="itemLabel">Security Level:</div>
<div class="itemContents">{{>data.str_security_level}}</div>
</div>
<div class="line">
<div class="itemLabel">Presets:</div>
<div class="itemContents">
{{for data.levels}}
{{:helper.link(value.name, 'comment', {'PRG_operation' : 'newalertlevel', 'level' : value.id}, value.id == data.security_level ? 'selected' : null)}}
{{/for}}
</div>
</div>
</div>
{{/if}}<!-- SCREEN -->
{{/if}}<!-- AUTHENTICATED -->
-69
View File
@@ -1,69 +0,0 @@
<!--
Title: FireAlarm UI.
Used In File(s): \code\game\machinery\firealarm.dm
-->
<div class="item">
<div class="itemLabel">
Fire Alarm
</div>
<div class="itemContent">
{{:helper.link('Activated', 'lightbulb-o', {'alarm' : 1}, data.fire ? 'selected' : '')}}
{{:helper.link('Deactivated', 'lightbulb-o', {'reset' : 1}, data.fire ? '' : 'selected')}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Security Level
</div>
<div class="itemContent">
{{if data.sec_level == "green"}}
<span class="good">Green</span>
{{else data.sec_level == "blue"}}
<span class="highlight">Blue</span>
{{else data.sec_level == "red"}}
<span class="bad">Red</span>
{{else data.sec_level == "gamma"}}
<span class="average">Gamma</span>
{{else data.sec_level == "epsilon"}}
<span class="bad"><b>Contracts terminated.</b></span>
{{else data.sec_level == "delta"}}
<span class="notice">Nuclear device primed.</span>
{{else}}
ERR: Unable to ascertain security level. Please see an authorized NT fire alarm technician.
{{/if}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Timer System
</div>
<div class="itemContent">
{{:helper.link('Initiate', 'play', {'time': 1}, data.timing ? 'selected' : '')}}
{{:helper.link('Stop', 'pause', {'time': 0}, data.timing ? '' : 'selected')}}
</div>
</div>
<div class="item">
<div class="itemLabel">
Time Modifiers
</div>
<div class="itemContent">
{{:helper.link('30', 'minus', {'tp': -30})}}
{{:helper.link('1', 'minus', {'tp': -1 })}}
{{:helper.link('1', 'plus', {'tp': +1 })}}
{{:helper.link('30', 'plus', {'tp': +30})}}
</div>
</div>
{{if data.timing}}
<div class="item">
<div class="itemLabel">
Time Left
</div>
<div class="itemContent">
{{:data.time_left}}
</div>
</div>
{{/if}}
-347
View File
@@ -1,347 +0,0 @@
{{if data.printing}}
<h5 class='average'>The computer is currently busy.</h5>
<div class='notice'>
<center><span class='bad'>Printing...</span></center>
</div>
<p>
Thank you for your patience!
</p>
{{else}}
{{:helper.link('Access Modification', 'home', {'choice' : 'mode', 'mode_target' : 0}, !data.mode ? 'disabled' : null)}}
{{if !data.target_dept}}{{:helper.link('Job Management', 'gear', {'choice' : 'mode', 'mode_target' : 1}, data.mode == 1 ? 'disabled' : null)}}{{/if}}
{{:helper.link('Crew Manifest', 'folder-open', {'choice' : 'mode', 'mode_target' : 2}, data.mode == 2 ? 'disabled' : null)}}
{{if !data.target_dept}}{{:helper.link('Print', 'print', {'choice' : 'print'}, (data.mode == 2 || data.has_modify && !data.mode) ? null : 'disabled')}}{{/if}}
{{:helper.link('Records', 'file', {'choice' : 'mode', 'mode_target' : 3}, (data.mode == 3) ? 'disabled' : null)}}
{{if data.mode == 1 && !data.target_dept}}
<div class='item'>
<h2>Job Management</h2>
</div>
<div class='item'>
<div class='itemLabel'>
Authorized Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.scan_name, 'eject', {'choice' : 'scan'})}}
</div>
<div class='itemLabel'>
Cooldown:
</div>
<div class='itemContent'>
{{if data.cooldown_mins > 0 || data.cooldown_mins == 0 && data.cooldown_secs > 0}}
<span class='bad'>Next change in: {{:data.cooldown_mins}}:{{:data.cooldown_secs}}</span>
{{else}}
<span class='good'>Ready</span>
{{/if}}
</div>
</div>
<hr>
<div class='item'>
{{for data.job_slots}}
<div class='item'>
<span class="average" style="font-weight: bold;">{{:value.title}}: {{:value.current_positions}}/{{:value.total_positions}}</span>
{{:helper.link('-', null, {'choice' : 'make_job_unavailable', 'job' : value.title}, value.can_close == 1 && data.authenticated ? null : 'disabled')}}
{{:helper.link('+', null, {'choice' : 'make_job_available', 'job' : value.title}, value.can_open == 1 && data.authenticated ? null : 'disabled')}}
{{:helper.link('Pri', null, {'choice' : 'prioritize_job', 'job' : value.title}, value.can_prioritize > 0 && data.authenticated ? null : 'disabled')}} {{if value.can_prioritize == 2}}<span class='warning'>Priority Job</span> {{/if}}
</div>
{{/for}}
</div>
{{else data.mode == 2}}
<div class='item'>
<h2>Crew Manifest</h2>
</div>
<div class='item'>
{{:data.manifest}}
</div>
{{else data.mode == 3}}
<div class='item'>
<h2>Records</h2>
</div>
<div class='item'>
<div class='itemLabel'>
Authorized Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.scan_name, 'eject', {'choice' : 'scan'})}}
</div>
</div>
<div class='item'>
{{if data.authenticated}}
{{:data.id_change_html}}
{{if data.centcom_access}}
{{:helper.link('Delete Records By: ' + data.scan_owner, null, {'choice' : 'wipe_my_logs'}, null, 'linkDanger')}}
{{/if}}
{{if !data.target_dept}}
{{:helper.link('Delete ALL Records', null, {'choice' : 'wipe_all_logs'}, null, 'linkDanger')}}
{{/if}}
{{else}}
<span class='exclamation-triangle'><i>Please insert an authorized ID into the terminal to proceed.</i></span><br>
{{/if}}
</div>
{{else}}
<div class='item'>
<h2>Access Modification</h2>
</div>
{{if !data.authenticated}}
<span class='exclamation-triangle'><i>Please insert the IDs into the terminal to proceed.</i></span><br>
{{/if}}
<div class='item'>
<div class='itemLabel'>
Target Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.target_name, 'eject', {'choice' : 'modify'})}}
</div>
</div>
<div class='item'>
<div class='itemLabel'>
Authorized Identity:
</div>
<div class='itemContent'>
{{:helper.link(data.scan_name, 'eject', {'choice' : 'scan'})}}
</div>
</div>
<hr>
{{if data.authenticated}}
<script type="text/javascript">
function markRed(){
var nameField = document.getElementById('namefield');
nameField.style.backgroundColor = "#FFDDDD";
}
function markGreen(){
var nameField = document.getElementById('namefield');
nameField.style.backgroundColor = "#DDFFDD";
}
function markAccountGreen(){
var nameField = document.getElementById('accountfield');
nameField.style.backgroundColor = "#DDFFDD";
}
function markAccountRed(){
var nameField = document.getElementById('accountfield');
nameField.style.backgroundColor = "#FFDDDD";
}
function showAll(){
var allJobsSlot = document.getElementById('allvalue.jobsslot');
allJobsSlot.innerHTML = "<a href='#' onclick='hideAll()'>Hide</a><br>";
var allJobs = document.getElementById('all-value.jobs');
allJobs.style.display = 'block';
}
function hideAll(){
var allJobsSlot = document.getElementById('allvalue.jobsslot');
allJobsSlot.innerHTML = "<a href='#' onclick='showAll()'>{{:data.target_rank}}</a>";
var allJobs = document.getElementById('all-value.jobs');
allJobs.style.display = 'none';
}
</script>
{{if data.has_modify}}
{{if !data.target_dept}}
<div class='item'>
<h2>Details</h2>
</div>
<form name='cardcomp' action='?src={{:data.src}}' method='get'>
<div class='item'>
<div class='itemLabel'>
<input type='hidden' name='src' value='{{:data.src}}'>
<input type='hidden' name='choice' value='reg'>
Registered Name:
</div>
<div class='itemContent'>
<input type='text' id='namefield' name='reg' value='{{:data.target_owner}}' onchange='markRed()'>
<input type='submit' value='Rename' onclick='markGreen()'>
</div>
</div>
</form>
<form name='accountnum' action='?src={{:data.src}}' method='get'>
<div class='item'>
<div class='itemLabel'>
<input type='hidden' name='src' value='{{:data.src}}'>
<input type='hidden' name='choice' value='account'>
Account Number:
</div>
<div class='itemContent'>
<input type='text' id='accountfield' name='account' value='{{:data.account_number}}' onchange='markAccountRed()'>
<input type='submit' value='Modify' onclick='markAccountGreen()'>
</div>
</div>
</form>
{{/if}}
{{if data.target_rank != "Terminated"}}
<div class='item'>
<div class='itemLabel'>
Demotions:
</div>
<div class='itemContent'>
{{if data.target_rank == "Demoted"}}
<span class='bad'>{{:data.target_owner}} has already been demoted!</span>
{{else}}
{{:helper.link('Demote ' + data.target_owner, 'gear', {'choice' : 'demote'}, (data.target_rank == "Civilian" || data.target_rank == "Unassigned") ? 'disabled' : null, (data.target_rank == "Civilian" || data.target_rank == "Unassigned") ? 'disabled' : 'linkDanger')}}
{{/if}}
</div>
</div>
{{/if}}
{{if !data.target_dept}}
<div class='item'>
<div class='itemLabel'>
Terminations:
</div>
<div class='itemContent'>
{{if data.target_rank == "Terminated"}}
<span class='bad'>{{:data.target_owner}} has already been terminated!</span>
{{else}}
{{:helper.link('Terminate ' + data.target_owner, 'gear', {'choice' : 'terminate'}, data.target_rank == "Terminated" ? 'disabled' : null, data.target_rank == "Terminated" ? 'disabled' : 'linkDanger')}}
{{/if}}
</div>
</div>
<div class='item'>
<h2>Assignment</h2>
</div>
{{else}}
<div class='item'>
<h2>Assignment for {{:data.target_owner}}</h2>
</div>
{{/if}}
<div class='item'>
<span id='allvalue.jobsslot'>
<a href='#' onclick='showAll()'>{{:data.target_rank}}</a>
</span>
</div>
<div class='item'>
<div id="all-value.jobs" style='display: none;'>
<table>
{{if !data.target_dept}}
<tr>
<th>Special</th>
<td>
{{for data.top_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
{{if !data.target_dept || data.target_dept == 5}}
<tr>
<th style="color: '#FFA500';">Engineering</th>
<td>
{{for data.engineering_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
{{if !data.target_dept || data.target_dept == 3}}
<tr>
<th style="color: '#008000';">Medical</th>
<td>
{{for data.medical_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
{{if !data.target_dept || data.target_dept == 2}}
<tr>
<th style="color: '#DD0000';">Security</th>
<td>
{{for data.security_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
{{if !data.target_dept || data.target_dept == 4}}
<tr>
<th style="color: '#C060C0';">Science</th>
<td>
{{for data.science_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
{{if !data.target_dept}}
<tr>
<th style="color: '#A0A0A0';">Support</th>
<td>
{{for data.support_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
<tr>
<th style="color: '#808080';">Civilian</th>
<td>
{{for data.civilian_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{if data.centcom_access}}
<tr>
<th style="color: '#A52A2A';">CentComm</th>
<td>
{{for data.centcom_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, value.jlinkformat == 'disabled' ? 'disabled' : null, value.jlinkformat ? value.jlinkformat : null)}}
{{/for}}
</td>
</tr>
{{/if}}
</table>
</div>
</div>
{{if data.centcom_access}}
<div class='item'>
<h2>Central Command</h2>
</div>
<div class='item'>
{{for data.all_centcom_access}}
{{:helper.link(value.desc, '', {'choice' : 'access', 'access_target' : value.ref, 'allowed' : value.allowed}, null, value.allowed ? 'selected' : null)}}
{{/for}}
<div class="item">
<div class='average'><b>Card Skin</b></div>
{{for data.all_centcom_skins}}
{{:helper.link(value.display_name, '', {'choice' : 'skin', 'skin_target' : value.skin}, null,(data.current_skin == value.skin) ? 'selected' : null )}}
{{/for}}
</div>
</div>
{{else}}
{{if !data.target_dept}}
<div class='item'>
<h2>{{:data.station_name}}</h2>
</div>
<div class='item'>
{{for data.regions}}
<div style='float: left; width: 175px; min-height: 250px'>
<div class='average'><b>{{:value.name}}</b></div>
{{for value.accesses :accessValue:accessKey}}
<div class='itemContentWide'>
{{:helper.link(accessValue.desc, '', {'choice' : 'access', 'access_target' : accessValue.ref, 'allowed' : accessValue.allowed}, null, accessValue.allowed ? 'selected' : null)}}
</div>
{{/for}}
</div>
{{/for}}
<div style='float: left;'>
<div class='average'><b>Card Skin</b></div>
{{for data.card_skins}}
{{:helper.link(value.display_name, '', {'choice' : 'skin', 'skin_target' : value.skin}, null,(data.current_skin == value.skin) ? 'selected' : null )}}
{{/for}}
</div>
</div>
{{/if}}
{{/if}}
{{/if}}
{{/if}}
{{/if}}
{{/if}}