From 61edda0fca05a6e9c18ea03354267527cdc20ab2 Mon Sep 17 00:00:00 2001 From: Steffen van Bergerem <svbergerem@online.de> Date: Fri, 3 Jul 2015 16:54:38 +0200 Subject: [PATCH] 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 0ec50afa20..fa9de946ca 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 96eabfe7f4..1961cff086 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() { -- GitLab