FEATURE: add uploader into CKEditor

This commit is contained in:
Michal Kváček
2016-10-12 18:22:12 +02:00
parent d425133cae
commit deb094b5c9
4 changed files with 45 additions and 3 deletions
@@ -1,9 +1,11 @@
<?php <?php
namespace App\Http\Controllers\Admin\FileManager; namespace App\Http\Controllers\Admin\FileManager;
use App\Helpers\Template;
use App\Http\Controllers\Admin\Controller; use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\Request; use App\Http\Requests\Request;
use App\Models\File; use App\Models\File;
use Illuminate\Support\Facades\Input;
use Symfony\Component\HttpFoundation\File\Exception\FileException; use Symfony\Component\HttpFoundation\File\Exception\FileException;
class UploadFile extends Controller class UploadFile extends Controller
@@ -27,12 +29,28 @@ class UploadFile extends Controller
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
*/ */
public function postFile(Request $request) public function postFile(Request $request)
{
if (Input::get('CKEditor')) {
return $this->ckEditorUpload($request);
} else {
return $this->internalUpload($request);
}
}
/**
* Upload file using internal file uploader
*
* @param Request $request
*
* @return \Illuminate\Http\RedirectResponse
*/
private function internalUpload(Request $request)
{ {
try { try {
$uploadedFiles = []; $uploadedFiles = [];
$files = $request->all()['files']; $files = $request->all()['files'];
$successfullUploads = 0;
$successfullUploads = 0;
foreach ($files as $file) { foreach ($files as $file) {
$uploadedFile = $this->file->upload($file, $request); $uploadedFile = $this->file->upload($file, $request);
$successfullUploads++; $successfullUploads++;
@@ -41,13 +59,33 @@ class UploadFile extends Controller
} }
return redirect() return redirect()
->route('upload.overview', ['directory' => $request->directoryId]) ->back()
->with('success', trans_choice('admin/fileManager.uploadSuccessfull', $successfullUploads)); ->with('success', trans_choice('admin/fileManager.uploadSuccessfull', $successfullUploads));
} catch (FileException $e) { } catch (FileException $e) {
return $this->invalidUpload('invalidFile'); return $this->invalidUpload('invalidFile');
} }
} }
/**
* Upload file using CKEditor
*
* @param Request $request
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
private function ckEditorUpload(Request $request)
{
$file = $request->file('upload');
$uploadedFile = $this->file->upload($file, $request);
return view('admin.snippets.ckEditorUploaded', [
'ckEditor' => Input::get('CKEditor'),
'funcNumber' => Input::get('CKEditorFuncNum'),
'fileUrl' => Template::upload($uploadedFile['filename'])
]);
}
/** /**
* Send message and redirect to upload.overview when upload failed * Send message and redirect to upload.overview when upload failed
* *
File diff suppressed because one or more lines are too long
@@ -3,6 +3,7 @@
<script type="application/javascript"> <script type="application/javascript">
CKEDITOR.replace ('{{$textareaId}}', { CKEDITOR.replace ('{{$textareaId}}', {
uiColor: "#F5F5F5", uiColor: "#F5F5F5",
filebrowserUploadUrl: '{{route('upload.postFile', ['_token' => csrf_token()])}}',
forcePasteAsPlainText: true, forcePasteAsPlainText: true,
entities: false, entities: false,
basicEntities: false, basicEntities: false,
@@ -0,0 +1,3 @@
<script type="text/javascript">
window.parent.CKEDITOR.tools.callFunction ({{$funcNumber}}, "{{$fileUrl}}");
</script>