ID computer can now assign planetside jobs, command secretary, IAA (#4665)

* ID computer can now assign planetside jobs

* Command Secretary and IAA on the menu

* Command secretary has keycard auth. access

* And normal access
This commit is contained in:
Atermonera
2018-01-31 14:13:12 -06:00
committed by Anewbe
parent d53fb192e4
commit 44b8b6f5ce
4 changed files with 215 additions and 248 deletions
+3 -3
View File
@@ -83,8 +83,8 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
minimal_player_age = 5
economic_modifier = 7
access = list(access_heads)
minimal_access = list(access_heads)
access = list(access_heads, access_keycard_auth)
minimal_access = list(access_heads, access_keycard_auth)
outfit_type = /decl/hierarchy/outfit/job/secretary
alt_titles = list("Command Liaison", "Bridge Secretary")
alt_titles = list("Command Liaison", "Bridge Secretary")
+18 -12
View File
@@ -40,19 +40,19 @@
if(!usr || usr.stat || usr.lying) return
if(scan)
usr << "You remove \the [scan] from \the [src]."
to_chat(usr, "You remove \the [scan] from \the [src].")
scan.forceMove(get_turf(src))
if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human))
usr.put_in_hands(scan)
scan = null
else if(modify)
usr << "You remove \the [modify] from \the [src]."
to_chat(usr, "You remove \the [modify] from \the [src].")
modify.forceMove(get_turf(src))
if(!usr.get_active_hand() && istype(usr,/mob/living/carbon/human))
usr.put_in_hands(modify)
modify = null
else
usr << "There is nothing to remove from the console."
to_chat(usr, "There is nothing to remove from the console.")
return
/obj/machinery/computer/card/attackby(obj/item/weapon/card/id/id_card, mob/user)
@@ -82,12 +82,15 @@
/obj/machinery/computer/card/ui_interact(mob/user, ui_key="main", var/datum/nanoui/ui = null, var/force_open = 1)
user.set_machine(src)
if(data_core)
data_core.get_manifest_list()
var/data[0]
data["src"] = "\ref[src]"
data["station_name"] = station_name()
data["mode"] = mode
data["printing"] = printing
data["manifest"] = data_core ? data_core.get_manifest(0) : null
data["manifest"] = PDA_Manifest
data["target_name"] = modify ? modify.name : "-----"
data["target_owner"] = modify && modify.registered_name ? modify.registered_name : "-----"
data["target_rank"] = get_target_rank()
@@ -99,13 +102,16 @@
data["all_centcom_access"] = null
data["regions"] = null
data["engineering_jobs"] = format_jobs(engineering_positions)
data["medical_jobs"] = format_jobs(medical_positions)
data["science_jobs"] = format_jobs(science_positions)
data["security_jobs"] = format_jobs(security_positions)
data["cargo_jobs"] = format_jobs(cargo_positions)
data["civilian_jobs"] = format_jobs(civilian_positions)
data["centcom_jobs"] = format_jobs(get_all_centcom_jobs())
data["jobs"] = list(
list("cat" = "Engineering", "jobs" = format_jobs(engineering_positions)),
list("cat" = "Medical", "jobs" = format_jobs(medical_positions)),
list("cat" = "Science", "jobs" = format_jobs(science_positions)),
list("cat" = "Security", "jobs" = format_jobs(security_positions)),
list("cat" = "Cargo", "jobs" = format_jobs(cargo_positions)),
list("cat" = "Planetside", "jobs" = format_jobs(planet_positions)),
list("cat" = "Civilian", "jobs" = format_jobs(civilian_positions)),
list("cat" = "CentCom", "jobs" = format_jobs(get_all_centcom_jobs()))
)
if (modify && is_centcom())
var/list/all_centcom_access = list()
@@ -209,7 +215,7 @@
jobdatum = J
break
if(!jobdatum)
usr << "<span class='warning'>No log exists for this job: [t1]</span>"
to_chat(usr, "<span class='warning'>No log exists for this job: [t1]</span>")
return
access = jobdatum.get_access()
+6
View File
@@ -0,0 +1,6 @@
author: Atermonera
delete-after: True
changes:
- tweak: "ID computer can set command secretary and IAA access"
- tweak: "Command secretary has keycard auth. access"
+188 -233
View File
@@ -1,247 +1,202 @@
{{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>
<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)}}
{{:helper.link('Crew Manifest', 'folder-open', {'choice' : 'mode', 'mode_target' : 1}, data.mode ? 'disabled' : null)}}
{{:helper.link('Print', 'print', {'choice' : 'print'}, (data.mode || data.has_modify) ? null : 'disabled')}}
{{:helper.link('Access Modification', 'home', {'choice' : 'mode', 'mode_target' : 0}, !data.mode ? 'disabled' : null)}}
{{:helper.link('Crew Manifest', 'folder-open', {'choice' : 'mode', 'mode_target' : 1}, data.mode ? 'disabled' : null)}}
{{:helper.link('Print', 'print', {'choice' : 'print'}, (data.mode || data.has_modify) ? null : 'disabled')}}
{{if data.mode}}
<div class='item'>
<h2>Crew Manifest</h2>
</div>
<div class='item'>
{{:data.manifest}}
</div>
{{else}}
<div class='item'>
<h2>Access Modification</h2>
</div>
{{if data.mode}}
<div class='item'>
<h2>Crew Manifest</h2>
</div>
<div class='item'>
<center><table class="pmon"><tbody>
{{for data.manifest}}
{{if value.elems.length}}
<tr><th colspan="3" class={{:value.cat}}>{{:value.cat}}</th></tr>
{{for value.elems :itemValue:itemIndex}}
<tr>
<td><span class="average">{{:itemValue.name}}</span></td>
<td><span class="average">{{:itemValue.rank}}</span></td>
<td><span class="average">{{:itemValue.active}}</span></td>
</tr>
{{/for}}
{{/if}}
{{/for}}
</tbody></table></center>
</div>
{{else}}
<div class='item'>
<h2>Access Modification</h2>
</div>
{{if !data.authenticated}}
<span class='alert'><i>Please insert the IDs into the terminal to proceed.</i></span><br>
{{/if}}
{{if !data.authenticated}}
<span class='alert'><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>
<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.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>
{{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='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='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>
<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>
<div class='item'>
<div class='itemLabel'>
Terminations:
</div>
<div class='itemContent'>
{{:helper.link('Terminate ' + data.target_owner, 'gear', {'choice' : 'terminate'}, data.target_rank == "Terminated" ? 'disabled' : null, data.target_rank == "Terminated" ? 'disabled' : 'linkDanger')}}
</div>
</div>
<div class='item'>
<div class='itemLabel'>
Terminations:
</div>
<div class='itemContent'>
{{:helper.link('Terminate ' + data.target_owner, 'gear', {'choice' : 'terminate'}, data.target_rank == "Terminated" ? 'disabled' : null, data.target_rank == "Terminated" ? 'disabled' : 'linkDanger')}}
</div>
</div>
<div class='item'>
<h2>Assignment</h2>
</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></th><th>Command</th>
</tr>
<tr>
<th>Special</th>
<td>
{{:helper.link("Colony Director", '', {'choice' : 'assign', 'assign_target' : 'Colony Director'}, data.target_rank == 'Colony Director' ? 'disabled' : null)}}
{{:helper.link("Custom", '', {'choice' : 'assign', 'assign_target' : 'Custom'})}}
</td>
</tr>
<tr>
<th style="color: '#FFA500';">Engineering</th>
<td>
{{for data.engineering_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#008000';">Medical</th>
<td>
{{for data.medical_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#800080';">Science</th>
<td>
{{for data.science_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#DD0000';">Security</th>
<td>
{{for data.security_jobs}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#663300';">Supply</th>
<td>
{{for data.cargo_jobs}}
{{if index && index % 6 === 0}}
</td></tr><tr><th></th><td>
{{/if}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
<tr>
<th style="color: '#808080';">Civilian</th>
<td>
{{for data.civilian_jobs}}
{{if index && index % 6 === 0}}
</td></tr><tr><th></th><td>
{{/if}}
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
{{if data.centcom_access}}
<tr>
<th style="color: '#A52A2A';">CentCom</th>
<td>
{{for data.centcom_jobs}}
{{if index % 6 === 0}}
</td></tr><tr><th></th><td>
{{/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>
<tr>
<th>Special</th>
<td>
{{:helper.link("Colony Director", '', {'choice' : 'assign', 'assign_target' : 'Colony Director'}, data.target_rank == 'Colony Director' ? 'disabled' : null)}}
{{:helper.link("Command Secretary", '', {'choice' : 'assign', 'assign_target' : 'Command Secretary'}, data.target_rank == 'Command Secretary' ? 'disabled' : null)}}
{{:helper.link("Internal Affairs Agent", '', {'choice' : 'assign', 'assign_target' : 'Internal Affairs Agent'}, data.target_rank == 'Internal Affairs Agent' ? 'disabled' : null)}}
{{:helper.link("Custom", '', {'choice' : 'assign', 'assign_target' : 'Custom'})}}
</td>
</tr>
{{for data.jobs}}
{{if data.centcom_access || value.cat != "CentCom"}}
<tr>
<th>{{:value.cat}}</th>
<td>
{{for value.jobs :itemValue:itemIndex}}
{{:helper.link(itemValue.display_name, '', {'choice' : 'assign', 'assign_target' : itemValue.job}, data.target_rank == itemValue.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
{{/if}}
{{/for}}
</table>
</div>
</div>
{{:helper.link(value.display_name, '', {'choice' : 'assign', 'assign_target' : value.job}, data.target_rank == value.job ? 'disabled' : null)}}
{{/for}}
</td>
</tr>
{{/if}}
</table>
</div>
</div>
{{if data.centcom_access}}
<div class='item'>
<h2>Central Command</h2>
</div>
<div class='item' style='width: 100%'>
{{for data.all_centcom_access}}
<div class='itemContentWide'>
{{:helper.link(value.desc, '', {'choice' : 'access', 'access_target' : value.ref, 'allowed' : value.allowed}, null, value.allowed ? 'selected' : null)}}
</div>
{{/for}}
</div>
{{else}}
<div class='item'>
<h2>{{:data.station_name}}</h2>
</div>
<div class='item' style='width: 100%'>
{{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>
{{/if}}
{{/if}}
{{/if}}
{{/if}}
{{if data.centcom_access}}
<div class='item'>
<h2>Central Command</h2>
</div>
<div class='item' style='width: 100%'>
{{for data.all_centcom_access}}
<div class='itemContentWide'>
{{:helper.link(value.desc, '', {'choice' : 'access', 'access_target' : value.ref, 'allowed' : value.allowed}, null, value.allowed ? 'selected' : null)}}
</div>
{{/for}}
</div>
{{else}}
<div class='item'>
<h2>{{:data.station_name}}</h2>
</div>
<div class='item' style='width: 100%'>
{{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>
</div>
{{/for}}
</div>
{{/if}}
{{/if}}
{{/if}}
{{/if}}
{{/if}}