Standardize UI consistency across ShopDB pages

Security fixes:
- Add HTMLEncode to displaysubnets.asp output
- Add HTMLEncode to displayapplications.asp URL attributes

Icon standardization:
- Use zmdi-plus-circle for all Add buttons (displaypcs, pcs, pclist, computers, listpcs)
- Use zmdi-edit for all Edit tab icons (displayapplication, displayprinter, displaysubnet, displaydevice)
- Replace icon-note with zmdi icons throughout

Layout consistency:
- Standardize title row margin-bottom to 15px across all pages
- Add table-hover class to all data tables
- Fix editpc.asp title from "Edit Equipment" to "Edit PC"
- Fix editpc.asp back link to point to displaypcs.asp

Terminology:
- Change "Make" to "Vendor" in displayprinters.asp
- Standardize Back button text to "Back to [Page]" format

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
cproudlock
2025-12-10 14:20:35 -05:00
parent 6522a8699e
commit 8194f5cdf0
21 changed files with 117 additions and 70 deletions

View File

@@ -36,7 +36,7 @@
<i class="zmdi zmdi-plus-circle"></i> Add Knowledge Base Article
</h5>
<a href="./displayknowledgebase.asp" class="btn btn-sm btn-secondary">
<i class="zmdi zmdi-arrow-left"></i> Back
<i class="zmdi zmdi-arrow-left"></i> Back to Knowledge Base
</a>
</div>

View File

@@ -36,7 +36,7 @@
<i class="zmdi zmdi-plus-circle"></i> Add Notification
</h5>
<a href="./displaynotifications.asp" class="btn btn-sm btn-secondary">
<i class="zmdi zmdi-arrow-left"></i> Back
<i class="zmdi zmdi-arrow-left"></i> Back to Notifications
</a>
</div>

View File

@@ -36,7 +36,7 @@
<i class="zmdi zmdi-print"></i> Add Printer
</h5>
<a href="./displayprinters.asp" class="btn btn-sm btn-secondary">
<i class="zmdi zmdi-arrow-left"></i> Back
<i class="zmdi zmdi-arrow-left"></i> Back to Printers
</a>
</div>

View File

@@ -34,7 +34,7 @@
<div class="card-body">
<h5 class="card-title">Add Subnet</h5>
<div class="table-responsive">
<table class="table">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Vlan #</th>

View File

@@ -30,11 +30,11 @@
<div class="card">
<div class="card-body">
<div style="margin-bottom:15px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">PCs</h5>
<div>
<a href="./adddevice.asp" class="btn btn-primary">
<i class="zmdi zmdi-plus"></i> Add Device
<i class="zmdi zmdi-plus-circle"></i> Add Device
</a>
</div>
</div>

View File

@@ -80,7 +80,7 @@
<a href="javascript:void();" data-target="#profile" data-toggle="pill" class="nav-link active"><i class="icon-wrench"></i> <span class="hidden-xs">Settings</span></a>
</li>
<li class="nav-item">
<a href="javascript:void();" data-target="#edit" data-toggle="pill" class="nav-link"><i class="icon-note"></i> <span class="hidden-xs">Edit</span></a>
<a href="javascript:void();" data-target="#edit" data-toggle="pill" class="nav-link"><i class="zmdi zmdi-edit"></i> <span class="hidden-xs">Edit</span></a>
</li>
</ul>
<div class="tab-content p-3">

View File

