From 8ed37e9711b211c3d2d23432fcd936d78aa4a998 Mon Sep 17 00:00:00 2001 From: Gael Yvert <Gael.Yvert@ens-lyon.fr> Date: Fri, 4 Feb 2022 17:58:32 +0100 Subject: [PATCH] customize formfield view of plasmids' seqfile (issue #140) --- ...lityTrackingByIseedDataRowsTableSeeder.php | 2 +- ...ityTrackingByIseedDataTypesTableSeeder.php | 2 +- resources/views/seqfile.blade.php | 101 ++++++++++++++++++ 3 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 resources/views/seqfile.blade.php diff --git a/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php b/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php index ad9e3d5..f5a7ced 100755 --- a/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php +++ b/database/seeders/FunctionalityTrackingByIseedDataRowsTableSeeder.php @@ -793,7 +793,7 @@ class FunctionalityTrackingByIseedDataRowsTableSeeder extends Seeder 'browse' => 1, 'data_type_id' => 20, 'delete' => 1, - 'details' => '{}', + 'details' => '{"view":"seqfile"}', 'display_name' => 'Seqfile', 'edit' => 1, 'field' => 'seqfile', diff --git a/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php b/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php index a7a21cf..c159bde 100755 --- a/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php +++ b/database/seeders/FunctionalityTrackingByIseedDataTypesTableSeeder.php @@ -143,7 +143,7 @@ class FunctionalityTrackingByIseedDataTypesTableSeeder extends Seeder 'policy_name' => NULL, 'server_side' => 1, 'slug' => 'plasmids', - 'updated_at' => '2022-02-02 09:59:57', + 'updated_at' => '2022-02-04 16:50:10', ), 7 => array ( diff --git a/resources/views/seqfile.blade.php b/resources/views/seqfile.blade.php new file mode 100644 index 0000000..e9f4bdf --- /dev/null +++ b/resources/views/seqfile.blade.php @@ -0,0 +1,101 @@ +<!-- BROWSE VIEW --> +@if ($view == "browse") + @if (isset($content)) + @foreach(json_decode($content) as $file) + <div data-field-name="{{ $row->field }}"> + <a class="fileType" target="_blank" + href="{{ Storage::disk(config('voyager.storage.disk'))->url($file->download_link) ?: '' }}" + data-file-name="{{ $file->original_name }}" download="{{ $file->original_name }}" > + {{ $file->original_name ?: '' }} + </a> + </div> + @endforeach + @endif + +<!-- EDIT VIEW --> +@elseif ($view == "edit") + @if (isset($content) && $content !== "[]") + @if(isset($dataTypeContent->{$row->field})) + @if(json_decode($dataTypeContent->{$row->field}) !== null) + @foreach(json_decode($dataTypeContent->{$row->field}) as $file) + <div data-field-name="{{ $row->field }}"> + <a class="fileType" target="_blank" + href="{{ Storage::disk(config('voyager.storage.disk'))->url($file->download_link) ?: '' }}" + data-file-name="{{ $file->original_name }}" data-id="{{ $dataTypeContent->getKey() }}" download="{{ $file->original_name }}"> + {{ $file->original_name ?: '' }} + </a> + <a href="#" class="voyager-x remove-multi-file"></a> + </div> + @endforeach + @else + <div data-field-name="{{ $row->field }}"> + <a class="fileType" target="_blank" + href="{{ Storage::disk(config('voyager.storage.disk'))->url($dataTypeContent->{$row->field}) }}" + data-file-name="{{ $dataTypeContent->{$row->field} }}" data-id="{{ $dataTypeContent->getKey() }}">> + Download + </a> + <a href="#" class="voyager-x remove-single-file"></a> + </div> + @endif + @endif + @else + <input @if($row->required == 1 && !isset($dataTypeContent->{$row->field})) required @endif type="file" name="{{ $row->field }}[]"> + @endif + +<!-- ADD VIEW --> +@elseif ($view == "add") + <input @if($row->required == 1 && !isset($dataTypeContent->{$row->field})) required @endif type="file" name="{{ $row->field }}[]"> + +<!-- READ VIEW --> +@elseif ($view == "read") + @if(isset($dataTypeContent->{$row->field})) + @if(json_decode($dataTypeContent->{$row->field}) !== null) + @foreach(json_decode($dataTypeContent->{$row->field}) as $file) + <div data-field-name="{{ $row->field }}"> + <a class="fileType" target="_blank" + href="{{ Storage::disk(config('voyager.storage.disk'))->url($file->download_link) ?: '' }}" + data-file-name="{{ $file->original_name }}" data-id="{{ $dataTypeContent->getKey() }}" download="{{ $file->original_name }}"> + {{ $file->original_name ?: '' }} + </a> + </div> + @endforeach + @else + <div data-field-name="{{ $row->field }}"> + <a class="fileType" target="_blank" + href="{{ Storage::disk(config('voyager.storage.disk'))->url($dataTypeContent->{$row->field}) }}" + data-file-name="{{ $dataTypeContent->{$row->field} }}" data-id="{{ $dataTypeContent->getKey() }}">> + Download + </a> + <a href="#" class="voyager-x remove-single-file"></a> + </div> + @endif + @endif + +<!-- OTHER VIEWS --> +@else + @if(isset($dataTypeContent->{$row->field})) + @if(json_decode($dataTypeContent->{$row->field}) !== null) + @foreach(json_decode($dataTypeContent->{$row->field}) as $file) + <div data-field-name="{{ $row->field }}"> + <a class="fileType" target="_blank" + href="{{ Storage::disk(config('voyager.storage.disk'))->url($file->download_link) ?: '' }}" + data-file-name="{{ $file->original_name }}" data-id="{{ $dataTypeContent->getKey() }}" download="{{ $file->original_name }}"> + {{ $file->original_name ?: '' }} + </a> + <a href="#" class="voyager-x remove-multi-file"></a> + </div> + @endforeach + @else + <div data-field-name="{{ $row->field }}"> + <a class="fileType" target="_blank" + href="{{ Storage::disk(config('voyager.storage.disk'))->url($dataTypeContent->{$row->field}) }}" + data-file-name="{{ $dataTypeContent->{$row->field} }}" data-id="{{ $dataTypeContent->getKey() }}">> + Download + </a> + <a href="#" class="voyager-x remove-single-file"></a> + </div> + @endif + @endif + <input @if($row->required == 1 && !isset($dataTypeContent->{$row->field})) required @endif type="file" name="{{ $row->field }}[]" multiple="multiple"> + +@endif -- GitLab