From 37d31bf9e34c6105f2ca91611491f83228007043 Mon Sep 17 00:00:00 2001 From: Shakeh Brys Date: Wed, 5 Sep 2018 16:32:12 -0700 Subject: [PATCH 1/4] update grunt version --- Gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gruntfile.js b/Gruntfile.js index 48876850b..cc1eb7255 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -356,7 +356,7 @@ module.exports = function(grunt) { options: { publish: [{ id: groupId + ':ve:zip', - version: '3.4.0-SNAPSHOT', + version: '3.4.1-SNAPSHOT', path: 'deploy/' }] } From 8dac8d61605756a5a9ddce8803cd679f6a2b2062 Mon Sep 17 00:00:00 2001 From: chhay menghong Date: Sun, 9 Sep 2018 15:45:35 -0700 Subject: [PATCH 2/4] reposition fast cf result if offscreen --- src/services/MentionService.js | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/services/MentionService.js b/src/services/MentionService.js index b794eaff5..ba42e063f 100644 --- a/src/services/MentionService.js +++ b/src/services/MentionService.js @@ -1,9 +1,9 @@ 'use strict'; angular.module('mms') - .factory('MentionService', ['$rootScope', '$compile', 'CacheService', MentionService]); + .factory('MentionService', ['$rootScope', '$compile', '$timeout', 'CacheService', MentionService]); -function MentionService($rootScope, $compile, CacheService) { +function MentionService($rootScope, $compile, $timeout, CacheService) { /** Used to maintain all mention in all ckeditors **/ var mentions = {}; var mentionPlacerHolderPrefix = 'mentionPlaceHolder'; @@ -53,6 +53,7 @@ function MentionService($rootScope, $compile, CacheService) { var text = currentEditingElement.innerText; text = text.substring(1); // ignore @ mentionScope.mmsMentionValue = text; + _repositionDropdownIfOffScreen(editor, mentionState); }); _handleSpecialKeys(event, mentionId, editor, projectId, refId); @@ -258,4 +259,20 @@ function MentionService($rootScope, $compile, CacheService) { target[0].parentNode.scrollTop = target[0].offsetTop; } } + + function _repositionDropdownIfOffScreen(editor, mentionState) { + // wait for dropdown result to render so that we can determine whether it is on/off-screen + $timeout(function() { + var mentionElement = mentionState.mentionElement; + var dropdownResultElement = mentionElement.find('ul.dropdown-menu'); + if (dropdownResultElement.children().length > 0 && !dropdownResultElement.isOnScreen()) { + var ckeditorBox = _getCkeditorFrame(editor).getBoundingClientRect(); + mentionElement.css({ + top: ckeditorBox.top, + left: ckeditorBox.left + }); + } + }, 0, false); + + } } From c05e617cf20402f29f14d37a9224a7770c54a1d9 Mon Sep 17 00:00:00 2001 From: chhay menghong Date: Tue, 18 Sep 2018 23:11:03 -0700 Subject: [PATCH 3/4] move dropdown close to left toolbar --- src/services/MentionService.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/services/MentionService.js b/src/services/MentionService.js index ba42e063f..45c4c4471 100644 --- a/src/services/MentionService.js +++ b/src/services/MentionService.js @@ -266,10 +266,11 @@ function MentionService($rootScope, $compile, $timeout, CacheService) { var mentionElement = mentionState.mentionElement; var dropdownResultElement = mentionElement.find('ul.dropdown-menu'); if (dropdownResultElement.children().length > 0 && !dropdownResultElement.isOnScreen()) { - var ckeditorBox = _getCkeditorFrame(editor).getBoundingClientRect(); + var leftToolbar = $('.pane-left-toolbar'); + var leftToolbarBox = leftToolbar[0].getBoundingClientRect(); mentionElement.css({ - top: ckeditorBox.top, - left: ckeditorBox.left + top: leftToolbarBox.top + leftToolbar.height(), + left: leftToolbarBox.left }); } }, 0, false); From 4fd925d3f96285c105b76c7a9ba8a89c59a203e3 Mon Sep 17 00:00:00 2001 From: chhay menghong Date: Wed, 19 Sep 2018 13:33:10 -0700 Subject: [PATCH 4/4] revert change --- src/services/MentionService.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/services/MentionService.js b/src/services/MentionService.js index 45c4c4471..ba42e063f 100644 --- a/src/services/MentionService.js +++ b/src/services/MentionService.js @@ -266,11 +266,10 @@ function MentionService($rootScope, $compile, $timeout, CacheService) { var mentionElement = mentionState.mentionElement; var dropdownResultElement = mentionElement.find('ul.dropdown-menu'); if (dropdownResultElement.children().length > 0 && !dropdownResultElement.isOnScreen()) { - var leftToolbar = $('.pane-left-toolbar'); - var leftToolbarBox = leftToolbar[0].getBoundingClientRect(); + var ckeditorBox = _getCkeditorFrame(editor).getBoundingClientRect(); mentionElement.css({ - top: leftToolbarBox.top + leftToolbar.height(), - left: leftToolbarBox.left + top: ckeditorBox.top, + left: ckeditorBox.left }); } }, 0, false);