Auto-populate printer name and FQDN on add printer form
- Printer name auto-generates from CSF name, machine/location, vendor, model - Format: CSFName-Location-VendorDescription (e.g., CSF21-7701-HP-LaserJet) - FQDN auto-generates from IP: Printer-10-80-92-69.printer.geaerospace.net - Added data attributes to model and machine dropdowns for JS access 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
"ORDER BY vendors.vendor ASC, models.modelnumber ASC"
|
||||
Set rsModels = objconn.Execute(strSQL)
|
||||
While Not rsModels.EOF
|
||||
Response.Write("<option value='" & rsModels("modelnumberid") & "'>" & Server.HTMLEncode(rsModels("vendor") & " - " & rsModels("modelnumber")) & "</option>")
|
||||
Response.Write("<option value='" & rsModels("modelnumberid") & "' data-vendor='" & Server.HTMLEncode(rsModels("vendor")) & "' data-model='" & Server.HTMLEncode(rsModels("modelnumber")) & "'>" & Server.HTMLEncode(rsModels("vendor") & " - " & rsModels("modelnumber")) & "</option>")
|
||||
rsModels.MoveNext
|
||||
Wend
|
||||
rsModels.Close
|
||||
@@ -205,7 +205,10 @@
|
||||
|
||||
' Only output if we have display text
|
||||
If displayText <> "" Then
|
||||
Response.Write("<option value='" & rsMachines("machineid") & "'>" & Server.HTMLEncode(displayText) & "</option>")
|
||||
Dim machineAlias, machineNum
|
||||
machineAlias = Trim(rsMachines("alias") & "")
|
||||
machineNum = Trim(rsMachines("machinenumber") & "")
|
||||
Response.Write("<option value='" & rsMachines("machineid") & "' data-alias='" & Server.HTMLEncode(machineAlias) & "' data-number='" & Server.HTMLEncode(machineNum) & "'>" & Server.HTMLEncode(displayText) & "</option>")
|
||||
End If
|
||||
|
||||
rsMachines.MoveNext
|
||||
@@ -319,6 +322,66 @@
|
||||
$('#newvendorname').val('').prop('required', false);
|
||||
});
|
||||
|
||||
// Auto-populate printer name and FQDN
|
||||
function generatePrinterName() {
|
||||
var csfName = $('#printercsfname').val().trim();
|
||||
var machineOption = $('#machineid option:selected');
|
||||
var modelOption = $('#modelid option:selected');
|
||||
|
||||
var vendor = modelOption.data('vendor') || '';
|
||||
var model = modelOption.data('model') || '';
|
||||
var machineAlias = machineOption.data('alias') || '';
|
||||
var machineNumber = machineOption.data('number') || '';
|
||||
|
||||
// Use alias if available, otherwise machine number
|
||||
var location = machineAlias || machineNumber;
|
||||
location = location.replace(/\s+/g, '').replace('Machine', '');
|
||||
|
||||
// Extract short description from model
|
||||
var shortDesc = '';
|
||||
var cleanModel = model.replace(/\s+/g, '');
|
||||
if (cleanModel.indexOf('ColorLaserJet') >= 0) shortDesc = 'ColorLaserJet';
|
||||
else if (cleanModel.indexOf('LaserJetPro') >= 0) shortDesc = 'LaserJetPro';
|
||||
else if (cleanModel.indexOf('LaserJet') >= 0) shortDesc = 'LaserJet';
|
||||
else if (cleanModel.indexOf('Altalink') >= 0) shortDesc = 'Altalink';
|
||||
else if (cleanModel.indexOf('Versalink') >= 0) shortDesc = 'Versalink';
|
||||
else if (cleanModel.indexOf('DesignJet') >= 0) shortDesc = 'DesignJet';
|
||||
else if (cleanModel.indexOf('DTC') >= 0) shortDesc = 'DTC';
|
||||
else {
|
||||
// Extract letters before first number
|
||||
var match = cleanModel.match(/^([A-Za-z]+)/);
|
||||
shortDesc = match ? match[1] : cleanModel;
|
||||
}
|
||||
|
||||
// Build name: CSFName-Location-Vendor-Description or Location-Vendor-Description
|
||||
var parts = [];
|
||||
if (csfName && csfName !== 'NONE') parts.push(csfName);
|
||||
if (location && location.toLowerCase() !== csfName.toLowerCase()) parts.push(location);
|
||||
if (vendor) parts.push(vendor + shortDesc);
|
||||
|
||||
var printerName = parts.join('-');
|
||||
if (printerName) {
|
||||
$('#printerwindowsname').val(printerName);
|
||||
}
|
||||
}
|
||||
|
||||
function generateFQDN() {
|
||||
var ip = $('#ipaddress').val().trim();
|
||||
if (ip && /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ip)) {
|
||||
var fqdn = 'Printer-' + ip.replace(/\./g, '-') + '.printer.geaerospace.net';
|
||||
$('#fqdn').val(fqdn);
|
||||
}
|
||||
}
|
||||
|
||||
// Trigger auto-populate on field changes
|
||||
$('#printercsfname, #machineid, #modelid').on('change keyup', function() {
|
||||
generatePrinterName();
|
||||
});
|
||||
|
||||
$('#ipaddress').on('change keyup blur', function() {
|
||||
generateFQDN();
|
||||
});
|
||||
|
||||
// Form validation
|
||||
$('form').on('submit', function(e) {
|
||||
// If adding new model, make sure fields are filled
|
||||
|
||||
Reference in New Issue
Block a user