Add "All Applications" page
This commit is contained in:
parent
bbe3001157
commit
035c9399a6
@ -119,13 +119,14 @@ class Install extends Command
|
||||
$this->info('>> Saved configuration settings!');
|
||||
$this->info('>> Preparing database...');
|
||||
|
||||
$this->callSilent('config:cache');
|
||||
$this->call('migrate');
|
||||
$this->call('db:seed');
|
||||
|
||||
touch($basePath . '/INSTALLED');
|
||||
|
||||
$this->call('up');
|
||||
$this->info('>> All done! Visit ' . $baseURL . ' to start using your brand new installation of Raspberry Teams!');
|
||||
$this->info('>> All done! Visit ' . $basePath . ' to start using your brand new installation of Raspberry Teams!');
|
||||
|
||||
}
|
||||
else
|
||||
|
@ -45,10 +45,9 @@ class ApplicationController extends Controller
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function showUserApp(Request $request, $applicationID)
|
||||
{
|
||||
// TODO: Inject it instead (do this where there is no injection, not just here)
|
||||
$application = Application::find($applicationID);
|
||||
|
||||
$this->authorize('view', $application);
|
||||
@ -77,6 +76,12 @@ class ApplicationController extends Controller
|
||||
|
||||
|
||||
|
||||
public function showAllApps()
|
||||
{
|
||||
return view('dashboard.appmanagement.all')
|
||||
->with('applications', Application::paginate(6));
|
||||
}
|
||||
|
||||
|
||||
public function showAllPendingApps()
|
||||
{
|
||||
@ -87,9 +92,6 @@ class ApplicationController extends Controller
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function showPendingInterview()
|
||||
{
|
||||
$this->authorize('viewAny', Application::class);
|
||||
|
@ -251,6 +251,12 @@ return [
|
||||
'header' => 'Application Management',
|
||||
'can' => ['applications.view.all', 'applications.vote']
|
||||
],
|
||||
[
|
||||
'text' => 'All applications',
|
||||
'url' => 'applications/staff/all',
|
||||
'icon' => 'fas fa-list-ol',
|
||||
'can' => 'applications.view.all'
|
||||
],
|
||||
[
|
||||
'text' => 'Outstanding Applications',
|
||||
'url' => '/applications/staff/outstanding',
|
||||
@ -521,6 +527,7 @@ return [
|
||||
'location' => 'https://cdn.jsdelivr.net/npm/fullcalendar@5.0.1/main.min.css'
|
||||
]
|
||||
]
|
||||
]
|
||||
],
|
||||
|
||||
],
|
||||
];
|
||||
|
0
install.sh
Normal file → Executable file
0
install.sh
Normal file → Executable file
1
public/img/applications_all.svg
Normal file
1
public/img/applications_all.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.1 KiB |
1
public/img/placeholders.svg
Normal file
1
public/img/placeholders.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 7.1 KiB |
217
resources/views/dashboard/appmanagement/all.blade.php
Normal file
217
resources/views/dashboard/appmanagement/all.blade.php
Normal file
@ -0,0 +1,217 @@
|
||||
@extends('adminlte::page')
|
||||
|
||||
@section('title', 'Raspberry Network | Profile')
|
||||
|
||||
@section('content_header')
|
||||
|
||||
<h4>Application Management / All Applications</h4>
|
||||
|
||||
@stop
|
||||
|
||||
@section('js')
|
||||
|
||||
<script type="text/javascript" src="/js/app.js"></script>
|
||||
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col">
|
||||
|
||||
|
||||
<div class="callout callout-info">
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-3">
|
||||
|
||||
<img src="/img/applications_all.svg" alt="Applications illustration" class="img-responsive" width="200px"/>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col">
|
||||
|
||||
<h3><i class="fas fa-info-circle"></i> You're looking at all applications ever received</h3>
|
||||
<p>
|
||||
Here, you have quick and easy access to all applications ever received by the system.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="row mt-5">
|
||||
|
||||
<div class="col">
|
||||
|
||||
<div class="card">
|
||||
<!-- MAIN CONTENT - APPS AND PICS -->
|
||||
|
||||
<div class="card-header">
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-3">
|
||||
<h3>All applications</h3>
|
||||
</div>
|
||||
|
||||
<div class="col">
|
||||
|
||||
<div class="navbtn right" style="whitespace: nowrap">
|
||||
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="window.location.href='{{ route('staffPendingApps') }}'"><i class="far fa-folder-open"></i> Outstanding Applications</button>
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="window.location.href='{{ route('pendingInterview') }}'"><i class="fas fa-microphone-alt"></i> Interview Queue</button>
|
||||
<button type="button" class="btn btn-sm btn-primary" onclick="window.location.href='{{ route('peerReview') }}'"><i class="fas fa-search"></i> Peer Review</button>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-3 center">
|
||||
|
||||
<img src="/img/placeholders.svg" alt="Placeholder illustration" class="img-responsive" width="200px"/>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col">
|
||||
|
||||
@if (!$applications->isEmpty())
|
||||
|
||||
<table class="table table-borderless" style="whitespace: nowrap">
|
||||
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<th>#</th>
|
||||
<th>Applicant</th>
|
||||
<th>Status</th>
|
||||
<th>Date</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
@foreach($applications as $application)
|
||||
|
||||
<tr>
|
||||
<td>{{ $application->id }}</td>
|
||||
<td><a href="{{ route('showSingleProfile', ['user' => $application->user->id]) }}">{{ $application->user->name }}</a></td>
|
||||
<td>
|
||||
@switch($application->applicationStatus)
|
||||
|
||||
@case('STAGE_SUBMITTED')
|
||||
|
||||
<span class="badge badge-primary"><i class="far fa-clock"></i> Outstanding (Submitted)</span>
|
||||
@break
|
||||
|
||||
@case('STAGE_PEERAPPROVAL')
|
||||
|
||||
<span class="badge badge-warning"><i class="fas fa-vote-yea"></i> Peer Approval</span>
|
||||
@break
|
||||
|
||||
@case('STAGE_INTERVIEW')
|
||||
|
||||
<span class="badge badge-warning"><i class="fas fa-microphone-alt"></i> Interview</span>
|
||||
|
||||
@break
|
||||
|
||||
@case('STAGE_INTERVIEW_SCHEDULED')
|
||||
|
||||
<span class="badge badge-warning"><i class="far fa-clock"></i>Interview Scheduled</span>
|
||||
|
||||
@break
|
||||
|
||||
@case('APPROVED')
|
||||
|
||||
<span class="badge badge-success"><i class="fas fa-check"></i> Approved</span>
|
||||
|
||||
@break
|
||||
|
||||
@case('DENIED')
|
||||
|
||||
<span class="badge badge-danger"><i class="fas fa-times"></i> Denied</span>
|
||||
|
||||
@break;
|
||||
|
||||
@default
|
||||
<span class="badge badge-secondary"><i class="fas fa-question-circle"></i> Unknown</span>
|
||||
|
||||
|
||||
@endswitch
|
||||
</td>
|
||||
<td>{{ $application->created_at }}</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-success btn-sm" onclick="window.location.href='{{ route('showUserApp', ['id' => $application->id]) }}'"><i class="fas fa-eye"></i> View</button>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@endforeach
|
||||
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
|
||||
@else
|
||||
|
||||
<div class="alert alert-warning">
|
||||
|
||||
<h3><i class="fas fa-question-circle"></i> There are no applications here</h3>
|
||||
<p>
|
||||
We couldn't find any applications. Maybe no one has applied yet?
|
||||
Please try again later.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- end main content card -->
|
||||
</div>
|
||||
|
||||
@if (!$applications->isEmpty() && isset($applications->links))
|
||||
|
||||
<div class="card-footer">
|
||||
|
||||
{{ $applications->links }}
|
||||
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@stop
|
@ -40,7 +40,6 @@ Route::group(['middleware' => ['auth', 'forcelogout']], function(){
|
||||
->name('showUserApps')
|
||||
->middleware('eligibility');
|
||||
|
||||
|
||||
Route::get('/view/{id}', 'ApplicationController@showUserApp')
|
||||
->name('showUserApp');
|
||||
|
||||
@ -58,16 +57,24 @@ Route::group(['middleware' => ['auth', 'forcelogout']], function(){
|
||||
Route::patch('/update/{id}/{newStatus}', 'ApplicationController@updateApplicationStatus')
|
||||
->name('updateApplicationStatus');
|
||||
|
||||
|
||||
Route::get('/staff/all', 'ApplicationController@showAllApps')
|
||||
->name('allApplications');
|
||||
|
||||
|
||||
Route::get('/staff/outstanding', 'ApplicationController@showAllPendingApps')
|
||||
->name('staffPendingApps');
|
||||
|
||||
|
||||
Route::get('/staff/peer-review', 'ApplicationController@showPeerReview')
|
||||
->name('peerReview');
|
||||
|
||||
|
||||
Route::get('/staff/pending-interview', 'ApplicationController@showPendingInterview')
|
||||
->name('pendingInterview');
|
||||
|
||||
|
||||
|
||||
Route::post('{id}/staff/vote', 'VoteController@vote')
|
||||
->name('voteApplication');
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user