From f985bfedd37e90acfd59c4dfb4e150b46778b59c Mon Sep 17 00:00:00 2001 From: NW Date: Fri, 31 Jan 2025 11:07:31 +0000 Subject: [PATCH] bug fixes and new functionality --- app/Form.php | 3 +- app/Http/Controllers/FormDataController.php | 39 ++++++++++++--------- resources/views/form_data/show.blade.php | 34 +++++++++--------- 3 files changed, 43 insertions(+), 33 deletions(-) diff --git a/app/Form.php b/app/Form.php index ce1e489..bcd9bc2 100644 --- a/app/Form.php +++ b/app/Form.php @@ -14,7 +14,8 @@ class Form extends Model * @var array */ protected $guarded = []; - + public $incrementing = false; + protected $keyType = 'string'; protected $appends = ['media_url']; /** diff --git a/app/Http/Controllers/FormDataController.php b/app/Http/Controllers/FormDataController.php index a7e233f..6e428a3 100644 --- a/app/Http/Controllers/FormDataController.php +++ b/app/Http/Controllers/FormDataController.php @@ -470,29 +470,36 @@ class FormDataController extends Controller public function show($form_id, Request $request) { $user_id = $request->user()->id; - + $form = Form::findOrFail($form_id); $data = FormData::query() ->where('form_id', $form_id) ->orderBy('created_at', 'desc') ->get() ->filter(function (FormData $formData) use ($request) { + $date = null; if (is_array($formData->data)) { - $date = strtotime( - array_values( - array_filter($formData->data, fn($item) => is_string($item) && strtotime($item)) - )[0] - ); + $dates = array_filter($formData->data, function ($item) { + return is_string($item) && strtotime($item); + }); + if (!empty($dates)) { + $firstDate = reset($dates); + $date = strtotime($firstDate); + } } - - $date = Carbon::createFromTimestamp($date)->toDateString(); - $isValidStartDate = $request->filled('start_date') ? - $request->get('start_date') <= $date : - Carbon::now()->subDays(7)->toDateString() <= $date; - $isValidEndDate = $request->filled('end_date') ? - $request->get('end_date') >= $date : - Carbon::now()->toDateString() >= $date; - + + if (!$date) { + return false; // Skip entries without valid dates + } + + $dateStr = Carbon::createFromTimestamp($date)->toDateString(); + $isValidStartDate = $request->filled('start_date') + ? $request->get('start_date') <= $dateStr + : Carbon::now()->subDays(7)->toDateString() <= $dateStr; + $isValidEndDate = $request->filled('end_date') + ? $request->get('end_date') >= $dateStr + : Carbon::now()->toDateString() >= $dateStr; + return $isValidStartDate && $isValidEndDate; }); @@ -532,7 +539,7 @@ class FormDataController extends Controller } return view('form_data.show') - ->with(compact('form', 'data')); + ->with(compact('form', 'data', 'has_permission')); // Добавьте has_permission } public function viewData($id) diff --git a/resources/views/form_data/show.blade.php b/resources/views/form_data/show.blade.php index 52e2c95..e6b37f4 100644 --- a/resources/views/form_data/show.blade.php +++ b/resources/views/form_data/show.blade.php @@ -82,10 +82,8 @@ - @if(auth()->user()->hasRole([\App\Enums\User\RoleEnum::SUPERVISOR->value, \App\Enums\User\RoleEnum::ADMIN->value], 'web')) - @endif - + @if($is_enabled_sub_ref_no) @endif @@ -104,16 +102,19 @@ @foreach($data as $k => $row) - @if(auth()->user()->hasRole([\App\Enums\User\RoleEnum::SUPERVISOR->value, \App\Enums\User\RoleEnum::ADMIN->value], 'web')) - - @endif + @endif + @if($is_enabled_sub_ref_no)
@lang('messages.action')@lang('messages.submission_numbering')
- @if(in_array('view', $btn_enabled)) - - @endif + + {{-- Кнопка просмотра для всех, у кого есть права --}} + @if(in_array('view', $btn_enabled) && $has_permission) + + @endif + + {{-- Кнопки только для админов/супервайзеров --}} + @if(auth()->user()->hasRole([\App\Enums\User\RoleEnum::SUPERVISOR->value, \App\Enums\User\RoleEnum::ADMIN->value], 'web')) @if(in_array('delete', $btn_enabled))