From 4b47841dc2e304070e1d1d5009b90d2afbcdbbb7 Mon Sep 17 00:00:00 2001
From: Thomas Gelf <thomas@gelf.net>
Date: Wed, 26 Mar 2014 18:01:20 +0000
Subject: [PATCH] I hate flickering search result, fixed one more time

---
 public/js/icinga/loader.js | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/public/js/icinga/loader.js b/public/js/icinga/loader.js
index f7e060ac9..b497a4e03 100644
--- a/public/js/icinga/loader.js
+++ b/public/js/icinga/loader.js
@@ -233,7 +233,8 @@
                 'Got response for ', req.$target, ', URL was ' + url
             );
 
-            var $resp = $(req.responseText);
+            // div helps getting an XML tree
+            var $resp = $('<div>' + req.responseText + '</div>');
             var active = false;
             var rendered = false;
 
@@ -334,8 +335,9 @@
 
             // Handle search requests, still hardcoded.
             if (req.url.match(/^\/search/) &&
-                req.$target.data('icingaUrl').match(/^\/search/)
-                && $('.dashboard', $resp).length > 0)
+                req.$target.data('icingaUrl').match(/^\/search/) &&
+                $('.dashboard', $resp).length > 0 &&
+                $('.dashboard .container', req.$target).length > 0)
             {
                 // TODO: We need dashboard pane and container identifiers (not ids)
                 var targets = [];
@@ -345,8 +347,13 @@
 
                 var i = 0;
                 // Searching for '.dashboard .container' in $resp doesn't dork?!
-                $('.container', $resp).each(function (idx, el) {
+                $('.dashboard .container', $resp).each(function (idx, el) {
                     var $el = $(el);
+                    if ($el.hasClass('dashboard')) {
+                        return;
+                    } else {
+
+                    }
                     var url = $el.data('icingaUrl');
                     targets[i].data('icingaUrl', url);
                     var title = $('h1', $el).first();
@@ -408,7 +415,8 @@
                 return;
             }
 
-            this.renderContentToContainer($resp, req.$target);
+            // .html() removes outer div we added above
+            this.renderContentToContainer($resp.html(), req.$target);
             if (url.match(/#/)) {
                 this.icinga.ui.scrollContainerToAnchor(req.$target, url.split(/#/)[1]);
             }