@@ -34,7 +34,7 @@
If filterType = "" Then filterType = "installable"
%>
<div style="margin-bottom:15px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">Applications</h5>
<div>
<a href="./addapplication.asp" class="btn btn-primary">
@@ -83,34 +83,34 @@
set rs = objconn.Execute(strSQL)
while not rs.eof
response.write("<tr>")
While Not rs.EOF
Response.Write("<tr>")
' Show download icon if installpath is set, or if applicationlink is set as fallback
IF Not IsNull(rs("installpath")) And rs("installpath") <> "" THEN
response.write("<td><a href='" &rs("installpath") &"' title='Link To Installation Files' target='_blank'><i class='zmdi zmdi-download' style='color:#fff;' title='Click for Installation Files'></i></a></td>")
ELSEIF Not IsNull(rs("applicationlink")) And rs("applicationlink") <> "" THEN
response.write("<td><a href='" &rs("applicationlink") &"' title='Link To Application' target='_blank'><i class='zmdi zmdi-download' style='color:#fff;' title='Click for Application Link'></i></a></td>")
ELSE
response.write("<td>&nbsp;</td>")
END IF
IF Not IsNull(rs("documentationpath")) And rs("documentationpath") <> "" THEN
response.write("<td><a href='" &rs("documentationpath") &"' target='_blank'><i class='zmdi zmdi-info-outline' style='color:#fff;' title='Click for Documentation'></i></a></td>")
ELSE
response.write("<td>&nbsp;</td>")
END IF
response.write("<td title='" &rs("applicationnotes") &"'><a href='displayapplication.asp?appid=" &rs("appid") &"'>" &rs("appname") &"</a></td>")
response.write("<td font size='10px'>")
response.write(rs("teamname"))
response.write("</td>")
response.write("<td>")
response.write("<a href='MSTeams:/l/chat/0/0?users=" &rs("sso") &"@geaerospace.com' title='Click here to Chat on Teams'>" &rs("appowner") &"</a>")
response.write("</td>")
response.write("<td>")
response.write(rs("sso"))
response.write("</td>")
response.write("</tr>")
rs.movenext
wend
If Not IsNull(rs("installpath")) And rs("installpath") <> "" Then
Response.Write("<td><a href='" & Server.HTMLEncode(rs("installpath") & "") & "' title='Link To Installation Files' target='_blank'><i class='zmdi zmdi-download' style='color:#fff;' title='Click for Installation Files'></i></a></td>")
ElseIf Not IsNull(rs("applicationlink")) And rs("applicationlink") <> "" Then
Response.Write("<td><a href='" & Server.HTMLEncode(rs("applicationlink") & "") & "' title='Link To Application' target='_blank'><i class='zmdi zmdi-download' style='color:#fff;' title='Click for Application Link'></i></a></td>")
Else
Response.Write("<td>&nbsp;</td>")
End If
If Not IsNull(rs("documentationpath")) And rs("documentationpath") <> "" Then
Response.Write("<td><a href='" & Server.HTMLEncode(rs("documentationpath") & "") & "' target='_blank'><i class='zmdi zmdi-info-outline' style='color:#fff;' title='Click for Documentation'></i></a></td>")
Else
Response.Write("<td>&nbsp;</td>")
End If
Response.Write("<td title='" & Server.HTMLEncode(rs("applicationnotes") & "") & "'><a href='displayapplication.asp?appid=" & Server.HTMLEncode(rs("appid") & "") & "'>" & Server.HTMLEncode(rs("appname") & "") & "</a></td>")
Response.Write("<td style='font-size:10px;'>")
Response.Write(Server.HTMLEncode(rs("teamname") & ""))
Response.Write("</td>")
Response.Write("<td>")
Response.Write("<a href='MSTeams:/l/chat/0/0?users=" & Server.HTMLEncode(rs("sso") & "") & "@geaerospace.com' title='Click here to Chat on Teams'>" & Server.HTMLEncode(rs("appowner") & "") & "</a>")
Response.Write("</td>")
Response.Write("<td>")
Response.Write(Server.HTMLEncode(rs("sso") & ""))
Response.Write("</td>")
Response.Write("</tr>")
rs.MoveNext
Wend
objConn.Close
%>

View File

@@ -158,7 +158,7 @@
</li>
<%End If%>
<li class="nav-item">
<a href="<%=editUrl%>" class="nav-link"><i class="icon-note"></i> <span class="hidden-xs">Edit</span></a>
<a href="<%=editUrl%>" class="nav-link"><i class="zmdi zmdi-edit"></i> <span class="hidden-xs">Edit</span></a>
</li>
</ul>
<div class="tab-content p-3">

View File

@@ -63,7 +63,7 @@
<div class="col-lg-8 offset-lg-2">
<div class="card">
<div class="card-body">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">
<i class="zmdi zmdi-book"></i> Knowledge Base Article
</h5>

View File

