Browse Source

User can delete project file

pull/37/head
Nafies Luthfi 7 years ago
parent
commit
6195f76e26
  1. 11
      app/Http/Controllers/Projects/FilesController.php
  2. 1
      phpunit.xml
  3. 19
      resources/views/projects/files.blade.php
  4. 1
      routes/web/projects.php
  5. 2
      tests/Feature/Projects/UploadFilesTest.php

11
app/Http/Controllers/Projects/FilesController.php

@ -2,6 +2,7 @@
namespace App\Http\Controllers\Projects;
use Storage;
use File as FileSystem;
use Illuminate\Http\Request;
use App\Entities\Projects\File;
@ -90,6 +91,16 @@ class FilesController extends Controller
return redirect()->route($file->fileable_type.'.files', $file->fileable_id);
}
public function destroy(Request $request, File $file)
{
Storage::disk('avatar')->delete('public/files/'.$file->filename);
$file->delete();
flash(trans('file.deleted'), 'warning');
return redirect()->route($file->fileable_type.'.files', $file->fileable_id);
}
private function proccessPhotoUpload($data, $fileableType, $fileableId)
{
$file = $data['file'];

1
phpunit.xml

@ -26,6 +26,7 @@
<env name="DB_CONNECTION" value="sqlite"/>
<env name="DB_DATABASE" value=":memory:"/>
<env name="MAIL_DRIVER" value="log"/>
<env name="FILESYSTEM_DRIVER" value="test_storage"/>
</php>
<listeners>
<listener class="JohnKary\PHPUnit\Listener\SpeedTrapListener">

19
resources/views/projects/files.blade.php

@ -42,7 +42,8 @@
{!! html_link_to_route('files.download', '', [$file->id], ['icon' => 'file', 'title' => __('file.download')]) !!}
</td>
<td class="text-center">
{!! html_link_to_route('projects.files', '', [$project->id, 'action' => 'edit', 'id' => $file->id], ['icon' => 'edit', 'title' => __('file.edit')]) !!}
{!! html_link_to_route('projects.files', '', [$project, 'action' => 'edit', 'id' => $file->id], ['icon' => 'edit', 'title' => __('file.edit')]) !!}
{!! html_link_to_route('projects.files', '', [$project, 'action' => 'delete', 'id' => $file->id], ['icon' => 'delete', 'title' => __('file.delete'), 'id' => 'delete-file-'.$file->id]) !!}
</td>
</tr>
@empty
@ -79,7 +80,21 @@
{!! Form::close() !!}
</div>
</div>
@endif
@endif
@if (Request::get('action') == 'delete' && $editableFile)
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ __('file.delete') }} : {{ $editableFile->title }}</h3></div>
<div class="panel-body">
{!! FormField::delete(
['route' => ['files.destroy', $editableFile->id]],
__('app.delete_confirm_button'),
['class' => 'btn btn-danger'],
['file_id' => $editableFile->id, ]
) !!}
{{ link_to_route('projects.files', __('app.cancel'), $project, ['class' => 'btn btn-default']) }}
</div>
</div>
@endif
</div>
</div>

1
routes/web/projects.php

@ -61,6 +61,7 @@ Route::group(['middleware' => ['auth'], 'namespace' => 'Projects'], function ()
Route::post('files/{fileable}', ['as' => 'files.upload', 'uses' => 'FilesController@create']);
Route::get('files/{file}', ['as' => 'files.download', 'uses' => 'FilesController@show']);
Route::patch('files/{file}', ['as' => 'files.update', 'uses' => 'FilesController@update']);
Route::delete('files/{file}', ['as' => 'files.destroy', 'uses' => 'FilesController@destroy']);
});
Route::group(['middleware' => ['auth']], function () {

2
tests/Feature/Projects/UploadFilesTest.php

@ -101,7 +101,7 @@ class UploadFilesTest extends TestCase
$this->click('delete-file-'.$file->id);
$this->seePageIs(route('projects.files', [$project, 'action' => 'delete', 'id' => $file->id]));
$this->press(__('file.delete'));
$this->press(__('app.delete_confirm_button'));
$this->seePageIs(route('projects.files', $project));
$this->seeText(__('file.deleted'));

Loading…
Cancel
Save