Standardize ASP filenames: remove underscores

Renamed 45 ASP files to follow lowercase concatenated naming convention:
- Direct handlers: save_machine_direct.asp -> savemachinedirect.asp
- USB files: checkin_usb.asp -> checkinusb.asp
- API files: api_usb.asp -> apiusb.asp
- Map files: network_map.asp -> networkmap.asp
- Printer files: printer_lookup.asp -> printerlookup.asp

Also:
- Updated 84+ internal references across all ASP and JS files
- Deleted 6 test/duplicate files (editmacine.asp, test_*.asp)
- Updated production migration guide with filename changes
- Added rename scripts for Linux (bash) and Windows (PowerShell)
This commit is contained in:
cproudlock
2025-12-10 20:40:05 -05:00
parent 6162db9fcf
commit 249bfbba8c
88 changed files with 683 additions and 595 deletions

View File

@@ -60,7 +60,7 @@ If errorType <> "" Then
End If
%>
<form method="post" action="./saveapplication_direct.asp">
<form method="post" action="./saveapplicationdirect.asp">
<div class="form-group">
<label for="appname">Application Name <span class="text-danger">*</span></label>

View File

@@ -57,7 +57,7 @@ Else
End If
%>
<form id="scanForm" method="post" action="./savedevice_direct.asp">
<form id="scanForm" method="post" action="./savedevicedirect.asp">
<div class="form-group">
<label for="serialnumber">Serial Number</label>
<input

View File

@@ -40,7 +40,7 @@
</a>
</div>
<form method="post" action="./addlink_direct.asp">
<form method="post" action="./addlinkdirect.asp">
<div class="form-group">
<label for="shortdescription">Description <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="shortdescription" name="shortdescription"

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: addlink_direct.asp
' FILE: addlinkdirect.asp
' PURPOSE: Add knowledge base article with nested entity creation (topic, support team, app owner)
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -42,7 +42,7 @@
</a>
</div>
<form method="post" action="./savemachine_direct.asp" id="addMachineForm">
<form method="post" action="./savemachinedirect.asp" id="addMachineForm">
<!-- Tab Navigation -->
<ul class="nav nav-tabs nav-tabs-primary top-icon" role="tablist">

View File

@@ -40,7 +40,7 @@
</a>
</div>
<form method="post" action="./savemodel_direct.asp" id="modelForm">
<form method="post" action="./savemodeldirect.asp" id="modelForm">
<div class="form-group">
<label for="modelnumber">Model Number <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="modelnumber" name="modelnumber"

View File

@@ -40,7 +40,7 @@
</a>
</div>
<form method="post" action="./savenotification_direct.asp">
<form method="post" action="./savenotificationdirect.asp">
<div class="form-group">
<label for="notification">Message <span class="text-danger">*</span></label>
<textarea class="form-control" id="notification" name="notification" rows="3"

View File

@@ -40,7 +40,7 @@
</a>
</div>
<form method="post" action="./saveprinter_direct.asp">
<form method="post" action="./saveprinterdirect.asp">
<div class="form-group">
<label for="modelid">Model <span class="text-danger">*</span></label>
<div class="input-group">

View File

@@ -46,7 +46,7 @@
</thead>
<tbody>
<tr>
<form method="post" action="./addsubnetbackend_direct.asp">
<form method="post" action="./addsubnetbackenddirect.asp">
<th scope="row"><input class="form-control" type="text" name="vlan" size="4"></th>
<td><select name="subnettypeid" class="btn btn-light px-3">
<%

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: addsubnetbackend_direct.asp
' FILE: addsubnetbackenddirect.asp
' PURPOSE: Create new subnet with IP address calculations
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -57,7 +57,7 @@ Else
End If
%>
<form id="scanForm" method="post" action="./saveusb_direct.asp">
<form id="scanForm" method="post" action="./saveusbdirect.asp">
<div class="form-group">
<label for="serialnumber">Serial Number</label>
<input

View File

@@ -40,7 +40,7 @@
</a>
</div>
<form method="post" action="./savevendor_direct.asp" id="vendorForm">
<form method="post" action="./savevendordirect.asp" id="vendorForm">
<div class="form-group">
<label for="vendor">Manufacturer Name <span class="text-danger">*</span></label>
<input type="text" class="form-control" id="vendor" name="vendor"

View File

@@ -1,6 +1,6 @@
<%
' Admin utility to clear all cache (Zabbix, Dropdowns, Lists)
' Usage: admin_clear_cache.asp?confirm=yes&type=all|zabbix|dropdown|list
' Usage: adminclearcache.asp?confirm=yes&type=all|zabbix|dropdown|list
%>
<!--#include file="./includes/header.asp"-->
<!--#include file="./includes/sql.asp"-->
@@ -139,7 +139,7 @@ Else
Response.Write("<div class='info' style='margin-top:30px;'>")
Response.Write("<strong>🖨️ Clear Individual Printer Cache</strong>")
Response.Write("<p>To clear cache for a specific printer, enter its IP address:</p>")
Response.Write("<form method='get' action='admin_clear_cache.asp'>")
Response.Write("<form method='get' action='adminclearcache.asp'>")
Response.Write("<input type='hidden' name='confirm' value='yes'>")
Response.Write("<input type='hidden' name='type' value='printer'>")
Response.Write("<div class='form-group'>")

View File

@@ -1,7 +1,7 @@
<%@ Language="VBScript" %>
<%
'=============================================================================
' FILE: api_usb.asp
' FILE: apiusb.asp
' PURPOSE: API endpoints for USB device operations
' SECURITY: Parameterized queries, JSON output
' CREATED: 2025-12-07

View File

