From 124522e72f58ac68453d2ce7bb773023e5ba6daa Mon Sep 17 00:00:00 2001 From: Anthony F McInerney Date: Mon, 12 Oct 2020 14:03:15 +0100 Subject: [PATCH] service templates - move to blade -wip --- app/Models/ServiceTemplate.php | 95 ++++++++ .../modal/delete_service_template.inc.php | 85 -------- .../modal/discover_service_template.inc.php | 78 ------- .../html/modal/new_service_template.inc.php | 206 ------------------ .../modal/remove_service_template.inc.php | 74 ------- includes/html/pages/addsrv-template.inc.php | 42 ---- .../html/pages/services-templates.inc.php | 170 --------------- .../html/print-service-add-template.inc.php | 80 ------- resources/views/layouts/menu.blade.php | 4 +- .../views/services-templates/create.blade.php | 30 +++ .../views/services-templates/edit.blade.php | 31 +++ .../views/services-templates/form.blade.php | 177 +++++++++++++++ .../views/services-templates/index.blade.php | 145 ++++++++++++ 13 files changed, 479 insertions(+), 738 deletions(-) create mode 100644 app/Models/ServiceTemplate.php delete mode 100644 includes/html/modal/delete_service_template.inc.php delete mode 100644 includes/html/modal/discover_service_template.inc.php delete mode 100644 includes/html/modal/new_service_template.inc.php delete mode 100644 includes/html/modal/remove_service_template.inc.php delete mode 100644 includes/html/pages/addsrv-template.inc.php delete mode 100644 includes/html/pages/services-templates.inc.php delete mode 100644 includes/html/print-service-add-template.inc.php create mode 100644 resources/views/services-templates/create.blade.php create mode 100644 resources/views/services-templates/edit.blade.php create mode 100644 resources/views/services-templates/form.blade.php create mode 100644 resources/views/services-templates/index.blade.php diff --git a/app/Models/ServiceTemplate.php b/app/Models/ServiceTemplate.php new file mode 100644 index 0000000000..8a00745e50 --- /dev/null +++ b/app/Models/ServiceTemplate.php @@ -0,0 +1,95 @@ +service_template_id . '-' . $this->device_group_id; + } + + // ---- Query Scopes ---- + + /** + * @param Builder $query + * @return Builder + */ + public function scopeIsOk($query) + { + return $query->where([ + ['service_ignore', '=', 0], + ['service_disabled', '=', 0], + ['service_status', '=', 0], + ]); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeIsCritical($query) + { + return $query->where([ + ['service_ignore', '=', 0], + ['service_disabled', '=', 0], + ['service_status', '=', 2], + ]); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeIsWarning($query) + { + return $query->where([ + ['service_ignore', '=', 0], + ['service_disabled', '=', 0], + ['service_status', '=', 1], + ]); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeIsIgnored($query) + { + return $query->where([ + ['service_ignore', '=', 1], + ['service_disabled', '=', 0], + ]); + } + + /** + * @param Builder $query + * @return Builder + */ + public function scopeIsDisabled($query) + { + return $query->where('service_disabled', 1); + } +} diff --git a/includes/html/modal/delete_service_template.inc.php b/includes/html/modal/delete_service_template.inc.php deleted file mode 100644 index 7ad5cb4b2b..0000000000 --- a/includes/html/modal/delete_service_template.inc.php +++ /dev/null @@ -1,85 +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()) { - ?> - - - - - diff --git a/includes/html/modal/discover_service_template.inc.php b/includes/html/modal/discover_service_template.inc.php deleted file mode 100644 index 970167f555..0000000000 --- a/includes/html/modal/discover_service_template.inc.php +++ /dev/null @@ -1,78 +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()) { - ?> - - - - - diff --git a/includes/html/modal/new_service_template.inc.php b/includes/html/modal/new_service_template.inc.php deleted file mode 100644 index 08404444d1..0000000000 --- a/includes/html/modal/new_service_template.inc.php +++ /dev/null @@ -1,206 +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()) { - foreach (dbFetchRows('SELECT * FROM `device_groups` ORDER BY `name`') as $device_group) { - $device_group_id .= "'; - } - //foreach (list_available_services() as $current_service) { - // $servicesform .= ""; - //} - // Build the types list. - $dir = \LibreNMS\Config::get('nagios_plugins'); - if (file_exists($dir) && is_dir($dir)) { - $files = scandir($dir); - $dir .= DIRECTORY_SEPARATOR; - foreach ($files as $file) { - if (is_executable($dir . $file) && is_file($dir . $file) && strstr($file, 'check_')) { - [,$check_name] = explode('_', $file, 2); - $stype .= ""; - } - } - } ?> - - - - - - * - * 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()) { - ?> - - - - - diff --git a/includes/html/pages/addsrv-template.inc.php b/includes/html/pages/addsrv-template.inc.php deleted file mode 100644 index d1ed080385..0000000000 --- a/includes/html/pages/addsrv-template.inc.php +++ /dev/null @@ -1,42 +0,0 @@ -hasGlobalAdmin()) { - include 'includes/html/error-no-perm.inc.php'; -} else { - if ($vars['addsrv-template']) { - if (Auth::user()->hasGlobalAdmin()) { - $updated = '1'; - - $service_template_id = add_service_template($vars['device_group'], $vars['type'], $vars['descr'], $vars['ip'], $vars['params'], $vars['ignore'], $vars['disabled'], $vars['name']); - if ($service_template_id !== null) { - $message .= $message_break . 'Service Template added (' . $service_template_id . ')!'; - $message_break .= '
'; - } - } - } - foreach (list_available_services() as $current_service) { - $servicesform .= ""; - } - - foreach (dbFetchRows('SELECT * FROM `device_groups` ORDER BY `name`') as $device_group) { - $devicegroupsform .= "'; - } - - if ($updated) { - print_message('Device Settings Saved'); - } - - $pagetitle[] = 'Add service template'; - - echo "
-
-
-
"; - - include_once 'includes/html/print-service-add-template.inc.php'; - - echo '
-
'; -}//end if diff --git a/includes/html/pages/services-templates.inc.php b/includes/html/pages/services-templates.inc.php deleted file mode 100644 index 6ff2edec2b..0000000000 --- a/includes/html/pages/services-templates.inc.php +++ /dev/null @@ -1,170 +0,0 @@ - -
-
-
-
- Services Templates » - - 'Basic', - ]; - - if (! $vars['view']) { - $vars['view'] = 'basic'; - } - - // The menu option - on the left - - $sep = ''; - - foreach ($menu_options as $option => $text) { - if (empty($vars['view'])) { - $vars['view'] = $option; - } - - echo $sep; - if ($vars['view'] == $option) { - echo ""; - } - - echo generate_link($text, $vars, [ - 'view' => $option, - ]); - if ($vars['view'] == $option) { - echo ''; - } - - $sep = ' | '; - } - - unset($sep); - - // The status option - on the right - - echo '
'; - $sep = ''; - unset($sep); - echo '
'; - echo '
'; - echo '
'; - echo '
'; - - $sql_param = []; - - $host_par = []; - $perms_sql = null; - if (! Auth::user()->hasGlobalRead()) { - $device_group_ids = Permissions::devicesForUser()->toArray() ?: [0]; - $perms_sql .= ' AND `D`.`device_group_id` IN ' . dbGenPlaceholders(count($device_group_ids)); - $host_par = $device_group_ids; - } - - $host_sql = 'SELECT `D`.`id`,`D`.`name` FROM device_groups AS D, services_template AS S WHERE D.id = S.device_group_id ' . $perms_sql . ' GROUP BY `D`.`name`, `D`.`id` ORDER BY D.`name`'; - - $shift = 1; - foreach (dbFetchRows($host_sql, $host_par) as $device_group) { - $device_group_id = $device_group['id']; - $device_group_name = $device_group['name']; - $devlink = '' . $device_group_name . ''; - - if ($shift == 1) { - array_unshift($sql_param, $device_group_id); - $shift = 0; - } else { - $sql_param[0] = $device_group_id; - } - - $header = true; - $footer = false; - - $service_template_iteration = 0; - $services_template = dbFetchRows("SELECT * FROM `services_template` WHERE `device_group_id` = ? $where ORDER BY service_template_type", $sql_param); - $services_template_count = count($services_template); - foreach ($services_template as $service_template) { - $service_template_iteration++; - - if ($service_template_iteration < 2 && $header) { - echo '
'; - echo '

