From 64e0fe80a37d8ddc70fe76daa732a77ace27c5a0 Mon Sep 17 00:00:00 2001 From: Adrien Dieudonne Date: Fri, 7 Apr 2017 15:16:47 +0200 Subject: [PATCH] [FIX] web: Calendar: enter key not working in quick create Before this commit, it was not possible to add a new event with the "quick create" if you pressed enter key instead of using confirm button. --- .../js/views/calendar/calendar_quick_create.js | 3 ++- addons/web/static/tests/views/calendar_tests.js | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/views/calendar/calendar_quick_create.js b/addons/web/static/src/js/views/calendar/calendar_quick_create.js index b900b24667a..db39fa6bfd6 100644 --- a/addons/web/static/src/js/views/calendar/calendar_quick_create.js +++ b/addons/web/static/src/js/views/calendar/calendar_quick_create.js @@ -31,6 +31,7 @@ var QuickCreate = Dialog.extend({ // Can hold data pre-set from where you clicked on agenda this.dataTemplate = dataTemplate || {}; + this.dataCalendar = dataCalendar; this.$input = $(); var self = this; @@ -68,7 +69,7 @@ var QuickCreate = Dialog.extend({ this.$input = this.$('input').keyup(function enterHandler (e) { if(e.keyCode === $.ui.keyCode.ENTER) { self.$input.off('keyup', enterHandler); - if (!self._quickAdd()){ + if (!self._quickAdd(self.dataCalendar)){ self.$input.on('keyup', enterHandler); } } else if (e.keyCode === $.ui.keyCode.ESCAPE && self._buttons) { diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js index 33e989c5cee..bcc340fd5ee 100644 --- a/addons/web/static/tests/views/calendar_tests.js +++ b/addons/web/static/tests/views/calendar_tests.js @@ -214,7 +214,7 @@ QUnit.module('Views', { }); QUnit.test('create and change events', function (assert) { - assert.expect(19); + assert.expect(21); var calendar = createView({ View: CalendarView, @@ -272,6 +272,19 @@ QUnit.module('Views', { assert.strictEqual(calendar.$('.fc-event:contains(new event in quick create)').length, 1, "should display the new record"); assert.strictEqual(calendar.$('td.fc-event-container[colspan]').length, 2, "should the new record have only one day"); + // create a new event, quick create only (validated by pressing enter key) + + testUtils.triggerMouseEvent($cell, "mousedown"); + testUtils.triggerMouseEvent($cell, "mouseup"); + + assert.ok($('.modal-dialog.modal-sm').length, "should open the quick create dialog"); + + $('.modal-body input:first') + .val('new event in quick create validated by pressing enter key.') + .trigger($.Event('keyup', {keyCode: $.ui.keyCode.ENTER})); + + assert.strictEqual(calendar.$('.fc-event:contains(new event in quick create validated by pressing enter key.)').length, 1, "should display the new record"); + // create a new event with 2 days $cell = calendar.$('.fc-day-grid .fc-row:eq(3) .fc-day:eq(2)'); @@ -300,7 +313,7 @@ QUnit.module('Views', { $('.modal button.btn:contains(Ok)').trigger('click'); assert.notOk(calendar.$('.fc-event:contains(event 4) .fc-content').length, "the record should be deleted"); - assert.strictEqual(calendar.$('.fc-event-container .fc-event').length, 8, "should display 8 events"); + assert.strictEqual(calendar.$('.fc-event-container .fc-event').length, 9, "should display 9 events"); // move to next month calendar.$buttons.find('.o_calendar_button_next').click();