@@ -100,7 +100,7 @@ End If
</div>
</div>
<form id="checkinForm" method="post" action="./savecheckin_usb.asp">
<form id="checkinForm" method="post" action="./savecheckinusb.asp">
<input type="hidden" id="checkoutid" name="checkoutid" value="">
<div class="form-group">
@@ -242,7 +242,7 @@ $(document).ready(function() {
$('#loadingArea').show();
$.ajax({
url: './api_usb.asp',
url: './apiusb.asp',
method: 'GET',
data: { action: 'checkin_lookup', serial: serial },
dataType: 'json',
@@ -268,7 +268,7 @@ $(document).ready(function() {
} else {
var errorHtml = '<strong>' + (data.error || 'Error looking up USB') + '</strong>';
if (data.error && data.error.indexOf('not currently checked out') >= 0) {
errorHtml += '<br><br>To checkout this USB, use <a href="./checkout_usb.asp?serial=' + encodeURIComponent(serial) + '">Checkout</a>.';
errorHtml += '<br><br>To checkout this USB, use <a href="./checkoutusb.asp?serial=' + encodeURIComponent(serial) + '">Checkout</a>.';
}
$('#errorMessage').html(errorHtml);
$('#errorArea').show();

View File

@@ -97,7 +97,7 @@ End If
</div>
</div>
<form id="checkoutForm" method="post" action="./savecheckout_usb.asp">
<form id="checkoutForm" method="post" action="./savecheckoutusb.asp">
<input type="hidden" id="machineid" name="machineid" value="">
<div class="form-group">
@@ -240,7 +240,7 @@ $(document).ready(function() {
$('#loadingArea').show();
$.ajax({
url: './api_usb.asp',
url: './apiusb.asp',
method: 'GET',
data: { action: 'lookup', serial: serial },
dataType: 'json',
@@ -252,7 +252,7 @@ $(document).ready(function() {
$('#errorMessage').html('<strong>USB is currently checked out!</strong><br>' +
'Checked out by: ' + data.current_holder + '<br>' +
'Since: ' + data.checkout_time + '<br><br>' +
'Please use <a href="./checkin_usb.asp?serial=' + encodeURIComponent(serial) + '">Check-in</a> first.');
'Please use <a href="./checkinusb.asp?serial=' + encodeURIComponent(serial) + '">Check-in</a> first.');
$('#errorArea').show();
} else {
// Available - show checkout form

View File

@@ -96,8 +96,8 @@
<div class="col-lg-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="network_devices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="network_devices.asp?filter=Access Point">Access Pointes</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp?filter=Access Point">Access Pointes</a></li>
<li class="breadcrumb-item active"><%If isNewRecord Then Response.Write("Add Access Point") Else Response.Write("Edit Access Point")%></li>
</ol>
</nav>
@@ -114,7 +114,7 @@
</h5>
<hr>
<form method="post" action="save_network_device.asp">
<form method="post" action="savenetworkdevice.asp">
<input type="hidden" name="type" value="accesspoint">
<input type="hidden" name="id" value="<%=accesspointid%>">
@@ -360,7 +360,7 @@
<i class="zmdi zmdi-save"></i>
<%If isNewRecord Then Response.Write("Add Access Point") Else Response.Write("Save Changes")%>
</button>
<a href="network_devices.asp?filter=Access Point" class="btn btn-secondary">
<a href="networkdevices.asp?filter=Access Point" class="btn btn-secondary">
<i class="zmdi zmdi-close"></i> Cancel
</a>
<%If Not isNewRecord Then%>
@@ -408,7 +408,7 @@ function confirmDelete() {
if (confirm('Are you sure you want to delete this accesspoint? This action cannot be undone.')) {
var form = document.createElement('form');
form.method = 'POST';
form.action = 'save_network_device.asp';
form.action = 'savenetworkdevice.asp';
var typeInput = document.createElement('input');
typeInput.type = 'hidden';

View File

@@ -118,8 +118,8 @@
<div class="col-lg-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="network_devices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="network_devices.asp?filter=Camera">Cameras</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp?filter=Camera">Cameras</a></li>
<li class="breadcrumb-item active"><%If isNewRecord Then Response.Write("Add Camera") Else Response.Write("Edit Camera")%></li>
</ol>
</nav>
@@ -136,7 +136,7 @@
</h5>
<hr>
<form method="post" action="save_network_device.asp">
<form method="post" action="savenetworkdevice.asp">
<input type="hidden" name="type" value="camera">
<input type="hidden" name="id" value="<%=cameraid%>">
@@ -466,7 +466,7 @@
<i class="zmdi zmdi-save"></i>
<%If isNewRecord Then Response.Write("Add Camera") Else Response.Write("Save Changes")%>
</button>
<a href="network_devices.asp?filter=Camera" class="btn btn-secondary">
<a href="networkdevices.asp?filter=Camera" class="btn btn-secondary">
<i class="zmdi zmdi-close"></i> Cancel
</a>
<%If Not isNewRecord Then%>
@@ -514,7 +514,7 @@ function confirmDelete() {
if (confirm('Are you sure you want to delete this camera? This action cannot be undone.')) {
var form = document.createElement('form');
form.method = 'POST';
form.action = 'save_network_device.asp';
form.action = 'savenetworkdevice.asp';
var typeInput = document.createElement('input');
typeInput.type = 'hidden';

View File

@@ -75,8 +75,8 @@
<div class="col-lg-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="network_devices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="network_devices.asp?filter=IDF">IDFs</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp?filter=IDF">IDFs</a></li>
<li class="breadcrumb-item active"><%If isNewRecord Then Response.Write("Add IDF") Else Response.Write("Edit IDF")%></li>
</ol>
</nav>
@@ -93,7 +93,7 @@
</h5>
<hr>
<form method="post" action="save_network_device.asp">
<form method="post" action="savenetworkdevice.asp">
<input type="hidden" name="type" value="idf">
<input type="hidden" name="id" value="<%=idfid%>">
@@ -166,7 +166,7 @@
<i class="zmdi zmdi-save"></i>
<%If isNewRecord Then Response.Write("Add IDF") Else Response.Write("Save Changes")%>
</button>
<a href="network_devices.asp?filter=IDF" class="btn btn-secondary">
<a href="networkdevices.asp?filter=IDF" class="btn btn-secondary">
<i class="zmdi zmdi-close"></i> Cancel
</a>
<%If Not isNewRecord Then%>
@@ -215,7 +215,7 @@ function confirmDelete() {
// Submit delete request
var form = document.createElement('form');
form.method = 'POST';
form.action = 'save_network_device.asp';
form.action = 'savenetworkdevice.asp';
var typeInput = document.createElement('input');
typeInput.type = 'hidden';

View File

@@ -92,8 +92,8 @@
<div class="col-lg-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="network_devices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="network_devices.asp?filter=Server">Servers</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp?filter=Server">Servers</a></li>
<li class="breadcrumb-item active"><%If isNewRecord Then Response.Write("Add Server") Else Response.Write("Edit Server")%></li>
</ol>
</nav>
@@ -110,7 +110,7 @@
</h5>
<hr>
<form method="post" action="save_network_device.asp">
<form method="post" action="savenetworkdevice.asp">
<input type="hidden" name="type" value="server">
<input type="hidden" name="id" value="<%=serverid%>">
@@ -356,7 +356,7 @@
<i class="zmdi zmdi-save"></i>
<%If isNewRecord Then Response.Write("Add Server") Else Response.Write("Save Changes")%>
</button>
<a href="network_devices.asp?filter=Server" class="btn btn-secondary">
<a href="networkdevices.asp?filter=Server" class="btn btn-secondary">
<i class="zmdi zmdi-close"></i> Cancel
</a>
<%If Not isNewRecord Then%>
@@ -404,7 +404,7 @@ function confirmDelete() {
if (confirm('Are you sure you want to delete this server? This action cannot be undone.')) {
var form = document.createElement('form');
form.method = 'POST';
form.action = 'save_network_device.asp';
form.action = 'savenetworkdevice.asp';
var typeInput = document.createElement('input');
typeInput.type = 'hidden';

View File

@@ -92,8 +92,8 @@
<div class="col-lg-12">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="network_devices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="network_devices.asp?filter=switch">switchs</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp">Network Devices</a></li>
<li class="breadcrumb-item"><a href="networkdevices.asp?filter=switch">switchs</a></li>
<li class="breadcrumb-item active"><%If isNewRecord Then Response.Write("Add switch") Else Response.Write("Edit switch")%></li>
</ol>
</nav>
@@ -110,7 +110,7 @@
</h5>
<hr>
<form method="post" action="save_network_device.asp">
<form method="post" action="savenetworkdevice.asp">
<input type="hidden" name="type" value="switch">
<input type="hidden" name="id" value="<%=switchid%>">
@@ -356,7 +356,7 @@
<i class="zmdi zmdi-save"></i>
<%If isNewRecord Then Response.Write("Add switch") Else Response.Write("Save Changes")%>
</button>
<a href="network_devices.asp?filter=switch" class="btn btn-secondary">
<a href="networkdevices.asp?filter=switch" class="btn btn-secondary">
<i class="zmdi zmdi-close"></i> Cancel
</a>
<%If Not isNewRecord Then%>
@@ -404,7 +404,7 @@ function confirmDelete() {
if (confirm('Are you sure you want to delete this switch? This action cannot be undone.')) {
var form = document.createElement('form');
form.method = 'POST';
form.action = 'save_network_device.asp';
form.action = 'savenetworkdevice.asp';
var typeInput = document.createElement('input');
typeInput.type = 'hidden';

View File

@@ -260,7 +260,7 @@
<div class="tab-pane" id="edit">
<h5 class="mb-3">Edit Application</h5>
<form method="post" action="./editapplication_direct.asp">
<form method="post" action="./editapplicationdirect.asp">
<input type="hidden" name="appid" value="<%=Server.HTMLEncode(rs("appid"))%>">
<div class="form-group">

View File

@@ -21,7 +21,7 @@
' Validate inputs
If deviceType = "" Or deviceId = "" Or Not IsNumeric(deviceId) Or CLng(deviceId) < 1 Then
Response.Redirect("network_devices.asp")
Response.Redirect("networkdevices.asp")
Response.End
End If
@@ -32,7 +32,7 @@
tableName = "idfs"
idField = "idfid"
editUrl = "deviceidf.asp?id=" & deviceId
listUrl = "network_devices.asp?filter=IDF"
listUrl = "networkdevices.asp?filter=IDF"
strSQL = "SELECT i.idfid, i.idfname, i.description, i.maptop, i.mapleft, i.isactive, " & _
"NULL AS vendor, NULL AS modelnumber, NULL AS serialnumber, NULL AS ipaddress, NULL AS macaddress, 'IDF' AS devicetype " & _
"FROM idfs i WHERE i.idfid = " & CLng(deviceId)
@@ -40,7 +40,7 @@
tableName = "servers"
idField = "serverid"
editUrl = "deviceserver.asp?id=" & deviceId
listUrl = "network_devices.asp?filter=Server"
listUrl = "networkdevices.asp?filter=Server"
strSQL = "SELECT s.*, v.vendor, m.modelnumber, s.serialnumber, s.ipaddress, NULL AS macaddress, NULL AS idfname, 'Server' AS devicetype, " & _
"s.servername AS devicename " & _
"FROM servers s " & _
@@ -51,7 +51,7 @@
tableName = "switches"
idField = "switchid"
editUrl = "deviceswitch.asp?id=" & deviceId
listUrl = "network_devices.asp?filter=Switch"
listUrl = "networkdevices.asp?filter=Switch"
strSQL = "SELECT s.*, v.vendor, m.modelnumber, s.serialnumber, s.ipaddress, NULL AS macaddress, NULL AS idfname, 'Switch' AS devicetype, " & _
"s.switchname AS devicename " & _
"FROM switches s " & _
@@ -62,7 +62,7 @@
tableName = "cameras"
idField = "cameraid"
editUrl = "devicecamera.asp?id=" & deviceId
listUrl = "network_devices.asp?filter=Camera"
listUrl = "networkdevices.asp?filter=Camera"
strSQL = "SELECT c.*, v.vendor, m.modelnumber, c.serialnumber, c.ipaddress, c.macaddress, i.idfname, 'Camera' AS devicetype, " & _
"c.cameraname AS devicename " & _
"FROM cameras c " & _
@@ -74,7 +74,7 @@
tableName = "accesspoints"
idField = "apid"
editUrl = "deviceaccesspoint.asp?id=" & deviceId
listUrl = "network_devices.asp?filter=Access Point"
listUrl = "networkdevices.asp?filter=Access Point"
strSQL = "SELECT ap.apid, ap.apname AS devicename, ap.modelid, ap.serialnumber, ap.ipaddress, ap.description, ap.maptop, ap.mapleft, ap.isactive, " & _
"v.vendor, m.modelnumber, NULL AS macaddress, NULL AS idfname, NULL AS idfid, 'Access Point' AS devicetype " & _
"FROM accesspoints ap " & _
@@ -82,7 +82,7 @@
"LEFT JOIN vendors v ON m.vendorid = v.vendorid " & _
"WHERE ap.apid = " & CLng(deviceId)
Case Else
Response.Redirect("network_devices.asp")
Response.Redirect("networkdevices.asp")
Response.End
End Select
@@ -92,7 +92,7 @@
If rs.EOF Then
rs.Close
Set rs = Nothing
Response.Redirect("network_devices.asp")
Response.Redirect("networkdevices.asp")
Response.End
End If
@@ -431,7 +431,7 @@ $(document).ready(function() {
e.preventDefault();
var deviceId = $(this).data('deviceid');
var deviceType = $(this).data('devicetype');
window.open('network_map.asp', '_blank');
window.open('networkmap.asp', '_blank');
});
$popup.on('mouseenter', function() {});

View File

@@ -168,7 +168,7 @@
<a href="javascript:void();" data-target="#applications" data-toggle="pill" class="nav-link"><i class="zmdi zmdi-apps"></i> <span class="hidden-xs">Applications</span></a>
</li>
<li class="nav-item">
<a href="./machine_edit.asp?machineid=<%=Server.HTMLEncode(machineid)%>" class="nav-link" style="background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); color: white;"><i class="zmdi zmdi-edit"></i> <span class="hidden-xs">Edit Machine</span></a>
<a href="./machineedit.asp?machineid=<%=Server.HTMLEncode(machineid)%>" class="nav-link" style="background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); color: white;"><i class="zmdi zmdi-edit"></i> <span class="hidden-xs">Edit Machine</span></a>
</li>
</ul>
<div class="tab-content p-3">

View File

@@ -34,7 +34,7 @@
<div class="card-body">
<div style="margin-bottom:15px;">
<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>
<h5 class="card-title" style="margin:0;"><a href="./machinemap.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">
<i class="zmdi zmdi-plus-circle"></i> Add Machine

View File

@@ -189,7 +189,7 @@
IF rs("installpath") & "" <> "" THEN
response.write ("<a href='./" & Server.HTMLEncode(rs("installpath") & "") & "' title='Download Specific Installer'><i class='zmdi zmdi-download' style='font-size:1.2rem; color:#007bff;'></i> <span style='color:#007bff;'>Specific Installer</span></a>")
ELSE
response.write ("<a href='./install_printer.asp?printerid=" & Server.HTMLEncode(printerid) & "' title='Download Universal Driver Installer'><i class='zmdi zmdi-download' style='font-size:1.2rem; color:#28a745;'></i> <span style='color:#28a745;'>Universal Installer</span></a>")
response.write ("<a href='./installprinter.asp?printerid=" & Server.HTMLEncode(printerid) & "' title='Download Universal Driver Installer'><i class='zmdi zmdi-download' style='font-size:1.2rem; color:#28a745;'></i> <span style='color:#28a745;'>Universal Installer</span></a>")
END IF
%>
</p>

View File

@@ -31,7 +31,7 @@
<div class="card-body">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">
<a href="./printermap.asp" target="_blank"><i class='zmdi zmdi-map' title='Show Printer Map' style='color:#fff;'></i></a>&nbsp&nbsp<a href="./tonerreport.asp" target="_blank"><i class='zmdi zmdi-collection-image text-yellow' title='Low Toner Report'></i></a>&nbsp&nbsp<a href="./printer_installer_map.asp" target="_blank"><i class='zmdi zmdi-download' title='Printer Installer Map' style='color:#fff;'></i></a>&nbsp&nbsp&nbsp&nbsp;Printers
<a href="./printermap.asp" target="_blank"><i class='zmdi zmdi-map' title='Show Printer Map' style='color:#fff;'></i></a>&nbsp&nbsp<a href="./tonerreport.asp" target="_blank"><i class='zmdi zmdi-collection-image text-yellow' title='Low Toner Report'></i></a>&nbsp&nbsp<a href="./printerinstallermap.asp" target="_blank"><i class='zmdi zmdi-download' title='Printer Installer Map' style='color:#fff;'></i></a>&nbsp&nbsp&nbsp&nbsp;Printers
</h5>
<div>
<a href="./addprinter.asp" class="btn btn-primary">
@@ -103,7 +103,7 @@
If installpath <> "" Then
Response.write("<td><a href='./" & installpath & "'><i class='zmdi zmdi-download' title='Click to Download Specific Installer' style='color:#fff;'></i></a></td>")
Else
Response.write("<td><a href='./install_printer.asp?printerid=" & printer & "'><i class='zmdi zmdi-download' title='Click to Download Universal Driver Installer' style='color:#fff;'></i></a></td>")
Response.write("<td><a href='./installprinter.asp?printerid=" & printer & "'><i class='zmdi zmdi-download' title='Click to Download Universal Driver Installer' style='color:#fff;'></i></a></td>")
End If
' ID column

View File

@@ -497,7 +497,7 @@ End If
</div>
<div class="mt-2">
<a href="./usb_history.asp?sso=<%=Server.URLEncode(sso)%>" class="btn btn-outline-primary btn-sm">
<a href="./usbhistory.asp?sso=<%=Server.URLEncode(sso)%>" class="btn btn-outline-primary btn-sm">
<i class="zmdi zmdi-open-in-new"></i> View Full History
</a>
</div>

View File

@@ -88,7 +88,7 @@
</thead>
<tbody>
<tr>
<form method="post" action="./updatesubnet_direct.asp?subnetid=<%Response.Write(subnetid)%>">
<form method="post" action="./updatesubnetdirect.asp?subnetid=<%Response.Write(subnetid)%>">
<th scope="row"><input class="form-control" type="text" name="vlan" size="4" value="<%Response.Write(rs("vlan"))%>"></th>
<td><select name="subnettypeid" class="btn btn-light px-3">
<option value="<%Response.Write(rs("subnettypeid"))%>"><%Response.Write(rs("subnettype"))%></option>

View File

@@ -54,7 +54,7 @@
</thead>
<tbody>
<tr>
<form method="post" action="./addsubnetbackend_direct.asp">
<form method="post" action="./addsubnetbackenddirect.asp">
<th scope="row"><input class="form-control" type="text" name="vlan" size="4"></th>
<td><select name="subnettypeid" class="btn btn-light px-3">
<%
@@ -94,7 +94,7 @@
<BR>
</div>
</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>
<h5 class="card-title"><a href="./networkmap.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-hover">
<thead>

View File

@@ -66,10 +66,10 @@
<i class="zmdi zmdi-time"></i> Checked Out
</a>
<% End If %>
<a href="./checkout_usb.asp" class="btn btn-primary btn-sm">
<a href="./checkoutusb.asp" class="btn btn-primary btn-sm">
<i class="zmdi zmdi-arrow-right"></i> Checkout
</a>
<a href="./checkin_usb.asp" class="btn btn-secondary btn-sm">
<a href="./checkinusb.asp" class="btn btn-secondary btn-sm">
<i class="zmdi zmdi-arrow-left"></i> Check-in
</a>
<a href="./addusb.asp" class="btn btn-success btn-sm">
@@ -165,15 +165,15 @@
<td><%=Server.HTMLEncode(checkoutTime)%></td>
<td>
<% If IsNull(checkoutId) Then %>
<a href="./checkout_usb.asp?serial=<%=Server.URLEncode(serialNum)%>" class="btn btn-sm btn-primary" title="Checkout this USB">
<a href="./checkoutusb.asp?serial=<%=Server.URLEncode(serialNum)%>" class="btn btn-sm btn-primary" title="Checkout this USB">
<i class="zmdi zmdi-arrow-right"></i>
</a>
<% Else %>
<a href="./checkin_usb.asp?serial=<%=Server.URLEncode(serialNum)%>" class="btn btn-sm btn-success" title="Check-in this USB">
<a href="./checkinusb.asp?serial=<%=Server.URLEncode(serialNum)%>" class="btn btn-sm btn-success" title="Check-in this USB">
<i class="zmdi zmdi-arrow-left"></i>
</a>
<% End If %>
<a href="./usb_history.asp?machineid=<%=machineId%>" class="btn btn-sm btn-secondary" title="View history">
<a href="./usbhistory.asp?machineid=<%=machineId%>" class="btn btn-sm btn-secondary" title="View history">
<i class="zmdi zmdi-time"></i>
</a>
</td>

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: editapplication_direct.asp
' FILE: editapplicationdirect.asp
' PURPOSE: Edit application with nested entity creation
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -194,7 +194,7 @@
</a>
</div>
<form method="post" action="./updatedevice_direct.asp" id="editDeviceForm">
<form method="post" action="./updatedevicedirect.asp" id="editDeviceForm">
<input type="hidden" name="machineid" value="<%=machineid%>">
<!-- Tab Navigation -->

View File

@@ -70,7 +70,7 @@
</a>
</div>
<form method="post" action="./updatelink_direct.asp">
<form method="post" action="./updatelinkdirect.asp">
<input type="hidden" name="linkid" value="<%=linkid%>">
<div class="form-group">

View File

@@ -1,3 +0,0 @@
<%
Response.Write("TEST OK")
%>

View File

@@ -1,305 +0,0 @@
<%
'=============================================================================
' FILE: editmacine.asp
' PURPOSE: Edit machine information with nested entity creation
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns
' REFACTORED: 2025-10-27 - Removed machinetypeid (now inherited from models table)
' NOTE: File has typo in name (macine vs machine) - preserved for compatibility
' NOTE: Machines now inherit machinetypeid from their model. Each model has one machine type.
'=============================================================================
%><html>
<head>
<link rel="stylesheet" href="./style.css" type="text/css">
<!--#include file="./includes/sql.asp"-->
<!--#include file="./includes/validation.asp"-->
<!--#include file="./includes/db_helpers.asp"-->
</head>
<body>
<div class="page">
<%
'=============================================================================
' SECURITY: Validate machineid from querystring
'=============================================================================
Dim machineid
machineid = GetSafeInteger("QS", "machineid", 0, 1, 999999)
If machineid = 0 Then
Response.Write("<div class='alert alert-danger'>Error: Invalid machine ID.</div>")
Response.Write("<a href='displaymachines.asp'>Go back</a>")
objConn.Close
Response.End
End If
'=============================================================================
' SECURITY: Get and validate all form inputs
'=============================================================================
Dim modelid, businessunitid, printerid, mapleft, maptop
modelid = GetSafeString("FORM", "modelid", "", 1, 50, "")
businessunitid = GetSafeString("FORM", "businessunitid", "", 1, 50, "")
printerid = GetSafeInteger("FORM", "printerid", 0, 0, 999999)
mapleft = GetSafeInteger("FORM", "mapleft", 0, 0, 9999)
maptop = GetSafeInteger("FORM", "maptop", 0, 0, 9999)
' Get form inputs for new business unit
Dim newbusinessunit
newbusinessunit = GetSafeString("FORM", "newbusinessunitname", "", 0, 50, "")
' Get form inputs for new model
Dim newmodelnumber, newvendorid, newmodelimage, newmodelmachinetypeid
newmodelnumber = GetSafeString("FORM", "newmodelnumber", "", 0, 255, "")
newvendorid = GetSafeString("FORM", "newvendorid", "", 0, 50, "")
newmodelimage = GetSafeString("FORM", "newmodelimage", "", 0, 255, "")
newmodelmachinetypeid = GetSafeString("FORM", "newmodelmachinetypeid", "", 0, 50, "")
' Get form inputs for new vendor
Dim newvendorname
newvendorname = GetSafeString("FORM", "newvendorname", "", 0, 50, "")
'=============================================================================
' Validate required fields
'=============================================================================
If modelid <> "new" And (Not IsNumeric(modelid)) Then
Response.Write("<div class='alert alert-danger'>Error: Invalid model ID.</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
If businessunitid <> "new" And (Not IsNumeric(businessunitid)) Then
Response.Write("<div class='alert alert-danger'>Error: Invalid business unit ID.</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
'=============================================================================
' SECURITY: Handle new business unit creation with parameterized query
'=============================================================================
If businessunitid = "new" Then
If Len(newbusinessunit) = 0 Then
Response.Write("<div class='alert alert-danger'>New business unit name is required</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
' Insert new business unit using parameterized query
Dim sqlNewBU
sqlNewBU = "INSERT INTO businessunits (businessunit, isactive) VALUES (?, 1)"
On Error Resume Next
Dim cmdNewBU
Set cmdNewBU = Server.CreateObject("ADODB.Command")
cmdNewBU.ActiveConnection = objConn
cmdNewBU.CommandText = sqlNewBU
cmdNewBU.CommandType = 1
cmdNewBU.Parameters.Append cmdNewBU.CreateParameter("@businessunit", 200, 1, 50, newbusinessunit)
cmdNewBU.Execute
If Err.Number <> 0 Then
Response.Write("<div class='alert alert-danger'>Error creating new business unit: " & Server.HTMLEncode(Err.Description) & "</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
' Get the newly created business unit ID
Dim rsNewBU
Set rsNewBU = objConn.Execute("SELECT LAST_INSERT_ID() AS newid")
businessunitid = 0
If Not rsNewBU.EOF Then
If Not IsNull(rsNewBU("newid")) Then
businessunitid = CLng(rsNewBU("newid"))
End If
End If
rsNewBU.Close
Set rsNewBU = Nothing
Set cmdNewBU = Nothing
On Error Goto 0
End If
'=============================================================================
' SECURITY: Handle new model creation with parameterized query
'=============================================================================
If modelid = "new" Then
If Len(newmodelnumber) = 0 Then
Response.Write("<div class='alert alert-danger'>New model number is required</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
If Len(newvendorid) = 0 Then
Response.Write("<div class='alert alert-danger'>Vendor is required for new model</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
If Len(newmodelmachinetypeid) = 0 Or Not IsNumeric(newmodelmachinetypeid) Then
Response.Write("<div class='alert alert-danger'>Machine type is required for new model</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
' Handle new vendor creation (nested)
If newvendorid = "new" Then
If Len(newvendorname) = 0 Then
Response.Write("<div class='alert alert-danger'>New vendor name is required</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
' Insert new vendor using parameterized query
Dim sqlNewVendor
sqlNewVendor = "INSERT INTO vendors (vendor, isactive, isprinter, ispc, ismachine) VALUES (?, 1, 0, 0, 1)"
On Error Resume Next
Dim cmdNewVendor
Set cmdNewVendor = Server.CreateObject("ADODB.Command")
cmdNewVendor.ActiveConnection = objConn
cmdNewVendor.CommandText = sqlNewVendor
cmdNewVendor.CommandType = 1
cmdNewVendor.Parameters.Append cmdNewVendor.CreateParameter("@vendor", 200, 1, 50, newvendorname)
cmdNewVendor.Execute
If Err.Number <> 0 Then
Response.Write("<div class='alert alert-danger'>Error creating new vendor: " & Server.HTMLEncode(Err.Description) & "</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
' Get the newly created vendor ID
Dim rsNewVendor
Set rsNewVendor = objConn.Execute("SELECT LAST_INSERT_ID() AS newid")
newvendorid = 0
If Not rsNewVendor.EOF Then
If Not IsNull(rsNewVendor("newid")) Then
newvendorid = CLng(rsNewVendor("newid"))
End If
End If
rsNewVendor.Close
Set rsNewVendor = Nothing
Set cmdNewVendor = Nothing
On Error Goto 0
End If
' Set default image if not specified
If newmodelimage = "" Then
newmodelimage = "default.png"
End If
' Insert new model using parameterized query (including machinetypeid)
Dim sqlNewModel
sqlNewModel = "INSERT INTO models (modelnumber, vendorid, machinetypeid, image, isactive) VALUES (?, ?, ?, ?, 1)"
On Error Resume Next
Dim cmdNewModel
Set cmdNewModel = Server.CreateObject("ADODB.Command")
cmdNewModel.ActiveConnection = objConn
cmdNewModel.CommandText = sqlNewModel
cmdNewModel.CommandType = 1
cmdNewModel.Parameters.Append cmdNewModel.CreateParameter("@modelnumber", 200, 1, 255, newmodelnumber)
cmdNewModel.Parameters.Append cmdNewModel.CreateParameter("@vendorid", 3, 1, , CLng(newvendorid))
cmdNewModel.Parameters.Append cmdNewModel.CreateParameter("@machinetypeid", 3, 1, , CLng(newmodelmachinetypeid))
cmdNewModel.Parameters.Append cmdNewModel.CreateParameter("@image", 200, 1, 255, newmodelimage)
cmdNewModel.Execute
If Err.Number <> 0 Then
Response.Write("<div class='alert alert-danger'>Error creating new model: " & Server.HTMLEncode(Err.Description) & "</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
objConn.Close
Response.End
End If
' Get the newly created model ID
Dim rsNewModel
Set rsNewModel = objConn.Execute("SELECT LAST_INSERT_ID() AS newid")
modelid = 0
If Not rsNewModel.EOF Then
If Not IsNull(rsNewModel("newid")) Then
modelid = CLng(rsNewModel("newid"))
End If
End If
rsNewModel.Close
Set rsNewModel = Nothing
Set cmdNewModel = Nothing
On Error Goto 0
End If
'=============================================================================
' SECURITY: Update machine using parameterized query
'=============================================================================
' Build UPDATE statement with parameterized query
' NOTE: machinetypeid is now inherited from models table and doesn't need to be updated
Dim strSQL, paramCount
paramCount = 0
strSQL = "UPDATE machines SET modelnumberid = ?, businessunitid = ?"
paramCount = 2
' Add optional printerid
If printerid > 0 Then
strSQL = strSQL & ", printerid = ?"
paramCount = paramCount + 1
End If
' Add optional map coordinates
If mapleft > 0 And maptop > 0 Then
strSQL = strSQL & ", mapleft = ?, maptop = ?"
paramCount = paramCount + 2
End If
strSQL = strSQL & " WHERE machineid = ?"
On Error Resume Next
Dim cmdUpdate
Set cmdUpdate = Server.CreateObject("ADODB.Command")
cmdUpdate.ActiveConnection = objConn
cmdUpdate.CommandText = strSQL
cmdUpdate.CommandType = 1
' Add parameters in order
cmdUpdate.Parameters.Append cmdUpdate.CreateParameter("@modelnumberid", 3, 1, , CLng(modelid))
cmdUpdate.Parameters.Append cmdUpdate.CreateParameter("@businessunitid", 3, 1, , CLng(businessunitid))
If printerid > 0 Then
cmdUpdate.Parameters.Append cmdUpdate.CreateParameter("@printerid", 3, 1, , CLng(printerid))
End If
If mapleft > 0 And maptop > 0 Then
cmdUpdate.Parameters.Append cmdUpdate.CreateParameter("@mapleft", 3, 1, , CLng(mapleft))
cmdUpdate.Parameters.Append cmdUpdate.CreateParameter("@maptop", 3, 1, , CLng(maptop))
End If
cmdUpdate.Parameters.Append cmdUpdate.CreateParameter("@machineid", 3, 1, , CLng(machineid))
cmdUpdate.Execute
If Err.Number <> 0 Then
Response.Write("<div class='alert alert-danger'>Error: " & Server.HTMLEncode(Err.Description) & "</div>")
Response.Write("<a href='displaymachine.asp?machineid=" & Server.HTMLEncode(machineid) & "'>Go back</a>")
Set cmdUpdate = Nothing
objConn.Close
Response.End
End If
Set cmdUpdate = Nothing
On Error Goto 0
%>
<meta http-equiv="refresh" content="0; url=./displaymachine.asp?machineid=<%=Server.HTMLEncode(machineid)%>">
<%
'=============================================================================
' CLEANUP
'=============================================================================
objConn.Close
%>
</div>
</body>
</html>

View File

@@ -102,7 +102,7 @@
</a>
</div>
<form method="post" action="./updatenotification_direct.asp">
<form method="post" action="./updatenotificationdirect.asp">
<input type="hidden" name="notificationid" value="<%=notificationid%>">
<div class="form-group">

View File

@@ -83,7 +83,7 @@ End If
<li class="sidebar-header">Admin</li>
<li><a href="./displaysubnets.asp"><i class="zmdi zmdi-network text-danger"></i><span>Network</span></a></li>
<li><a href="./network_devices.asp"><i class="zmdi zmdi-device-hub text-info"></i><span>Network Devices</span></a></li>
<li><a href="./networkdevices.asp"><i class="zmdi zmdi-device-hub text-info"></i><span>Network Devices</span></a></li>
<li><a href="./displaypcs.asp"><i class="zmdi zmdi-desktop-windows text-primary"></i><span>PC Admin</span></a></li>
<li><a href="./displayusb.asp"><i class="zmdi zmdi-usb text-purple"></i><span>USB Devices</span></a></li>
<li><a href="./displaynotifications.asp"><i class="zmdi zmdi zmdi-notifications-none text-success"></i><span>Notifications</span></a></li>

View File

@@ -38,7 +38,7 @@ Function GetPrinterDataCached(hostIP)
Dim http
Set http = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
' True = async (doesn't block user)
http.Open "GET", "http://localhost/refresh_zabbix_cache.asp?ip=" & Server.URLEncode(hostIP), True
http.Open "GET", "http://localhost/refreshzabbixcache.asp?ip=" & Server.URLEncode(hostIP), True
http.Send
Set http = Nothing
On Error Goto 0

View File

@@ -1,7 +1,7 @@
<!--#include file="./includes/sql.asp"-->
<%
'=============================================================================
' FILE: insert_all_printer_machines.asp
' FILE: insertallprintermachines.asp
' PURPOSE: Insert ALL printer machines from printers table
' CREATED: 2025-10-20
'
@@ -212,7 +212,7 @@ If executeInsert <> True And CLng(totalToInsert) > 0 Then
Response.Write("<div style='background:#d1ecf1; padding:15px; margin:10px 0; border:1px solid #bee5eb;'>")
Response.Write("<h3>Ready to Execute?</h3>")
Response.Write("<p>This will insert <strong>" & totalToInsert & " printer machine(s)</strong> into the database.</p>")
Response.Write("<form method='get' action='insert_all_printer_machines.asp'>")
Response.Write("<form method='get' action='insertallprintermachines.asp'>")
Response.Write("<input type='hidden' name='execute' value='1'>")
Response.Write("<button type='submit' style='background:#28a745; color:white; padding:10px 20px; font-size:16px; border:none; cursor:pointer; border-radius:5px;'>")
Response.Write("&#10003; Execute INSERT for All " & totalToInsert & " Printers")

View File

@@ -1,11 +1,11 @@
<%@ Language=VBScript %>
<!--#include file="./includes/sql.asp"-->
<%
' install_printer.asp
' installprinter.asp
' Generates a batch file to install printer(s)
' - If printer has installpath: downloads and runs specific .exe
' - If no installpath: downloads universal PrinterInstaller.exe
' Usage: install_printer.asp?printer=GuardDesk-HIDDTC
' Usage: installprinter.asp?printer=GuardDesk-HIDDTC
Dim printerNames, printerIds, printerArray, i, fileName
printerNames = Request.QueryString("printer")
@@ -80,7 +80,7 @@ If printerIds <> "" Or printerNames <> "" Then
' Determine printer name to use
' Prefer Windows Name from database if it's already in standardized format (contains dashes)
' Otherwise generate standardized name (same logic as api_printers.asp)
' Otherwise generate standardized name (same logic as apiprinters.asp)
Dim machineAlias, machineNumber, machineName, cleanMachine, cleanModel, shortDescription, standardName
' Check if printerwindowsname is already standardized (contains dashes, not just spaces)

View File

@@ -4,7 +4,7 @@
<!--#include file="./includes/header.asp"-->
<!--#include file="./includes/sql.asp"-->
<title>Machine Map Editor - ShopDB</title>
<!-- Leaflet CSS (local copy like machine_map.asp) -->
<!-- Leaflet CSS (local copy like machinemap.asp) -->
<link rel="stylesheet" href="./leaflet/leaflet.css" />
<style>
.editor-container {
@@ -139,7 +139,7 @@
<h4 class="page-title">Machine Map Editor</h4>
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="index.asp">Dashboard</a></li>
<li class="breadcrumb-item"><a href="machine_map.asp">Machine Map</a></li>
<li class="breadcrumb-item"><a href="machinemap.asp">Machine Map</a></li>
<li class="breadcrumb-item active">Editor</li>
</ol>
</div>
@@ -221,7 +221,7 @@ Set rsMT = Nothing
<script src="assets/plugins/simplebar/js/simplebar.js"></script>
<script src="assets/js/sidebar-menu.js"></script>
<script src="assets/js/app-script.js"></script>
<!-- Leaflet JS (local copy like machine_map.asp) -->
<!-- Leaflet JS (local copy like machinemap.asp) -->
<script src="./leaflet/leaflet.js"></script>
<script>
@@ -230,7 +230,7 @@ var theme = '<%=theme%>';
var lightThemes = ['bg-theme11', 'bg-theme13'];
var mapImageUrl = lightThemes.includes(theme) ? './images/sitemap2025-light.png' : './images/sitemap2025-dark.png';
// Machine type colors (exact copy from machine_map.asp)
// Machine type colors (exact copy from machinemap.asp)
var machineTypeColors = {
'1': '#4CAF50', // CNC
'2': '#2196F3', // Grinder
@@ -309,7 +309,7 @@ $(document).ready(function() {
});
function initMap() {
// Create map with simple CRS (same as machine_map.asp)
// Create map with simple CRS (same as machinemap.asp)
map = L.map('map', {
crs: L.CRS.Simple,
minZoom: -3,
@@ -319,7 +319,7 @@ function initMap() {
var bounds = [[0, 0], [2550, 3300]];
L.imageOverlay(mapImageUrl, bounds).addTo(map);
map.fitBounds(bounds);
map.setView([1275, 1650], -2.3); // Match machine_map.asp zoom level
map.setView([1275, 1650], -2.3); // Match machinemap.asp zoom level
// Add markers for all machines with positions
machines.forEach(function(m) {
@@ -339,7 +339,7 @@ function addMarker(machine) {
className: ''
});
// Convert database Y (top-down) to Leaflet Y (bottom-up) - same as machine_map.asp
// Convert database Y (top-down) to Leaflet Y (bottom-up) - same as machinemap.asp
var leafletY = 2550 - machine.top;
var marker = L.marker([leafletY, machine.left], {
icon: icon,

View File

@@ -30,7 +30,7 @@
<div class="card-body">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
<h5 class="card-title" style="margin:0;">
<a href="./network_map.asp" target="_blank"><i class='zmdi zmdi-map' title='Show Network Map'></i></a>&nbsp&nbsp&nbsp&nbsp;Network Devices
<a href="./networkmap.asp" target="_blank"><i class='zmdi zmdi-map' title='Show Network Map'></i></a>&nbsp&nbsp&nbsp&nbsp;Network Devices
</h5>
<div class="btn-group">
<button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
@@ -55,37 +55,37 @@
%>
<ul class="nav nav-tabs" style="margin-bottom:20px;">
<li class="nav-item">
<a class="nav-link <%If filterType="all" Then Response.Write("active")%>" href="network_devices.asp?filter=all">
<a class="nav-link <%If filterType="all" Then Response.Write("active")%>" href="networkdevices.asp?filter=all">
All Devices
</a>
</li>
<li class="nav-item">
<a class="nav-link <%If filterType="Access Point" Then Response.Write("active")%>" href="network_devices.asp?filter=Access Point">
<a class="nav-link <%If filterType="Access Point" Then Response.Write("active")%>" href="networkdevices.asp?filter=Access Point">
<i class="zmdi zmdi-wifi"></i> Access Points
</a>
</li>
<li class="nav-item">
<a class="nav-link <%If filterType="Camera" Then Response.Write("active")%>" href="network_devices.asp?filter=Camera">
<a class="nav-link <%If filterType="Camera" Then Response.Write("active")%>" href="networkdevices.asp?filter=Camera">
<i class="zmdi zmdi-videocam"></i> Cameras
</a>
</li>
<li class="nav-item">
<a class="nav-link <%If filterType="IDF" Then Response.Write("active")%>" href="network_devices.asp?filter=IDF">
<a class="nav-link <%If filterType="IDF" Then Response.Write("active")%>" href="networkdevices.asp?filter=IDF">
<i class="zmdi zmdi-city-alt"></i> IDFs
</a>
</li>
<li class="nav-item">
<a class="nav-link <%If filterType="Printer" Then Response.Write("active")%>" href="network_devices.asp?filter=Printer">
<a class="nav-link <%If filterType="Printer" Then Response.Write("active")%>" href="networkdevices.asp?filter=Printer">
<i class="zmdi zmdi-print"></i> Printers
</a>
</li>
<li class="nav-item">
<a class="nav-link <%If filterType="Server" Then Response.Write("active")%>" href="network_devices.asp?filter=Server">
<a class="nav-link <%If filterType="Server" Then Response.Write("active")%>" href="networkdevices.asp?filter=Server">
<i class="zmdi zmdi-storage"></i> Servers
</a>
</li>
<li class="nav-item">
<a class="nav-link <%If filterType="Switch" Then Response.Write("active")%>" href="network_devices.asp?filter=Switch">
<a class="nav-link <%If filterType="Switch" Then Response.Write("active")%>" href="networkdevices.asp?filter=Switch">
<i class="zmdi zmdi-device-hub"></i> Switches
</a>
</li>

View File

@@ -386,7 +386,7 @@ while not rs.eof
} else if (sourceTable === 'idfs') {
detailUrl = './displayidf.asp?id=' + machineId;
} else {
detailUrl = './network_devices.asp';
detailUrl = './networkdevices.asp';
}
var popupContent = '<div style="background:#1f1f1f; color:#fff; min-width:250px; border-radius:4px; overflow:hidden;">' +

View File

@@ -56,7 +56,7 @@ objConn.Close
<li>All coordinates above should be within these bounds</li>
</ul>
<p><a href="network_map.asp" style="color:#4fc3f7;">Back to Network Map</a></p>
<p><a href="networkmap.asp" style="color:#4fc3f7;">Back to Network Map</a></p>
</body>
</html>

View File

@@ -391,7 +391,7 @@ function downloadInstaller() {
// Pass printer IDs for reliable lookup (names are generated dynamically and may not match DB)
var printerParam = printerIds.join(',');
window.location.href = 'install_printer.asp?printerid=' + encodeURIComponent(printerParam);
window.location.href = 'installprinter.asp?printerid=' + encodeURIComponent(printerParam);
}
</script>

View File

@@ -1,6 +1,6 @@
<!--#include file="./includes/sql.asp"-->
<%
' printer_links_generator.asp
' printerlinksgenerator.asp
' Generates installation links for all printers in the database
' Shows both single-click launcher links and direct installer command-line parameters
@@ -91,7 +91,7 @@ Do While Not rs.EOF
End If
' Generate URLs
webLink = "https://tsgwp00525.rd.ds.ge.com/shopdb/install_printer.asp?printer=" & Server.URLEncode(printerName)
webLink = "https://tsgwp00525.rd.ds.ge.com/shopdb/installprinter.asp?printer=" & Server.URLEncode(printerName)
cmdLine = "PrinterInstaller.exe /PRINTER=" & printerName
' Output table row

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: saveapplication_direct.asp
' FILE: saveapplicationdirect.asp
' PURPOSE: Create new application with nested entity creation
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: savecheckin_usb.asp
' FILE: savecheckinusb.asp
' PURPOSE: Process USB check-in request
' SECURITY: Parameterized queries, input validation
' CREATED: 2025-12-07
@@ -18,7 +18,7 @@
' Validate checkoutid
If checkoutid = "" Or Not IsNumeric(checkoutid) Then
objConn.Close
ShowError "Invalid checkout ID.", "checkin_usb.asp"
ShowError "Invalid checkout ID.", "checkinusb.asp"
Response.End
End If
@@ -28,7 +28,7 @@
wipedValue = 1
Else
objConn.Close
ShowError "You must confirm the USB has been wiped before check-in.", "checkin_usb.asp"
ShowError "You must confirm the USB has been wiped before check-in.", "checkinusb.asp"
Response.End
End If
@@ -52,7 +52,7 @@
Set rsCheck = Nothing
Set cmdCheck = Nothing
objConn.Close
ShowError "Checkout record not found or already checked in.", "checkin_usb.asp"
ShowError "Checkout record not found or already checked in.", "checkinusb.asp"
Response.End
End If
@@ -104,6 +104,6 @@
updateErr = Err.Description
Set cmdUpdate = Nothing
objConn.Close
ShowError "Error checking in USB: " & Server.HTMLEncode(updateErr), "checkin_usb.asp"
ShowError "Error checking in USB: " & Server.HTMLEncode(updateErr), "checkinusb.asp"
End If
%>

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: savecheckout_usb.asp
' FILE: savecheckoutusb.asp
' PURPOSE: Process USB checkout request
' SECURITY: Parameterized queries, input validation
' CREATED: 2025-12-07
@@ -18,14 +18,14 @@
' Validate machineid
If machineid = "" Or Not IsNumeric(machineid) Then
objConn.Close
ShowError "Invalid USB device ID.", "checkout_usb.asp"
ShowError "Invalid USB device ID.", "checkoutusb.asp"
Response.End
End If
' Validate SSO - must be 9 digits
If sso = "" Or Len(sso) <> 9 Then
objConn.Close
ShowError "SSO must be exactly 9 digits.", "checkout_usb.asp"
ShowError "SSO must be exactly 9 digits.", "checkoutusb.asp"
Response.End
End If
@@ -35,7 +35,7 @@
c = Mid(sso, i, 1)
If c < "0" Or c > "9" Then
objConn.Close
ShowError "SSO must contain only digits.", "checkout_usb.asp"
ShowError "SSO must contain only digits.", "checkoutusb.asp"
Response.End
End If
Next
@@ -60,7 +60,7 @@
Set rsCheck = Nothing
Set cmdCheck = Nothing
objConn.Close
ShowError "USB device not found.", "checkout_usb.asp"
ShowError "USB device not found.", "checkoutusb.asp"
Response.End
End If
@@ -79,7 +79,7 @@
If isCheckedOut > 0 Then
objConn.Close
ShowError "USB device '" & Server.HTMLEncode(serialnumber) & "' is already checked out.", "checkout_usb.asp"
ShowError "USB device '" & Server.HTMLEncode(serialnumber) & "' is already checked out.", "checkoutusb.asp"
Response.End
End If
@@ -121,6 +121,6 @@
insertErr = Err.Description
Set cmdInsert = Nothing
objConn.Close
ShowError "Error checking out USB: " & Server.HTMLEncode(insertErr), "checkout_usb.asp"
ShowError "Error checking out USB: " & Server.HTMLEncode(insertErr), "checkoutusb.asp"
End If
%>

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: savedevice_direct.asp
' FILE: savedevicedirect.asp
' PURPOSE: Create new PC with minimal required fields (PC-only scanner)
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-12-09 - All PCs use machinetypeid 33, pctypeid determines type

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: savemachine_direct.asp
' FILE: savemachinedirect.asp
' PURPOSE: Create new machine with nested entity creation (vendor, model, business unit)
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -3,7 +3,7 @@
' FILE: savemachineedit.asp
' PURPOSE: Update existing machine with nested entity creation (vendor, model, business unit)
' SECURITY: Parameterized queries, HTML encoding, input validation
' CREATED: 2025-11-07 - Based on savemachine_direct.asp
' CREATED: 2025-11-07 - Based on savemachinedirect.asp
' NOTE: Machines now inherit machinetypeid from their model. Each model has one machine type.
'=============================================================================
%>

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: savemodel_direct.asp
' FILE: savemodeldirect.asp
' PURPOSE: Create new model with optional vendor creation
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: save_network_device.asp
' FILE: savenetworkdevice.asp
' PURPOSE: Universal save endpoint for all network devices (IDF, Server, Switch, Camera, Access Point)
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-11-11 - Updated for Phase 3 Migration (machines table)
@@ -21,7 +21,7 @@ isDelete = Trim(Request.Form("delete"))
' Validate device type
If deviceType <> "idf" And deviceType <> "server" And deviceType <> "switch" And deviceType <> "camera" And deviceType <> "accesspoint" Then
objConn.Close
ShowError "Invalid device type.", "network_devices.asp"
ShowError "Invalid device type.", "networkdevices.asp"
Response.End
End If
@@ -29,7 +29,7 @@ End If
If deviceId = "" Then deviceId = "0"
If Not IsNumeric(deviceId) Then
objConn.Close
ShowError "Invalid device ID.", "network_devices.asp"
ShowError "Invalid device ID.", "networkdevices.asp"
Response.End
End If
@@ -39,27 +39,27 @@ Select Case deviceType
Case "idf"
machineTypeId = 17
nameField = "idfname"
redirectUrl = "network_devices.asp?filter=IDF"
redirectUrl = "networkdevices.asp?filter=IDF"
deviceDisplayName = "IDF"
Case "server"
machineTypeId = 20
nameField = "servername"
redirectUrl = "network_devices.asp?filter=Server"
redirectUrl = "networkdevices.asp?filter=Server"
deviceDisplayName = "Server"
Case "switch"
machineTypeId = 19
nameField = "switchname"
redirectUrl = "network_devices.asp?filter=Switch"
redirectUrl = "networkdevices.asp?filter=Switch"
deviceDisplayName = "Switch"
Case "camera"
machineTypeId = 18
nameField = "cameraname"
redirectUrl = "network_devices.asp?filter=Camera"
redirectUrl = "networkdevices.asp?filter=Camera"
deviceDisplayName = "Camera"
Case "accesspoint"
machineTypeId = 16
nameField = "apname"
redirectUrl = "network_devices.asp?filter=Access Point"
redirectUrl = "networkdevices.asp?filter=Access Point"
deviceDisplayName = "Access Point"
End Select
@@ -98,14 +98,14 @@ End If
' Validate name field (required for all)
If deviceName = "" Then
objConn.Close
ShowError deviceDisplayName & " name is required.", "network_devices.asp"
ShowError deviceDisplayName & " name is required.", "networkdevices.asp"
Response.End
End If
' Validate field lengths
If Len(deviceName) > 100 Or Len(description) > 255 Then
objConn.Close
ShowError "Field length exceeded.", "network_devices.asp"
ShowError "Field length exceeded.", "networkdevices.asp"
Response.End
End If
@@ -143,13 +143,13 @@ If modelid = "new" Then
' Validate required fields for new model
If newmodelnumber = "" Then
objConn.Close
ShowError "Model number is required.", "network_devices.asp"
ShowError "Model number is required.", "networkdevices.asp"
Response.End
End If
If newvendorid = "" Then
objConn.Close
ShowError "Vendor is required for new model.", "network_devices.asp"
ShowError "Vendor is required for new model.", "networkdevices.asp"
Response.End
End If
@@ -157,7 +157,7 @@ If modelid = "new" Then
If newvendorid = "new" Then
If newvendorname = "" Then
objConn.Close
ShowError "Vendor name is required.", "network_devices.asp"
ShowError "Vendor name is required.", "networkdevices.asp"
Response.End
End If
@@ -177,7 +177,7 @@ If modelid = "new" Then
vendorErr = Err.Description
Set cmdNewVendor = Nothing
objConn.Close
ShowError "Error creating vendor: " & vendorErr, "network_devices.asp"
ShowError "Error creating vendor: " & vendorErr, "networkdevices.asp"
Response.End
End If
@@ -215,7 +215,7 @@ If modelid = "new" Then
modelErr = Err.Description
Set cmdNewModel = Nothing
objConn.Close
ShowError "Error creating model: " & modelErr, "network_devices.asp"
ShowError "Error creating model: " & modelErr, "networkdevices.asp"
Response.End
End If
@@ -251,7 +251,7 @@ If deviceType = "camera" Then
' Validate required fields for new IDF
If newidfname = "" Then
objConn.Close
ShowError "IDF name is required.", "network_devices.asp"
ShowError "IDF name is required.", "networkdevices.asp"
Response.End
End If
@@ -274,7 +274,7 @@ If deviceType = "camera" Then
idfErr = Err.Description
Set cmdNewIdf = Nothing
objConn.Close
ShowError "Error creating IDF: " & idfErr, "network_devices.asp"
ShowError "Error creating IDF: " & idfErr, "networkdevices.asp"
Response.End
End If
@@ -291,7 +291,7 @@ If deviceType = "camera" Then
' Validate required idfid for cameras
If idfid = "" Or Not IsNumeric(idfid) Or CLng(idfid) < 1 Then
objConn.Close
ShowError "IDF location is required for cameras.", "network_devices.asp"
ShowError "IDF location is required for cameras.", "networkdevices.asp"
Response.End
End If
@@ -349,7 +349,7 @@ If deviceId = "0" Then
saveErr = Err.Description
Set cmdDevice = Nothing
objConn.Close
ShowError "Error saving device: " & saveErr, "network_devices.asp"
ShowError "Error saving device: " & saveErr, "networkdevices.asp"
Response.End
End If
Set cmdDevice = Nothing
@@ -387,7 +387,7 @@ Else
updateErr = Err.Description
Set cmdDevice = Nothing
objConn.Close
ShowError "Error updating device: " & updateErr, "network_devices.asp"
ShowError "Error updating device: " & updateErr, "networkdevices.asp"
Response.End
End If
Set cmdDevice = Nothing

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: savenotification_direct.asp
' FILE: savenotificationdirect.asp
' PURPOSE: Create new notification
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: saveprinter_direct.asp
' FILE: saveprinterdirect.asp
' PURPOSE: Create printer with nested entity creation (vendor, model)
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: saveusb_direct.asp
' FILE: saveusbdirect.asp
' PURPOSE: Create new USB device in machines table
' SECURITY: Parameterized queries, HTML encoding, input validation
' CREATED: 2025-12-07

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: savevendor_direct.asp
' FILE: savevendordirect.asp
' PURPOSE: Create new vendor with type flags
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -272,7 +272,7 @@ Set rs = Nothing
</ul>
<div class="tab-content p-3">
<div class="tab-pane" id="additem">
<form method="post" action="./addlink_direct.asp">
<form method="post" action="./addlinkdirect.asp">
<div class="form-group row">
<label class="col-lg-3 col-form-label form-control-label">Description:</label>
<div class="col-lg-9">

View File

@@ -14,6 +14,7 @@ This guide covers all database changes made on December 10, 2025 that need to be
3. Fix backwards Controls relationships (Equipment->PC to PC->Equipment)
4. Propagate controller assignments to dualpath machines
5. Sync equipment data between dualpath partners
6. ASP filename standardization (remove underscores)
---
@@ -582,6 +583,7 @@ Pull the latest code from Gitea which includes:
- Updated table names in all ASP files
- New dualpath propagation functions in `includes/db_helpers.asp`
- Updated save pages that call propagation functions
- Renamed ASP files (underscores removed)
```cmd
cd C:\inetpub\wwwroot\shopdb
@@ -590,6 +592,58 @@ git pull origin master
Or copy files manually from a prepared deployment package.
**IMPORTANT:** After git pull, verify the old underscore files were deleted. If they still exist, remove them manually:
```cmd
REM These old files should no longer exist after git pull
REM If they do, delete them:
del addlink_direct.asp
del addsubnetbackend_direct.asp
del admin_clear_cache.asp
del api_businessunits.asp
del api_printers.asp
del api_shopfloor.asp
del api_usb.asp
del bulk_update_notification_types.asp
del check_duplicate_printers.asp
del check_printer_machines_count.asp
del checkin_usb.asp
del checkout_usb.asp
del cleanup_duplicate_printers_execute.asp
del displaylocation_device.asp
del editapplication_direct.asp
del insert_all_printer_machines.asp
del install_printer.asp
del machine_edit.asp
del machine_map.asp
del machine_map_editor.asp
del network_devices.asp
del network_map.asp
del network_map_debug.asp
del printer_installer_map.asp
del printer_links_generator.asp
del printer_lookup.asp
del quickadd_application.asp
del refresh_zabbix_cache.asp
del save_network_device.asp
del saveapplication_direct.asp
del savecheckin_usb.asp
del savecheckout_usb.asp
del savedevice_direct.asp
del savemachine_direct.asp
del savemodel_direct.asp
del savenotification_direct.asp
del saveprinter_direct.asp
del saveusb_direct.asp
del savevendor_direct.asp
del updatedevice_direct.asp
del updatelink_direct.asp
del updatenotification_direct.asp
del updatepc_direct.asp
del updatesubnet_direct.asp
del usb_history.asp
```
---
## Step 8: Start IIS
@@ -657,12 +711,15 @@ iisreset /start
| Category | Change | Script |
|----------|--------|--------|
| Naming | Rename 6 tables (snake_case to camelCase) | naming_convention_fix/*.sql |
| Naming | Rename 17 columns in compliance tables | naming_convention_fix/07_*.sql |
| Naming | Recreate 9 views with new table names | naming_convention_fix/04_*.sql |
| Naming | Rename 45 ASP files (remove underscores) | naming_convention_fix/09_*.sh |
| Relationships | Fix backwards Controls relationships | fix_dualpath_controller_relationships.sql |
| Relationships | Propagate controllers to dualpath machines | fix_dualpath_controller_relationships.sql |
| Data Sync | Sync equipment data between dualpath pairs | sync_dualpath_equipment_data.sql |
| ASP Files | Update table references in 10 ASP files | git pull |
| ASP Files | Update table references in 10+ ASP files | git pull |
| ASP Files | Add dualpath propagation functions | git pull |
| ASP Files | Delete 6 test/duplicate files | git pull |
---
@@ -674,6 +731,9 @@ All scripts are in `/sql/` directory:
|--------|---------|
| `naming_convention_fix/03_rename_tables.sql` | Table renames |
| `naming_convention_fix/04_drop_and_recreate_views.sql` | View recreation |
| `naming_convention_fix/07_fix_compliance_columns.sql` | Compliance column renames |
| `naming_convention_fix/09_rename_asp_files.sh` | ASP filename renames (Linux) |
| `naming_convention_fix/09_rename_asp_files.ps1` | ASP filename renames (Windows) |
| `fix_dualpath_controller_relationships.sql` | Fix relationship direction + propagate |
| `sync_dualpath_equipment_data.sql` | Sync equipment data between dualpath pairs |

View File

@@ -0,0 +1,93 @@
# ASP Filename Rename Plan
## Naming Convention
- All lowercase
- No underscores (use concatenated words like `displaymachine.asp`)
- Pattern: `[action][entity].asp` or `[action][entity]direct.asp` for form handlers
## Files to Rename
### Remove underscores from direct handlers
| Old Name | New Name |
|----------|----------|
| addlink_direct.asp | addlinkdirect.asp |
| addsubnetbackend_direct.asp | addsubnetbackenddirect.asp |
| editapplication_direct.asp | editapplicationdirect.asp |
| saveapplication_direct.asp | saveapplicationdirect.asp |
| savedevice_direct.asp | savedevicedirect.asp |
| savemachine_direct.asp | savemachinedirect.asp |
| savemodel_direct.asp | savemodeldirect.asp |
| save_network_device.asp | savenetworkdevice.asp |
| savenotification_direct.asp | savenotificationdirect.asp |
| saveprinter_direct.asp | saveprinterdirect.asp |
| saveusb_direct.asp | saveusbdirect.asp |
| savevendor_direct.asp | savevendordirect.asp |
| updatedevice_direct.asp | updatedevicedirect.asp |
| updatelink_direct.asp | updatelinkdirect.asp |
| updatenotification_direct.asp | updatenotificationdirect.asp |
| updatepc_direct.asp | updatepcdirect.asp |
| updatesubnet_direct.asp | updatesubnetdirect.asp |
### Remove underscores from USB files
| Old Name | New Name |
|----------|----------|
| checkin_usb.asp | checkinusb.asp |
| checkout_usb.asp | checkoutusb.asp |
| savecheckin_usb.asp | savecheckinusb.asp |
| savecheckout_usb.asp | savecheckoutusb.asp |
| usb_history.asp | usbhistory.asp |
### Remove underscores from API files
| Old Name | New Name |
|----------|----------|
| api_businessunits.asp | apibusinessunits.asp |
| api_printers.asp | apiprinters.asp |
| api_shopfloor.asp | apishopfloor.asp |
| api_usb.asp | apiusb.asp |
### Remove underscores from machine/map files
| Old Name | New Name |
|----------|----------|
| machine_edit.asp | machineedit.asp |
| machine_map.asp | machinemap.asp |
| machine_map_editor.asp | machinemapeditor.asp |
| network_devices.asp | networkdevices.asp |
| network_map.asp | networkmap.asp |
| network_map_debug.asp | networkmapdebug.asp |
### Remove underscores from printer files
| Old Name | New Name |
|----------|----------|
| check_duplicate_printers.asp | checkduplicateprinters.asp |
| check_printer_machines_count.asp | checkprintermachinescount.asp |
| cleanup_duplicate_printers_execute.asp | cleanupduplicateprintersexecute.asp |
| insert_all_printer_machines.asp | insertallprintermachines.asp |
| install_printer.asp | installprinter.asp |
| printer_installer_map.asp | printerinstallermap.asp |
| printer_links_generator.asp | printerlinksgenerator.asp |
| printer_lookup.asp | printerlookup.asp |
### Remove underscores from other files
| Old Name | New Name |
|----------|----------|
| admin_clear_cache.asp | adminclearcache.asp |
| bulk_update_notification_types.asp | bulkupdatenotificationtypes.asp |
| displaylocation_device.asp | displaylocationdevice.asp |
| quickadd_application.asp | quickaddapplication.asp |
| refresh_zabbix_cache.asp | refreshzabbixcache.asp |
### Fix typo
| Old Name | New Name |
|----------|----------|
| editmacine.asp | (DELETE - duplicate of editmachine.asp) |
### Test files to DELETE (not rename)
- editmachine_test.asp
- test_asp.asp
- test_db.asp
- test_switch_query.asp
- test_with_includes.asp
## Total Changes
- **49 files to rename**
- **6 files to delete**

View File

@@ -0,0 +1,200 @@
<#
.SYNOPSIS
Renames ASP files to remove underscores and updates all internal references.
.DESCRIPTION
This script:
1. Renames ASP files from snake_case to concatenated lowercase
2. Updates all references in ASP, JS, and include files
3. Deletes test files
.PARAMETER Execute
Actually perform the renames. Without this, runs in dry-run mode.
.EXAMPLE
.\09_rename_asp_files.ps1 # Dry run - shows what would change
.\09_rename_asp_files.ps1 -Execute # Actually performs the renames
#>
param(
[switch]$Execute
)
$shopdbPath = Split-Path -Parent (Split-Path -Parent $PSScriptRoot)
# Define rename mappings (old -> new)
$renames = @{
# Direct handlers
"addlink_direct.asp" = "addlinkdirect.asp"
"addsubnetbackend_direct.asp" = "addsubnetbackenddirect.asp"
"editapplication_direct.asp" = "editapplicationdirect.asp"
"saveapplication_direct.asp" = "saveapplicationdirect.asp"
"savedevice_direct.asp" = "savedevicedirect.asp"
"savemachine_direct.asp" = "savemachinedirect.asp"
"savemodel_direct.asp" = "savemodeldirect.asp"
"save_network_device.asp" = "savenetworkdevice.asp"
"savenotification_direct.asp" = "savenotificationdirect.asp"
"saveprinter_direct.asp" = "saveprinterdirect.asp"
"saveusb_direct.asp" = "saveusbdirect.asp"
"savevendor_direct.asp" = "savevendordirect.asp"
"updatedevice_direct.asp" = "updatedevicedirect.asp"
"updatelink_direct.asp" = "updatelinkdirect.asp"
"updatenotification_direct.asp" = "updatenotificationdirect.asp"
"updatepc_direct.asp" = "updatepcdirect.asp"
"updatesubnet_direct.asp" = "updatesubnetdirect.asp"
# USB files
"checkin_usb.asp" = "checkinusb.asp"
"checkout_usb.asp" = "checkoutusb.asp"
"savecheckin_usb.asp" = "savecheckinusb.asp"
"savecheckout_usb.asp" = "savecheckoutusb.asp"
"usb_history.asp" = "usbhistory.asp"
# API files
"api_businessunits.asp" = "apibusinessunits.asp"
"api_printers.asp" = "apiprinters.asp"
"api_shopfloor.asp" = "apishopfloor.asp"
"api_usb.asp" = "apiusb.asp"
# Machine/map files
"machine_edit.asp" = "machineedit.asp"
"machine_map.asp" = "machinemap.asp"
"machine_map_editor.asp" = "machinemapeditor.asp"
"network_devices.asp" = "networkdevices.asp"
"network_map.asp" = "networkmap.asp"
"network_map_debug.asp" = "networkmapdebug.asp"
# Printer files
"check_duplicate_printers.asp" = "checkduplicateprinters.asp"
"check_printer_machines_count.asp" = "checkprintermachinescount.asp"
"cleanup_duplicate_printers_execute.asp" = "cleanupduplicateprintersexecute.asp"
"insert_all_printer_machines.asp" = "insertallprintermachines.asp"
"install_printer.asp" = "installprinter.asp"
"printer_installer_map.asp" = "printerinstallermap.asp"
"printer_links_generator.asp" = "printerlinksgenerator.asp"
"printer_lookup.asp" = "printerlookup.asp"
# Other files
"admin_clear_cache.asp" = "adminclearcache.asp"
"bulk_update_notification_types.asp" = "bulkupdatenotificationtypes.asp"
"displaylocation_device.asp" = "displaylocationdevice.asp"
"quickadd_application.asp" = "quickaddapplication.asp"
"refresh_zabbix_cache.asp" = "refreshzabbixcache.asp"
}
# Files to delete
$deleteFiles = @(
"editmacine.asp"
"editmachine_test.asp"
"test_asp.asp"
"test_db.asp"
"test_switch_query.asp"
"test_with_includes.asp"
)
Write-Host "ASP File Rename Script" -ForegroundColor Cyan
Write-Host "======================" -ForegroundColor Cyan
Write-Host ""
if (-not $Execute) {
Write-Host "DRY RUN MODE - No changes will be made" -ForegroundColor Yellow
Write-Host "Run with -Execute to apply changes" -ForegroundColor Yellow
Write-Host ""
}
# Get all files to search for references
$searchFiles = @()
$searchFiles += Get-ChildItem -Path $shopdbPath -Filter "*.asp" -File
$searchFiles += Get-ChildItem -Path "$shopdbPath\includes" -Filter "*.asp" -File -ErrorAction SilentlyContinue
$searchFiles += Get-ChildItem -Path "$shopdbPath\js" -Filter "*.js" -File -ErrorAction SilentlyContinue
Write-Host "Found $($searchFiles.Count) files to search for references" -ForegroundColor Gray
Write-Host ""
# Step 1: Update all references in files
Write-Host "STEP 1: Updating references in files..." -ForegroundColor Green
$totalReplacements = 0
foreach ($file in $searchFiles) {
$content = Get-Content -Path $file.FullName -Raw -ErrorAction SilentlyContinue
if (-not $content) { continue }
$originalContent = $content
$fileChanged = $false
foreach ($oldName in $renames.Keys) {
$newName = $renames[$oldName]
if ($content -match [regex]::Escape($oldName)) {
$content = $content -replace [regex]::Escape($oldName), $newName
$fileChanged = $true
$totalReplacements++
}
}
if ($fileChanged) {
Write-Host " Updated: $($file.Name)" -ForegroundColor White
if ($Execute) {
Set-Content -Path $file.FullName -Value $content -NoNewline
}
}
}
Write-Host " Total replacements: $totalReplacements" -ForegroundColor Cyan
Write-Host ""
# Step 2: Rename the files
Write-Host "STEP 2: Renaming files..." -ForegroundColor Green
$renamedCount = 0
foreach ($oldName in $renames.Keys) {
$newName = $renames[$oldName]
$oldPath = Join-Path $shopdbPath $oldName
$newPath = Join-Path $shopdbPath $newName
if (Test-Path $oldPath) {
Write-Host " $oldName -> $newName" -ForegroundColor White
if ($Execute) {
Rename-Item -Path $oldPath -NewName $newName
}
$renamedCount++
} else {
Write-Host " SKIP: $oldName (not found)" -ForegroundColor DarkGray
}
}
Write-Host " Files to rename: $renamedCount" -ForegroundColor Cyan
Write-Host ""
# Step 3: Delete test files
Write-Host "STEP 3: Deleting test/duplicate files..." -ForegroundColor Green
$deletedCount = 0
foreach ($fileName in $deleteFiles) {
$filePath = Join-Path $shopdbPath $fileName
if (Test-Path $filePath) {
Write-Host " DELETE: $fileName" -ForegroundColor Red
if ($Execute) {
Remove-Item -Path $filePath -Force
}
$deletedCount++
} else {
Write-Host " SKIP: $fileName (not found)" -ForegroundColor DarkGray
}
}
Write-Host " Files to delete: $deletedCount" -ForegroundColor Cyan
Write-Host ""
# Summary
Write-Host "SUMMARY" -ForegroundColor Cyan
Write-Host "=======" -ForegroundColor Cyan
Write-Host " References updated: $totalReplacements"
Write-Host " Files renamed: $renamedCount"
Write-Host " Files deleted: $deletedCount"
Write-Host ""
if (-not $Execute) {
Write-Host "This was a DRY RUN. Run with -Execute to apply changes." -ForegroundColor Yellow
} else {
Write-Host "Changes applied successfully!" -ForegroundColor Green
}

View File

@@ -0,0 +1,177 @@
#!/bin/bash
#
# Renames ASP files to remove underscores and updates all internal references.
#
# Usage:
# ./09_rename_asp_files.sh # Dry run - shows what would change
# ./09_rename_asp_files.sh --execute # Actually performs the renames
#
SHOPDB_PATH="/home/camp/projects/windows/shopdb"
EXECUTE=false
if [ "$1" == "--execute" ]; then
EXECUTE=true
fi
echo "ASP File Rename Script"
echo "======================"
echo ""
if [ "$EXECUTE" != "true" ]; then
echo "DRY RUN MODE - No changes will be made"
echo "Run with --execute to apply changes"
echo ""
fi
# Define rename mappings
declare -A RENAMES=(
# Direct handlers
["addlink_direct.asp"]="addlinkdirect.asp"
["addsubnetbackend_direct.asp"]="addsubnetbackenddirect.asp"
["editapplication_direct.asp"]="editapplicationdirect.asp"
["saveapplication_direct.asp"]="saveapplicationdirect.asp"
["savedevice_direct.asp"]="savedevicedirect.asp"
["savemachine_direct.asp"]="savemachinedirect.asp"
["savemodel_direct.asp"]="savemodeldirect.asp"
["save_network_device.asp"]="savenetworkdevice.asp"
["savenotification_direct.asp"]="savenotificationdirect.asp"
["saveprinter_direct.asp"]="saveprinterdirect.asp"
["saveusb_direct.asp"]="saveusbdirect.asp"
["savevendor_direct.asp"]="savevendordirect.asp"
["updatedevice_direct.asp"]="updatedevicedirect.asp"
["updatelink_direct.asp"]="updatelinkdirect.asp"
["updatenotification_direct.asp"]="updatenotificationdirect.asp"
["updatepc_direct.asp"]="updatepcdirect.asp"
["updatesubnet_direct.asp"]="updatesubnetdirect.asp"
# USB files
["checkin_usb.asp"]="checkinusb.asp"
["checkout_usb.asp"]="checkoutusb.asp"
["savecheckin_usb.asp"]="savecheckinusb.asp"
["savecheckout_usb.asp"]="savecheckoutusb.asp"
["usb_history.asp"]="usbhistory.asp"
# API files
["api_businessunits.asp"]="apibusinessunits.asp"
["api_printers.asp"]="apiprinters.asp"
["api_shopfloor.asp"]="apishopfloor.asp"
["api_usb.asp"]="apiusb.asp"
# Machine/map files
["machine_edit.asp"]="machineedit.asp"
["machine_map.asp"]="machinemap.asp"
["machine_map_editor.asp"]="machinemapeditor.asp"
["network_devices.asp"]="networkdevices.asp"
["network_map.asp"]="networkmap.asp"
["network_map_debug.asp"]="networkmapdebug.asp"
# Printer files
["check_duplicate_printers.asp"]="checkduplicateprinters.asp"
["check_printer_machines_count.asp"]="checkprintermachinescount.asp"
["cleanup_duplicate_printers_execute.asp"]="cleanupduplicateprintersexecute.asp"
["insert_all_printer_machines.asp"]="insertallprintermachines.asp"
["install_printer.asp"]="installprinter.asp"
["printer_installer_map.asp"]="printerinstallermap.asp"
["printer_links_generator.asp"]="printerlinksgenerator.asp"
["printer_lookup.asp"]="printerlookup.asp"
# Other files
["admin_clear_cache.asp"]="adminclearcache.asp"
["bulk_update_notification_types.asp"]="bulkupdatenotificationtypes.asp"
["displaylocation_device.asp"]="displaylocationdevice.asp"
["quickadd_application.asp"]="quickaddapplication.asp"
["refresh_zabbix_cache.asp"]="refreshzabbixcache.asp"
)
# Files to delete
DELETE_FILES=(
"editmacine.asp"
"editmachine_test.asp"
"test_asp.asp"
"test_db.asp"
"test_switch_query.asp"
"test_with_includes.asp"
)
# Step 1: Update all references in files
echo "STEP 1: Updating references in files..."
TOTAL_REPLACEMENTS=0
for OLD_NAME in "${!RENAMES[@]}"; do
NEW_NAME="${RENAMES[$OLD_NAME]}"
# Find files containing the old name
FILES_WITH_REF=$(grep -rl "$OLD_NAME" "$SHOPDB_PATH"/*.asp "$SHOPDB_PATH"/includes/*.asp "$SHOPDB_PATH"/js/*.js 2>/dev/null)
if [ -n "$FILES_WITH_REF" ]; then
for FILE in $FILES_WITH_REF; do
echo " Updating $OLD_NAME -> $NEW_NAME in $(basename $FILE)"
if [ "$EXECUTE" == "true" ]; then
sed -i "s/$OLD_NAME/$NEW_NAME/g" "$FILE"
fi
TOTAL_REPLACEMENTS=$((TOTAL_REPLACEMENTS + 1))
done
fi
done
echo " Total file updates: $TOTAL_REPLACEMENTS"
echo ""
# Step 2: Rename the files
echo "STEP 2: Renaming files..."
RENAMED_COUNT=0
for OLD_NAME in "${!RENAMES[@]}"; do
NEW_NAME="${RENAMES[$OLD_NAME]}"
OLD_PATH="$SHOPDB_PATH/$OLD_NAME"
NEW_PATH="$SHOPDB_PATH/$NEW_NAME"
if [ -f "$OLD_PATH" ]; then
echo " $OLD_NAME -> $NEW_NAME"
if [ "$EXECUTE" == "true" ]; then
mv "$OLD_PATH" "$NEW_PATH"
fi
RENAMED_COUNT=$((RENAMED_COUNT + 1))
else
echo " SKIP: $OLD_NAME (not found)"
fi
done
echo " Files to rename: $RENAMED_COUNT"
echo ""
# Step 3: Delete test files
echo "STEP 3: Deleting test/duplicate files..."
DELETED_COUNT=0
for FILE_NAME in "${DELETE_FILES[@]}"; do
FILE_PATH="$SHOPDB_PATH/$FILE_NAME"
if [ -f "$FILE_PATH" ]; then
echo " DELETE: $FILE_NAME"
if [ "$EXECUTE" == "true" ]; then
rm -f "$FILE_PATH"
fi
DELETED_COUNT=$((DELETED_COUNT + 1))
else
echo " SKIP: $FILE_NAME (not found)"
fi
done
echo " Files to delete: $DELETED_COUNT"
echo ""
# Summary
echo "SUMMARY"
echo "======="
echo " Files updated: $TOTAL_REPLACEMENTS"
echo " Files renamed: $RENAMED_COUNT"
echo " Files deleted: $DELETED_COUNT"
echo ""
if [ "$EXECUTE" != "true" ]; then
echo "This was a DRY RUN. Run with --execute to apply changes."
else
echo "Changes applied successfully!"
fi

View File

@@ -1,10 +0,0 @@
<%@ Language=VBScript %>
<!DOCTYPE html>
<html>
<head><title>ASP Test</title></head>
<body>
<h1>ASP Test Page</h1>
<p>Current Time: <%=Now()%></p>
<p>ASP is working!</p>
</body>
</html>

View File

@@ -1,22 +0,0 @@
<%@ Language=VBScript %>
<!--#include file="./includes/sql.asp"-->
<!DOCTYPE html>
<html>
<head><title>DB Test</title></head>
<body>
<h1>Database Test Page</h1>
<%
On Error Resume Next
Dim rs
Set rs = objConn.Execute("SELECT COUNT(*) AS cnt FROM machines WHERE machinetypeid = 31")
If Err.Number <> 0 Then
Response.Write("<p style='color:red'>ERROR: " & Server.HTMLEncode(Err.Description) & "</p>")
Else
Response.Write("<p style='color:green'>Query successful! Switch count: " & rs("cnt") & "</p>")
End If
rs.Close
Set rs = Nothing
objConn.Close
%>
</body>
</html>

View File

@@ -1,62 +0,0 @@
<%@ Language=VBScript %>
<!--#include file="./includes/sql.asp"-->
<!DOCTYPE html>
<html>
<head><title>Switch Query Test</title></head>
<body>
<h1>Switch Query Test</h1>
<%
On Error Resume Next
Dim switchid, rs, switchname, modelid, serialnumber, ipaddress, description, maptop, mapleft, isactive, vendorname, modelnumber
switchid = 5411
Dim strSQL
strSQL = "SELECT mac.machineid, mac.alias AS switchname, mac.modelnumberid AS modelid, " & _
"mac.serialnumber, mac.machinenotes AS description, mac.maptop, mac.mapleft, mac.isactive, " & _
"m.modelnumber, v.vendor, c.address AS ipaddress " & _
"FROM machines mac " & _
"LEFT JOIN models m ON mac.modelnumberid = m.modelnumberid " & _
"LEFT JOIN vendors v ON m.vendorid = v.vendorid " & _
"LEFT JOIN communications c ON mac.machineid = c.machineid AND c.isprimary = 1 AND c.comstypeid = 1 " & _
"WHERE mac.machineid = " & switchid & " AND mac.machinetypeid = 31"
Set rs = objConn.Execute(strSQL)
If Err.Number <> 0 Then
Response.Write("<p style='color:red'>Query ERROR: " & Server.HTMLEncode(Err.Description) & "</p>")
ElseIf rs.EOF Then
Response.Write("<p style='color:orange'>Switch not found</p>")
Else
' Apply NULL handling
If Not IsNull(rs("switchname")) Then switchname = rs("switchname") Else switchname = ""
If Not IsNull(rs("modelid")) Then modelid = rs("modelid") Else modelid = ""
If Not IsNull(rs("serialnumber")) Then serialnumber = rs("serialnumber") Else serialnumber = ""
If Not IsNull(rs("ipaddress")) Then ipaddress = rs("ipaddress") Else ipaddress = ""
If Not IsNull(rs("description")) Then description = rs("description") Else description = ""
If Not IsNull(rs("maptop")) Then maptop = rs("maptop") Else maptop = ""
If Not IsNull(rs("mapleft")) Then mapleft = rs("mapleft") Else mapleft = ""
If Not IsNull(rs("isactive")) Then isactive = rs("isactive") Else isactive = 1
If Not IsNull(rs("vendor")) Then vendorname = rs("vendor") Else vendorname = ""
If Not IsNull(rs("modelnumber")) Then modelnumber = rs("modelnumber") Else modelnumber = ""
Response.Write("<p style='color:green'>SUCCESS! Data loaded:</p>")
Response.Write("<ul>")
Response.Write("<li>Name: " & Server.HTMLEncode(switchname) & "</li>")
Response.Write("<li>Model ID: " & Server.HTMLEncode(modelid) & "</li>")
Response.Write("<li>Serial: " & Server.HTMLEncode(serialnumber) & "</li>")
Response.Write("<li>IP: " & Server.HTMLEncode(ipaddress) & "</li>")
Response.Write("<li>Description: " & Server.HTMLEncode(description) & "</li>")
Response.Write("<li>Map Top: " & Server.HTMLEncode(maptop) & "</li>")
Response.Write("<li>Map Left: " & Server.HTMLEncode(mapleft) & "</li>")
Response.Write("<li>Active: " & Server.HTMLEncode(isactive) & "</li>")
Response.Write("<li>Vendor: " & Server.HTMLEncode(vendorname) & "</li>")
Response.Write("<li>Model: " & Server.HTMLEncode(modelnumber) & "</li>")
Response.Write("</ul>")
End If
rs.Close
Set rs = Nothing
objConn.Close
%>
</body>
</html>

View File

@@ -1,40 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!--#include file="./includes/header.asp"-->
<!--#include file="./includes/sql.asp"-->
<!--#include file="./includes/validation.asp"-->
<title>Test With Includes</title>
</head>
<%
Dim theme
theme = Request.Cookies("theme")
IF theme = "" THEN
theme="bg-theme1"
END IF
Dim switchid, rs, switchname
switchid = 5411
Dim strSQL
strSQL = "SELECT mac.alias AS switchname FROM machines mac WHERE mac.machineid = " & switchid
Set rs = objConn.Execute(strSQL)
If Not rs.EOF Then
If Not IsNull(rs("switchname")) Then switchname = rs("switchname") Else switchname = ""
Else
switchname = "NOT FOUND"
End If
rs.Close
Set rs = Nothing
%>
<body class="bg-theme <%=theme%>">
<h1>Test With Includes</h1>
<p>Switch Name: <%=Server.HTMLEncode(switchname)%></p>
<%
objConn.Close
%>
</body>
</html>

View File

@@ -903,7 +903,7 @@
// Call clear cache endpoint
$.ajax({
url: './admin_clear_cache.asp?confirm=yes&type=zabbix&ajax=1',
url: './adminclearcache.asp?confirm=yes&type=zabbix&ajax=1',
method: 'GET',
success: function() {
// Reload page after cache cleared

View File

@@ -3,7 +3,7 @@
' FILE: savemachineedit.asp
' PURPOSE: Update existing machine with nested entity creation (vendor, model, business unit)
' SECURITY: Parameterized queries, HTML encoding, input validation
' CREATED: 2025-11-07 - Based on savemachine_direct.asp
' CREATED: 2025-11-07 - Based on savemachinedirect.asp
' NOTE: Machines now inherit machinetypeid from their model. Each model has one machine type.
'=============================================================================
%>

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: updatelink_direct.asp
' FILE: updatelinkdirect.asp
' PURPOSE: Update knowledge base article with nested entity creation (topic, support team, app owner)
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: updatenotification_direct.asp
' FILE: updatenotificationdirect.asp
' PURPOSE: Update existing notification
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: updatepc_direct.asp
' FILE: updatepcdirect.asp
' PURPOSE: Update PC/device with optional vendor and model creation
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -1,6 +1,6 @@
<%
'=============================================================================
' FILE: updatesubnet_direct.asp
' FILE: updatesubnetdirect.asp
' PURPOSE: Update existing subnet with IP address calculations
' SECURITY: Parameterized queries, HTML encoding, input validation
' UPDATED: 2025-10-27 - Migrated to secure patterns

View File

@@ -51,7 +51,7 @@
</h5>
<div>
<% If filterMachineId <> "" Or filterSSO <> "" Then %>
<a href="./usb_history.asp" class="btn btn-secondary btn-sm">
<a href="./usbhistory.asp" class="btn btn-secondary btn-sm">
<i class="zmdi zmdi-close"></i> Clear Filters
</a>
<% End If %>
@@ -157,7 +157,7 @@
%>
<tr class="<%=statusClass%>">
<td>
<a href="./usb_history.asp?machineid=<%=rs("machineid")%>" title="Filter by this device">
<a href="./usbhistory.asp?machineid=<%=rs("machineid")%>" title="Filter by this device">
<code><%=Server.HTMLEncode(serialNum)%></code>
</a>
</td>
@@ -193,7 +193,7 @@
<i class="zmdi zmdi-info zmdi-hc-2x"></i><br>
No checkout history found.
<% If filterMachineId <> "" Or filterSSO <> "" Then %>
<br><a href="./usb_history.asp">Show all history</a>
<br><a href="./usbhistory.asp">Show all history</a>
<% End If %>
</td>
</tr>