47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Staff;
|
|
|
|
use App\Domain\ACL\Permission;
|
|
use App\Domain\Report\ReportStatus;
|
|
use App\Http\Controllers\HashidControllerBase;
|
|
use App\Http\Requests\StudyMetadataUpdateRequest;
|
|
use App\Models\Study;
|
|
|
|
class MetadataController extends HashidControllerBase
|
|
{
|
|
public function view()
|
|
{
|
|
abort_unless(auth()->user()->may(Permission::StudyMetadataView), 403);
|
|
$this->decodeKeys();
|
|
$study = Study::find($this->key);
|
|
|
|
return view('staff.meta.view', compact('study'));
|
|
}
|
|
|
|
public function edit()
|
|
{
|
|
abort_unless(auth()->user()->may(Permission::StudyMetadataEdit), 403);
|
|
$this->decodeKeys();
|
|
$study = Study::find($this->key);
|
|
|
|
return view('staff.meta.edit', compact('study'));
|
|
}
|
|
|
|
public function save(StudyMetadataUpdateRequest $request)
|
|
{
|
|
abort_unless(auth()->user()->may(Permission::StudyMetadataEdit), 403);
|
|
$this->decodeKeys();
|
|
$study = Study::findOrFail($this->key);
|
|
$payload = array_trim_strings($request->validated());
|
|
if ($request->has('cancel_read')) {
|
|
$payload['report_status'] = ReportStatus::Cancelled->value;
|
|
unset($payload['cancel_read']);
|
|
}
|
|
$study->update($payload);
|
|
|
|
// return redirect()->route('staff.history.view', _h($this->key));
|
|
return view('content.pages.close-window');
|
|
}
|
|
}
|