diff --git a/core/js/sharedialogview.js b/core/js/sharedialogview.js index 9e3de2636c..7c31239d4a 100644 --- a/core/js/sharedialogview.js +++ b/core/js/sharedialogview.js @@ -242,7 +242,7 @@ deferred.resolve(suggestions); } else { - deferred.resolve(null); + deferred.reject(result.ocs.meta.message); } } ).fail(function() { @@ -296,7 +296,7 @@ $loading.removeClass('inlineblock'); $confirm.removeClass('hidden'); - if (suggestions && suggestions.length > 0) { + if (suggestions.length > 0) { $shareWithField .autocomplete("option", "autoFocus", true); @@ -312,7 +312,7 @@ $('.ui-autocomplete').append('
  • ' + message + '
  • '); } - } else if (suggestions) { + } else { var title = t('core', 'No users or groups found for {search}', {search: $shareWithField.val()}); if (!view.configModel.get('allowGroupSharing')) { title = t('core', 'No users found for {search}', {search: $('.shareWithField').val()}); @@ -327,14 +327,17 @@ .tooltip('fixTitle') .tooltip('show'); response(); - } else { - response(); } - }).fail(function() { + }).fail(function(message) { $loading.addClass('hidden'); $loading.removeClass('inlineblock'); $confirm.removeClass('hidden'); - OC.Notification.showTemporary(t('core', 'An error occurred. Please try again')); + + if (message) { + OC.Notification.showTemporary(t('core', 'An error occurred ("{message}"). Please try again', { message: message })); + } else { + OC.Notification.showTemporary(t('core', 'An error occurred. Please try again')); + } }); }, diff --git a/core/js/tests/specs/sharedialogviewSpec.js b/core/js/tests/specs/sharedialogviewSpec.js index c12c734a5d..be1aa4c9a8 100644 --- a/core/js/tests/specs/sharedialogviewSpec.js +++ b/core/js/tests/specs/sharedialogviewSpec.js @@ -1462,7 +1462,7 @@ describe('OC.Share.ShareDialogView', function() { }); }); - it('gracefully handles successful ajax call with failure content', function () { + it('throws a notification for a successful ajax call with failure content', function () { dialog.render(); var response = sinon.stub(); dialog.autocompleteHandler({term: 'bob'}, response); @@ -1470,7 +1470,8 @@ describe('OC.Share.ShareDialogView', function() { 'ocs' : { 'meta' : { 'status': 'failure', - 'statuscode': 400 + 'statuscode': 400, + 'message': 'error message' } } }); @@ -1479,7 +1480,9 @@ describe('OC.Share.ShareDialogView', function() { {'Content-Type': 'application/json'}, jsonData ); - expect(response.calledWithExactly()).toEqual(true); + expect(response.called).toEqual(false); + expect(showTemporaryNotificationStub.calledOnce).toEqual(true); + expect(showTemporaryNotificationStub.firstCall.args[0]).toContain('error message'); }); it('throws a notification when the ajax search lookup fails', function () {