diff --git a/apps/files/controller/apicontroller.php b/apps/files/controller/apicontroller.php index a8bea27e4b..1bb07010a2 100644 --- a/apps/files/controller/apicontroller.php +++ b/apps/files/controller/apicontroller.php @@ -76,11 +76,11 @@ class ApiController extends Controller { try { $this->tagService->updateFileTags($path, $tags); } catch (\OCP\Files\NotFoundException $e) { - return new DataResponse($e->getMessage(), Http::STATUS_NOT_FOUND); + return new DataResponse(['message' => $e->getMessage()], Http::STATUS_NOT_FOUND); } catch (\OCP\Files\StorageNotAvailableException $e) { - return new DataResponse($e->getMessage(), Http::STATUS_SERVICE_UNAVAILABLE); + return new DataResponse(['message' => $e->getMessage()], Http::STATUS_SERVICE_UNAVAILABLE); } catch (\Exception $e) { - return new DataResponse($e->getMessage(), Http::STATUS_NOT_FOUND); + return new DataResponse(['message' => $e->getMessage()], Http::STATUS_NOT_FOUND); } $result['tags'] = $tags; } diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js index 27ab3eced0..293e25176f 100644 --- a/apps/files/js/tagsplugin.js +++ b/apps/files/js/tagsplugin.js @@ -109,7 +109,9 @@ self.applyFileTags( dir + '/' + fileName, - tags + tags, + $actionEl, + isFavorite ).then(function(result) { // response from server should contain updated tags var newTags = result.tags; @@ -157,8 +159,10 @@ * * @param {String} fileName path to the file or folder to tag * @param {Array.} tagNames array of tag names + * @param {Object} $actionEl element + * @param {boolean} isFavorite Was the item favorited before */ - applyFileTags: function(fileName, tagNames) { + applyFileTags: function(fileName, tagNames, $actionEl, isFavorite) { var encodedPath = OC.encodePath(fileName); while (encodedPath[0] === '/') { encodedPath = encodedPath.substr(1); @@ -171,6 +175,14 @@ }), dataType: 'json', type: 'POST' + }).fail(function(response) { + var message = ''; + // show message if it is available + if(response.responseJSON && response.responseJSON.message) { + message = ': ' + response.responseJSON.message; + } + OC.Notification.showTemporary(t('files', 'An error occurred while trying to update the tags') + message); + toggleStar($actionEl, isFavorite); }); } };