diff --git a/public/js/script.js b/public/js/script.js index a296bc8e..fd527de4 100644 --- a/public/js/script.js +++ b/public/js/script.js @@ -284,7 +284,11 @@ function performLfmRequest(url, parameter, type) { } function displayErrorResponse(jqXHR) { - notify('
' + jqXHR.responseText + '
'); + var message = JSON.parse(jqXHR.responseText) + if (Array.isArray(message)) { + message = message.join('
') + } + notify('
' + message + '
'); } var refreshFoldersAndItems = function (data) { @@ -540,7 +544,7 @@ function rename(item) { } function trash(items) { - notify(lang['message-delete'], function () { + confirm(lang['message-delete'], function () { performLfmRequest('delete', { items: items.map(function (item) { return item.name; }) }).done(refreshFoldersAndItems) @@ -794,12 +798,16 @@ function notImp() { notify('Not yet implemented!'); } -function notify(body, callback) { - $('#notify').find('.btn-primary').toggle(callback !== undefined); - $('#notify').find('.btn-primary').unbind().click(callback); +function notify(body) { $('#notify').modal('show').find('.modal-body').html(body); } +function confirm(body, callback) { + $('#confirm').find('.btn-primary').toggle(callback !== undefined); + $('#confirm').find('.btn-primary').click(callback); + $('#confirm').modal('show').find('.modal-body').html(body); +} + function dialog(title, value, callback) { $('#dialog').find('input').val(value); $('#dialog').on('shown.bs.modal', function () { diff --git a/src/Controllers/DeleteController.php b/src/Controllers/DeleteController.php index 502d5695..ad0e4882 100644 --- a/src/Controllers/DeleteController.php +++ b/src/Controllers/DeleteController.php @@ -71,7 +71,7 @@ public function getDelete() } if (count($errors) > 0) { - return $errors; + return response()->json($errors, 400); } return parent::$success_response; diff --git a/src/Controllers/LfmController.php b/src/Controllers/LfmController.php index 991c7ad6..58d66e67 100644 --- a/src/Controllers/LfmController.php +++ b/src/Controllers/LfmController.php @@ -76,7 +76,7 @@ public function getErrors() * * @return null */ - public function applyIniOverrides() + private function applyIniOverrides() { $overrides = config('lfm.php_ini_overrides', []); @@ -90,4 +90,10 @@ public function applyIniOverrides() } } } + + // TODO: remove this after refactoring RenameController and DeleteController + protected function error($error_type, $variables = []) + { + return trans(Lfm::PACKAGE_NAME . '::lfm.error-' . $error_type, $variables); + } } diff --git a/src/Controllers/RenameController.php b/src/Controllers/RenameController.php index d8187d58..8bcf593c 100644 --- a/src/Controllers/RenameController.php +++ b/src/Controllers/RenameController.php @@ -29,18 +29,18 @@ public function getRename() if (empty($new_name)) { if ($is_directory) { - return parent::error('folder-name'); + return response()->json(parent::error('folder-name'), 400); } else { - return parent::error('file-name'); + return response()->json(parent::error('file-name'), 400); } } if ($is_directory && config('lfm.alphanumeric_directory') && preg_match('/[^\w-]/i', $new_name)) { - return parent::error('folder-alnum'); + return response()->json(parent::error('folder-alnum'), 400); } elseif (config('lfm.alphanumeric_filename') && preg_match('/[^.\w-]/i', $new_name)) { - return parent::error('file-alnum'); + return response()->json(parent::error('file-alnum'), 400); } elseif ($this->lfm->setName($new_name)->exists()) { - return parent::error('rename'); + return response()->json(parent::error('rename'), 400); } if (! $is_directory) { diff --git a/src/views/index.blade.php b/src/views/index.blade.php index fb5ec441..dbcb83b0 100644 --- a/src/views/index.blade.php +++ b/src/views/index.blade.php @@ -136,6 +136,17 @@ + +