From c823cb38fe55456f0c84886acfda459cba7cdf43 Mon Sep 17 00:00:00 2001 From: Julia Radzhabova Date: Tue, 30 Oct 2018 14:05:00 +0300 Subject: [PATCH] [DE] Fix view mode, select user email using keyboard. --- apps/common/main/lib/component/Menu.js | 2 +- apps/common/main/lib/controller/Comments.js | 6 +++--- apps/common/main/lib/view/ReviewPopover.js | 9 ++++++++- apps/documenteditor/main/app/controller/Main.js | 4 +++- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/apps/common/main/lib/component/Menu.js b/apps/common/main/lib/component/Menu.js index 4b8826e9b..4feb389c3 100644 --- a/apps/common/main/lib/component/Menu.js +++ b/apps/common/main/lib/component/Menu.js @@ -598,7 +598,7 @@ define([ } } else { if (top + menuH > docH) { - if (fixedAlign) { + if (fixedAlign && typeof fixedAlign == 'string') { // how to align if menu height > window height m = fixedAlign.match(/^([a-z]+)-([a-z]+)/); top = offset.top - posMenu[m[1]][1] + posParent[m[2]][1] + this.offset[1] + (fixedOffset || 0); } else diff --git a/apps/common/main/lib/controller/Comments.js b/apps/common/main/lib/controller/Comments.js index 96f6c76ad..497e7de99 100644 --- a/apps/common/main/lib/controller/Comments.js +++ b/apps/common/main/lib/controller/Comments.js @@ -1125,10 +1125,10 @@ define([ this.popover = Common.Views.ReviewPopover.prototype.getPopover({ commentsStore : this.popoverComments, renderTo : this.sdkViewName, - userEmail: this.mode.userEmail + userEmail: (this.mode) ? this.mode.userEmail : undefined }); this.popover.setCommentsStore(this.popoverComments); - this.popover.setUserEmail(this.mode.userEmail); + (this.mode) && this.popover.setUserEmail(this.mode.userEmail); } return this.popover; }, @@ -1343,7 +1343,7 @@ define([ this.api.asc_addComment(comment); this.view.showEditContainer(false); - this.view.pickEMail(commentVal); + this.mode && this.mode.userEmail && this.view.pickEMail(commentVal); if (!_.isUndefined(this.api.asc_SetDocumentPlaceChangedEnabled)) { this.api.asc_SetDocumentPlaceChangedEnabled(false); } diff --git a/apps/common/main/lib/view/ReviewPopover.js b/apps/common/main/lib/view/ReviewPopover.js index 340918ac3..1b4b6d801 100644 --- a/apps/common/main/lib/view/ReviewPopover.js +++ b/apps/common/main/lib/view/ReviewPopover.js @@ -894,9 +894,16 @@ define([ textBox && textBox.keydown(function (event) { if ( event.keyCode == Common.UI.Keys.SPACE || event.keyCode == Common.UI.Keys.HOME || event.keyCode == Common.UI.Keys.END || event.keyCode == Common.UI.Keys.RIGHT || - event.keyCode == Common.UI.Keys.LEFT || event.keyCode == Common.UI.Keys.UP || event.keyCode == Common.UI.Keys.DOWN) { + event.keyCode == Common.UI.Keys.LEFT || event.keyCode == Common.UI.Keys.UP) { // hide email menu me.onEmailListMenu(); + } else if (event.keyCode == Common.UI.Keys.DOWN) { + if (me.emailMenu && me.emailMenu.rendered && me.emailMenu.isVisible()) + _.delay(function() { + var selected = me.emailMenu.cmpEl.find('li:not(.divider):first'); + selected = selected.find('a'); + selected.focus(); + }, 10); } me.e = event; }); diff --git a/apps/documenteditor/main/app/controller/Main.js b/apps/documenteditor/main/app/controller/Main.js index 174add885..5d2859f2c 100644 --- a/apps/documenteditor/main/app/controller/Main.js +++ b/apps/documenteditor/main/app/controller/Main.js @@ -232,7 +232,9 @@ define([ if (/form-control/.test(e.target.className)) me.inFormControl = false; if (!e.relatedTarget || - !/area_id/.test(e.target.id) && ($(e.target).parent().find(e.relatedTarget).length<1 || e.target.localName == 'textarea') /* Check if focus in combobox goes from input to it's menu button or menu items, or from comment editing area to Ok/Cancel button */ + !/area_id/.test(e.target.id) + && !(e.target.localName == 'input' && $(e.target).parent().find(e.relatedTarget).length>0) /* Check if focus in combobox goes from input to it's menu button or menu items, or from comment editing area to Ok/Cancel button */ + && !(e.target.localName == 'textarea' && $(e.target).closest('.asc-window').find(e.relatedTarget).length>0) /* Check if focus in comment goes from textarea to it's email menu */ && (e.relatedTarget.localName != 'input' || !/form-control/.test(e.relatedTarget.className)) /* Check if focus goes to text input with class "form-control" */ && (e.relatedTarget.localName != 'textarea' || /area_id/.test(e.relatedTarget.id))) /* Check if focus goes to textarea, but not to "area_id" */ { if (Common.Utils.isIE && e.originalEvent && e.originalEvent.target && /area_id/.test(e.originalEvent.target.id) && (e.originalEvent.target === e.originalEvent.srcElement))