From fe762ef926e4d7bbafce36c18bbe0e9134ebf364 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Wed, 12 Feb 2025 17:13:39 -0500 Subject: [PATCH] Asset Interfaces: Renamed Port to Description, added Interface Type --- api/v1/assets/create.php | 2 +- client_asset_details.php | 19 ++--- database_updates.php | 15 +++- db.sql | 11 +-- get_settings.php | 6 ++ includes/database_version.php | 2 +- modals/client_asset_interface_add_modal.php | 56 +++++++++---- modals/client_asset_interface_edit_modal.php | 80 ++++++++++++------- ...ent_asset_interface_multiple_add_modal.php | 31 ++++--- post/user/asset.php | 16 ++-- post/user/asset_interface_model.php | 3 +- 11 files changed, 152 insertions(+), 89 deletions(-) diff --git a/api/v1/assets/create.php b/api/v1/assets/create.php index 4954e049..a8c4131f 100644 --- a/api/v1/assets/create.php +++ b/api/v1/assets/create.php @@ -20,7 +20,7 @@ if (!empty($name) && !empty($client_id)) { $insert_id = mysqli_insert_id($mysqli); // Add Primary Interface - mysqli_query($mysqli,"INSERT INTO asset_interfaces SET interface_name = 'Primary', interface_mac = '$mac', interface_ip = '$ip', interface_port = 'eth0', interface_primary = 1, interface_network_id = $network, interface_asset_id = $insert_id"); + mysqli_query($mysqli,"INSERT INTO asset_interfaces SET interface_name = '1', interface_mac = '$mac', interface_ip = '$ip', interface_primary = 1, interface_network_id = $network, interface_asset_id = $insert_id"); // Logging logAction("Asset", "Create", "$name via API ($api_key_name)", $client_id, $insert_id); diff --git a/client_asset_details.php b/client_asset_details.php index 6d030666..fdf4bdfe 100644 --- a/client_asset_details.php +++ b/client_asset_details.php @@ -99,17 +99,17 @@ if (isset($_GET['asset_id'])) { SELECT ai.interface_id, ai.interface_name, + ai.interface_description, + ai.interface_type, ai.interface_mac, ai.interface_ip, ai.interface_ipv6, - ai.interface_port, ai.interface_primary, ai.interface_notes, n.network_name, n.network_id, connected_interfaces.interface_id AS connected_interface_id, connected_interfaces.interface_name AS connected_interface_name, - connected_interfaces.interface_port AS connected_interface_port, connected_assets.asset_name AS connected_asset_name FROM asset_interfaces AS ai LEFT JOIN networks AS n @@ -391,10 +391,10 @@ if (isset($_GET['asset_id'])) { "> - + + - @@ -405,10 +405,11 @@ if (isset($_GET['asset_id'])) { $network_name $network_id" : '-'; // Connected interface details $connected_asset_name = nullable_htmlentities($row['connected_asset_name']); - $connected_interface_port = nullable_htmlentities($row['connected_interface_port']); + $connected_interface_name = nullable_htmlentities($row['connected_interface_name']); // Show either "-" or "AssetName - Port" if ($connected_asset_name) { - $connected_to_display = "$connected_asset_name - $connected_interface_port"; + $connected_to_display = "$connected_asset_name - $connected_interface_name"; } else { $connected_to_display = "-"; } @@ -440,9 +441,9 @@ if (isset($_GET['asset_id'])) { + -
NameName / PortType MAC IPPort Network Connected To Action diff --git a/database_updates.php b/database_updates.php index b4cc80cb..bda324bb 100644 --- a/database_updates.php +++ b/database_updates.php @@ -2471,7 +2471,6 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) { if (CURRENT_DATABASE_VERSION == '1.8.0') { - mysqli_query($mysqli, "ALTER TABLE `ticket_statuses` ADD `ticket_status_order` int(11) NOT NULL DEFAULT 0"); mysqli_query($mysqli, "ALTER TABLE `tickets` ADD `ticket_order` int(11) NOT NULL DEFAULT 0"); @@ -2482,11 +2481,19 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) { mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.8.1'"); } + + if (CURRENT_DATABASE_VERSION == '1.8.1') { + mysqli_query($mysqli, "ALTER TABLE `asset_interfaces` CHANGE `interface_port` `interface_description` VARCHAR(200) DEFAULT NULL AFTER `interface_name`"); - // if (CURRENT_DATABASE_VERSION == '1.8.1') { - // // Insert queries here required to update to DB version 1.8.2 + mysqli_query($mysqli, "ALTER TABLE `asset_interfaces` ADD `interface_type` VARCHAR(50) DEFAULT NULL AFTER `interface_description`"); + + mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.8.2'"); + } + + // if (CURRENT_DATABASE_VERSION == '1.8.2') { + // // Insert queries here required to update to DB version 1.8.3 // // Then, update the database to the next sequential version - // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.8.2'"); + // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '1.8.3'"); // } } else { diff --git a/db.sql b/db.sql index 0399a3e4..a1f75ace 100644 --- a/db.sql +++ b/db.sql @@ -167,11 +167,12 @@ DROP TABLE IF EXISTS `asset_interfaces`; CREATE TABLE `asset_interfaces` ( `interface_id` int(11) NOT NULL AUTO_INCREMENT, `interface_name` varchar(200) NOT NULL, + `interface_description` varchar(200) DEFAULT NULL, + `interface_type` varchar(50) DEFAULT NULL, `interface_mac` varchar(200) DEFAULT NULL, `interface_ip` varchar(200) DEFAULT NULL, `interface_nat_ip` varchar(200) DEFAULT NULL, `interface_ipv6` varchar(200) DEFAULT NULL, - `interface_port` varchar(200) DEFAULT NULL, `interface_notes` text DEFAULT NULL, `interface_primary` tinyint(1) DEFAULT 0, `interface_created_at` datetime NOT NULL DEFAULT current_timestamp(), @@ -1704,9 +1705,6 @@ CREATE TABLE `settings` ( `config_ticket_autoclose_hours` int(5) NOT NULL DEFAULT 72, `config_ticket_new_ticket_notification_email` varchar(200) DEFAULT NULL, `config_ticket_default_billable` tinyint(1) NOT NULL DEFAULT 0, - `config_ticket_default_view` tinyint(1) NOT NULL DEFAULT 0, - `config_ticket_moving_columns` tinyint(1) NOT NULL DEFAULT 1, - `config_ticket_ordering` tinyint(1) NOT NULL DEFAULT 0, `config_enable_cron` tinyint(1) NOT NULL DEFAULT 0, `config_recurring_auto_send_invoice` tinyint(1) NOT NULL DEFAULT 1, `config_enable_alert_domain_expire` tinyint(1) NOT NULL DEFAULT 1, @@ -1743,6 +1741,9 @@ CREATE TABLE `settings` ( `config_phone_mask` tinyint(1) NOT NULL DEFAULT 1, `config_whitelabel_enabled` int(11) NOT NULL DEFAULT 0, `config_whitelabel_key` text DEFAULT NULL, + `config_ticket_default_view` tinyint(1) NOT NULL DEFAULT 0, + `config_ticket_ordering` tinyint(1) NOT NULL DEFAULT 0, + `config_ticket_moving_columns` tinyint(1) NOT NULL DEFAULT 1, PRIMARY KEY (`company_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; /*!40101 SET character_set_client = @saved_cs_client */; @@ -2347,4 +2348,4 @@ CREATE TABLE `vendors` ( /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2025-01-25 21:47:06 +-- Dump completed on 2025-02-12 17:12:46 diff --git a/get_settings.php b/get_settings.php index e560078e..f14c2ee1 100644 --- a/get_settings.php +++ b/get_settings.php @@ -309,3 +309,9 @@ $note_types_array = array ( 'In Person'=>'fa-people-arrows', 'Note'=>'fa-sticky-note' ); + +$interface_types_array = array ( + 'Ethernet', + 'SFP', + 'WiFi' +); diff --git a/includes/database_version.php b/includes/database_version.php index 292483e0..382d4b0a 100644 --- a/includes/database_version.php +++ b/includes/database_version.php @@ -5,4 +5,4 @@ * It is used in conjunction with database_updates.php */ -DEFINE("LATEST_DATABASE_VERSION", "1.8.1"); +DEFINE("LATEST_DATABASE_VERSION", "1.8.2"); diff --git a/modals/client_asset_interface_add_modal.php b/modals/client_asset_interface_add_modal.php index b4c5ee1d..2f430d6d 100644 --- a/modals/client_asset_interface_add_modal.php +++ b/modals/client_asset_interface_add_modal.php @@ -16,12 +16,45 @@
- +
- + +
+
+ + +
+ +
+
+ +
+ +
+
+ + +
+ +
+
+ +
+
@@ -63,17 +96,6 @@ - -
- -
-
- -
- -
-
-
@@ -108,7 +130,7 @@ diff --git a/modals/client_asset_interface_edit_modal.php b/modals/client_asset_interface_edit_modal.php index df6bba76..4554d6a8 100644 --- a/modals/client_asset_interface_edit_modal.php +++ b/modals/client_asset_interface_edit_modal.php @@ -25,7 +25,7 @@ if ($link_row = mysqli_fetch_assoc($sql_link)) { - + "; - echo "$iface_asset_name_select - $iface_port_select"; + echo "$iface_asset_name_select - $iface_name_select"; echo ""; } ?> diff --git a/modals/client_asset_interface_multiple_add_modal.php b/modals/client_asset_interface_multiple_add_modal.php index 2d87ea30..18958b52 100644 --- a/modals/client_asset_interface_multiple_add_modal.php +++ b/modals/client_asset_interface_multiple_add_modal.php @@ -27,7 +27,7 @@
- +
@@ -36,9 +36,25 @@
+ +
+ +
+
+ +
+ +
+
+
- +
@@ -47,17 +63,6 @@
- -
- -
-
- -
- -
-
-
diff --git a/post/user/asset.php b/post/user/asset.php index 9cd2501f..636dc047 100644 --- a/post/user/asset.php +++ b/post/user/asset.php @@ -39,7 +39,7 @@ if (isset($_POST['add_asset'])) { } // Add Primary Interface - mysqli_query($mysqli,"INSERT INTO asset_interfaces SET interface_name = '1', interface_mac = '$mac', interface_ip = '$ip', interface_nat_ip = '$nat_ip', interface_ipv6 = '$ipv6', interface_port = '1', interface_primary = 1, interface_network_id = $network, interface_asset_id = $asset_id"); + mysqli_query($mysqli,"INSERT INTO asset_interfaces SET interface_name = '1', interface_mac = '$mac', interface_ip = '$ip', interface_nat_ip = '$nat_ip', interface_ipv6 = '$ipv6', interface_primary = 1, interface_network_id = $network, interface_asset_id = $asset_id"); if (!empty($_POST['username'])) { @@ -89,7 +89,7 @@ if (isset($_POST['edit_asset'])) { if(mysqli_num_rows($sql_interfaces) == 0 ) { // Add Primary Interface - mysqli_query($mysqli,"INSERT INTO asset_interfaces SET interface_name = '1', interface_mac = '$mac', interface_ip = '$ip', interface_nat_ip = '$nat_ip', interface_ipv6 = '$ipv6', interface_port = '1', interface_primary = 1, interface_network_id = $network, interface_asset_id = $asset_id"); + mysqli_query($mysqli,"INSERT INTO asset_interfaces SET interface_name = '1', interface_mac = '$mac', interface_ip = '$ip', interface_nat_ip = '$nat_ip', interface_ipv6 = '$ipv6', interface_primary = 1, interface_network_id = $network, interface_asset_id = $asset_id"); } else { // Update Primary Interface mysqli_query($mysqli,"UPDATE asset_interfaces SET interface_mac = '$mac', interface_ip = '$ip', interface_nat_ip = '$nat_ip', interface_ipv6 = '$ipv6', interface_network_id = $network WHERE interface_asset_id = $asset_id AND interface_primary = 1"); @@ -732,10 +732,11 @@ if (isset($_POST['add_asset_interface'])) { $sql_insert = " INSERT INTO asset_interfaces SET interface_name = '$name', + interface_description= '$description', + interface_type = '$type', interface_mac = '$mac', interface_ip = '$ip', interface_ipv6 = '$ipv6', - interface_port = '$port', interface_notes = '$notes', interface_network_id = $network, interface_asset_id = $asset_id @@ -777,8 +778,8 @@ if (isset($_POST['add_asset_multiple_interfaces'])) { $asset_id = intval($_POST['asset_id']); $interface_start = intval($_POST['interface_start']); $interfaces = intval($_POST['interfaces']); + $type = sanitizeInput($_POST['type']); $name_prefix = sanitizeInput($_POST['name_prefix']); - $port_prefix = sanitizeInput($_POST['port_prefix']); $network = intval($_POST['network']); $notes = sanitizeInput($_POST['notes']); @@ -795,7 +796,7 @@ if (isset($_POST['add_asset_multiple_interfaces'])) { $sql_insert = " INSERT INTO asset_interfaces SET interface_name = '$name_prefix$formatted_interface_number', - interface_port = '$port_prefix$formatted_interface_number', + interface_type = '$type', interface_notes = '$notes', interface_network_id = $network, interface_asset_id = $asset_id @@ -837,10 +838,11 @@ if (isset($_POST['edit_asset_interface'])) { $sql_update = " UPDATE asset_interfaces SET interface_name = '$name', + interface_description= '$description', + interface_type = '$type', interface_mac = '$mac', interface_ip = '$ip', - interface_ipv6 = '$ipv6', - interface_port = '$port', + interface_ipv6 = '$ipv6', interface_notes = '$notes', interface_network_id = $network WHERE interface_id = $interface_id diff --git a/post/user/asset_interface_model.php b/post/user/asset_interface_model.php index 140b6dc1..ab69e3f4 100644 --- a/post/user/asset_interface_model.php +++ b/post/user/asset_interface_model.php @@ -2,13 +2,14 @@ defined('FROM_POST_HANDLER') || die("Direct file access is not allowed"); $name = sanitizeInput($_POST['name']); +$description = sanitizeInput($_POST['description']); +$type = sanitizeInput($_POST['type']); $mac = sanitizeInput($_POST['mac']); $ip = sanitizeInput($_POST['ip']); if ($_POST['dhcp'] == 1){ $ip = 'DHCP'; } $ipv6 = sanitizeInput($_POST['ipv6']); -$port = sanitizeInput($_POST['port']); $network = intval($_POST['network']); $notes = sanitizeInput($_POST['notes']); $connected_to = intval($_POST['connected_to']);