Files
shopdb/addmodel.asp
cproudlock 249bfbba8c 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)
2025-12-10 20:40:05 -05:00

248 lines
10 KiB
Plaintext

<!DOCTYPE html>
<html lang="en">
<head>
<!--#include file="./includes/header.asp"-->
<!--#include file="./includes/sql.asp"-->
</head>
<%
theme = Request.Cookies("theme")
IF theme = "" THEN
theme="bg-theme1"
END IF
%>
<body class="bg-theme <%Response.Write(theme)%>">
<!-- start loader -->
<div id="pageloader-overlay" class="visible incoming"><div class="loader-wrapper-outer"><div class="loader-wrapper-inner" ><div class="loader"></div></div></div></div>
<!-- end loader -->
<!-- Start wrapper-->
<div id="wrapper">
<!--#include file="./includes/leftsidebar.asp"-->
<!--Start topbar header-->
<!--#include file="./includes/topbarheader.asp"-->
<!--End topbar header-->
<div class="clearfix"></div>
<div class="content-wrapper">
<div class="container-fluid">
<div class="row mt-3">
<div class="col-lg-8 offset-lg-2">
<div class="card">
<div class="card-body">
<div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;">
<h5 class="card-title" style="margin:0;">
<i class="zmdi zmdi-collection-item"></i> Add Model
</h5>
<a href="javascript:history.back()" class="btn btn-sm btn-secondary">
<i class="zmdi zmdi-arrow-left"></i> Back
</a>
</div>
<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"
required maxlength="255" placeholder="e.g., EC8036, ProDesk 600 G5">
</div>
<div class="form-group">
<label for="vendorid">Manufacturer <span class="text-danger">*</span></label>
<div class="input-group">
<select class="form-control" id="vendorid" name="vendorid" required>
<option value="">-- Select Manufacturer --</option>
<%
Dim strSQL, rsVendors
strSQL = "SELECT * FROM vendors WHERE isactive = 1 ORDER BY vendor ASC"
Set rsVendors = objconn.Execute(strSQL)
While Not rsVendors.EOF
Response.Write("<option value='" & rsVendors("vendorid") & "'>" & Server.HTMLEncode(rsVendors("vendor")) & "</option>")
rsVendors.MoveNext
Wend
rsVendors.Close
Set rsVendors = Nothing
%>
<option value="new">+ Add New Manufacturer</option>
</select>
<div class="input-group-append">
<button type="button" class="btn btn-info" id="addVendorBtn">
<i class="zmdi zmdi-plus"></i> New
</button>
</div>
</div>
</div>
<!-- Hidden section for adding new manufacturer -->
<div id="newVendorSection" class="new-vendor-section" style="display:none; padding:15px; border-radius:5px; margin-bottom:15px;">
<h6 class="mb-3"><i class="zmdi zmdi-plus-circle"></i> New Manufacturer</h6>
<div class="form-group">
<label for="newvendorname">Manufacturer Name</label>
<input type="text" class="form-control" id="newvendorname" name="newvendorname"
maxlength="50" placeholder="e.g., HP, Xerox, Dell">
</div>
<div class="form-group">
<label>This manufacturer makes:</label>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="isprinter" name="isprinter" value="1">
<label class="form-check-label" for="isprinter">
Printers
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="ispc" name="ispc" value="1">
<label class="form-check-label" for="ispc">
PCs/Computers
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="ismachine" name="ismachine" value="1">
<label class="form-check-label" for="ismachine">
Machines/Equipment
</label>
</div>
</div>
<button type="button" class="btn btn-sm btn-secondary" id="cancelNewVendor">
<i class="zmdi zmdi-close"></i> Cancel
</button>
</div>
<div class="form-group">
<label>This model is for:</label>
<small class="form-text text-muted mb-2">Select at least one category</small>
<div class="form-check">
<input class="form-check-input model-type" type="checkbox" id="modelisprinter" name="modelisprinter" value="1">
<label class="form-check-label" for="modelisprinter">
<i class="zmdi zmdi-print"></i> Printer
</label>
</div>
<div class="form-check">
<input class="form-check-input model-type" type="checkbox" id="modelispc" name="modelispc" value="1">
<label class="form-check-label" for="modelispc">
<i class="zmdi zmdi-desktop-windows"></i> PC/Computer
</label>
</div>
<div class="form-check">
<input class="form-check-input model-type" type="checkbox" id="modelismachine" name="modelismachine" value="1">
<label class="form-check-label" for="modelismachine">
<i class="zmdi zmdi-memory"></i> Machine/Equipment
</label>
</div>
</div>
<div class="form-group">
<label for="documentationpath">Documentation URL (Optional)</label>
<input type="url" class="form-control" id="documentationpath" name="documentationpath"
maxlength="255" placeholder="https://...">
<small class="form-text text-muted">Link to support docs, manual, or spec sheet</small>
</div>
<div class="form-group">
<label for="notes">Notes (Optional)</label>
<textarea class="form-control" id="notes" name="notes"
rows="3" maxlength="255" placeholder="Additional notes about this model"></textarea>
</div>
<hr>
<div class="form-group text-right">
<button type="submit" class="btn btn-primary btn-lg">
<i class="zmdi zmdi-check"></i> Add Model
</button>
<a href="javascript:history.back()" class="btn btn-secondary btn-lg">
<i class="zmdi zmdi-close"></i> Cancel
</a>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- End Row -->
<!-- End container-fluid-->
</div><!--End content-wrapper-->
<!--Start Back To Top Button-->
<a href="javaScript:void();" class="back-to-top"><i class="fa fa-angle-double-up"></i> </a>
<!--End Back To Top Button-->
<!--Start footer-->
<footer class="footer">
<div class="container">
<div class="text-center">
</div>
</div>
</footer>
<!--End footer-->
</div><!--End wrapper-->
<!-- Bootstrap core JavaScript-->
<script src="assets/js/jquery.min.js"></script>
<script src="assets/js/popper.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<!-- simplebar js -->
<script src="assets/plugins/simplebar/js/simplebar.js"></script>
<!-- sidebar-menu js -->
<script src="assets/js/sidebar-menu.js"></script>
<!-- Custom scripts -->
<script src="assets/js/app-script.js"></script>
<style>
/* New vendor section styling for all themes */
.new-vendor-section {
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.1);
}
.new-vendor-section h6 {
color: rgba(255, 255, 255, 0.9);
}
</style>
<script>
$(document).ready(function() {
// Show/hide new vendor section
$('#addVendorBtn, #vendorid').on('change click', function() {
if ($('#vendorid').val() === 'new' || $(this).attr('id') === 'addVendorBtn') {
$('#vendorid').val('new');
$('#newVendorSection').slideDown();
$('#newvendorname').prop('required', true);
}
});
$('#cancelNewVendor').on('click', function() {
$('#newVendorSection').slideUp();
$('#vendorid').val('');
$('#newvendorname').val('').prop('required', false);
$('#isprinter, #ispc, #ismachine').prop('checked', false);
});
// Form validation - at least one model type must be selected
$('#modelForm').on('submit', function(e) {
var atLeastOneChecked = $('.model-type:checked').length > 0;
if (!atLeastOneChecked) {
e.preventDefault();
alert('Please select at least one category for this model (Printer, PC, or Machine)');
return false;
}
// If adding new vendor, make sure name is filled
if ($('#vendorid').val() === 'new' && $('#newvendorname').val().trim() === '') {
e.preventDefault();
alert('Please enter a manufacturer name or select an existing one');
$('#newvendorname').focus();
return false;
}
});
});
</script>
</body>
</html>
<%
objConn.Close
%>