diff --git a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
index 0bfead2f5f23cf5c213d2a3ff4b8f075a39fc632..a73bc3a727fbb7ca63399fa1b5b5fde5cbd684ab 100644
--- a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
@@ -32,7 +32,11 @@ AbstractPanel.prototype._createEventHandlers = function () {
   var searchInput = self.getControlElement(PanelControlElementType.SEARCH_INPUT);
 
   var searchByQuery = function () {
-    return self.searchByQuery();
+    var busyImage = $("[name=busyImage]", self.getElement());
+    busyImage.show();
+    return self.searchByQuery().finally(function () {
+      busyImage.hide();
+    });
   };
 
   searchButton.onclick = searchByQuery;
@@ -75,6 +79,14 @@ AbstractPanel.prototype._initializeGui = function (placeholder) {
   this.getElement().appendChild(searchQueryDiv);
   this.setControlElement(PanelControlElementType.SEARCH_DIV, searchQueryDiv);
 
+  var busyImage = Functions.createElement({
+    type: "img",
+    name: "busyImage",
+    style: "display:block;position: absolute;margin-left: 80px;z-index: 10;display:none",
+    src: "resources/images/icons/ajax-loader.gif"
+  });
+  searchQueryDiv.appendChild(busyImage);
+
   var searchLabel = Functions.createElement({
     type: "div",
     name: "searchLabel",