Commit 50be807e by Muzaffar yousaf

Merge pull request #11188 from edx/muzaffar/disable-bookmark-button-tnl4004

Disable button while adding/removing bookmark to a unit.
parents d6673ca3 cc6024e9
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
toggleBookmark: function(event) { toggleBookmark: function(event) {
event.preventDefault(); event.preventDefault();
this.$el.prop('disabled', true);
if (this.$el.hasClass('bookmarked')) { if (this.$el.hasClass('bookmarked')) {
this.removeBookmark(); this.removeBookmark();
} else { } else {
...@@ -48,6 +50,9 @@ ...@@ -48,6 +50,9 @@
var response = jqXHR.responseText ? JSON.parse(jqXHR.responseText) : ''; var response = jqXHR.responseText ? JSON.parse(jqXHR.responseText) : '';
var userMessage = response ? response.user_message : ''; var userMessage = response ? response.user_message : '';
view.showError(userMessage); view.showError(userMessage);
},
complete: function () {
view.$el.prop('disabled', false);
} }
}); });
}, },
...@@ -65,6 +70,9 @@ ...@@ -65,6 +70,9 @@
}, },
error: function() { error: function() {
view.showError(); view.showError();
},
complete: function() {
view.$el.prop('disabled', false);
} }
}); });
}, },
......
...@@ -85,6 +85,8 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers ...@@ -85,6 +85,8 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers
bookmarkButtonView.$el.click(); bookmarkButtonView.$el.click();
expect(bookmarkButtonView.$el).toHaveAttr('disabled', 'disabled');
AjaxHelpers.expectRequest( AjaxHelpers.expectRequest(
requests, firstActionData.method, requests, firstActionData.method,
firstActionData.url, firstActionData.url,
...@@ -96,12 +98,14 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers ...@@ -96,12 +98,14 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers
expect(firstActionData.event).toHaveBeenTriggeredOn(bookmarkButtonView.$el); expect(firstActionData.event).toHaveBeenTriggeredOn(bookmarkButtonView.$el);
bookmarkButtonView[firstActionData.handler].reset(); bookmarkButtonView[firstActionData.handler].reset();
expect(bookmarkButtonView.$el).not.toHaveAttr('disabled');
verifyBookmarkButtonState(bookmarkButtonView, secondActionData.bookmarked); verifyBookmarkButtonState(bookmarkButtonView, secondActionData.bookmarked);
spyOn(bookmarkButtonView, secondActionData.handler).andCallThrough(); spyOn(bookmarkButtonView, secondActionData.handler).andCallThrough();
spyOnEvent(bookmarkButtonView.$el, secondActionData.event); spyOnEvent(bookmarkButtonView.$el, secondActionData.event);
bookmarkButtonView.$el.click(); bookmarkButtonView.$el.click();
expect(bookmarkButtonView.$el).toHaveAttr('disabled', 'disabled');
AjaxHelpers.expectRequest( AjaxHelpers.expectRequest(
requests, requests,
...@@ -114,6 +118,7 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers ...@@ -114,6 +118,7 @@ define(['backbone', 'jquery', 'underscore', 'common/js/spec_helpers/ajax_helpers
AjaxHelpers.respondWithJson(requests, {}); AjaxHelpers.respondWithJson(requests, {});
expect(secondActionData.event).toHaveBeenTriggeredOn(bookmarkButtonView.$el); expect(secondActionData.event).toHaveBeenTriggeredOn(bookmarkButtonView.$el);
expect(bookmarkButtonView.$el).not.toHaveAttr('disabled');
verifyBookmarkButtonState(bookmarkButtonView, firstActionData.bookmarked); verifyBookmarkButtonState(bookmarkButtonView, firstActionData.bookmarked);
bookmarkButtonView.undelegateEvents(); bookmarkButtonView.undelegateEvents();
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment