242 lines
9.0 KiB
PHP
242 lines
9.0 KiB
PHP
<?php
|
|
session_start();
|
|
include("../elements/master.php");
|
|
include("./switch_function.php");
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Update Switch</title>
|
|
<link rel="stylesheet" href="../css/style.css" type="text/css">
|
|
<link rel="stylesheet" href="../css/new_switch.css" type="text/css">
|
|
<link rel="stylesheet" href="../css/create_user.css" type="text/css">
|
|
</head>
|
|
<body>
|
|
<div class="user_container">
|
|
<maincontent>
|
|
<div class="usertable">
|
|
|
|
<h3>Switch Update</h3>
|
|
<?php
|
|
|
|
//-------------------API CALL------------------------------------//
|
|
|
|
$jsonFilePath = __DIR__ . '/../urls/api_endpoints.json';
|
|
$jsonData = file_get_contents($jsonFilePath);
|
|
$endpoints = json_decode($jsonData, true);
|
|
$url = $endpoints['switches'];
|
|
//---------------------------ENDS HERE-----------------------------------------//
|
|
|
|
|
|
$token = $_SESSION['token'];
|
|
$result = make_get_request($url, ["Authorization: $token"]);
|
|
$response = json_decode($result, true);
|
|
$_SESSION["response"] = $response;
|
|
|
|
include("../configuration/switch_details_function.php");
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$pid = $_POST['pid'] ?? null;
|
|
|
|
if ($pid) {
|
|
// echo "Received PID: " . htmlspecialchars($pid);
|
|
} else {
|
|
echo "No PID received.";
|
|
}
|
|
} else {
|
|
echo "No POST request received.";
|
|
}
|
|
?>
|
|
<!-- edited portion -->
|
|
|
|
<div class="userdetails">
|
|
<form action="./new_switch_function.php" class="form" id="createUserForm" method="POST">
|
|
<?php foreach ($user_details_fetch as $user): ?>
|
|
|
|
<?php
|
|
$pid=htmlspecialchars($user['id']);;
|
|
$desc=htmlspecialchars($user['description']);;
|
|
$type=htmlspecialchars($user['type']);;
|
|
?>
|
|
<div>
|
|
<div class="col-10">
|
|
<label>Ip Address</label>
|
|
</div>
|
|
<div class="col-40">
|
|
<input type="text" name="ip_address" placeholder="Enter the ip address" value="<?php echo htmlspecialchars($user['id']); ?>" required />
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<div class="col-10">
|
|
<label>Description</label>
|
|
</div>
|
|
<div class="col-40">
|
|
<input type="text" name="description" placeholder="Enter the Description" value="<?php echo htmlspecialchars($user['description']); ?>" required />
|
|
</div>
|
|
</div>
|
|
<!-- Switch Type Dropdown -->
|
|
<div>
|
|
<div class="col-10">
|
|
<label>Type</label>
|
|
</div>
|
|
<div class="col-40">
|
|
<select name="access" id="sources">
|
|
<option>Select Switch</option>
|
|
<option value="Alcatel">Alcatel</option>
|
|
<option value="Cisco">Cisco</option>
|
|
<option value="Dlink">Dlink</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Nested Dropdowns -->
|
|
<div id="nested_dropdownContainer">
|
|
<!-- Alcatel Dropdown -->
|
|
<div id="alcatelDropdown" class="nested_dropdown hidden">
|
|
<label>Select Alcatel Option</label>
|
|
<select name="alcatel_option">
|
|
<option value="#">-----------------</option>
|
|
<option value="Alcatel">Alcatel Switch</option>
|
|
</select>
|
|
</div>
|
|
|
|
<!-- Cisco Dropdown -->
|
|
<div id="ciscoDropdown" class="nested_dropdown hidden">
|
|
<label>Select Cisco Option</label>
|
|
<select name="cisco_option">
|
|
<option value="#">-------------</option>
|
|
<option value="Cisco_ASA">Cisco ASA</option>
|
|
<option value="Cisco::Catalyst_2970">Cisco catalyst 2970</option>
|
|
<option value="Cisco::Catalyst_3550">Cisco catalyst 3550</option>
|
|
</select>
|
|
</div>
|
|
|
|
<!-- Hp Dropdown -->
|
|
<!------- <div id="hpDropdown" class="nested_dropdown hidden">
|
|
<label>Select Hp Option</label>
|
|
<select name="hp_option">
|
|
<option value="#">--------------</option>
|
|
<option value="option1">Hp Option 1</option>
|
|
<option value="option2">Hp Option 2</option>
|
|
<option value="option3">Hp Option 3</option>
|
|
</select>
|
|
</div> ----->
|
|
|
|
<!-- Dlink Dropdown -->
|
|
<div id="dlinkDropdown" class="nested_dropdown hidden">
|
|
<label>Select Dlink Option</label>
|
|
<select name="dlink_option">
|
|
<option value="#">---------------</option>
|
|
<option value="Dlink::DWL">Dlink DWL</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Role/VLAN Mapping Section -->
|
|
<div class="role_sec">
|
|
<label>Role Mapping</label>
|
|
<select name="mapping" id="mapping">
|
|
<option value="">Role Mapping</option>
|
|
<option value="User Manager">Vlan Id</option>
|
|
<option value="Node Manager">Role</option>
|
|
</select>
|
|
</div>
|
|
|
|
<div class="vlan_sec hidden">
|
|
<div class="map_one">
|
|
<div>
|
|
<div class="col-10"><label>Registration</label></div>
|
|
<div class="col-40"><input type="text" placeholder="Registration" /></div>
|
|
<div class="col-10"><label>Default</label></div>
|
|
<div class="col-40"><input type="text" placeholder="Default" /></div>
|
|
</div>
|
|
<div>
|
|
<div class="col-10"><label>Gaming</label></div>
|
|
<div class="col-40"><input type="text" placeholder="Gaming" /></div>
|
|
<div class="col-10"><label>Isolation</label></div>
|
|
<div class="col-40"><input type="text" placeholder="Isolation" /></div>
|
|
</div>
|
|
<div>
|
|
<div class="col-10"><label>Guest</label></div>
|
|
<div class="col-40"><input type="text" placeholder="Guest" /></div>
|
|
</div>
|
|
</div>
|
|
<div class="check_box_vlan">
|
|
<input type="checkbox" id="role_by_checkbox">
|
|
<label for="role_by_checkbox"></label>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Submit Button -->
|
|
<button type="submit">Submit</button>
|
|
<?php endforeach; ?>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</maincontent>
|
|
</div>
|
|
|
|
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
const mainDropdown = document.getElementById('sources');
|
|
const nested_dropdowns = document.querySelectorAll('.nested_dropdown');
|
|
const alcatelDropdown = document.getElementById('alcatelDropdown');
|
|
const ciscoDropdown = document.getElementById('ciscoDropdown');
|
|
const hpDropdown = document.getElementById('hpDropdown');
|
|
const dlinkDropdown = document.getElementById('dlinkDropdown');
|
|
const roleMappingDropdown = document.getElementById('mapping');
|
|
const roleSec = document.querySelector('.vlan_sec');
|
|
const inputs = document.querySelectorAll('.vlan_sec input[type="text"]');
|
|
const checkboxLabel = document.querySelector('.check_box_vlan label');
|
|
const checkbox = document.getElementById('role_by_checkbox');
|
|
|
|
const vlanPlaceholders = ["Registration", "Default", "Gaming", "Isolation", "Guest"];
|
|
const vlanNames = ["registration_vlan", "default_vlan", "gaming_vlan", "isolation_vlan", "guest_vlan"];
|
|
const rolePlaceholders = ["Admin", "Editor", "Viewer", "Moderator", "Guest"];
|
|
const roleNames = ["registration_role", "default_role", "gaming_role", "isolation_role", "guest_role"];
|
|
|
|
mainDropdown.addEventListener('change', function () {
|
|
nested_dropdowns.forEach(dropdown => dropdown.classList.add('hidden'));
|
|
if (mainDropdown.value === 'Alcatel') {
|
|
alcatelDropdown.classList.remove('hidden');
|
|
} else if (mainDropdown.value === 'Cisco') {
|
|
ciscoDropdown.classList.remove('hidden');
|
|
// } else if (mainDropdown.value === 'Hp') {
|
|
// hpDropdown.classList.remove('hidden');
|
|
} else if (mainDropdown.value === 'Dlink') {
|
|
dlinkDropdown.classList.remove('hidden');
|
|
}
|
|
});
|
|
|
|
roleMappingDropdown.addEventListener('change', function () {
|
|
if (roleMappingDropdown.value === 'User Manager') {
|
|
roleSec.classList.remove('hidden');
|
|
updatePlaceholdersAndNames(vlanPlaceholders, vlanNames);
|
|
checkboxLabel.textContent = "Role by Vlan Id";
|
|
checkbox.value = "vlan";
|
|
} else if (roleMappingDropdown.value === 'Node Manager') {
|
|
roleSec.classList.remove('hidden');
|
|
updatePlaceholdersAndNames(rolePlaceholders, roleNames);
|
|
checkboxLabel.textContent = "Role by Role";
|
|
checkbox.value = "role";
|
|
} else {
|
|
roleSec.classList.add('hidden');
|
|
}
|
|
});
|
|
|
|
function updatePlaceholdersAndNames(placeholders, names) {
|
|
inputs.forEach((input, index) => {
|
|
input.placeholder = placeholders[index];
|
|
input.name = names[index];
|
|
});
|
|
}
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|