@@ -33,7 +33,7 @@
<div class="card">
<div class="card-body">
<div style="margin-bottom:15px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;"><a href="./machine_map.asp" target="_blank"><i class='zmdi zmdi-map' title='Show Machine Map'></i></a>&nbsp;&nbsp;&nbsp;&nbsp;Machines</h5>
<div>
<a href="./addmachine.asp" class="btn btn-primary">

View File

@@ -30,11 +30,11 @@
<div class="card">
<div class="card-body">
<div style="margin-bottom:15px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">PCs</h5>
<div>
<a href="./adddevice.asp" class="btn btn-primary">
<i class="zmdi zmdi-plus"></i> Add Device
<i class="zmdi zmdi-plus-circle"></i> Add Device
</a>
</div>
</div>

View File

@@ -97,7 +97,7 @@
<a href="javascript:void();" data-target="#profile" data-toggle="pill" class="nav-link active"><i class="icon-wrench"></i> <span class="hidden-xs">Settings</span></a>
</li>
<li class="nav-item">
<a href="javascript:void();" data-target="#edit" data-toggle="pill" class="nav-link"><i class="icon-note"></i> <span class="hidden-xs">Edit</span></a>
<a href="javascript:void();" data-target="#edit" data-toggle="pill" class="nav-link"><i class="zmdi zmdi-edit"></i> <span class="hidden-xs">Edit</span></a>
</li>
</ul>
<div class="tab-content p-3">

View File

@@ -47,7 +47,7 @@
<th scope="col"><i class="zmdi zmdi-attachment-alt"></i></th>
<th scope="col">ID</th>
<th scope="col">Machine</th>
<th scope="col">Make</th>
<th scope="col">Vendor</th>
<th scope="col">Model</th>
<th scope="col">CSF</th>
<th scope="col">IP</th>

View File

@@ -70,13 +70,13 @@
<div class="card-body">
<ul class="nav nav-tabs nav-tabs-primary top-icon nav-justified">
<li class="nav-item">
<a href="javascript:void();" data-target="#edit" data-toggle="pill" class="nav-link"><i class="icon-note"></i> <span class="hidden-xs">Edit Subnet</span></a>
<a href="javascript:void();" data-target="#edit" data-toggle="pill" class="nav-link"><i class="zmdi zmdi-edit"></i> <span class="hidden-xs">Edit Subnet</span></a>
</li>
</ul>
<div class="tab-content p-3">
<div class="tab-pane" id="edit">
<div class="table-responsive">
<table class="table">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Vlan #</th>
@@ -132,7 +132,7 @@
</div>
<h5 class="card-title">Subnet Details</h5>
<div class="table-responsive">
<table class="table">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Vlan #</th>

View File

