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'),
|
'grade' => request('grade'),
|
||||||
'school_id' => Auth::user()->school_id
|
'school_id' => Auth::user()->school_id
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$request->session()->put('auditionMessages',['success','I did it again ma']);
|
||||||
|
|
||||||
return redirect('/students');
|
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
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Session;
|
||||||
|
|
||||||
function tw_max_width_class_array() :Array {
|
function tw_max_width_class_array() :Array {
|
||||||
$return = [
|
$return = [
|
||||||
"xs" => "max-w-xs",
|
"xs" => "max-w-xs",
|
||||||
|
|
@ -19,3 +22,19 @@ function tw_max_width_class_array() :Array {
|
||||||
];
|
];
|
||||||
return $return;
|
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>
|
<x-layout.page-header>{{ $page_title }}</x-layout.page-header>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<main>
|
<main>
|
||||||
<div class="mx-auto max-w-7xl py-6 sm:px-6 lg:px-8">
|
<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 }}
|
{{ $slot }}
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
<x-layout.app>
|
<x-layout.app>
|
||||||
<x-slot:page_title>Dashboard</x-slot:page_title>
|
<x-slot:page_title>Dashboard</x-slot:page_title>
|
||||||
|
|
||||||
</x-layout.app>
|
</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-layout.app>
|
||||||
<x-slot:page_title>Test Page</x-slot:page_title>
|
<x-slot:page_title>Test Page</x-slot:page_title>
|
||||||
|
|
||||||
@php
|
@php
|
||||||
|
// $flash = Session::get('_flash');
|
||||||
|
// $messages = $flash['new'];
|
||||||
|
$messages = getMessages();
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
|
|
||||||
|
@foreach($messages as $message)
|
||||||
|
The message "{{ $message['message'] }}" is of type "{{ $message['type'] }}"<br />
|
||||||
|
@endforeach
|
||||||
|
|
||||||
</x-layout.app>
|
</x-layout.app>
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,12 @@ use App\Http\Controllers\DashboardController;
|
||||||
use App\Http\Controllers\EntryController;
|
use App\Http\Controllers\EntryController;
|
||||||
use App\Http\Controllers\SchoolController;
|
use App\Http\Controllers\SchoolController;
|
||||||
use App\Http\Controllers\StudentController;
|
use App\Http\Controllers\StudentController;
|
||||||
|
use App\Http\Controllers\TestController;
|
||||||
use App\Http\Controllers\UserController;
|
use App\Http\Controllers\UserController;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
use Illuminate\Support\Facades\Route;
|
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');
|
Route::view('/','welcome')->middleware('guest');
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue