Add job status at header
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
@@ -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>
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user