@@ -36,13 +36,13 @@
<div class="card-body">
<ul class="nav nav-tabs nav-tabs-primary top-icon nav-justified">
<li class="nav-item">
<a href="javascript:void();" data-target="#addsubnet" data-toggle="pill" class="nav-link"><i class="icon-note"></i> <span class="hidden-xs">Add Subnet</span></a>
<a href="javascript:void();" data-target="#addsubnet" data-toggle="pill" class="nav-link"><i class="zmdi zmdi-plus-circle"></i> <span class="hidden-xs">Add Subnet</span></a>
</li>
</ul>
<div class="tab-content p-3">
<div class="tab-pane" id="addsubnet">
<div class="table-responsive">
<table class="table">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Vlan #</th>
@@ -58,12 +58,12 @@
<th scope="row"><input class="form-control" type="text" name="vlan" size="4"></th>
<td><select name="subnettypeid" class="btn btn-light px-3">
<%
strSQL = "Select * FROM subnettypes where isactive=1 ORDER BY subnettype ASC"
set rs = objconn.Execute(strSQL)
while not rs.eof
Response.Write("<option class='btn' value='"&rs("subnettypeid")&"'>"&rs("subnettype")&"</option>")
rs.movenext
wend
strSQL = "SELECT * FROM subnettypes WHERE isactive=1 ORDER BY subnettype ASC"
Set rs = objConn.Execute(strSQL)
While Not rs.EOF
Response.Write("<option class='btn' value='" & Server.HTMLEncode(rs("subnettypeid") & "") & "'>" & Server.HTMLEncode(rs("subnettype") & "") & "</option>")
rs.MoveNext
Wend
%>
</select>
</td>
@@ -96,7 +96,7 @@
</div>
<h5 class="card-title"><a href="./network_map.asp" target="_blank"><i class='zmdi zmdi-map' title='Show Network Infrastructure Map'></i></a>&nbsp&nbsp;Subnet Details</h5>
<div class="table-responsive">
<table class="table">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Vlan #</th>
@@ -115,11 +115,11 @@
WHILE NOT rs.eof
%>
<tr>
<th scope="row"><a href="./displaysubnet.asp?subnetid=<%Response.Write(rs("subnetid"))%>"><%Response.Write(rs("vlan"))%></a></th>
<td><%Response.Write(rs("subnettype"))%> </td>
<td><%Response.Write(rs("subnetstart"))%></td>
<td><%Response.Write(rs("cidr"))%></td>
<td><%Response.Write(rs("description"))%></td>
<th scope="row"><a href="./displaysubnet.asp?subnetid=<%=Server.HTMLEncode(rs("subnetid") & "")%>"><%=Server.HTMLEncode(rs("vlan") & "")%></a></th>
<td><%=Server.HTMLEncode(rs("subnettype") & "")%></td>
<td><%=Server.HTMLEncode(rs("subnetstart") & "")%></td>
<td><%=Server.HTMLEncode(rs("cidr") & "")%></td>
<td><%=Server.HTMLEncode(rs("description") & "")%></td>
</tr>
<%
rs.movenext

View File

@@ -187,12 +187,12 @@
<div class="col-lg-10 offset-lg-1">
<div class="card">
<div class="card-body">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">
<i class="zmdi zmdi-memory"></i> Edit Equipment
<i class="zmdi zmdi-laptop"></i> Edit PC
</h5>
<a href="./displaymachines.asp" class="btn btn-sm btn-secondary">
<i class="zmdi zmdi-arrow-left"></i> Back to Machines
<a href="./displaypcs.asp" class="btn btn-sm btn-secondary">
<i class="zmdi zmdi-arrow-left"></i> Back to PCs
</a>
</div>

View File

@@ -30,11 +30,11 @@
<div class="card">
<div class="card-body">
<div style="margin-bottom:15px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">PCs</h5>
<div>
<a href="./adddevice.asp" class="btn btn-primary">
<i class="zmdi zmdi-plus"></i> Add Device
<i class="zmdi zmdi-plus-circle"></i> Add Device
</a>
</div>
</div>

47
logs/api-2025-12-09.log Executable file
View File

