From 5b05cda1d01d554c9d51cf39bbe43229970ae7fd Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Fri, 11 Sep 2020 15:37:19 -0600 Subject: [PATCH] Add unlink component --- action.php | 31 +++++++++++++++++++++++++++++++ langs/en/actions.json | 3 ++- langs/en/messages.json | 4 +++- langs/messages.php | 8 ++++++++ lib/Component.lib.php | 5 +++++ pages/viewmachine.php | 1 + 6 files changed, 50 insertions(+), 2 deletions(-) diff --git a/action.php b/action.php index a210a19..0af30bb 100644 --- a/action.php +++ b/action.php @@ -105,6 +105,37 @@ switch ($VARS['action']) { returnToSender("component_saved"); } returnToSender("component_saved", $component->getMachineID()); + case "unlinkcomponent": + $user = new User($_SESSION['uid']); + if (!$user->hasPermission("MACHINEMANAGER_EDIT")) { + returnToSender("no_permission"); + die(); + } + + $component = new Component($VARS['id']); + + $component->setMachineID(null); + + $component->save(); + + if (!empty($VARS["machine"])) { + if (Machine::exists($VARS['machine'])) { + returnToSender("component_unlinked", $VARS["machine"]); + } + } + returnToSender("component_unlinked"); + case "deletecomponent": + $user = new User($_SESSION['uid']); + if (!$user->hasPermission("MACHINEMANAGER_EDIT")) { + returnToSender("no_permission"); + die(); + } + + $component = new Component($VARS['id']); + + $component->delete(); + + returnToSender("component_deleted"); case "addevent": $user = new User($_SESSION['uid']); if (!$user->hasPermission("MACHINEMANAGER_EDIT")) { diff --git a/langs/en/actions.json b/langs/en/actions.json index 0bc9f01..f677513 100644 --- a/langs/en/actions.json +++ b/langs/en/actions.json @@ -10,5 +10,6 @@ "Print Labels": "Print Labels", "Go to machine": "Go to machine", "Attach": "Attach", - "Attach Existing": "Attach Existing" + "Attach Existing": "Attach Existing", + "Detach": "Detach" } diff --git a/langs/en/messages.json b/langs/en/messages.json index 17aa86e..ff92687 100644 --- a/langs/en/messages.json +++ b/langs/en/messages.json @@ -5,5 +5,7 @@ "Client saved!": "Client saved!", "Client must be edited in Invoice Ninja.": "Client must be edited in Invoice Ninja.", "That ID does not exist in the system.": "That ID does not exist in the system.", - "Machine deleted.": "Machine deleted." + "Machine deleted.": "Machine deleted.", + "Component unlinked.": "Component unlinked.", + "Component deleted.": "Component deleted." } diff --git a/langs/messages.php b/langs/messages.php index 7180d06..4e3844c 100644 --- a/langs/messages.php +++ b/langs/messages.php @@ -45,6 +45,14 @@ define("MESSAGES", [ "string" => "Machine deleted.", "type" => "success" ], + "component_unlinked" => [ + "string" => "Component unlinked.", + "type" => "success" + ], + "component_deleted" => [ + "string" => "Component deleted.", + "type" => "success" + ], "404_error" => [ "string" => "page not found", "type" => "info" diff --git a/lib/Component.lib.php b/lib/Component.lib.php index af45364..ebf15f4 100644 --- a/lib/Component.lib.php +++ b/lib/Component.lib.php @@ -105,6 +105,11 @@ class Component implements JsonSerializable { } } + public function delete() { + global $database; + $database->delete("components", ["compid" => $this->componentid]); + } + public function getID(): string { return $this->componentid . ""; } diff --git a/pages/viewmachine.php b/pages/viewmachine.php index 219aa36..ae5c4fe 100644 --- a/pages/viewmachine.php +++ b/pages/viewmachine.php @@ -190,6 +190,7 @@ $machine = new Machine($machineid); ?>
getTypeName(); ?>