add timetable to User dashboard
This commit is contained in:
parent
9d2ba99c1d
commit
2d9ca7a95c
|
@ -0,0 +1,20 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Helpers;
|
||||||
|
|
||||||
|
class GetDay
|
||||||
|
{
|
||||||
|
public static function getDay($day): string
|
||||||
|
{
|
||||||
|
$daysMap = [
|
||||||
|
1 => 'Понедельник',
|
||||||
|
2 => 'Вторник',
|
||||||
|
3 => 'Среда',
|
||||||
|
4 => 'Четверг',
|
||||||
|
5 => 'Пятница',
|
||||||
|
6 => 'Суббота',
|
||||||
|
7 => 'Воскресение',
|
||||||
|
];
|
||||||
|
return array_key_exists($day, $daysMap) ? $daysMap[$day] : 'День недели не определен!';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services;
|
||||||
|
|
||||||
|
use PDO;
|
||||||
|
use PHPStan\Cache\Cache;
|
||||||
|
|
||||||
|
class GetInfoOfStudent
|
||||||
|
{
|
||||||
|
private $connect;
|
||||||
|
|
||||||
|
public function __construct($connection)
|
||||||
|
{
|
||||||
|
$this->connect = $connection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getInfo($user): array
|
||||||
|
{
|
||||||
|
return $this->connect->getInfo($user);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services;
|
||||||
|
|
||||||
|
class TestConnect
|
||||||
|
{
|
||||||
|
public function getInfo($user): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'guid' => '3897263a-208f-11ee-93a9-f8cc6e370457',
|
||||||
|
'guid_faculty' => '4cbc06bd-5f3d-11ec-80b4-a0369f032517',
|
||||||
|
'guid_group' => '662e64d7-b4ad-11ec-937c-f8cc6e370458',
|
||||||
|
'name' => 'Абдулазиева Мадина Ибрагимовна',
|
||||||
|
'first_name' => 'Мадина1',
|
||||||
|
'last_name' => 'Абдулазиева',
|
||||||
|
'middle_name' => 'Ибрагимовна',
|
||||||
|
'number_record_book' => '23009202',
|
||||||
|
'email' => 'test@example.com',
|
||||||
|
'faculty' => 'Лечебный факультет',
|
||||||
|
'course' => 'Первый',
|
||||||
|
'group' => 'ЛД-103',
|
||||||
|
'code' => '31.05.01',
|
||||||
|
'form_education' => 'Очная',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,47 +1,141 @@
|
||||||
|
@php
|
||||||
|
use App\Helpers\GetDay;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
$dayNumber = 1;
|
||||||
|
@endphp
|
||||||
<x-app-layout>
|
<x-app-layout>
|
||||||
<x-slot name="header">
|
<x-slot name="header">
|
||||||
<h2 class="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">
|
<h2 class="font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">
|
||||||
{{ __('Dashboard') }}
|
Текущая неделя:
|
||||||
|
@if($currentWeek['err'] !== 0)
|
||||||
|
Что то сломалось: {{ $currentWeek['msg'] }}
|
||||||
|
@elseif($currentWeek['week_cur'] == 1)
|
||||||
|
нечетная
|
||||||
|
@else
|
||||||
|
четная
|
||||||
|
@endif
|
||||||
</h2>
|
</h2>
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
|
@if($timetable['err'] !== 0)
|
||||||
<div class="py-12">
|
<div class="py-12">
|
||||||
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
||||||
<div class="bg-white dark:bg-gray-800 overflow-hidden shadow-sm sm:rounded-lg">
|
<div class="bg-white dark:bg-gray-800 overflow-hidden shadow-sm sm:rounded-lg">
|
||||||
<div class="p-6 text-gray-900 dark:text-gray-100">
|
<div class="p-6 text-gray-900 dark:text-gray-100">
|
||||||
{{ __("You're logged in!") }}
|
{{ $timetable['msg'] }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@else
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
<div class="row align-items-start">
|
||||||
|
<div class="col">
|
||||||
|
<div class="accordion max-w-7xl mx-auto sm:px-6 lg:px-8" id="accordionPanelsStayOpenExample">
|
||||||
|
@foreach($timetable[$currentWeek['week_cur']] as $day => $subjects)
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header">
|
||||||
|
<button
|
||||||
|
class="accordion-button @if(Carbon::now()->dayOfWeek !== $dayNumber) collapsed @endif"
|
||||||
|
type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#panelsStayOpen-collapse{{ $dayNumber }}" aria-expanded="true"
|
||||||
|
aria-controls="panelsStayOpen-collapse{{ $dayNumber }}">
|
||||||
|
{{ GetDay::getDay($day) }}
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="panelsStayOpen-collapse{{ $dayNumber }}"
|
||||||
|
class="accordion-collapse collapse @if(Carbon::now()->dayOfWeek === $dayNumber) show @endif">
|
||||||
|
<div class="accordion-body">
|
||||||
|
@foreach($subjects as $subject)
|
||||||
|
№{{ $subject['time1'] }} ({{ $subject['time_name'][0] }} - {{ $subject['time_name'][1] }}) / <strong>{{ $subject['predmet'] }} </strong> ({{ $subject['vid_name'] }})<br>
|
||||||
|
Аудитория: {{ $subject['aname'] }} <br>
|
||||||
|
Преподаватель: {{ $subject['fio'] }} <br>
|
||||||
|
<br>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@php $dayNumber++ @endphp
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<div class="accordion max-w-7xl mx-auto sm:px-6 lg:px-8" id="accordionPanelsStayOpenExample">
|
||||||
|
<div class="accordion-item text-center">Следующая неделя</div>
|
||||||
|
@foreach($timetable[($currentWeek['week_cur'] === 1) ? 2 : 1] as $day => $subjects)
|
||||||
|
<div class="accordion-item">
|
||||||
|
<h2 class="accordion-header">
|
||||||
|
<button
|
||||||
|
class="accordion-button collapsed"
|
||||||
|
type="button" data-bs-toggle="collapse"
|
||||||
|
data-bs-target="#panelsStayOpen-collapse{{ $dayNumber }}" aria-expanded="true"
|
||||||
|
aria-controls="panelsStayOpen-collapse{{ $dayNumber }}">
|
||||||
|
{{ GetDay::getDay($day) }}
|
||||||
|
</button>
|
||||||
|
</h2>
|
||||||
|
<div id="panelsStayOpen-collapse{{ $dayNumber }}"
|
||||||
|
class="accordion-collapse collapse">
|
||||||
|
<div class="accordion-body">
|
||||||
|
@foreach($subjects as $subject)
|
||||||
|
№{{ $subject['time1'] }} ({{ $subject['time_name'][0] }} - {{ $subject['time_name'][1] }}) / <strong>{{ $subject['predmet'] }} </strong> ({{ $subject['vid_name'] }})<br>
|
||||||
|
Аудитория: {{ $subject['aname'] }} <br>
|
||||||
|
Преподаватель: {{ $subject['fio'] }} <br>
|
||||||
|
<br>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@php $dayNumber++ @endphp
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
<div class="container py-12 max-w-7xl mx-auto sm:px-6 lg:px-8">
|
||||||
<table class="table">
|
<table class="table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">#</th>
|
<th colspan="2">Профиль</th>
|
||||||
<th scope="col">First</th>
|
|
||||||
<th scope="col">Last</th>
|
|
||||||
<th scope="col">Handle</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">1</th>
|
<td>Полное имя</td>
|
||||||
<td>Mark</td>
|
<td>{{ $user->name }}</td>
|
||||||
<td>Otto</td>
|
|
||||||
<td>@mdo</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">2</th>
|
<td>Email</td>
|
||||||
<td>Jacob</td>
|
<td>{{ $user->email }}</td>
|
||||||
<td>Thornton</td>
|
|
||||||
<td>@fat</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">3</th>
|
<td>Имя</td>
|
||||||
<td colspan="2">Larry the Bird</td>
|
<td>{{ $user->first_name }}</td>
|
||||||
<td>@twitter</td>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Фамилия</td>
|
||||||
|
<td>{{ $user->last_name }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Отчество</td>
|
||||||
|
<td>{{ $user->middle_name }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Зачетная книжка</td>
|
||||||
|
<td>{{ $user->number_record_book }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Факультет</td>
|
||||||
|
<td>{{ $user->faculty }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Курс</td>
|
||||||
|
<td>{{ $user->course }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Группа</td>
|
||||||
|
<td>{{ $user->group }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -7,11 +7,8 @@ Route::get('/', function () {
|
||||||
return view('welcome');
|
return view('welcome');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::get('/dashboard', function () {
|
Route::middleware(['auth', 'verified'])->group(function () {
|
||||||
return view('dashboard');
|
Route::get('/dashboard', [ProfileController::class, 'show'])->name('dashboard');
|
||||||
})->middleware(['auth', 'verified'])->name('dashboard');
|
|
||||||
|
|
||||||
Route::middleware('auth')->group(function () {
|
|
||||||
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
|
||||||
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
|
||||||
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
|
||||||
|
|
Loading…
Reference in New Issue