' . $devlink . '

'; - echo '
'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - } - - $header = false; - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - - if (Auth::user()->hasGlobalAdmin()) { - echo ""; - } - echo ''; - - if ($service_template_iteration >= $services_template_count) { - $footer = true; - } - - if ($footer) { - echo '
NameCheck TypeParametersRemote HostDescriptionModifiedIgnoredDisabled
' . nl2br(display($service_template['service_template_name'])) . '' . nl2br(display($service_template['service_template_type'])) . '' . nl2br(display($service_template['service_template_param'])) . '' . nl2br(display($service_template['service_template_ip'])) . '' . nl2br(display($service_template['service_template_desc'])) . '' . date(Config::get('dateformat.compact'), $service_template['service_template_changed']) . '' . nl2br(display($service_template['service_template_ignore'])) . '' . nl2br(display($service_template['service_template_disabled'])) . ' - - - - -
'; - echo '
'; - echo '
'; - } - } - } - unset($samehost); - ?> -
-
-
-
diff --git a/includes/html/print-service-add-template.inc.php b/includes/html/print-service-add-template.inc.php deleted file mode 100644 index 29d96b7bc1..0000000000 --- a/includes/html/print-service-add-template.inc.php +++ /dev/null @@ -1,80 +0,0 @@ - - " . csrf_field() . " -

