Nicer views

This commit is contained in:
snipe
2025-12-05 17:02:51 +00:00
parent 03b42d2c6c
commit d20545741e
5 changed files with 251 additions and 167 deletions

View File

@@ -7,13 +7,104 @@
{{-- Page content --}}
@section('content')
<div class="col-lg-12" style="padding-top: 20px;">
<div class="col-md-12">
<div class="alert alert-warning">
<i class="fas fa-check"></i>
{{ trans('general.create_admin_success') }}
<style>
.well-warning {
color: #8a6d3b;
background-color: #fcf8e3;
border-color: #faebcc;
}
</style>
<!-- Notifications -->
<div class="col-md-12">
<p>
If you're already familiar with Snipe-IT, you can get started right away by <strong><a href="{{ config('app.url') }}">heading right to your dashboard</a></strong>, or if it's your first time using Snipe-IT, you can check out some of the useful resources below:
</p>
<div class="well well-sm">
<div class="row">
<div class="col-md-6">
<ul>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/overview#/" target="_blank">Overview <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/getting-started#/" target="_blank">Getting Started <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/reference/api-overview#/" target="_blank">API Documentation <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/importing-users#/" target="_blank">Importing Users <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/importing-assets#/" target="_blank">Importing Assets <x-icon type="external-link" /></a></li>
</ul>
</div>
<div class="col-md-6">
<ul>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/reference/api-overview#/" target="_blank">API Documentation <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/saml#/" target="_blank">SAML Authentication<x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/scim#/" target="_blank">SCIM <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/ldap-sync-login#/" target="_blank">LDAP Sync &amp; Login <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-book fa-fw"></i> <a href="https://snipe-it.readme.io/docs/webhook-integration#/" target="_blank">Webhooks <x-icon type="external-link" /></a></li>
</ul>
</div>
</div>
</div>
<div class="well well-sm well-warning">
<p>
<x-icon type="tip" /> <strong>Important Note Syncing Users via SCIM or LDAP</strong>
</p>
<p>
If you plan on using SCIM or LDAP syncing to keep your user lists up to date with your directory services,
make sure the username format for any users imported via CSV matches your directory service username format to avoid duplicating users in Snipe-IT.
</p>
</div>
<p>
Don't forget to join our communities! You can find us on:
</p>
<ul>
<li><i class="fa-brands fa-github fa-fw"></i> <a href="https://github.com/grokability/snipe-it" target="_blank">Github <x-icon type="external-link" /></a></li>
<li><i class="fa-brands fa-discord fa-fw"></i> <a href="https://discord.gg/yZFtShAcKk" target="_blank">Discord <x-icon type="external-link" /></a></li>
<li><i class="fa-brands fa-bluesky fa-fw"></i> <a href="https://bsky.app/profile/snipeitapp.com" target="_blank">Bluesky <x-icon type="external-link" /></a></li>
<li><i class="fa-brands fa-mastodon fa-fw"></i> <a href="https://hachyderm.io/@grokability" target="_blank">Mastodon <x-icon type="external-link" /></a></li>
<li><i class="fa-solid fa-square-rss fa-fw"></i> Our blog at <a href="https://grokstar.dev" target="_blank">Grokstar.Dev <x-icon type="external-link" /></a></li>
</ul>
<p>
Subscribe on Github for notifications about new releases. (We recommend selecting "Releases Only" for most users - the repo can get noisy.)
</p>
</div>
<p>{{ trans('general.create_admin_redirect') }} <a href="{{ config('app.url') }}">{{ config('app.url') }}</a></p>
</div>
@stop
@section('button')
<a class="btn btn-primary" href="{{ config('app.url') }}">{{ trans('admin/settings/general.create_admin_redirect') }}
<i class="fa-solid fa-angles-right"></i>
</a>
@parent
@stop
<script>
var duration = 2000;
var animationEnd = Date.now() + duration;
var defaults = { startVelocity: 30, spread: 360, ticks: 60, zIndex: 0 };
function randomInRange(min, max) {
return Math.random() * (max - min) + min;
}
var interval = setInterval(function() {
var timeLeft = animationEnd - Date.now();
if (timeLeft <= 0) {
return clearInterval(interval);
}
var particleCount = 50 * (timeLeft / duration);
// since particles fall down, start a bit higher than random
confetti({ ...defaults, particleCount, origin: { x: randomInRange(0.1, 0.3), y: Math.random() - 0.2 } });
confetti({ ...defaults, particleCount, origin: { x: randomInRange(0.7, 0.9), y: Math.random() - 0.2 } });
}, 250);
</script>

View File

@@ -9,7 +9,7 @@ Create a User ::
{{-- Page content --}}
@section('content')
<p>This page will do a system check to make sure your configuration looks correct. We'll add your first user on the next page. </p>
<h4> First let's do a quick system check to make sure your configuration looks correct. </h4>
<table class="table">
<thead>
@@ -162,7 +162,7 @@ Create a User ::
@if (!$start_settings['debug_exposed'])
Awesomesauce. Debug is either turned off, or you're running this in a non-production environment. (Don't forget to turn it off when you're ready to go live.)
@else
Yikes! You should turn off debug mode unless you encounter any issues. Please update your <code>APP_DEBUG</code> settings in your <code>.env</code> file
<p>Yikes! You should turn off debug mode unless you encounter any issues. Please update your <code>APP_DEBUG</code> settings in your <code>.env</code> file</p>
@endif
</td>
</tr>
@@ -178,29 +178,22 @@ Create a User ::
</td>
<td>
@if ($start_settings['gd'])
GD is installed. Go you!
<p>GD is installed. Go you!</p>
@else
The GD library isn't installed. While this won't prevent the system from working, you won't be able to generate labels or upload images.
<p>The GD library isn't installed. While this won't prevent the system from working, you won't be able to generate labels or upload images.</p>
@endif
</td>
</tr>
<tr id="mailtestrow" class="warning">
<tr id="mailtestrow" class="info">
<td>Email</td>
<td>
<a class="btn btn-default btn-sm pull-left" id="mailtest" style="margin-right: 10px;">
Send Test</a>
<span id="mailtesticon"></span>
</td>
<td>
<span id="mailtesticon"></span>
<span id="mailtestresult"></span>
<span id="mailteststatus"></span>
<div class="col-md-12">
<div id="mailteststatus-error" class="text-danger"></div>
</div>
<div class="col-md-12">
<p class="help-block">This will attempt to send a test mail to {{ config('mail.from.address') }}.</p>
</div>
<p>This will attempt to send a test mail to {{ config('mail.from.address') }}.</p>
<a class="btn btn-default btn-sm pull-left" id="mailtest" style="margin-right: 10px;">Send Test</a>
<div id="mailteststatus-text" class="text-danger"></div>
</td>
</tr>
</tbody>
@@ -209,9 +202,14 @@ Create a User ::
@stop
@section('button')
<form action="{{ route('setup.migrate') }}" method="GET">
<button class="btn btn-primary">Next: Create Database Tables</button>
<form action="{{ route('setup.migrate') }}" method="POST">
@csrf
<button class="btn btn-primary">
{{ trans('general.setup_next') }}: {{ trans('general.setup_create_database') }}
<i class="fa-solid fa-angles-right"></i>
</button>
</form>
@parent
@stop
@@ -223,12 +221,11 @@ Create a User ::
$("#mailtest").click(function(){
$("#mailtestrow").removeClass('success').removeClass('danger').removeClass('warning');
$("#mailtestrow").addClass('info');
$("#mailtestrow").removeClass('success').removeClass('danger').removeClass('warning').addClass('info');
$("#mailtesticon").html('');
$("#mailteststatus").html('');
$("#mailteststatus").html('Sending Test Email...');
$('#mailteststatus-error').html('');
$("#mailtesticon").html('<i class="fas fa-spinner spin"></i> Sending Test Email...');
$("#mailtesticon").html('<i class="fas fa-spinner fa-spin text-info"></i>');
$.ajax({
url: "{{ route('setup.mailtest') }}",
@@ -237,12 +234,12 @@ Create a User ::
if (result.status == 'success') {
$("#mailtestrow").removeClass('info').removeClass('danger').removeClass('warning');
$("#mailtestrow").addClass('success');
$("#mailtesticon").html('');
$("#mailtesticon").html('<i class="fas fa-check preflight-success"></i>');
$("#mailteststatus").html('');
$('#mailteststatus-error').html('');
$("#mailteststatus").removeClass('text-danger');
$("#mailteststatus").addClass('text-success');
$("#mailteststatus").html('<i class="fas fa-check text-success"></i> Mail sent to {{ config('mail.from.address') }}!');
$("#mailteststatus-text").removeClass('text-danger');
$("#mailteststatus-text").addClass('text-success');
$("#mailteststatus-text").html('Mail sent to {{ config('mail.from.address') }}!');
} else {
$("#mailtestrow").removeClass('success').removeClass('info').removeClass('warning');
$("#mailtestrow").addClass('danger');
@@ -257,12 +254,12 @@ Create a User ::
$("#mailtestrow").removeClass('success').removeClass('info').removeClass('warning');
$("#mailtestrow").addClass('danger');
$("#mailtesticon").html('');
$("#mailteststatus").html('');
$("#mailteststatus-text").html('');
$('#mailteststatus-error').html('');
$("#mailteststatus").removeClass('text-success');
$("#mailteststatus").addClass('text-danger');
$("#mailteststatus-text").removeClass('text-success');
$("#mailteststatus-text").addClass('text-danger');
$("#mailtesticon").html('<i class="fas fa-exclamation-triangle text-danger"></i>');
$('#mailteststatus').html('Mail could not be sent.');
$('#mailteststatus-text').html('Mail could not be sent.');
if (result.responseJSON) {
$('#mailteststatus-error').html('Error: ' + result.responseJSON.messages);
} else {

View File

@@ -1,7 +1,7 @@
@extends('layouts/setup')
{{-- Page title --}}
@section('title')
{{ trans('general.setup_migrations') }}
{{ trans('admin/settings/general.setup_migrations') }}
@parent
@stop
@@ -15,13 +15,6 @@
{{ trans('general.setup_no_migrations') }}
</div>
</div>
@else
<div class="col-md-12">
<div class="alert alert-success">
<i class="fas fa-check"></i>
{{ trans('general.setup_successful_migrations') }}
</div>
</div>
@endif
@@ -31,8 +24,11 @@
@stop
@section('button')
<form action="{{ route('setup.user') }}" method="GET">
<button class="btn btn-primary">{{ trans('general.setup_migration_create_user') }}</button>
</form>
<a href="{{ route('setup.user') }}" class="btn btn-primary">
{{ trans('general.setup_next') }}:
{{ trans('general.setup_create_admin') }}
<i class="fa-solid fa-angles-right"></i>
</a>
@parent
@stop

View File

@@ -8,7 +8,11 @@
{{-- Page content --}}
@section('content')
<p>{{ trans('admin/users/general.create_user_page_explanation') }}</p>
<div class="col-md-12">
<h4>{{ trans('admin/settings/general.setup_create_user_page_explanation') }}</h4>
</div>
<form action="{{ route('setup.user.save') }}" method="POST">
{{ csrf_field() }}
@@ -27,7 +31,103 @@
</div>
</div>
<div class="row">
<!-- Name -->
<div class="row">
<!-- first name -->
<div class="form-group col-lg-6">
<label for="first_name">{{ trans('general.first_name') }}</label>
<input class="form-control" placeholder="Jane" required="" name="first_name" type="text" id="first_name" value="{{ old('first_name') }}">
{!! $errors->first('first_name', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- last name -->
<div class="form-group col-lg-6 required {{ $errors->has('last_name') ? 'error' : '' }}">
<label for="last_name">{{ trans('general.last_name') }}</label>
<input class="form-control" placeholder="Smith" required="" name="last_name" type="text" id="last_name" value="{{ old('last_name') }}">
{!! $errors->first('last_name', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<div class="row">
<!-- email-->
<div class="form-group col-lg-6{{ $errors->has('email') ? ' error' : '' }}">
<label for="email">{{ trans('admin/users/table.email') }}</label>
<input class="form-control" type="email" name="email" id="email" value="{{ old('email', config('mail.from.address')) }}" placeholder="you@example.com" required>
{!! $errors->first('email', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- username -->
<div class="form-group col-lg-6 {{ $errors->has('username') ? 'error' : '' }}">
<label for="username">{{ trans('admin/users/table.username') }}</label>
<input class="form-control" placeholder="jsmith" required="" name="username" type="text" id="username" value="{{ old('username') }}" required>
{!! $errors->first('username', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<div class="row">
<!-- password -->
<div class="form-group col-lg-6{{ (Helper::checkIfRequired(\App\Models\User::class, 'password')) ? ' required' : '' }} {{ $errors->has('password') ? 'error' : '' }}">
<label for="password">{{ trans('admin/users/table.password') }}</label>
<input class="form-control" type="password" name="password" id="password" value="" required>
{!! $errors->first('password', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- password confirm -->
<div class="form-group col-lg-6{{ (Helper::checkIfRequired(\App\Models\User::class, 'password')) ? ' required' : '' }} {{ $errors->has('password_confirm') ? 'error' : '' }}">
<label for="password_confirmation">{{ trans('admin/users/table.password_confirm') }}</label>
<input class="form-control" type="password" name="password_confirmation" id="password_confirmation" value="" required>
{!! $errors->first('password_confirmation', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- Email credentials -->
<div class="form-group col-lg-12">
<label class="form-control form-control">
<input type="checkbox" value="1" name="email_creds">{{ trans('admin/users/general.email_credentials_text') }}
</label>
</div>
</div>
<div class="row">
<div class="form-group col-lg-6{{ $errors->has('auto_increment_prefix') ? ' error' : '' }}">
<label for="auto_increment_prefix">{{ trans('admin/settings/general.auto_increment_prefix') }}</label>
<input class="form-control" name="auto_increment_prefix" type="text" id="auto_increment_prefix" value="{{ old('auto_increment_prefix') }}">
{!! $errors->first('auto_increment_prefix', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<div class="form-group col-lg-6{{ $errors->has('zerofill_count') ? ' error' : '' }}">
<label for="zerofill_count">{{ trans('admin/settings/general.zerofill_count') }}</label>
<input class="form-control" name="zerofill_count" type="text" value="{{ old('zerofill_count', 5) }}" id="zerofill_count">
{!! $errors->first('zerofill_count', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<div class="row">
<div class="form-group col-lg-6">
<label class="form-control form-control">
<input type="checkbox" value="1" name="auto_increment_assets">{{trans('admin/settings/general.auto_increment_assets')}}
</label>
</div>
<!-- Multi Company Support -->
<div class="form-group col-lg-6">
<label class="form-control form-control">
<input type="checkbox" value="1" name="full_multiple_companies_support"> {{ trans('admin/settings/general.full_multiple_companies_support_text') }}
</label>
</div>
</div>
<div class="row">
<!-- Language -->
<div class="form-group col-lg-6{{$errors->has('default_language') ? ' error' : ''}}">
@@ -48,122 +148,20 @@
</div>
<div class="row">
<div class="form-group col-lg-6">
<label class="form-control form-control">
<input type="checkbox" value="1" name="auto_increment_assets">{{trans('admin/settings/general.auto_increment_assets')}}
</label>
</div>
<!-- Multi Company Support -->
<div class="form-group col-lg-6">
<label class="form-control form-control">
<input type="checkbox" value="1" name="full_multiple_companies_support"> {{ trans('admin/settings/general.full_multiple_companies_support_text') }}
</label>
</div>
</div>
<div class="row">
<div class="form-group col-lg-6{{ $errors->has('auto_increment_prefix') ? ' error' : '' }}">
<label for="auto_increment_prefix">{{ trans('admin/settings/general.auto_increment_prefix') }}</label>
<input class="form-control" name="auto_increment_prefix" type="text" id="auto_increment_prefix" value="{{ old('auto_increment_prefix') }}">
{!! $errors->first('auto_increment_prefix', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<div class="form-group col-lg-6{{ $errors->has('zerofill_count') ? ' error' : '' }}">
<label for="zerofill_count">{{ trans('admin/settings/general.zerofill_count') }}</label>
<input class="form-control" name="zerofill_count" type="text" value="{{ old('zerofill_count', 5) }}" id="zerofill_count">
{!! $errors->first('zerofill_count', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<!-- email domain -->
<div class="row">
<div class="form-group col-lg-6 required {{ $errors->has('email_domain') ? 'error' : '' }}">
<label for="email_domain">{{ trans('general.email_domain') }}</label>
<input class="form-control" placeholder="example.com" required="" name="email_domain" type="text" id="email_domain" value="{{ old('email_domain') }}">
<span class="help-block">{{ trans('general.email_domain_help') }}</span>
{!! $errors->first('email_domain', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- email format -->
<div class="form-group col-lg-6 {{ $errors->has('email_format') ? 'error' : '' }}">
<label for="email_format">{{ trans('admin/settings/general.email_formats.email_format') }}</label>
{!! Form::username_format('email_format', old('email_format', 'filastname'), 'select2') !!}
{!! $errors->first('email_format', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<!-- Name -->
<div class="row">
<!-- first name -->
<div class="form-group col-lg-6">
<label for="first_name">{{ trans('general.first_name') }}</label>
<input class="form-control" placeholder="Jane" required="" name="first_name" type="text" id="first_name" value="{{ old('first_name') }}">
{!! $errors->first('first_name', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- last name -->
<div class="form-group col-lg-6 required {{ $errors->has('last_name') ? 'error' : '' }}">
<label for="last_name">{{ trans('general.last_name') }}</label>
<input class="form-control" placeholder="Smith" required="" name="last_name" type="text" id="last_name" value="{{ old('last_name') }}">
{!! $errors->first('last_name', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<div class="row">
<!-- email-->
<div class="form-group col-lg-6{{ $errors->has('email') ? 'error' : '' }}">
<label for="email">{{ trans('admin/users/table.email') }}</label>
<input class="form-control" type="email" name="email" id="email" value="{{ old('email', config('mail.from.address')) }}" placeholder="you@example.com" required>
{!! $errors->first('email', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- username -->
<div class="form-group col-lg-6{{ (Helper::checkIfRequired(\App\Models\User::class, 'username')) ? ' required' : '' }} {{ $errors->has('username') ? 'error' : '' }}">
<label for="username">{{ trans('admin/users/table.username') }}</label>
<input class="form-control" placeholder="jsmith" required="" name="username" type="text" id="username" value="{{ old('username') }}">
{!! $errors->first('username', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<div class="row">
<!-- password -->
<div class="form-group col-lg-6{{ (Helper::checkIfRequired(\App\Models\User::class, 'password')) ? ' required' : '' }} {{ $errors->has('password') ? 'error' : '' }}">
<label for="password">{{ trans('admin/users/table.password') }}</label>
<input class="form-control" type="password" name="password" id="password" value="" required>
{!! $errors->first('password', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
<!-- password confirm -->
<div class="form-group col-lg-6{{ (Helper::checkIfRequired(\App\Models\User::class, 'password')) ? ' required' : '' }} {{ $errors->has('password_confirm') ? 'error' : '' }}">
<label for="password_confirmation">{{ trans('admin/users/table.password_confirm') }}</label>
<input class="form-control" type="password" name="password_confirmation" id="password_confirmation" value="" required>
{!! $errors->first('password_confirmation', '<span class="alert-msg" aria-hidden="true">:message</span>') !!}
</div>
</div>
<!-- Email credentials -->
<div class="form-group col-lg-12">
<label class="form-control form-control">
<input type="checkbox" value="1" name="email_creds">{{ trans('admin/users/general.email_credentials_text') }}
</label>
</div>
</div> <!--/.COL-LG-12-->
@stop
@section('button')
<button class="btn btn-primary">{{ trans('admin/users/general.next_save_user') }}</button>
<button class="btn btn-primary">
{{ trans('general.setup_next') }}: {{ trans('admin/settings/general.setup_migration_create_user') }}
<i class="fa-solid fa-angles-right"></i>
</button>
</form>
@parent
@stop

View File

@@ -24,6 +24,7 @@ use App\Http\Controllers\ProfileController;
use App\Http\Controllers\ReportTemplatesController;
use App\Http\Controllers\ReportsController;
use App\Http\Controllers\SettingsController;
use App\Http\Controllers\SetupController;
use App\Http\Controllers\StatuslabelsController;
use App\Http\Controllers\SuppliersController;
use App\Http\Controllers\ViewAssetsController;
@@ -48,7 +49,7 @@ Route::group(['middleware' => 'auth'], function () {
]);
Route::post('categories/bulk/delete', [BulkCategoriesController::class, 'destroy'])->name('categories.bulk.delete');
/*
* Labels
*/
@@ -285,15 +286,15 @@ Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'authorize:superuser
Route::delete('delete/{filename}',
[SettingsController::class, 'deleteFile'])->name('settings.backups.destroy');
Route::post('/',
Route::post('/',
[SettingsController::class, 'postBackups']
)->name('settings.backups.create');
Route::post('/restore/{filename}',
Route::post('/restore/{filename}',
[SettingsController::class, 'postRestore']
)->name('settings.backups.restore');
Route::post('/upload',
Route::post('/upload',
[SettingsController::class, 'postUploadBackup']
)->name('settings.backups.upload');
@@ -415,7 +416,7 @@ Route::group(['prefix' => 'account', 'middleware' => ['auth']], function () {
'display-sig/{filename}',
[ProfileController::class, 'displaySig']
)->name('profile.signature.view');
Route::get(
'stored-eula-file/{filename}',
[ProfileController::class, 'getStoredEula']
@@ -604,23 +605,24 @@ Route::get(
Route::group(['prefix' => 'setup', 'middleware' => 'web'], function () {
Route::get(
'user',
[SettingsController::class, 'getSetupUser']
[SetupController::class, 'getSetupUser']
)->name('setup.user');
Route::post(
'user',
[SettingsController::class, 'postSaveFirstAdmin']
[SetupController::class, 'postSaveFirstAdmin']
)->name('setup.user.save');
Route::get(
Route::post(
'migrate',
[SettingsController::class, 'getSetupMigrate']
[SetupController::class, 'SetupMigrate']
)->name('setup.migrate');
Route::get(
'done',
[SettingsController::class, 'getSetupDone']
[SetupController::class, 'getSetupDone']
)->name('setup.done');
Route::get(
@@ -630,7 +632,7 @@ Route::group(['prefix' => 'setup', 'middleware' => 'web'], function () {
Route::get(
'/',
[SettingsController::class, 'getSetupIndex']
[SetupController::class, 'getSetupIndex']
)->name('setup');
});