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