From b4caf75cbbe9deec5c8396357d4422ba4430ffd2 Mon Sep 17 00:00:00 2001 From: Greg Price Date: Mon, 3 Mar 2014 17:56:07 -0500 Subject: [PATCH] Make forum comment buttons activate by keyboard Neither edit nor delete activated on pressing the space key. --- .../response_comment_show_view_spec.coffee | 23 ++++++++++++------- .../views/response_comment_show_view.coffee | 12 +++++++--- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/common/static/coffee/spec/discussion/view/response_comment_show_view_spec.coffee b/common/static/coffee/spec/discussion/view/response_comment_show_view_spec.coffee index c9e1467975..1ea4f88e07 100644 --- a/common/static/coffee/spec/discussion/view/response_comment_show_view_spec.coffee +++ b/common/static/coffee/spec/discussion/view/response_comment_show_view_spec.coffee @@ -63,23 +63,30 @@ describe 'ResponseCommentShowView', -> @comment.unflagAbuse() expect(@comment.get 'abuse_flaggers').toEqual [] - describe 'comment deletion', -> + describe '_delete', -> - it 'triggers the delete event when the delete icon is clicked', -> + it 'triggers on the correct events', -> DiscussionUtil.loadRoles [] @comment.updateInfo {ability: {'can_delete': true}} + @view.render() + DiscussionViewSpecHelper.checkButtonEvents(@view, "_delete", ".action-delete") + + it 'triggers the delete event', -> triggerTarget = jasmine.createSpy() @view.bind "comment:_delete", triggerTarget - @view.render() - @view.$el.find('.action-delete').click() + @view._delete() + expect(triggerTarget).toHaveBeenCalled() - describe 'comment edit', -> + describe 'edit', -> - it 'triggers comment:edit when the edit button is clicked', -> + it 'triggers on the correct events', -> DiscussionUtil.loadRoles [] @comment.updateInfo {ability: {'can_edit': true}} + @view.render() + DiscussionViewSpecHelper.checkButtonEvents(@view, "edit", ".action-edit") + + it 'triggers comment:edit when the edit button is clicked', -> triggerTarget = jasmine.createSpy() @view.bind "comment:edit", triggerTarget - @view.render() - @view.$el.find(".action-edit").click() + @view.edit() expect(triggerTarget).toHaveBeenCalled() diff --git a/common/static/coffee/src/discussion/views/response_comment_show_view.coffee b/common/static/coffee/src/discussion/views/response_comment_show_view.coffee index e08011fef9..3ca9570300 100644 --- a/common/static/coffee/src/discussion/views/response_comment_show_view.coffee +++ b/common/static/coffee/src/discussion/views/response_comment_show_view.coffee @@ -2,8 +2,14 @@ if Backbone? class @ResponseCommentShowView extends DiscussionContentView events: - "click .action-delete": "_delete" - "click .action-edit": "edit" + "click .action-delete": + (event) -> @_delete(event) + "keydown .action-delete": + (event) -> DiscussionUtil.activateOnSpace(event, @_delete) + "click .action-edit": + (event) -> @edit(event) + "keydown .action-edit": + (event) -> DiscussionUtil.activateOnSpace(event, @edit) tagName: "li" @@ -52,7 +58,7 @@ if Backbone? else if DiscussionUtil.isTA(@model.get("user_id")) @$el.find("a.profile-link").after('' + gettext('Community TA') + '') - _delete: (event) -> + _delete: (event) => @trigger "comment:_delete", event renderFlagged: =>