mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-10-25 23:02:52 -04:00 
			
		
		
		
	Fix for deleting documents
This commit is contained in:
		
							parent
							
								
									7599edbc8c
								
							
						
					
					
						commit
						b32a9110c7
					
				| @ -14,6 +14,7 @@ use App\Ninja\Repositories\DocumentRepository; | ||||
| 
 | ||||
| use App\Http\Requests\DocumentRequest; | ||||
| use App\Http\Requests\CreateDocumentRequest; | ||||
| use App\Http\Requests\UpdateDocumentRequest; | ||||
| 
 | ||||
| class DocumentController extends BaseController | ||||
| { | ||||
| @ -26,20 +27,20 @@ class DocumentController extends BaseController | ||||
| 
 | ||||
|         $this->documentRepo = $documentRepo; | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     public function get(DocumentRequest $request) | ||||
|     { | ||||
|         return static::getDownloadResponse($request->entity()); | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     public static function getDownloadResponse($document){ | ||||
|         $direct_url = $document->getDirectUrl(); | ||||
|         if($direct_url){ | ||||
|             return redirect($direct_url); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         $stream = $document->getStream(); | ||||
|          | ||||
| 
 | ||||
|         if($stream){ | ||||
|             $headers = [ | ||||
|                 'Content-Type'        => Document::$types[$document->type]['mime'], | ||||
| @ -54,59 +55,59 @@ class DocumentController extends BaseController | ||||
|             $response = Response::make($document->getRaw(), 200); | ||||
|             $response->header('content-type', Document::$types[$document->type]['mime']); | ||||
|         } | ||||
|              | ||||
| 
 | ||||
|         return $response; | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     public function getPreview(DocumentRequest $request) | ||||
|     { | ||||
|         $document = $request->entity(); | ||||
|          | ||||
| 
 | ||||
|         if(empty($document->preview)){ | ||||
|             return Response::view('error', array('error'=>'Preview does not exist!'), 404); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         $direct_url = $document->getDirectPreviewUrl(); | ||||
|         if($direct_url){ | ||||
|             return redirect($direct_url); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         $previewType = pathinfo($document->preview, PATHINFO_EXTENSION); | ||||
|         $response = Response::make($document->getRawPreview(), 200); | ||||
|         $response->header('content-type', Document::$types[$previewType]['mime']); | ||||
|          | ||||
| 
 | ||||
|         return $response; | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     public function getVFSJS(DocumentRequest $request, $publicId, $name) | ||||
|     { | ||||
|         $document = $request->entity(); | ||||
|          | ||||
| 
 | ||||
|         if(substr($name, -3)=='.js'){ | ||||
|             $name = substr($name, 0, -3); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         if(!$document->isPDFEmbeddable()){ | ||||
|             return Response::view('error', array('error'=>'Image does not exist!'), 404); | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         $content = $document->preview?$document->getRawPreview():$document->getRaw(); | ||||
|         $content = 'ninjaAddVFSDoc('.json_encode(intval($publicId).'/'.strval($name)).',"'.base64_encode($content).'")'; | ||||
|         $response = Response::make($content, 200); | ||||
|         $response->header('content-type', 'text/javascript'); | ||||
|         $response->header('cache-control', 'max-age=31536000'); | ||||
|          | ||||
| 
 | ||||
|         return $response; | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     public function postUpload(CreateDocumentRequest $request) | ||||
|     { | ||||
|         if (!Utils::hasFeature(FEATURE_DOCUMENTS)) { | ||||
|             return; | ||||
|         } | ||||
|          | ||||
| 
 | ||||
|         $result = $this->documentRepo->upload(Input::all()['file'], $doc_array); | ||||
|                  | ||||
| 
 | ||||
|         if(is_string($result)){ | ||||
|              return Response::json([ | ||||
|                 'error' => $result, | ||||
| @ -120,4 +121,11 @@ class DocumentController extends BaseController | ||||
|             ], 200); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     public function delete(UpdateDocumentRequest $request) | ||||
|     { | ||||
|         $request->entity()->delete(); | ||||
| 
 | ||||
|         return RESULT_SUCCESS; | ||||
|     } | ||||
| } | ||||
|  | ||||
							
								
								
									
										26
									
								
								app/Http/Requests/UpdateDocumentRequest.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								app/Http/Requests/UpdateDocumentRequest.php
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| <?php namespace App\Http\Requests; | ||||
| 
 | ||||
| class UpdateDocumentRequest extends DocumentRequest | ||||
| { | ||||
|     /** | ||||
|      * Determine if the user is authorized to make this request. | ||||
|      * | ||||
|      * @return bool | ||||
|      */ | ||||
|     public function authorize() | ||||
|     { | ||||
|         return $this->user()->can('edit', $this->entity()); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the validation rules that apply to the request. | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public function rules() | ||||
|     { | ||||
|         return [ | ||||
| 
 | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
| @ -145,6 +145,7 @@ Route::group(['middleware' => 'auth:user'], function() { | ||||
|     Route::get('documents/js/{documents}/{filename}', 'DocumentController@getVFSJS'); | ||||
|     Route::get('documents/preview/{documents}/{filename?}', 'DocumentController@getPreview'); | ||||
|     Route::post('document', 'DocumentController@postUpload'); | ||||
|     Route::delete('documents/{documents}', 'DocumentController@delete'); | ||||
| 
 | ||||
|     Route::get('quotes/create/{client_id?}', 'QuoteController@create'); | ||||
|     Route::get('quotes/{invoices}/clone', 'InvoiceController@cloneInvoice'); | ||||
|  | ||||
| @ -243,6 +243,7 @@ | ||||
|                 }, | ||||
|                 acceptedFiles:{!! json_encode(implode(',',\App\Models\Document::$allowedMimes)) !!}, | ||||
|                 addRemoveLinks:true, | ||||
|                 dictRemoveFileConfirmation:"{{trans('texts.are_you_sure')}}", | ||||
|                 @foreach(trans('texts.dropzone') as $key=>$text) | ||||
|     	            "dict{{strval($key)}}":"{{strval($text)}}", | ||||
|                 @endforeach | ||||
| @ -392,6 +393,13 @@ | ||||
| 
 | ||||
|         function handleDocumentRemoved(file){ | ||||
|             model.removeDocument(file.public_id); | ||||
|             $.ajax({ | ||||
|                 url: '{{ '/documents/' }}' + file.public_id, | ||||
|                 type: 'DELETE', | ||||
|                 success: function(result) { | ||||
|                     // Do something with the result
 | ||||
|                 } | ||||
|             }); | ||||
|         } | ||||
| 
 | ||||
|         function handleDocumentUploaded(file, response){ | ||||
|  | ||||
| @ -992,6 +992,7 @@ | ||||
|                 }, | ||||
|                 acceptedFiles:{!! json_encode(implode(',',\App\Models\Document::$allowedMimes)) !!}, | ||||
|                 addRemoveLinks:true, | ||||
|                 dictRemoveFileConfirmation:"{{trans('texts.are_you_sure')}}", | ||||
|                 @foreach(trans('texts.dropzone') as $key=>$text) | ||||
|     	            "dict{{strval($key)}}":"{{strval($text)}}", | ||||
|                 @endforeach | ||||
| @ -1415,6 +1416,13 @@ | ||||
|     function handleDocumentRemoved(file){ | ||||
|         model.invoice().removeDocument(file.public_id); | ||||
|         refreshPDF(true); | ||||
|         $.ajax({ | ||||
|             url: '{{ '/documents/' }}' + file.public_id, | ||||
|             type: 'DELETE', | ||||
|             success: function(result) { | ||||
|                 // Do something with the result
 | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     function handleDocumentUploaded(file, response){ | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user