Add job status at header

This commit is contained in:
Amir
2023-05-24 15:26:19 +08:00
parent 7d99167ad8
commit 44b861e67d
5 changed files with 129 additions and 55 deletions
+29
View File
@@ -13,6 +13,7 @@ use App\Models\CawanganLelong;
use App\Models\Pengesahan;
use Carbon\Carbon;
use App\Models\Cawangan;
use App\Models\Job;
use App\Models\LelongBid;
use App\Models\Payment;
use App\Models\User;
@@ -832,5 +833,33 @@ class HomeController extends Controller
return redirect()->back()->with("success","Katalaluan Berjaya Dikemaskini!");
}
public function reloadJobDetail()
{
$jobs = Job::select('payload', 'attempts')->get();
if ($jobs->isNotEmpty()) {
$job_collect_alter = collect();
foreach ($jobs as $job) {
$job_convert = json_decode($job->payload)->data;
$job_to_be_added = collect();
$job_to_be_added['command_name'] = $job_convert->commandName;
$job_to_be_added['command'] = unserialize($job_convert->command);
$job_to_be_added['user_id'] = $job_to_be_added['command']->user_id;
$job_to_be_added['user_kodcaw'] = $job_to_be_added['command']->user_kodcaw;
$job_to_be_added['attempts'] = $job->attempts;
$job_collect_alter->push($job_to_be_added);
}
$user_job_request = $job_collect_alter->pluck('user_id')->unique();
$users = User::whereIn('id', $user_job_request)->select('id', 'name')->get();
$users_keyBy_id = $users->keyBy('id');
foreach ($job_collect_alter as $index => $job) {
if ($users_keyBy_id[$job['user_id']]) {
$user_true = $users_keyBy_id[$job['user_id']];
$job_collect_alter[$index]['user_name'] = $user_true->name;
}
}
return response()->json($job_collect_alter);
}
}
}
+2 -2
View File
@@ -24,8 +24,8 @@ class WhatsappNotisPeringatanKedua implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $user_id;
protected $user_kodcaw;
public $user_id;
public $user_kodcaw;
protected $notisid;
protected $cawid;
+13
View File
@@ -0,0 +1,13 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Job extends Model
{
use HasFactory;
protected $table = 'jobs';
}
+84 -53
View File
@@ -1,61 +1,92 @@
<style>
.custom-dropdown {
min-width: 350px;
top: 90%;
left: 40px;
}
</style>
<nav class="navbar navbar-expand-lg navbar-light bg-white">
<div class="container-fluid">
<button type="button" id="sidebarCollapse" class="btn btn-outline-secondary">
<i class="fa fa-bars"></i>
</button>
<button class="btn btn-dark d-inline-block d-lg-none ml-auto" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<i class="fas fa-align-justify"></i>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="nav navbar-nav ml-auto">
<li class="nav-link" style="color: orange; font-weight:bolder;" id="displaytime">{{-- Ahad, 31 Oktober 2021, 9:49:08 AM --}}</li>
<!-- <li class="nav-item active">
<a class="nav-link" href="#">Page</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Page</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Page</a>
</li> -->
</ul>
<div class="group">
<button type="button" class="btn dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> {{ Auth::user()->name }} </button>
<div class="dropdown-menu dropdown-menu-right mr-2">
<div class="dropdown">
<div class="dropdown-item">
{{-- <a class="far fa fa-user" href="editprofile">Profile</a> --}}
<a class="dropdown-item" href="{{ route('editprofile') }}">
<div class="container-fluid">
<button type="button" id="sidebarCollapse" class="btn btn-outline-secondary">
<i class="fa fa-bars"></i>
</button>
<button class="nav-link ml-2 btn btn-outline-secondary dropdown-toggle" onclick="reloadJobDetail(this)" href="#" role="button" data-toggle="dropdown" aria-expanded="false">
<span class="material-symbols-rounded" style="font-size: 1rem;">
pending_actions
</span>
</button>
<div class="dropdown-menu custom-dropdown" id="custom-dropdown">
<span class="dropdown-item">Queue Job</span>
<div class="dropdown-divider"></div>
<div id="child-dropdown"></div>
</div>
<button class="btn btn-dark d-inline-block d-lg-none ml-auto" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<i class="fas fa-align-justify"></i>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="nav navbar-nav ml-auto">
<li class="nav-link" style="color: orange; font-weight:bolder;" id="displaytime">{{-- Ahad, 31 Oktober 2021, 9:49:08 AM --}}</li>
</ul>
<div class="group">
<button type="button" class="btn dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> {{ Auth::user()->name }} </button>
<div class="dropdown-menu dropdown-menu-right mr-2">
<div class="dropdown">
<div class="dropdown-item">
{{-- <a class="far fa fa-user" href="editprofile">Profile</a> --}}
<a class="dropdown-item" href="{{ route('editprofile') }}">
<i class="far fa fa-user"></i>{{ __('Profile') }}
</a>
</div>
<div class="dropdown-item">
{{-- <a class="far fa fa-key" href="tukarkatalaluan">Tukar Katalaluan</a> --}}
<a class="dropdown-item" href="{{ route('changePasswordGet') }}">
<i class="far fa fa-key"></i>{{ __('Tukar Katalaluan') }}
</a>
</div>
<div class="dropdown-item">
<a class="dropdown-item" href="{{ route('logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
<i class="fas fa-sign-out-alt"></i>{{ __('Logout') }}
</a>
</div>
</div>
{{-- profile --}}
{{-- <button class="dropdown-item" type="button"><i class="far fa fa-user"></i> Profile</button> --}}
{{-- logout --}}
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
@csrf
</form>
{{-- <button class="dropdown-item" type="button"><i class="fa fa-sign-out"></i> Logout</button> --}}
<div class="dropdown-item">
{{-- <a class="far fa fa-key" href="tukarkatalaluan">Tukar Katalaluan</a> --}}
<a class="dropdown-item" href="{{ route('changePasswordGet') }}">
<i class="far fa fa-key"></i>{{ __('Tukar Katalaluan') }}
</a>
</div>
<div class="dropdown-item">
<a class="dropdown-item" href="{{ route('logout') }}" onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
<i class="fas fa-sign-out-alt"></i>{{ __('Logout') }}
</a>
</div>
</div>
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
@csrf
</form>
{{-- <button class="dropdown-item" type="button"><i class="fa fa-sign-out"></i> Logout</button> --}}
</div>
</div>
</div>
</nav>
</div>
</nav>
<script>
function reloadJobDetail(e) {
if (e.getAttribute("aria-expanded") == "false") {
console.log("bukak");
$('#child-dropdown').children('.detail').remove();
$.ajax({
type: "GET",
url: "{{route('reloadjobdetail')}}",
success: function(e) {
console.log(e);
for (var data of e) {
if (data.user_kodcaw == null) {
var $newDiv = $("<div/>")
.addClass("detail dropdown-item")
.html("<div>" + data.command_name.slice(9) + "<br><span style='text-transform: uppercase;'>" + data.user_name.substring(0, 10) + "</span> </div>");
$("#child-dropdown").append($newDiv);
} else {
var $newDiv = $("<div/>")
.addClass("detail dropdown-item")
.html("<div>" + data.command_name.slice(9) + "<br><span style='text-transform: uppercase;'>" + data.user_name.substring(0, 10) + " (" + data.user_kodcaw + ")</span> </div>");
$("#child-dropdown").append($newDiv);
}
}
}
});
} else {
console.log("tutup");
}
}
</script>
+1
View File
@@ -29,6 +29,7 @@ Auth::routes();
Route::get('logs', [\Rap2hpoutre\LaravelLogViewer\LogViewerController::class, 'index']);
Route::get('/home','HomeController@index2')->name('home');
Route::get('/reload-job-detail', 'HomeController@reloadJobDetail')->name('reloadjobdetail');
// Route::get('/loginUser','HomeController@index')->name('login');
Route::get('/about','HomeController@about')->name('about');
Route::get('/editprofile','HomeController@editprofile')->name('editprofile');