Implment functions to send and display flash messages
This commit is contained in:
parent
9f57c930fc
commit
e71919f35f
|
|
@ -51,6 +51,9 @@ class StudentController extends Controller
|
|||
'grade' => request('grade'),
|
||||
'school_id' => Auth::user()->school_id
|
||||
]);
|
||||
|
||||
$request->session()->put('auditionMessages',['success','I did it again ma']);
|
||||
|
||||
return redirect('/students');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Session;
|
||||
|
||||
class TestController extends Controller
|
||||
{
|
||||
public function flashTest(Request $request)
|
||||
{
|
||||
|
||||
Session::flash('msg|this is the message','success');
|
||||
Session::flash('msg|another message','caution');
|
||||
Session::flash('msg|you better be careful','danger');
|
||||
|
||||
return view('test');
|
||||
}
|
||||
}
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Session;
|
||||
|
||||
function tw_max_width_class_array() :Array {
|
||||
$return = [
|
||||
"xs" => "max-w-xs",
|
||||
|
|
@ -19,3 +22,19 @@ function tw_max_width_class_array() :Array {
|
|||
];
|
||||
return $return;
|
||||
}
|
||||
|
||||
function getMessages() {
|
||||
$flash = Session::get('_flash');
|
||||
$messages = $flash['new'];
|
||||
$return = [];
|
||||
foreach ($messages as $message) {
|
||||
if (substr($message, 0,4) != 'msg|') continue;
|
||||
$type = Session::get($message);
|
||||
$return[] = ['message' => substr($message,4), 'type' => $type];
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
|
||||
function sendMessage(String $message, String $type) {
|
||||
Session::flash('msg|'.$message,$type);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,39 @@
|
|||
{{--Send messages with Session::flash('msg|MESSAGE HERE','success, caution or danger');--}}
|
||||
{{--Can also use helper fuction: sendMessage('Test Message','danger')--}}
|
||||
@props(['message','messageType'])
|
||||
@php
|
||||
$div_classes = 'flex justify-between mx-auto max-w-2xl text-sm rounded-md px-3 py-1 mb-2 font-medium ring-1 ring-inset ';
|
||||
$button_classes = 'group relative mr-1 h-5 w-5 rounded-sm ';
|
||||
$svg_classes = 'h-5 w-5 ';
|
||||
switch($messageType) {
|
||||
case 'caution':
|
||||
$div_classes .= 'bg-yellow-50 text-yellow-800 ring-yellow-600/40';
|
||||
$button_classes .= 'hover:bg-yellow-600/20';
|
||||
$svg_classes .= 'stroke-yellow-700/50 group-hover:stroke-yellow-700/75';
|
||||
break;
|
||||
|
||||
case 'danger':
|
||||
$div_classes .= 'bg-red-50 text-red-700 ring-red-600/40';
|
||||
$button_classes .= 'hover:bg-red-600/20';
|
||||
$svg_classes .= 'stroke-red-600/50 group-hover:stroke-red-600/75';
|
||||
break;
|
||||
|
||||
default:
|
||||
$div_classes .= 'bg-green-50 text-green-700 ring-green-600/40 ';
|
||||
$button_classes .= 'hover:bg-green-600/20';
|
||||
$svg_classes .= 'stroke-green-700/50 group-hover:stroke-green-700/75';
|
||||
break;
|
||||
}
|
||||
@endphp
|
||||
<div class="{{ $div_classes }}" x-data="{ shown: true }" x-show="shown">
|
||||
<div>{{ $message }}</div>
|
||||
<div>
|
||||
<button type="button" class="{{ $button_classes }}" x-on:click=" shown = false">
|
||||
<span class="sr-only">Remove</span>
|
||||
<svg viewBox="0 0 14 14" class="{{ $svg_classes }}">
|
||||
<path d="M4 4l6 6m0-6l-6 6" />
|
||||
</svg>
|
||||
<span class="absolute -inset-1"></span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -25,8 +25,14 @@
|
|||
<x-layout.page-header>{{ $page_title }}</x-layout.page-header>
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
<main>
|
||||
<div class="mx-auto max-w-7xl py-6 sm:px-6 lg:px-8">
|
||||
@foreach(getMessages() as $message)
|
||||
<x-flash_message :message="$message['message']" :messageType="$message['type']" />
|
||||
@endforeach
|
||||
|
||||
{{ $slot }}
|
||||
</div>
|
||||
</main>
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
<x-layout.app>
|
||||
<x-slot:page_title>Dashboard</x-slot:page_title>
|
||||
|
||||
</x-layout.app>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,16 @@
|
|||
@php use App\Models\Audition;use App\Models\School;use App\Models\SchoolEmailDomain;use App\Models\User;use Illuminate\Support\Facades\Auth; @endphp
|
||||
@php use App\Models\Audition;use App\Models\School;use App\Models\SchoolEmailDomain;use App\Models\User;use Illuminate\Support\Facades\Auth;use Illuminate\Support\Facades\Session; @endphp
|
||||
<x-layout.app>
|
||||
<x-slot:page_title>Test Page</x-slot:page_title>
|
||||
|
||||
@php
|
||||
|
||||
// $flash = Session::get('_flash');
|
||||
// $messages = $flash['new'];
|
||||
$messages = getMessages();
|
||||
@endphp
|
||||
|
||||
|
||||
@foreach($messages as $message)
|
||||
The message "{{ $message['message'] }}" is of type "{{ $message['type'] }}"<br />
|
||||
@endforeach
|
||||
|
||||
</x-layout.app>
|
||||
|
|
|
|||
|
|
@ -4,11 +4,12 @@ use App\Http\Controllers\DashboardController;
|
|||
use App\Http\Controllers\EntryController;
|
||||
use App\Http\Controllers\SchoolController;
|
||||
use App\Http\Controllers\StudentController;
|
||||
use App\Http\Controllers\TestController;
|
||||
use App\Http\Controllers\UserController;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::view('/test','test')->middleware('auth','verified');
|
||||
Route::get('/test',[TestController::class,'flashTest'])->middleware('auth','verified');
|
||||
|
||||
Route::view('/','welcome')->middleware('guest');
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue