Skip to content

Commit 8f00f10

Browse files
committed
Merge pull request #18114 from owncloud/fix-delete-user-feedback
[user mgnt] fix delete user feedback on failure
2 parents 5fd36d0 + e350a8b commit 8f00f10

2 files changed

Lines changed: 35 additions & 12 deletions

File tree

settings/js/users/deleteHandler.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -194,16 +194,16 @@ DeleteHandler.prototype.deleteEntry = function(keepNotification) {
194194
// FIXME: do not use synchronous ajax calls as they block the browser !
195195
async: false,
196196
success: function (result) {
197-
if (result.status === 'success') {
198-
// Remove undo option, & remove user from table
199-
200-
//TODO: following line
201-
dh.removeCallback(dh.oidToDelete);
202-
dh.canceled = true;
203-
} else {
204-
OC.dialogs.alert(result.data.message, t('settings', 'Unable to delete {objName}', {objName: dh.oidToDelete}));
205-
dh.undoCallback(dh.oidToDelete);
206-
}
197+
// Remove undo option, & remove user from table
198+
199+
//TODO: following line
200+
dh.removeCallback(dh.oidToDelete);
201+
dh.canceled = true;
202+
},
203+
error: function (jqXHR) {
204+
OC.dialogs.alert(jqXHR.responseJSON.data.message, t('settings', 'Unable to delete {objName}', {objName: dh.oidToDelete}));
205+
dh.undoCallback(dh.oidToDelete);
206+
207207
}
208208
});
209209
};

settings/tests/js/users/deleteHandlerSpec.js

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,17 @@ describe('DeleteHandler tests', function() {
6363
expect(fakeServer.requests.length).toEqual(0);
6464
});
6565
it('deletes first entry and reshows notification on second delete', function() {
66+
fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [
67+
204,
68+
{ 'Content-Type': 'application/json' },
69+
JSON.stringify({status: 'success'})
70+
]);
71+
fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_other_uid/, [
72+
204,
73+
{ 'Content-Type': 'application/json' },
74+
JSON.stringify({status: 'success'})
75+
]);
76+
6677
var handler = init(markCallback, removeCallback, undoCallback);
6778
handler.mark('some_uid');
6879

@@ -79,7 +90,8 @@ describe('DeleteHandler tests', function() {
7990
expect(markCallback.calledTwice).toEqual(true);
8091
expect(markCallback.getCall(0).args[0]).toEqual('some_uid');
8192
expect(markCallback.getCall(1).args[0]).toEqual('some_other_uid');
82-
expect(removeCallback.notCalled).toEqual(true);
93+
// called only once, because it is called once the second user is deleted
94+
expect(removeCallback.calledOnce).toEqual(true);
8395
expect(undoCallback.notCalled).toEqual(true);
8496

8597
// previous one was delete
@@ -88,6 +100,12 @@ describe('DeleteHandler tests', function() {
88100
expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid');
89101
});
90102
it('automatically deletes after timeout', function() {
103+
fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [
104+
204,
105+
{ 'Content-Type': 'application/json' },
106+
JSON.stringify({status: 'success'})
107+
]);
108+
91109
var handler = init(markCallback, removeCallback, undoCallback);
92110
handler.mark('some_uid');
93111

@@ -101,6 +119,11 @@ describe('DeleteHandler tests', function() {
101119
expect(request.url).toEqual(OC.webroot + '/index.php/dummyendpoint.php/some_uid');
102120
});
103121
it('deletes when deleteEntry is called', function() {
122+
fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [
123+
200,
124+
{ 'Content-Type': 'application/json' },
125+
JSON.stringify({status: 'success'})
126+
]);
104127
var handler = init(markCallback, removeCallback, undoCallback);
105128
handler.mark('some_uid');
106129

@@ -157,7 +180,7 @@ describe('DeleteHandler tests', function() {
157180
// stub t to avoid extra calls
158181
var tStub = sinon.stub(window, 't').returns('text');
159182
fakeServer.respondWith(/\/index\.php\/dummyendpoint.php\/some_uid/, [
160-
200,
183+
403,
161184
{ 'Content-Type': 'application/json' },
162185
JSON.stringify({status: 'error', data: {message: 'test error'}})
163186
]);

0 commit comments

Comments
 (0)