mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
207 lines
11 KiB
PHP
207 lines
11 KiB
PHP
@extends('layouts.install')
|
|
|
|
@section('content')
|
|
<div class="card mb-2">
|
|
<div class="card-header h6">
|
|
{{ __('install.finish.settings') }}
|
|
</div>
|
|
<div class="card-body">
|
|
<form id="settings">
|
|
@if($can_update)
|
|
<div class="mb-3">
|
|
<span>{{ __('settings.settings.update_channel.description') }}</span>
|
|
<div class="custom-control custom-radio custom-control-inline">
|
|
<input type="radio" id="update_channel_daily" name="update_channel" class="custom-control-input" value="master" @config('update_channel', 'master') checked @endconfig>
|
|
<label class="custom-control-label" for="update_channel_daily">{{ __('settings.settings.update_channel.options.master') }}</label>
|
|
</div>
|
|
<div class="custom-control custom-radio custom-control-inline">
|
|
<input type="radio" id="update_channel_monthly" name="update_channel" class="custom-control-input" value="release" @config('update_channel', 'release') checked @endconfig>
|
|
<label class="custom-control-label" for="update_channel_monthly">{{ __('settings.settings.update_channel.options.release') }}</label>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<div class="mb-3">
|
|
<span>{{ __('settings.settings.site_style.description') }}</span>
|
|
<div class="custom-control custom-radio custom-control-inline">
|
|
<input type="radio" id="site_style_light" name="site_style" class="custom-control-input" value="light" @config('site_style', 'light') checked @endconfig>
|
|
<label class="custom-control-label" for="site_style_light">{{ __('settings.settings.site_style.options.light') }}</label>
|
|
</div>
|
|
<div class="custom-control custom-radio custom-control-inline">
|
|
<input type="radio" id="site_style_dark" name="site_style" class="custom-control-input" value="dark" @config('site_style', 'dark') checked @endconfig>
|
|
<label class="custom-control-label" for="site_style_dark">{{ __('settings.settings.site_style.options.dark') }}</label>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="custom-control custom-checkbox mb-3">
|
|
<input type="checkbox" class="custom-control-input" id="usage_reporting" name="usage_reporting" @config('reporting.usage') checked @endconfig>
|
|
<label class="custom-control-label" for="usage_reporting"><a target="_blank" href="https://stats.librenms.org/">{{ __('settings.settings.reporting.usage.description') }}</a></label>
|
|
</div>
|
|
|
|
<div class="custom-control custom-checkbox mb-3">
|
|
<input type="checkbox" class="custom-control-input" id="error_reporting" name="error_reporting" @config('reporting.error') checked @endconfig>
|
|
<label class="custom-control-label" for="error_reporting">{{ __('settings.settings.reporting.error.description') }}</label>
|
|
</div>
|
|
|
|
<div>
|
|
<button type="button" class="btn btn-primary finalize-buttons">{{ __('install.finish.finish') }}</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div id="finished" class="modal" tabindex="-1">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title"></h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="card mb-2">
|
|
<div id="env-header" class="card-header h6" data-toggle="collapse" data-target="#env-file-text" aria-expanded="false">
|
|
<i id="env-icon" class="fa-solid fa-lg"></i>
|
|
<span id="env-message"></span>
|
|
<span id="env-chevron" class="float-right"><i class="fa-solid fa-lg fa-chevron-down rotate-if-collapsed"></i></span>
|
|
</div>
|
|
<div id="env-file-text" class="card-body collapse">
|
|
<button class="btn btn-primary float-right finalize-buttons">{{ __('install.finish.retry') }}</button>
|
|
<strong>
|
|
{{ __('install.finish.env_manual', ['file' => base_path('.env')]) }}
|
|
</strong>
|
|
<div class="text-right mt-3">
|
|
<button
|
|
class="btn btn-sm btn-light text-muted copy-btn"
|
|
data-clipboard-target="#env-content"
|
|
data-toggle="tooltip"
|
|
data-placement="bottom"
|
|
data-trigger="manual"
|
|
data-title="{{ __('install.finish.copied') }}"
|
|
>
|
|
<i class="fa-solid fa-clipboard"></i>
|
|
</button>
|
|
</div>
|
|
<pre id="env-content" class="card bg-light p-3"></pre>
|
|
</div>
|
|
</div>
|
|
<div class="card mb-2">
|
|
<div class="card-header h6" data-toggle="collapse" data-target="#config-file-text" aria-expanded="false">
|
|
<i id="config-icon" class="fa-solid fa-lg"></i>
|
|
<span id="config-message"></span>
|
|
<span id="config-chevron" class="float-right"><i class="fa-solid fa-lg fa-chevron-down rotate-if-collapsed"></i></span>
|
|
</div>
|
|
<div id="config-file-text" class="card-body collapse">
|
|
<strong>
|
|
{{ __('install.finish.config_not_required') }}
|
|
</strong>
|
|
<div class="text-right mt-3">
|
|
<button
|
|
class="btn btn-sm btn-light text-muted copy-btn"
|
|
data-clipboard-target="#config-content"
|
|
data-toggle="tooltip"
|
|
data-placement="bottom"
|
|
data-trigger="manual"
|
|
data-title="{{ __('install.finish.copied') }}"
|
|
>
|
|
<i class="fa-solid fa-clipboard"></i>
|
|
</button>
|
|
</div>
|
|
<pre id="config-content" class="card bg-light p-3"></pre>
|
|
</div>
|
|
</div>
|
|
<div class="row" id="success-message">
|
|
<div class="col-12">
|
|
<div class="alert alert-success">
|
|
<i class="fa-solid fa-2x fa-heart" style="color: #ff4033;"></i>
|
|
<span class="h4 align-text-bottom">{{ __('install.finish.thanks') }}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button id="modal-retry" type="button" class="btn btn-primary finalize-buttons">{{ __('install.finish.retry') }}</button>
|
|
<div id="modal-finished">
|
|
<a href="{{ route('home') }}">
|
|
<button type="button" class="btn btn-secondary">{{ __('install.finish.dashboard') }}</button>
|
|
</a>
|
|
<a href="{{ url('validate') }}">
|
|
<button type="button" class="btn btn-primary">{{ __('install.finish.validate_button') }}</button>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|
|
|
|
@section('scripts')
|
|
<script>
|
|
$('.finalize-buttons').on('click', function (e) {
|
|
var data = $('#settings').serializeArray();
|
|
$.ajax('{{ route('install.finish.save') }}', {
|
|
method: 'post',
|
|
headers: {'X-CSRF-TOKEN': '{{ csrf_token() }}'},
|
|
data: data
|
|
}).done((result) => {
|
|
if (result.success) {
|
|
$('#env-header').attr('aria-expanded', 'false');
|
|
$('#env-file-text').addClass('show');
|
|
$('#success-message').show();
|
|
$('.modal-title').text('{{ __('install.finish.success') }}')
|
|
$('#modal-retry').hide();
|
|
$('#modal-finished').show();
|
|
} else {
|
|
$('#env-header').attr('aria-expanded', 'true');
|
|
$('#env-file-text').removeClass('show');
|
|
$('#success-message').hide();
|
|
$('.modal-title').text('{{ __('install.finish.failed') }}')
|
|
$('#modal-retry').show();
|
|
$('#modal-finished').hide();
|
|
}
|
|
|
|
$('#env-message').text(result.env_message);
|
|
$('#env-content').text(result.env);
|
|
if (result.env) {
|
|
$('#env-chevron').show();
|
|
$('#env-file-text').removeAttr('style').addClass('show');
|
|
$('#env-icon').removeClass(['fa-square-check', 'text-success']).addClass(['fa-rectangle-xmark', 'text-danger']);
|
|
} else {
|
|
$('#env-file-text').hide();
|
|
$('#env-chevron').hide();
|
|
$('#env-icon').addClass(['fa-square-check', 'text-success']).removeClass(['fa-rectangle-xmark', 'text-danger']);
|
|
}
|
|
|
|
$('#config-message').text(result.config_message);
|
|
$('#config-content').text(result.config);
|
|
if (result.config) {
|
|
$('#config-file-text').removeAttr('style');
|
|
$('#config-chevron').show();
|
|
$('#config-icon').removeClass(['fa-square-check', 'text-success']).addClass(['fa-rectangle-xmark', 'text-danger']);
|
|
} else {
|
|
$('#config-file-text').hide();
|
|
$('#config-chevron').hide();
|
|
$('#config-icon').addClass(['fa-square-check', 'text-success']).removeClass(['fa-rectangle-xmark', 'text-danger']);
|
|
}
|
|
|
|
$('#finished').modal('show')
|
|
}).fail(function (output) {
|
|
location.reload();
|
|
});
|
|
});
|
|
|
|
var clipboard = new ClipboardJS('.copy-btn');
|
|
clipboard.on('success', function (e) {
|
|
$(e.trigger).tooltip('show');
|
|
setTimeout(() => $(e.trigger).tooltip('hide'), 2000);
|
|
|
|
e.clearSelection();
|
|
});
|
|
|
|
clipboard.on('error', function (e) {
|
|
$(e.trigger).data('title', '{{ __('install.finish.manual_copy') }}').tooltip('show');
|
|
setTimeout(() => $(e.trigger).tooltip('hide'), 2000);
|
|
});
|
|
</script>
|
|
@endsection
|