@@ -0,0 +1,47 @@
12/9/2025 10:06:31 AM - === NEW updateCompleteAsset REQUEST ===
12/9/2025 10:06:31 AM - Hostname: TEST
12/9/2025 10:06:31 AM - Serial: TEST123
12/9/2025 10:06:31 AM - PC Type:
12/9/2025 10:06:31 AM - PC record created/updated. machineid: 5838
12/9/2025 10:30:37 AM - === NEW updateCompleteAsset REQUEST ===
12/9/2025 10:30:37 AM - Hostname: TESTHT
12/9/2025 10:30:37 AM - Serial: TESTHT123
12/9/2025 10:30:37 AM - PC Type: HeatTreat
12/9/2025 10:30:37 AM - Unknown pcType 'HeatTreat' for pctypeid, defaulting to Standard (1)
12/9/2025 10:30:37 AM - Mapped pcType 'HeatTreat' to pctypeid: 1
12/9/2025 10:30:37 AM - PC record created/updated. machineid: 5839
12/9/2025 10:31:10 AM - === NEW updateCompleteAsset REQUEST ===
12/9/2025 10:31:10 AM - Hostname: TESTHT
12/9/2025 10:31:10 AM - Serial: TESTHT123
12/9/2025 10:31:10 AM - PC Type: HeatTreat
12/9/2025 10:31:10 AM - Unknown pcType 'HeatTreat' for pctypeid, defaulting to Standard (1)
12/9/2025 10:31:10 AM - Mapped pcType 'HeatTreat' to pctypeid: 1
12/9/2025 10:31:10 AM - PC record created/updated. machineid: 5840
12/9/2025 10:32:05 AM - === NEW updateCompleteAsset REQUEST ===
12/9/2025 10:32:05 AM - Hostname: TESTHT
12/9/2025 10:32:05 AM - Serial: TESTHT123
12/9/2025 10:32:05 AM - PC Type: HeatTreat
12/9/2025 10:32:05 AM - Mapped pcType 'HeatTreat' to pctypeid: 9
12/9/2025 10:32:05 AM - PC record created/updated. machineid: 5841
12/9/2025 10:40:33 AM - === NEW updateCompleteAsset REQUEST ===
12/9/2025 10:40:33 AM - Hostname: GFG48DW2ESF
12/9/2025 10:40:33 AM - Serial: FG48DW2
12/9/2025 10:40:33 AM - PC Type: HeatTreat
12/9/2025 10:40:34 AM - Mapped pcType 'HeatTreat' to pctypeid: 9
12/9/2025 10:40:34 AM - PC record created/updated. machineid: 5268
12/9/2025 10:40:34 AM - CreatePCMachineRelationship: Executing SQL: SELECT machineid FROM machines WHERE machinenumber = '6603' AND pctypeid IS NULL
12/9/2025 10:40:34 AM - CreatePCMachineRelationship: Found equipment machineid=174 for machine number: 6603
12/9/2025 10:40:34 AM - CreatePCMachineRelationship: Creating relationship PC 5268 -> Controls -> Equipment 174
12/9/2025 10:40:34 AM - CreatePCMachineRelationship: Checking for duplicate: SELECT relationshipid FROM machinerelationships WHERE machineid = 5268 AND related_machineid = 174 AND relationshiptypeid = 3
12/9/2025 10:40:34 AM - CreatePCMachineRelationship: No duplicate found, proceeding with INSERT
12/9/2025 10:40:34 AM - Created Controls relationship: Equipment 174 controlled by PC 5268
12/9/2025 10:40:34 AM - PC-Machine relationship created: True
12/9/2025 10:40:34 AM - SaveInstalledApps: machineid=5268, raw JSON length=94
12/9/2025 10:40:34 AM - SaveInstalledApps: Parsed 2 apps
12/9/2025 10:40:34 AM - SaveInstalledApps: Saved 2 apps
12/9/2025 10:40:34 AM - Installed apps saved: 2
12/9/2025 10:47:04 AM - === NEW updateCompleteAsset REQUEST ===
12/9/2025 10:47:04 AM - Hostname: TESTPC
12/9/2025 10:47:04 AM - Serial: TEST123
12/9/2025 10:47:04 AM - PC Type: HeatTreat
12/9/2025 10:47:04 AM - PC record created/updated. machineid: 5842

View File

@@ -30,11 +30,11 @@
<div class="card">
<div class="card-body">
<div style="margin-bottom:15px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">PCs</h5>
<div>
<a href="./adddevice.asp" class="btn btn-primary">
<i class="zmdi zmdi-plus"></i> Add Device
<i class="zmdi zmdi-plus-circle"></i> Add Device
</a>
</div>
</div>

View File

@@ -30,11 +30,11 @@
<div class="card">
<div class="card-body">
<div style="margin-bottom:15px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">PCs</h5>
<div>
<a href="./adddevice.asp" class="btn btn-primary">
<i class="zmdi zmdi-plus"></i> Add Device
<i class="zmdi zmdi-plus-circle"></i> Add Device
</a>
</div>
</div>

View File

@@ -267,7 +267,7 @@ Set rs = Nothing
<div class="card-body">
<ul class="nav nav-tabs nav-tabs-primary top-icon nav-justified">
<li class="nav-item">
<a href="javascript:void();" data-target="#additem" data-toggle="pill" class="nav-link"><i class="icon-note"></i> <span class="hidden-xs">Add to the Knowledge Base</span></a>
<a href="javascript:void();" data-target="#additem" data-toggle="pill" class="nav-link"><i class="zmdi zmdi-plus-circle"></i> <span class="hidden-xs">Add to the Knowledge Base</span></a>
</li>
</ul>
<div class="tab-content p-3">