From 113979ce474d1e3228471a8201c3a9f8423c3a84 Mon Sep 17 00:00:00 2001 From: Raphael Gauthier Date: Thu, 30 Nov 2023 16:49:27 +0100 Subject: [PATCH] Fixes #23819: Sometimes, tooltips in the directives tree remain displayed --- .../rudder-web/src/main/javascript/rudder/rudder.js | 3 +++ .../snippet/configuration/DirectiveManagement.scala | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js b/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js index 8f8c2feae8a..3c4a07d89c4 100644 --- a/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js +++ b/webapp/sources/rudder/rudder-web/src/main/javascript/rudder/rudder.js @@ -111,6 +111,9 @@ function createTooltiptr() { }); } +function removeBsTooltips(){ + document.querySelectorAll(".tooltip").forEach(e => e.remove()); +} function callPopupWithTimeout(timeout, popupName){ setTimeout("createPopup('"+popupName+"')", timeout); diff --git a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/configuration/DirectiveManagement.scala b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/configuration/DirectiveManagement.scala index 5563e809987..804a93fe644 100644 --- a/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/configuration/DirectiveManagement.scala +++ b/webapp/sources/rudder/rudder-web/src/main/scala/com/normation/rudder/web/snippet/configuration/DirectiveManagement.scala @@ -163,6 +163,7 @@ class DirectiveManagement extends DispatchSnippet with Loggable { if( directiveId != null && directiveId.length > 0) { ${SHtml.ajaxCall(JsVar("directiveId"), displayDetails _)._2.toJsCmd}; } + removeBsTooltips(); """) } @@ -219,10 +220,12 @@ class DirectiveManagement extends DispatchSnippet with Loggable { } catch(e) { directiveId = ''; } - buildDirectiveTree('#${htmlId_activeTechniquesTree}', [ directiveId ], '${S.contextPath}', 1); - $$('#activeTechniquesTree').on('scroll',function(){$$('.tooltip').hide();}); + removeBsTooltips(); createTooltip(); + $$('.sidebar-body').on('scroll', function(){ + removeBsTooltips(); + }); """) } @@ -416,6 +419,7 @@ class DirectiveManagement extends DispatchSnippet with Loggable { scope.$$apply(function(){ scope.init(${dataArray.toJsCmd}); } ); + removeBsTooltips(); createTooltip();"""))) } @@ -573,7 +577,7 @@ class DirectiveManagement extends DispatchSnippet with Loggable { this.window.location.hash = "#" + JSON.stringify(${json}) sessionStorage.removeItem('tags-${directiveId.uid.value}'); """.stripMargin) & - After(TimeSpan(0), JsRaw("""createTooltip();""")) // OnLoad or JsRaw createTooltip does not work ... + After(TimeSpan(0), JsRaw("""removeBsTooltips();createTooltip();""")) // OnLoad or JsRaw createTooltip does not work ... } private[this] case class MissingTechniqueException(directive: Directive) extends Exception(