diff --git a/addprinter.asp b/addprinter.asp
index c04f0d3..9f2eb70 100644
--- a/addprinter.asp
+++ b/addprinter.asp
@@ -54,7 +54,7 @@
"ORDER BY vendors.vendor ASC, models.modelnumber ASC"
Set rsModels = objconn.Execute(strSQL)
While Not rsModels.EOF
- Response.Write("")
+ Response.Write("")
rsModels.MoveNext
Wend
rsModels.Close
@@ -205,7 +205,10 @@
' Only output if we have display text
If displayText <> "" Then
- Response.Write("")
+ Dim machineAlias, machineNum
+ machineAlias = Trim(rsMachines("alias") & "")
+ machineNum = Trim(rsMachines("machinenumber") & "")
+ Response.Write("")
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