From 0a6e3c0c76549c316617d40a211a9e680a04ed0c Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Fri, 5 Oct 2018 15:44:58 +0200
Subject: [PATCH] clicking on the map clears search input

---
 frontend-js/src/main/js/SessionData.js        |  4 +--
 .../main/js/gui/leftPanel/AbstractDbPanel.js  |  6 ++++
 .../gui/leftPanel/GenericSearchPanel-test.js  | 30 +++++++++++++++++--
 3 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/frontend-js/src/main/js/SessionData.js b/frontend-js/src/main/js/SessionData.js
index 5d89ab83ea..6228b934e8 100644
--- a/frontend-js/src/main/js/SessionData.js
+++ b/frontend-js/src/main/js/SessionData.js
@@ -88,7 +88,7 @@ SessionData.prototype.setSearchQuery = function (value) {
  *
  * @param {Object} param
  * @param {string} param.type
- * @param {Object} param.query
+ * @param {string} param.query
  */
 SessionData.prototype.setQuery = function (param) {
   if (param.type === "drug") {
@@ -106,7 +106,7 @@ SessionData.prototype.setQuery = function (param) {
 
 /**
  *
- * @returns {any}
+ * @returns {string}
  */
 SessionData.prototype.getSearchQuery = function () {
   var key = this.getKey(SessionObjectType.SEARCH_QUERY);
diff --git a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
index 87e2ed6edb..0a4314e03e 100644
--- a/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
+++ b/frontend-js/src/main/js/gui/leftPanel/AbstractDbPanel.js
@@ -4,6 +4,7 @@
 
 var Promise = require("bluebird");
 
+var AbstractDbOverlay = require('../../map/overlay/AbstractDbOverlay');
 var GuiConnector = require('../../GuiConnector');
 var Panel = require('../Panel');
 var PanelControlElementType = require('../PanelControlElementType');
@@ -79,6 +80,11 @@ AbstractDbPanel.prototype._createEventHandlers = function () {
     searchInput.value = "";
   });
 
+  self.getOverlayDb().addListener("onSearch", function (data) {
+    if (data.arg.type === AbstractDbOverlay.QueryType.SEARCH_BY_COORDINATES) {
+      $(searchInput).val("");
+    }
+  });
 };
 
 /**
diff --git a/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js b/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js
index af96b91184..34200db33f 100644
--- a/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js
+++ b/frontend-js/src/test/js/gui/leftPanel/GenericSearchPanel-test.js
@@ -15,9 +15,16 @@ var assert = chai.assert;
 var logger = require('../../logger');
 
 describe('GenericSearchPanel', function () {
-  var createPanel = function () {
-    var map = helper.createCustomMap();
-    map.getModel().setId(15781);
+  /**t
+   *
+   * @param {CustomMap} [map]
+   * @returns {GenericSearchPanel}
+   */
+  var createPanel = function (map) {
+    if (map===undefined) {
+      map = helper.createCustomMap();
+      map.getModel().setId(15781);
+    }
     helper.createSearchDbOverlay(map);
 
     return new GenericSearchPanel({
@@ -243,6 +250,23 @@ describe('GenericSearchPanel', function () {
     });
   });
 
+  it('clear after search by coordinates', function () {
+    var map = helper.createCustomMap();
+    map.getModel().setId(15781);
+    var panel = createPanel(map);
+
+    $("[name='searchInput']", panel.getElement()).val("some input");
+    var searchParams = {
+      modelId: map.getModel().getId(),
+      coordinates: new Point(553.10, 479.18),
+      zoom: 4
+    };
+
+    return panel.getOverlayDb().searchByCoordinates(searchParams).then(function () {
+      assert.equal("", $("[name='searchInput']", panel.getElement()).val());
+    });
+  });
+
   describe("getAutocomplete", function () {
     it("without initialization", function () {
       var panel = createPanel();
-- 
GitLab