Add Service Template

-
Service Template will created for the specified Device Group.
-
-
- -
- -
-
-
-
-
- - -
- -
-
-
-
-
- -
- -
-
-
-
-
- -
- -
-
-
-
-
- -
- -
-
-
-
-
- -
- -
-
-
-
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
-
-"; diff --git a/resources/views/layouts/menu.blade.php b/resources/views/layouts/menu.blade.php index 4c0058ea61..20cf841366 100644 --- a/resources/views/layouts/menu.blade.php +++ b/resources/views/layouts/menu.blade.php @@ -238,7 +238,7 @@ aria-hidden="true"> @lang('All Services')
  • @lang('All Services Templates') + aria-hidden="true"> @lang('Services Templates')
  • @if($service_counts['warning'] || $service_counts['critical']) @@ -259,8 +259,6 @@
  • @lang('Add Service')
  • -
  • @lang('Add Service Template')
  • @endadmin diff --git a/resources/views/services-templates/create.blade.php b/resources/views/services-templates/create.blade.php new file mode 100644 index 0000000000..cbb9b3a4f0 --- /dev/null +++ b/resources/views/services-templates/create.blade.php @@ -0,0 +1,30 @@ +@extends('layouts.librenmsv1') + +@section('title', __('Create Device Group')) + +@section('content') +
    +
    +
    + @lang('Create Device Group') + @csrf + + @include('services-templates.form') + +
    +
    + + @lang('Cancel') +
    +
    +
    +
    +
    +@endsection + +@section('javascript') + + +@endsection diff --git a/resources/views/services-templates/edit.blade.php b/resources/views/services-templates/edit.blade.php new file mode 100644 index 0000000000..bb0e284bdb --- /dev/null +++ b/resources/views/services-templates/edit.blade.php @@ -0,0 +1,31 @@ +@extends('layouts.librenmsv1') + +@section('title', __('Edit Device Group')) + +@section('content') +
    +
    +
    + @lang('Edit Device Group'): {{ $service_template->name }} + {{ method_field('PUT') }} + @csrf + + @include('services-templates.form') + +
    +
    + + @lang('Cancel') +
    +
    +
    +
    +
    +@endsection + +@section('javascript') + + +@endsection diff --git a/resources/views/services-templates/form.blade.php b/resources/views/services-templates/form.blade.php new file mode 100644 index 0000000000..9b6ec93361 --- /dev/null +++ b/resources/views/services-templates/form.blade.php @@ -0,0 +1,177 @@ +
    + +
    + + {{ $errors->first('name') }} +
    +
    + +
    + +
    + + {{ $errors->first('device_group_id') }} +
    +
    + +
    + +
    + + {{ $errors->first('type') }} +
    +
    + +
    + +
    + + {{ $errors->first('desc') }} +
    +
    + +
    + +
    + + {{ $errors->first('ip') }} +
    +
    + +
    + +
    + + {{ $errors->first('param') }} +
    +
    + +
    +
    + +
    +
    + +
    + +
    + + {{ $errors->first('ignore') }} +
    +
    + +
    + +
    + + {{ $errors->first('disabled') }} +
    +
    + +
    + +
    +
    + {{ $errors->first('rules') }} +
    +
    + + + + + diff --git a/resources/views/services-templates/index.blade.php b/resources/views/services-templates/index.blade.php new file mode 100644 index 0000000000..358517981d --- /dev/null +++ b/resources/views/services-templates/index.blade.php @@ -0,0 +1,145 @@ +@extends('layouts.librenmsv1') + +@section('title', __('Services Templates')) + +@section('content') +
    + + + @lang('Services Templates') + + + + @foreach($device_groups as $device_group) + +
    + + + + + + + + + + + + + + + @foreach($service_templates as $service_template) + + + + + + + + + + + + @endforeach + +
    @lang('Name')@lang('Check Type')@lang('Parameters')@lang('Remote Host')@lang('Description')@lang('Modified')@lang('Ignored')@lang('Disabled')
    {{ $service_template->service_template_name }}{{ $service_template->service_template_type }}{{ $service_template->service_template_param }}{{ $service_template->service_template_ip }}{{ $service_template->service_template_desc }}{{ $service_template->service_template_changed }}{{ $service_template->service_template_ignore }}{{ $service_template->service_template_disabled }} + + + + + +
    +
    +
    + @endforeach +
    +
    +@endsection + +@section('scripts') + +@endsection + +@section('css') + +@endsection