From 03045d03aeda8395ba41afa302156803a4dc6550 Mon Sep 17 00:00:00 2001 From: metal_gvc Date: Thu, 23 Jan 2014 00:27:33 +0200 Subject: [PATCH] Files Manager Improvements - Drug'n'Drop uploader - error handler updates #94 --- admin/themes/default/index.template.php | 4 +-- .../box/filesmanager/filesmanager.admin.php | 31 +++++++++++++++++-- plugins/box/filesmanager/js/fileuploader.js | 19 ++++++++---- .../filesmanager/views/backend/index.view.php | 6 ++-- 4 files changed, 46 insertions(+), 14 deletions(-) diff --git a/admin/themes/default/index.template.php b/admin/themes/default/index.template.php index dca552d..faa8a2c 100644 --- a/admin/themes/default/index.template.php +++ b/admin/themes/default/index.template.php @@ -38,7 +38,7 @@ leftImg : "/public/assets/img/chocolat/left.gif", rightImg : "/public/assets/img/chocolat/right.gif", closeImg : "/public/assets/img/chocolat/close.gif", - loadingImg : "/public/assets/img/chocolat/loading.gif", + loadingImg : "/public/assets/img/chocolat/loading.gif" }); $('input').iCheck({ @@ -120,7 +120,7 @@ diff --git a/plugins/box/filesmanager/filesmanager.admin.php b/plugins/box/filesmanager/filesmanager.admin.php index 28fc909..cb895a7 100755 --- a/plugins/box/filesmanager/filesmanager.admin.php +++ b/plugins/box/filesmanager/filesmanager.admin.php @@ -67,6 +67,11 @@ class FilesmanagerAdmin extends Backend if (Security::check(Request::get('token'))) { File::delete($files_path.Request::get('delete_file')); + if (!is_file($files_path.Request::get('delete_file'))) { + Notification::set('success', __('File was deleted', 'system')); + } else { + Notification::set('error', __('File was not deleted', 'system')); + } Request::redirect($site_url.'/admin/index.php?id=filesmanager&path='.$path); } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } @@ -98,13 +103,32 @@ class FilesmanagerAdmin extends Backend if (Security::check(Request::post('csrf'))) { + $error = false; if ($_FILES['file']) { if ( ! in_array(File::ext($_FILES['file']['name']), $forbidden_types)) { - move_uploaded_file($_FILES['file']['tmp_name'], $files_path.Security::safeName(basename($_FILES['file']['name'], File::ext($_FILES['file']['name'])), '-', true).'.'.File::ext($_FILES['file']['name'])); - Request::redirect($site_url.'/admin/index.php?id=filesmanager&path='.$path); + $filepath = $files_path.Security::safeName(basename($_FILES['file']['name'], File::ext($_FILES['file']['name'])), '-', true).'.'.File::ext($_FILES['file']['name']); + $uploaded = move_uploaded_file($_FILES['file']['tmp_name'], $filepath); + if ($uploaded !== false && is_file($filepath)) { + Notification::set('success', __('File was uploaded', 'system')); + } else { + $error = 'File was not uploaded'; + } + } else { + $error = 'Forbidden file type'; } + } else { + $error = 'File was not uploaded'; } + if ($error) { + Notification::set('error', __($error, 'system')); + } + + if (Request::post('dragndrop')) { + Request::shutdown(); + } else { + Request::redirect($site_url.'/admin/index.php?id=filesmanager&path='.$path); + } } else { die('Request was denied because it contained an invalid security token. Please refresh the page and try again.'); } } @@ -172,7 +196,8 @@ class FilesmanagerAdmin extends Backend ->assign('files_path', $files_path) ->assign('fileuploader', array( 'uploadUrl' => $site_url.'/admin/index.php?id=filesmanager&path='.$path, - 'csrf' => Security::token() + 'csrf' => Security::token(), + 'errorMsg' => __('Upload server error', 'system') ))->display(); } diff --git a/plugins/box/filesmanager/js/fileuploader.js b/plugins/box/filesmanager/js/fileuploader.js index 29824e1..cef0d4a 100644 --- a/plugins/box/filesmanager/js/fileuploader.js +++ b/plugins/box/filesmanager/js/fileuploader.js @@ -4,7 +4,8 @@ $.monstra.fileuploader = { conf: { uploadUrl: '', - csrf: '' + csrf: '', + errorMsg: '' }, init: function(conf){ @@ -45,6 +46,7 @@ $.monstra.fileuploader = { var fd = new FormData(); fd.append('file', files[i]); fd.append('upload_file', 'upload_file'); + fd.append('dragndrop', '1'); fd.append('csrf', $.monstra.fileuploader.conf.csrf); //this.setFileNameSize(files[i].name, files[i].size); @@ -78,11 +80,16 @@ $.monstra.fileuploader = { success: function(data){ $.monstra.fileuploader.setProgress(100); location.href = $.monstra.fileuploader.conf.uploadUrl; - /*$('#fuProgress').fadeOut('slow', function(){ - $('#fuProgress').css({width: 0, display: 'block'}); - $('#fuPlaceholder').show(); - });*/ - } + }, + error: function(){ + Messenger().post({ + type: 'error', + message : $.monstra.fileuploader.conf.errorMsg, + hideAfter: 3 + }); + $('#fuProgress').animate({ width: 0 }, 1); + $('#fuPlaceholder').show(); + } }); }, diff --git a/plugins/box/filesmanager/views/backend/index.view.php b/plugins/box/filesmanager/views/backend/index.view.php index d2455ab..fdad12e 100755 --- a/plugins/box/filesmanager/views/backend/index.view.php +++ b/plugins/box/filesmanager/views/backend/index.view.php @@ -135,12 +135,12 @@