diff --git a/app/Http/Controllers/ServiceTemplateController.php b/app/Http/Controllers/ServiceTemplateController.php
index 2d380d1393..f0c50f59c2 100644
--- a/app/Http/Controllers/ServiceTemplateController.php
+++ b/app/Http/Controllers/ServiceTemplateController.php
@@ -152,7 +152,21 @@ class ServiceTemplateController extends Controller
return redirect()->route('services.templates.index');
}
+/**
+ * Remove the specified resource from storage.
+ *
+ * @param \App\Models\ServiceTemplate $serviceTemplate
+ * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response|\Illuminate\View\View
+ */
+ public function remove(ServiceTemplate $serviceTemplate)
+ {
+ Service::where('service_template_id', $serviceTemplate)->delete();
+
+ Toastr::success(__('Service Template :name removed', ['name' => $serviceTemplate->name]));
+ return redirect()->route('services.templates.index');
+ }
+
/**
* Remove the specified resource from storage.
*
diff --git a/app/Models/ServiceTemplate.php b/app/Models/ServiceTemplate.php
index 4bd45489a6..01714908fa 100644
--- a/app/Models/ServiceTemplate.php
+++ b/app/Models/ServiceTemplate.php
@@ -5,6 +5,7 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use LibreNMS\Interfaces\Models\Keyable;
+use Permissions;
class ServiceTemplate extends Model implements Keyable
{
diff --git a/app/Policies/ServiceTemplatePolicy.php b/app/Policies/ServiceTemplatePolicy.php
index d06dd8cd0b..56bb16733e 100644
--- a/app/Policies/ServiceTemplatePolicy.php
+++ b/app/Policies/ServiceTemplatePolicy.php
@@ -43,7 +43,7 @@ class ServiceTemplatePolicy
/**
* Determine whether the user can view any services template.
*
- * @param \App\User $user
+ * @param \App\Models\User $user
* @return mixed
*/
public function viewAny(User $user)
diff --git a/includes/html/forms/remove-service-template.inc.php b/includes/html/forms/remove-service-template.inc.php
deleted file mode 100644
index 004ba9dfcd..0000000000
--- a/includes/html/forms/remove-service-template.inc.php
+++ /dev/null
@@ -1,28 +0,0 @@
-
- *
- * This program is free software: you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or (at your
- * option) any later version. Please see LICENSE.txt at the top level of
- * the source code distribution for details.
- */
-
-if (! Auth::user()->hasGlobalAdmin()) {
- exit('ERROR: You need to be admin');
-}
-
-$id = $vars['id'];
-
-if (is_numeric($id)) {
- if (remove_service_template($id)) {
- $status = ['status' =>0, 'message' => 'Service Template: ' . $id . ', has been removed from Services.'];
- } else {
- $status = ['status' =>1, 'message' => 'Service Template: ' . $id . ', has NOT been removed from Services.'];
- }
-}
-header('Content-Type: application/json');
-echo _json_encode($status);
diff --git a/resources/views/service-template/index.blade.php b/resources/views/service-template/index.blade.php
index c7c7478d55..4b170d43fc 100644
--- a/resources/views/service-template/index.blade.php
+++ b/resources/views/service-template/index.blade.php
@@ -52,7 +52,7 @@