From db00bd1b036fae5f97ed043f08ae14a2f25a1d6a Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Fri, 3 Jul 2015 16:29:23 +0200 Subject: [PATCH 1/2] Fix conversation modal on contacts page --- app/assets/javascripts/app/pages/contacts.js | 7 ++++++- app/helpers/contacts_helper.rb | 3 +-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/app/pages/contacts.js b/app/assets/javascripts/app/pages/contacts.js index a213a0d1c..b3675af6a 100644 --- a/app/assets/javascripts/app/pages/contacts.js +++ b/app/assets/javascripts/app/pages/contacts.js @@ -8,7 +8,8 @@ app.pages.Contacts = Backbone.View.extend({ "click #contacts_visibility_toggle" : "toggleContactVisibility", "click #chat_privilege_toggle" : "toggleChatPrivilege", "click #change_aspect_name" : "showAspectNameForm", - "keyup #contact_list_search" : "searchContactList" + "keyup #contact_list_search" : "searchContactList", + "click .conversation_button": "showMessageModal" }, initialize: function(opts) { @@ -77,6 +78,10 @@ app.pages.Contacts = Backbone.View.extend({ this.stream.search($(e.target).val()); }, + showMessageModal: function(){ + app.helpers.showModal("#conversationModal"); + }, + setupAspectSorting: function() { $("#aspect_nav .list-group").sortable({ items: "a.aspect[data-aspect-id]", diff --git a/app/helpers/contacts_helper.rb b/app/helpers/contacts_helper.rb index a9ff48b92..7d3154bcb 100644 --- a/app/helpers/contacts_helper.rb +++ b/app/helpers/contacts_helper.rb @@ -13,8 +13,7 @@ module ContactsHelper content_tag :i, nil, class: "entypo-mail contacts-header-icon", - title: t("contacts.index.start_a_conversation"), - data: {toggle: "modal", target: "#conversationModal"} + title: t("contacts.index.start_a_conversation") end end end From 61edda0fca05a6e9c18ea03354267527cdc20ab2 Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem Date: Fri, 3 Jul 2015 16:54:38 +0200 Subject: [PATCH 2/2] Aspect creation modal now creates an aspect when pressing enter --- .../app/views/aspect_create_view.js | 10 +++++++++- .../app/views/aspect_create_view_spec.js | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/app/views/aspect_create_view.js b/app/assets/javascripts/app/views/aspect_create_view.js index 0ec50afa2..fa9de946c 100644 --- a/app/assets/javascripts/app/views/aspect_create_view.js +++ b/app/assets/javascripts/app/views/aspect_create_view.js @@ -4,7 +4,8 @@ app.views.AspectCreate = app.views.Base.extend({ templateName: "aspect_create_modal", events: { - "click .btn.btn-primary": "createAspect" + "click .btn.btn-primary": "createAspect", + "keypress input#aspect_name": "inputKeypress" }, initialize: function(opts) { @@ -30,6 +31,13 @@ app.views.AspectCreate = app.views.Base.extend({ return this.$("#aspect_name").val(); }, + inputKeypress: function(evt) { + if(evt.which === 13) { + evt.preventDefault(); + this.createAspect(); + } + }, + createAspect: function() { var aspect = new app.models.Aspect({ "person_id": this._personId, diff --git a/spec/javascripts/app/views/aspect_create_view_spec.js b/spec/javascripts/app/views/aspect_create_view_spec.js index 96eabfe7f..1961cff08 100644 --- a/spec/javascripts/app/views/aspect_create_view_spec.js +++ b/spec/javascripts/app/views/aspect_create_view_spec.js @@ -40,6 +40,24 @@ describe("app.views.AspectCreate", function() { }); }); + describe("#inputKeypress", function() { + beforeEach(function() { + this.view.render(); + spyOn(this.view, "createAspect"); + }); + + it("should call createAspect if the enter key was pressed", function() { + var e = $.Event("keypress", { which: 13 }); + this.view.inputKeypress(e); + expect(this.view.createAspect).toHaveBeenCalled(); + }); + + it("shouldn't call createAspect if another key was pressed", function() { + var e = $.Event("keypress", { which: 42 }); + this.view.inputKeypress(e); + expect(this.view.createAspect).not.toHaveBeenCalled(); + }); + }); describe("#createAspect", function() { beforeEach(function() {