From f92dc13311142b41ad0b2233e4a64efd47f61049 Mon Sep 17 00:00:00 2001 From: Marcus Hill Date: Fri, 28 Jan 2022 22:20:40 +0000 Subject: [PATCH] Add service edit functionality --- client_services.php | 100 ++++++++++++++++++++--------------------- post.php | 80 +++++++++++++++++++++++++++++++++ service_edit_modal.php | 72 +++++++++++++++-------------- service_view_modal.php | 3 +- 4 files changed, 170 insertions(+), 85 deletions(-) diff --git a/client_services.php b/client_services.php index 6eb1ec6a..afd6e7a0 100644 --- a/client_services.php +++ b/client_services.php @@ -73,56 +73,6 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); $service_importance_display = "-"; } - - // Associated Assets (and their logins/networks/locations) - $sql_assets = mysqli_query($mysqli, "SELECT * FROM service_assets - LEFT JOIN assets - ON service_assets.asset_id = assets.asset_id - LEFT JOIN logins - ON service_assets.asset_id = logins.login_asset_id - LEFT JOIN networks - ON assets.asset_network_id = networks.network_id - LEFT JOIN locations - ON assets.asset_location_id = locations.location_id - WHERE service_id = '$service_id'"); - - // Associated logins - $sql_logins = mysqli_query($mysqli, "SELECT * FROM service_logins - LEFT JOIN logins - ON service_logins.login_id = logins.login_id - WHERE service_id = '$service_id'"); - - // Associated Domains - $sql_domains = mysqli_query($mysqli, "SELECT * FROM service_domains - LEFT JOIN domains - ON service_domains.domain_id = domains.domain_id - WHERE service_id = '$service_id'"); - - // Associated URLs - $sql_urls = mysqli_query($mysqli, "SELECT * FROM service_urls - WHERE service_id = '$service_id'"); - - // Associated Vendors - $sql_vendors = mysqli_query($mysqli, "SELECT * FROM service_vendors - LEFT JOIN vendors - ON service_vendors.vendor_id = vendors.vendor_id - WHERE service_id = '$service_id'"); - - // Associated Contacts - $sql_contacts = mysqli_query($mysqli, "SELECT * FROM service_contacts - LEFT JOIN contacts - ON service_contacts.contact_id = contacts.contact_id - WHERE service_id = '$service_id'"); - - // Associated Documents - $sql_docs = mysqli_query($mysqli, "SELECT * FROM service_documents - LEFT JOIN documents - ON service_documents.document_id = documents.document_id - WHERE service_id = '$service_id'"); - - include("service_edit_modal.php"); - include("service_view_modal.php"); - ?> @@ -148,6 +98,56 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); diff --git a/post.php b/post.php index d1d037fa..604691c6 100644 --- a/post.php +++ b/post.php @@ -5553,6 +5553,86 @@ if(isset($_POST['add_service'])){ } } +if(isset($_POST['edit_service'])){ + $client_id = intval($_POST['client_id']); + $service_id = intval($_POST['service_id']); + $service_name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['name']))); + $service_description = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['description']))); + $service_category = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['category']))); //TODO: Needs integration with company categories + $service_importance = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['importance']))); + $service_notes = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['note']))); + + // Update main service details + mysqli_query($mysqli, "UPDATE services SET service_name = '$service_name', service_description = '$service_description', service_category = '$service_category', service_importance = '$service_importance', service_notes = '$service_notes', service_updated_at = NOW() WHERE service_id = '$service_id' AND company_id = '$session_company_id'"); + + // Unlink existing relations/assets + mysqli_query($mysqli, "DELETE FROM service_contacts WHERE service_id = '$service_id'"); + mysqli_query($mysqli, "DELETE FROM service_vendors WHERE service_id = '$service_id'"); + mysqli_query($mysqli, "DELETE FROM service_documents WHERE service_id = '$service_id'"); + mysqli_query($mysqli, "DELETE FROM service_assets WHERE service_id = '$service_id'"); + mysqli_query($mysqli, "DELETE FROM service_logins WHERE service_id = '$service_id'"); + mysqli_query($mysqli, "DELETE FROM service_domains WHERE service_id = '$service_id'"); + + // Relink + if(!empty($_POST['contacts'])){ + $service_contact_ids = $_POST['contacts']; + foreach($service_contact_ids as $contact_id){ + if(intval($contact_id)){ + mysqli_query($mysqli, "INSERT INTO service_contacts SET service_id = '$service_id', contact_id = '$contact_id'"); + } + } + } + + if(!empty($_POST['vendors'])){ + $service_vendor_ids = $_POST['vendors']; + foreach($service_vendor_ids as $vendor_id){ + if(intval($vendor_id)){ + mysqli_query($mysqli, "INSERT INTO service_vendors SET service_id = '$service_id', vendor_id = '$vendor_id'"); + } + } + } + + if(!empty($_POST['documents'])){ + $service_document_ids = $_POST['documents']; + foreach($service_document_ids as $document_id){ + if(intval($document_id)){ + mysqli_query($mysqli, "INSERT INTO service_documents SET service_id = '$service_id', document_id = '$document_id'"); + } + } + } + + if(!empty($_POST['assets'])){ + $service_asset_ids = $_POST['assets']; + foreach($service_asset_ids as $asset_id){ + if(intval($asset_id)){ + mysqli_query($mysqli, "INSERT INTO service_assets SET service_id = '$service_id', asset_id = '$asset_id'"); + } + } + } + + if(!empty($_POST['logins'])){ + $service_login_ids = $_POST['logins']; + foreach($service_login_ids as $login_id){ + if(intval($login_id)){ + mysqli_query($mysqli, "INSERT INTO service_logins SET service_id = '$service_id', login_id = '$login_id'"); + } + } + } + + if(!empty($_POST['logins'])){ + $service_domain_ids = $_POST['domains']; + foreach($service_domain_ids as $domain_id){ + if(intval($domain_id)){ + mysqli_query($mysqli, "INSERT INTO service_domains SET service_id = '$service_id', domain_id = '$domain_id'"); + } + } + } + + $_SESSION['alert_message'] = "Service updated"; + header("Location: " . $_SERVER["HTTP_REFERER"]); + +} + if(isset($_GET['delete_service'])){ $service_id = intval($_GET['delete_service']); diff --git a/service_edit_modal.php b/service_edit_modal.php index 29e80173..89d1e8f1 100644 --- a/service_edit_modal.php +++ b/service_edit_modal.php @@ -10,6 +10,7 @@
+
@@ -239,11 +235,19 @@ diff --git a/service_view_modal.php b/service_view_modal.php index 23a118ee..78335eec 100644 --- a/service_view_modal.php +++ b/service_view_modal.php @@ -188,8 +188,9 @@
Logins