Added printers to DB form
This commit is contained in:
@@ -1,252 +0,0 @@
|
|||||||
<?php include '../src/session_check.php'; ?>
|
|
||||||
|
|
||||||
<html lang="en" data-bs-theme="light">
|
|
||||||
<head>
|
|
||||||
<!-- Required meta tags -->
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<!--favicon-->
|
|
||||||
<link rel="icon" href="../assets/images/favicon-32x32.png" type="image/png">
|
|
||||||
<!--plugins-->
|
|
||||||
<link href="../assets/plugins/vectormap/jquery-jvectormap-2.0.2.css" rel="stylesheet">
|
|
||||||
<link href="../assets/plugins/simplebar/css/simplebar.css" rel="stylesheet">
|
|
||||||
<link href="../assets/plugins/perfect-scrollbar/css/perfect-scrollbar.css" rel="stylesheet">
|
|
||||||
<link href="../assets/plugins/metismenu/css/metisMenu.min.css" rel="stylesheet">
|
|
||||||
<!-- loader-->
|
|
||||||
<link href="../assets/css/pace.min.css" rel="stylesheet"/>
|
|
||||||
<script src="../assets/js/pace.min.js"></script>
|
|
||||||
<!-- Bootstrap CSS -->
|
|
||||||
<link href="../assets/css/bootstrap.min.css" rel="stylesheet">
|
|
||||||
<link href="../assets/css/bootstrap-extended.css" rel="stylesheet">
|
|
||||||
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap" rel="stylesheet">
|
|
||||||
|
|
||||||
<link href="../assets/sass/app.css" rel="stylesheet">
|
|
||||||
<link href="../assets/css/icons.css" rel="stylesheet">
|
|
||||||
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'>
|
|
||||||
<!-- Theme Style CSS -->
|
|
||||||
<link rel="stylesheet" href="../assets/sass/dark-theme.css">
|
|
||||||
<link rel="stylesheet" href="../assets/sass/semi-dark.css">
|
|
||||||
<link rel="stylesheet" href="../assets/sass/bordered-theme.css">
|
|
||||||
|
|
||||||
<title>TOD Dashboard</title>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<!--wrapper-->
|
|
||||||
<div class="wrapper">
|
|
||||||
<!--sidebar wrapper -->
|
|
||||||
<?php include '../src/nav.php'; ?>
|
|
||||||
<!--end sidebar wrapper -->
|
|
||||||
<!--start header -->
|
|
||||||
<header>
|
|
||||||
<div class="topbar">
|
|
||||||
<nav class="navbar navbar-expand gap-2 align-items-center">
|
|
||||||
<div class="mobile-toggle-menu d-flex"><i class='bx bx-menu'></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="search-bar d-lg-block d-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
|
||||||
<a href="avascript:;" class="btn d-flex align-items-center"><i class="bx bx-search"></i>Search</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="top-menu ms-auto">
|
|
||||||
<ul class="navbar-nav align-items-center gap-1">
|
|
||||||
<li class="nav-item mobile-search-icon d-flex d-lg-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
|
||||||
<a class="nav-link" href="avascript:;"><i class='bx bx-search'></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item dark-mode d-none d-sm-flex">
|
|
||||||
<a class="nav-link dark-mode-icon" href="javascript:;"><i class='bx bx-moon'></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item dropdown dropdown-large">
|
|
||||||
<a class="nav-link dropdown-toggle dropdown-toggle-nocaret position-relative" href="#" data-bs-toggle="dropdown"><span class="alert-count">7</span>
|
|
||||||
<i class='bx bx-bell'></i>
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu dropdown-menu-end">
|
|
||||||
<a href="javascript:;">
|
|
||||||
<div class="msg-header">
|
|
||||||
<p class="msg-header-title">Notifications</p>
|
|
||||||
<p class="msg-header-badge">8 New</p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<div class="header-notifications-list">
|
|
||||||
<a class="dropdown-item" href="javascript:;">
|
|
||||||
<div class="d-flex align-items-center">
|
|
||||||
<div class="user-online">
|
|
||||||
<img src="../assets/images/avatars/avatar-1.png" class="msg-avatar" alt="user avatar">
|
|
||||||
</div>
|
|
||||||
<div class="flex-grow-1">
|
|
||||||
<h6 class="msg-name">Daisy Anderson<span class="msg-time float-end">5 sec
|
|
||||||
ago</span></h6>
|
|
||||||
<p class="msg-info">The standard chunk of lorem</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<a href="javascript:;">
|
|
||||||
<div class="text-center msg-footer">
|
|
||||||
<button class="btn btn-primary w-100">View All Notifications</button>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="user-box dropdown px-3">
|
|
||||||
<a class="d-flex align-items-center nav-link dropdown-toggle gap-3 dropdown-toggle-nocaret" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
<img src="../assets/images/avatars/avatar-2.png" class="user-img" alt="user avatar">
|
|
||||||
<div class="user-info">
|
|
||||||
<p class="user-name mb-0"><?php echo isset($_SESSION['username']) ? htmlspecialchars($_SESSION['username']) : 'Guest'; ?></p>
|
|
||||||
<p class="designattion mb-0"><?php echo isset($_SESSION['role']) ? htmlspecialchars($_SESSION['role']) : 'N/A'; ?></p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="javascript:;"><i class="bx bx-user fs-5"></i><span>Profile</span></a>
|
|
||||||
</li>
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="javascript:;"><i class="bx bx-cog fs-5"></i><span>My Printers</span></a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<div class="dropdown-divider mb-0"></div>
|
|
||||||
</li>
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="logout.php"><i class="bx bx-log-out-circle"></i><span>Logout</span></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<!--end header -->
|
|
||||||
|
|
||||||
<!--start page wrapper -->
|
|
||||||
<div class="page-wrapper">
|
|
||||||
<div class="page-content">
|
|
||||||
<!--start page content -->
|
|
||||||
|
|
||||||
<!--breadcrumb-->
|
|
||||||
<div class="page-breadcrumb d-none d-sm-flex align-items-center mb-3">
|
|
||||||
<div class="breadcrumb-title pe-3">User Settings</div>
|
|
||||||
<div class="ps-3">
|
|
||||||
<nav aria-label="breadcrumb">
|
|
||||||
<ol class="breadcrumb mb-0 p-0">
|
|
||||||
<li class="breadcrumb-item"><a href="javascript:;"><i class="bx bx-home-alt"></i></a>
|
|
||||||
</li>
|
|
||||||
<li class="breadcrumb-item active" aria-current="page">Add Printer</li>
|
|
||||||
</ol>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--end breadcrumb-->
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-8 mx-auto">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header px-4 py-3">
|
|
||||||
<h5 class="mb-0">Add New Printer</h5>
|
|
||||||
</div>
|
|
||||||
<div class="card-body p-4">
|
|
||||||
<form id="printerForm" method="post" action="addPrinter.php">
|
|
||||||
<!-- Printer Name -->
|
|
||||||
<div class="row mb-3">
|
|
||||||
<label for="printerName" class="col-sm-3 col-form-label">Printer Name</label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<input type="text" class="form-control" id="printerName" name="printerName" placeholder="Bambu X1 or P1P" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Printer IP -->
|
|
||||||
<div class="row mb-3">
|
|
||||||
<label for="printerIp" class="col-sm-3 col-form-label">Printer IP</label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<input type="text" class="form-control" id="printerIp" name="printerIp" placeholder="e.g., 192.168.1.100" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Serial Number -->
|
|
||||||
<div class="row mb-3">
|
|
||||||
<label for="serialNumber" class="col-sm-3 col-form-label">Serial Number</label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<input type="text" class="form-control" id="serialNumber" name="serialNumber" placeholder="e.g., X1SN123456" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Printer Access Code -->
|
|
||||||
<div class="row mb-3">
|
|
||||||
<label for="accessCode" class="col-sm-3 col-form-label">Printer Access Code</label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<input type="password" class="form-control" id="accessCode" name="accessCode" placeholder="Enter Printer Access Code" required>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Submit and Reset Buttons -->
|
|
||||||
<div class="row">
|
|
||||||
<label class="col-sm-3 col-form-label"></label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<div class="d-md-flex d-grid align-items-center gap-3">
|
|
||||||
<button type="submit" class="btn btn-primary px-4">Add Printer</button>
|
|
||||||
<button type="reset" class="btn btn-light px-4">Reset</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--end page content -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--end page wrapper -->
|
|
||||||
|
|
||||||
<!--start overlay-->
|
|
||||||
<div class="overlay mobile-toggle-icon"></div>
|
|
||||||
<!--end overlay-->
|
|
||||||
<!--Start Back To Top Button-->
|
|
||||||
<a href="javaScript:;" class="back-to-top"><i class='bx bxs-up-arrow-alt'></i></a>
|
|
||||||
<!--End Back To Top Button-->
|
|
||||||
<footer class="page-footer">
|
|
||||||
<p class="mb-0">Copyright © 2024. All right reserved.</p>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
<!--end wrapper-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- search modal -->
|
|
||||||
<div class="modal" id="SearchModal" tabindex="-1">
|
|
||||||
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-fullscreen-md-down">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header gap-2">
|
|
||||||
<div class="position-relative popup-search w-100">
|
|
||||||
<input class="form-control form-control-lg ps-5 border border-3 border-primary" type="search" placeholder="Search">
|
|
||||||
<span class="position-absolute top-50 search-show ms-3 translate-middle-y start-0 top-50 fs-4"><i class='bx bx-search'></i></span>
|
|
||||||
</div>
|
|
||||||
<button type="button" class="btn-close d-md-none" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!-- end search modal -->
|
|
||||||
|
|
||||||
<!-- Bootstrap JS -->
|
|
||||||
<script src="../assets/js/bootstrap.bundle.min.js"></script>
|
|
||||||
<!--plugins-->
|
|
||||||
<script src="../assets/js/jquery.min.js"></script>
|
|
||||||
<script src="../assets/plugins/simplebar/js/simplebar.min.js"></script>
|
|
||||||
<script src="../assets/plugins/metismenu/js/metisMenu.min.js"></script>
|
|
||||||
<script src="../assets/plugins/perfect-scrollbar/js/perfect-scrollbar.js"></script>
|
|
||||||
<script src="../assets/plugins/apexcharts-bundle/js/apexcharts.min.js"></script>
|
|
||||||
<!--app JS-->
|
|
||||||
<script src="../assets/js/app.js"></script>
|
|
||||||
|
|
||||||
<script src="../assets/js/index.js"></script>
|
|
||||||
<script src="../assets/plugins/peity/jquery.peity.min.js"></script>
|
|
||||||
<script>
|
|
||||||
$(".data-attributes span").peity("donut")
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
@@ -38,85 +38,7 @@
|
|||||||
<?php include '../src/nav.php'; ?>
|
<?php include '../src/nav.php'; ?>
|
||||||
<!--end sidebar wrapper -->
|
<!--end sidebar wrapper -->
|
||||||
<!--start header -->
|
<!--start header -->
|
||||||
<header>
|
<?php include '../src/header.php'; ?>
|
||||||
<div class="topbar">
|
|
||||||
<nav class="navbar navbar-expand gap-2 align-items-center">
|
|
||||||
<div class="mobile-toggle-menu d-flex"><i class='bx bx-menu'></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="search-bar d-lg-block d-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
|
||||||
<a href="avascript:;" class="btn d-flex align-items-center"><i class="bx bx-search"></i>Search</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="top-menu ms-auto">
|
|
||||||
<ul class="navbar-nav align-items-center gap-1">
|
|
||||||
<li class="nav-item mobile-search-icon d-flex d-lg-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
|
||||||
<a class="nav-link" href="avascript:;"><i class='bx bx-search'></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item dark-mode d-none d-sm-flex">
|
|
||||||
<a class="nav-link dark-mode-icon" href="javascript:;"><i class='bx bx-moon'></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item dropdown dropdown-large">
|
|
||||||
<a class="nav-link dropdown-toggle dropdown-toggle-nocaret position-relative" href="#" data-bs-toggle="dropdown"><span class="alert-count">7</span>
|
|
||||||
<i class='bx bx-bell'></i>
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu dropdown-menu-end">
|
|
||||||
<a href="javascript:;">
|
|
||||||
<div class="msg-header">
|
|
||||||
<p class="msg-header-title">Notifications</p>
|
|
||||||
<p class="msg-header-badge">8 New</p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<div class="header-notifications-list">
|
|
||||||
<a class="dropdown-item" href="javascript:;">
|
|
||||||
<div class="d-flex align-items-center">
|
|
||||||
<div class="user-online">
|
|
||||||
<img src="../assets/images/avatars/avatar-1.png" class="msg-avatar" alt="user avatar">
|
|
||||||
</div>
|
|
||||||
<div class="flex-grow-1">
|
|
||||||
<h6 class="msg-name">Daisy Anderson<span class="msg-time float-end">5 sec
|
|
||||||
ago</span></h6>
|
|
||||||
<p class="msg-info">The standard chunk of lorem</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<a href="javascript:;">
|
|
||||||
<div class="text-center msg-footer">
|
|
||||||
<button class="btn btn-primary w-100">View All Notifications</button>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="user-box dropdown px-3">
|
|
||||||
<a class="d-flex align-items-center nav-link dropdown-toggle gap-3 dropdown-toggle-nocaret" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
<img src="../assets/images/avatars/avatar-2.png" class="user-img" alt="user avatar">
|
|
||||||
<div class="user-info">
|
|
||||||
<p class="user-name mb-0"><?php echo isset($_SESSION['username']) ? htmlspecialchars($_SESSION['username']) : 'Guest'; ?></p>
|
|
||||||
<p class="designattion mb-0"><?php echo isset($_SESSION['role']) ? htmlspecialchars($_SESSION['role']) : 'N/A'; ?></p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="javascript:;"><i class="bx bx-user fs-5"></i><span>Profile</span></a>
|
|
||||||
</li>
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="javascript:;"><i class="bx bx-cog fs-5"></i><span>My Printers</span></a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<div class="dropdown-divider mb-0"></div>
|
|
||||||
</li>
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="logout.php"><i class="bx bx-log-out-circle"></i><span>Logout</span></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<!--end header -->
|
<!--end header -->
|
||||||
<!--start page wrapper -->
|
<!--start page wrapper -->
|
||||||
<div class="page-wrapper">
|
<div class="page-wrapper">
|
||||||
|
|||||||
211
public/printerForm.php
Normal file
211
public/printerForm.php
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
<?php include '../src/session_check.php'; ?>
|
||||||
|
|
||||||
|
<html lang="en" data-bs-theme="light">
|
||||||
|
<head>
|
||||||
|
<!-- Required meta tags -->
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<!--favicon-->
|
||||||
|
<link rel="icon" href="../assets/images/favicon-32x32.png" type="image/png">
|
||||||
|
<!--plugins-->
|
||||||
|
<link href="../assets/plugins/vectormap/jquery-jvectormap-2.0.2.css" rel="stylesheet">
|
||||||
|
<link href="../assets/plugins/simplebar/css/simplebar.css" rel="stylesheet">
|
||||||
|
<link href="../assets/plugins/perfect-scrollbar/css/perfect-scrollbar.css" rel="stylesheet">
|
||||||
|
<link href="../assets/plugins/metismenu/css/metisMenu.min.css" rel="stylesheet">
|
||||||
|
<!-- loader-->
|
||||||
|
<link href="../assets/css/pace.min.css" rel="stylesheet"/>
|
||||||
|
<script src="../assets/js/pace.min.js"></script>
|
||||||
|
<!-- Bootstrap CSS -->
|
||||||
|
<link href="../assets/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<link href="../assets/css/bootstrap-extended.css" rel="stylesheet">
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap" rel="stylesheet">
|
||||||
|
|
||||||
|
<link href="../assets/sass/app.css" rel="stylesheet">
|
||||||
|
<link href="../assets/css/icons.css" rel="stylesheet">
|
||||||
|
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet'>
|
||||||
|
<!-- Theme Style CSS -->
|
||||||
|
<link rel="stylesheet" href="../assets/sass/dark-theme.css">
|
||||||
|
<link rel="stylesheet" href="../assets/sass/semi-dark.css">
|
||||||
|
<link rel="stylesheet" href="../assets/sass/bordered-theme.css">
|
||||||
|
|
||||||
|
<title>TOD Dashboard</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!--wrapper-->
|
||||||
|
<div class="wrapper">
|
||||||
|
<!--sidebar wrapper -->
|
||||||
|
<?php include '../src/nav.php'; ?>
|
||||||
|
<!--end sidebar wrapper -->
|
||||||
|
<!--start header -->
|
||||||
|
<?php include '../src/header.php'; ?>
|
||||||
|
<!--end header -->
|
||||||
|
|
||||||
|
<!--start page wrapper -->
|
||||||
|
<div class="page-wrapper">
|
||||||
|
<div class="page-content">
|
||||||
|
<!--start page content -->
|
||||||
|
|
||||||
|
<!--breadcrumb-->
|
||||||
|
<div class="page-breadcrumb d-none d-sm-flex align-items-center mb-3">
|
||||||
|
<div class="breadcrumb-title pe-3">User Settings</div>
|
||||||
|
<div class="ps-3">
|
||||||
|
<nav aria-label="breadcrumb">
|
||||||
|
<ol class="breadcrumb mb-0 p-0">
|
||||||
|
<li class="breadcrumb-item"><a href="index.php"><i class="bx bx-home-alt"></i></a>
|
||||||
|
</li>
|
||||||
|
<li class="breadcrumb-item active" aria-current="page">Add Printer</li>
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--end breadcrumb-->
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-lg-8 mx-auto">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header px-4 py-3">
|
||||||
|
<h5 class="mb-0">Add New Printer</h5>
|
||||||
|
</div>
|
||||||
|
<div class="card-body p-4">
|
||||||
|
<!-- Alert Banner (Hidden Initially) -->
|
||||||
|
<div id="alertBanner" class="alert d-none" role="alert"></div>
|
||||||
|
|
||||||
|
<form id="printerForm">
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="printerName" class="col-sm-3 col-form-label">Printer Name</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="text" class="form-control" id="printerName" name="printerName" placeholder="Bambu X1 or P1P" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="printerIp" class="col-sm-3 col-form-label">Printer IP</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="text" class="form-control" id="printerIp" name="printerIp" placeholder="e.g., 192.168.1.100" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="serialNumber" class="col-sm-3 col-form-label">Serial Number</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="text" class="form-control" id="serialNumber" name="serialNumber" placeholder="e.g., X1SN123456" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="accessCode" class="col-sm-3 col-form-label">Printer Access Code</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="password" class="form-control" id="accessCode" name="accessCode" placeholder="Enter Printer Access Code" required>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<label class="col-sm-3 col-form-label"></label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<div class="d-md-flex d-grid align-items-center gap-3">
|
||||||
|
<button type="submit" class="btn btn-primary px-4">Add Printer</button>
|
||||||
|
<button type="reset" class="btn btn-light px-4">Reset</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- jQuery & AJAX Script -->
|
||||||
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('#printerForm').on('submit', function(event) {
|
||||||
|
event.preventDefault(); // Prevent traditional form submission
|
||||||
|
|
||||||
|
// Collect form data
|
||||||
|
let formData = $(this).serialize();
|
||||||
|
|
||||||
|
// AJAX request to submit form
|
||||||
|
$.ajax({
|
||||||
|
type: 'POST',
|
||||||
|
url: '../src/printers/addPrinter.php',
|
||||||
|
data: formData,
|
||||||
|
dataType: 'json',
|
||||||
|
success: function(response) {
|
||||||
|
let banner = $('#alertBanner');
|
||||||
|
if (response.status === 'success') {
|
||||||
|
banner.removeClass('d-none alert-danger')
|
||||||
|
.addClass('alert-success')
|
||||||
|
.text(response.message);
|
||||||
|
} else {
|
||||||
|
banner.removeClass('d-none alert-success')
|
||||||
|
.addClass('alert-danger')
|
||||||
|
.text(response.message);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
$('#alertBanner').removeClass('d-none alert-success')
|
||||||
|
.addClass('alert-danger')
|
||||||
|
.text('An error occurred while adding the printer.');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--end page content -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--end page wrapper -->
|
||||||
|
|
||||||
|
<!--start overlay-->
|
||||||
|
<div class="overlay mobile-toggle-icon"></div>
|
||||||
|
<!--end overlay-->
|
||||||
|
<!--Start Back To Top Button-->
|
||||||
|
<a href="javaScript:;" class="back-to-top"><i class='bx bxs-up-arrow-alt'></i></a>
|
||||||
|
<!--End Back To Top Button-->
|
||||||
|
<footer class="page-footer">
|
||||||
|
<p class="mb-0">Copyright © 2024. All right reserved.</p>
|
||||||
|
</footer>
|
||||||
|
</div>
|
||||||
|
<!--end wrapper-->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- search modal -->
|
||||||
|
<div class="modal" id="SearchModal" tabindex="-1">
|
||||||
|
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable modal-fullscreen-md-down">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header gap-2">
|
||||||
|
<div class="position-relative popup-search w-100">
|
||||||
|
<input class="form-control form-control-lg ps-5 border border-3 border-primary" type="search" placeholder="Search">
|
||||||
|
<span class="position-absolute top-50 search-show ms-3 translate-middle-y start-0 top-50 fs-4"><i class='bx bx-search'></i></span>
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn-close d-md-none" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- end search modal -->
|
||||||
|
|
||||||
|
<!-- Bootstrap JS -->
|
||||||
|
<script src="../assets/js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!--plugins-->
|
||||||
|
<script src="../assets/js/jquery.min.js"></script>
|
||||||
|
<script src="../assets/plugins/simplebar/js/simplebar.min.js"></script>
|
||||||
|
<script src="../assets/plugins/metismenu/js/metisMenu.min.js"></script>
|
||||||
|
<script src="../assets/plugins/perfect-scrollbar/js/perfect-scrollbar.js"></script>
|
||||||
|
<script src="../assets/plugins/apexcharts-bundle/js/apexcharts.min.js"></script>
|
||||||
|
<!--app JS-->
|
||||||
|
<script src="../assets/js/app.js"></script>
|
||||||
|
|
||||||
|
<script src="../assets/js/index.js"></script>
|
||||||
|
<script src="../assets/plugins/peity/jquery.peity.min.js"></script>
|
||||||
|
<script>
|
||||||
|
$(".data-attributes span").peity("donut")
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
require 'envLoader.php';
|
require_once 'envLoader.php';
|
||||||
loadEnv(__DIR__ . '/../.env');
|
loadEnv(__DIR__ . '/../.env');
|
||||||
|
|
||||||
$host = $_ENV['DB_HOST'];
|
$host = $_ENV['DB_HOST'];
|
||||||
|
|||||||
79
src/header.php
Normal file
79
src/header.php
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<header>
|
||||||
|
<div class="topbar">
|
||||||
|
<nav class="navbar navbar-expand gap-2 align-items-center">
|
||||||
|
<div class="mobile-toggle-menu d-flex"><i class='bx bx-menu'></i>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="search-bar d-lg-block d-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
||||||
|
<a href="avascript:;" class="btn d-flex align-items-center"><i class="bx bx-search"></i>Search</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="top-menu ms-auto">
|
||||||
|
<ul class="navbar-nav align-items-center gap-1">
|
||||||
|
<li class="nav-item mobile-search-icon d-flex d-lg-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
||||||
|
<a class="nav-link" href="avascript:;"><i class='bx bx-search'></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dark-mode d-none d-sm-flex">
|
||||||
|
<a class="nav-link dark-mode-icon" href="javascript:;"><i class='bx bx-moon'></i>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="nav-item dropdown dropdown-large">
|
||||||
|
<a class="nav-link dropdown-toggle dropdown-toggle-nocaret position-relative" href="#" data-bs-toggle="dropdown"><span class="alert-count">7</span>
|
||||||
|
<i class='bx bx-bell'></i>
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-menu dropdown-menu-end">
|
||||||
|
<a href="javascript:;">
|
||||||
|
<div class="msg-header">
|
||||||
|
<p class="msg-header-title">Notifications</p>
|
||||||
|
<p class="msg-header-badge">8 New</p>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<div class="header-notifications-list">
|
||||||
|
<a class="dropdown-item" href="javascript:;">
|
||||||
|
<div class="d-flex align-items-center">
|
||||||
|
<div class="user-online">
|
||||||
|
<img src="../assets/images/avatars/avatar-1.png" class="msg-avatar" alt="user avatar">
|
||||||
|
</div>
|
||||||
|
<div class="flex-grow-1">
|
||||||
|
<h6 class="msg-name">Daisy Anderson<span class="msg-time float-end">5 sec
|
||||||
|
ago</span></h6>
|
||||||
|
<p class="msg-info">The standard chunk of lorem</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<a href="javascript:;">
|
||||||
|
<div class="text-center msg-footer">
|
||||||
|
<button class="btn btn-primary w-100">View All Notifications</button>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="user-box dropdown px-3">
|
||||||
|
<a class="d-flex align-items-center nav-link dropdown-toggle gap-3 dropdown-toggle-nocaret" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
<img src="../assets/images/avatars/avatar-2.png" class="user-img" alt="user avatar">
|
||||||
|
<div class="user-info">
|
||||||
|
<p class="user-name mb-0"><?php echo isset($_SESSION['username']) ? htmlspecialchars($_SESSION['username']) : 'Guest'; ?></p>
|
||||||
|
<p class="designattion mb-0"><?php echo isset($_SESSION['role']) ? htmlspecialchars($_SESSION['role']) : 'N/A'; ?></p>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu dropdown-menu-end">
|
||||||
|
<li><a class="dropdown-item d-flex align-items-center" href="javascript:;"><i class="bx bx-user fs-5"></i><span>Profile</span></a>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item d-flex align-items-center" href="printerForm.php"><i class="bx bx-cog fs-5"></i><span>My Printers</span></a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="dropdown-divider mb-0"></div>
|
||||||
|
</li>
|
||||||
|
<li><a class="dropdown-item d-flex align-items-center" href="logout.php"><i class="bx bx-log-out-circle"></i><span>Logout</span></a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
session_start();
|
session_start();
|
||||||
require 'db.php';
|
require_once 'db.php';
|
||||||
|
|
||||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||||
$username = htmlspecialchars($_POST['username']);
|
$username = htmlspecialchars($_POST['username']);
|
||||||
|
|||||||
43
src/printers/addPrinter.php
Normal file
43
src/printers/addPrinter.php
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
require '../db.php';
|
||||||
|
require_once '../envLoader.php';
|
||||||
|
loadEnv(__DIR__ . '/../../.env');
|
||||||
|
|
||||||
|
// Handle POST Request
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
|
header('Content-Type: application/json'); // Return JSON response
|
||||||
|
|
||||||
|
// Collect and sanitize form data
|
||||||
|
$printerName = filter_input(INPUT_POST, 'printerName', FILTER_SANITIZE_STRING);
|
||||||
|
$printerIp = filter_input(INPUT_POST, 'printerIp', FILTER_VALIDATE_IP);
|
||||||
|
$serialNumber = filter_input(INPUT_POST, 'serialNumber', FILTER_SANITIZE_STRING);
|
||||||
|
$accessCode = filter_input(INPUT_POST, 'accessCode', FILTER_SANITIZE_STRING);
|
||||||
|
|
||||||
|
if (!$printerName || !$printerIp || !$serialNumber || !$accessCode) {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'All fields are required and IP must be valid.']);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Prepare SQL insert statement
|
||||||
|
$stmt = $pdo->prepare("
|
||||||
|
INSERT INTO bambuPrinters (printerName, printerIp, mqttPassword, serialNumber)
|
||||||
|
VALUES (:printerName, :printerIp, :mqttPassword, :serialNumber)
|
||||||
|
");
|
||||||
|
|
||||||
|
// Execute the query with bound parameters
|
||||||
|
$stmt->execute([
|
||||||
|
':printerName' => $printerName,
|
||||||
|
':printerIp' => $printerIp,
|
||||||
|
':mqttPassword' => $accessCode,
|
||||||
|
':serialNumber' => $serialNumber
|
||||||
|
]);
|
||||||
|
|
||||||
|
echo json_encode(['status' => 'success', 'message' => 'Printer successfully added!']);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Error adding printer: ' . $e->getMessage()]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo json_encode(['status' => 'error', 'message' => 'Invalid request method.']);
|
||||||
|
}
|
||||||
|
?>
|
||||||
80
template.php
80
template.php
@@ -38,85 +38,7 @@
|
|||||||
<?php include '../src/nav.php'; ?>
|
<?php include '../src/nav.php'; ?>
|
||||||
<!--end sidebar wrapper -->
|
<!--end sidebar wrapper -->
|
||||||
<!--start header -->
|
<!--start header -->
|
||||||
<header>
|
<?php include '../src/nav.php'; ?>
|
||||||
<div class="topbar">
|
|
||||||
<nav class="navbar navbar-expand gap-2 align-items-center">
|
|
||||||
<div class="mobile-toggle-menu d-flex"><i class='bx bx-menu'></i>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="search-bar d-lg-block d-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
|
||||||
<a href="avascript:;" class="btn d-flex align-items-center"><i class="bx bx-search"></i>Search</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="top-menu ms-auto">
|
|
||||||
<ul class="navbar-nav align-items-center gap-1">
|
|
||||||
<li class="nav-item mobile-search-icon d-flex d-lg-none" data-bs-toggle="modal" data-bs-target="#SearchModal">
|
|
||||||
<a class="nav-link" href="avascript:;"><i class='bx bx-search'></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item dark-mode d-none d-sm-flex">
|
|
||||||
<a class="nav-link dark-mode-icon" href="javascript:;"><i class='bx bx-moon'></i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item dropdown dropdown-large">
|
|
||||||
<a class="nav-link dropdown-toggle dropdown-toggle-nocaret position-relative" href="#" data-bs-toggle="dropdown"><span class="alert-count">7</span>
|
|
||||||
<i class='bx bx-bell'></i>
|
|
||||||
</a>
|
|
||||||
<div class="dropdown-menu dropdown-menu-end">
|
|
||||||
<a href="javascript:;">
|
|
||||||
<div class="msg-header">
|
|
||||||
<p class="msg-header-title">Notifications</p>
|
|
||||||
<p class="msg-header-badge">8 New</p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<div class="header-notifications-list">
|
|
||||||
<a class="dropdown-item" href="javascript:;">
|
|
||||||
<div class="d-flex align-items-center">
|
|
||||||
<div class="user-online">
|
|
||||||
<img src="../assets/images/avatars/avatar-1.png" class="msg-avatar" alt="user avatar">
|
|
||||||
</div>
|
|
||||||
<div class="flex-grow-1">
|
|
||||||
<h6 class="msg-name">Daisy Anderson<span class="msg-time float-end">5 sec
|
|
||||||
ago</span></h6>
|
|
||||||
<p class="msg-info">The standard chunk of lorem</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<a href="javascript:;">
|
|
||||||
<div class="text-center msg-footer">
|
|
||||||
<button class="btn btn-primary w-100">View All Notifications</button>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div class="user-box dropdown px-3">
|
|
||||||
<a class="d-flex align-items-center nav-link dropdown-toggle gap-3 dropdown-toggle-nocaret" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
||||||
<img src="../assets/images/avatars/avatar-2.png" class="user-img" alt="user avatar">
|
|
||||||
<div class="user-info">
|
|
||||||
<p class="user-name mb-0"><?php echo isset($_SESSION['username']) ? htmlspecialchars($_SESSION['username']) : 'Guest'; ?></p>
|
|
||||||
<p class="designattion mb-0"><?php echo isset($_SESSION['role']) ? htmlspecialchars($_SESSION['role']) : 'N/A'; ?></p>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu dropdown-menu-end">
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="javascript:;"><i class="bx bx-user fs-5"></i><span>Profile</span></a>
|
|
||||||
</li>
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="javascript:;"><i class="bx bx-cog fs-5"></i><span>My Printers</span></a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<div class="dropdown-divider mb-0"></div>
|
|
||||||
</li>
|
|
||||||
<li><a class="dropdown-item d-flex align-items-center" href="logout.php"><i class="bx bx-log-out-circle"></i><span>Logout</span></a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<!--end header -->
|
<!--end header -->
|
||||||
|
|
||||||
<!--start page wrapper -->
|
<!--start page wrapper -->
|
||||||
|
|||||||
Reference in New Issue
Block a user