diff --git a/pdb-ui/src/main/resources/resources/index.html b/pdb-ui/src/main/resources/resources/index.html
index 41aaddd..320161e 100644
--- a/pdb-ui/src/main/resources/resources/index.html
+++ b/pdb-ui/src/main/resources/resources/index.html
@@ -20,6 +20,7 @@
+
diff --git a/pdb-ui/src/main/resources/resources/js/search.js b/pdb-ui/src/main/resources/resources/js/search.js
index 62d3c70..b262af8 100644
--- a/pdb-ui/src/main/resources/resources/js/search.js
+++ b/pdb-ui/src/main/resources/resources/js/search.js
@@ -3,6 +3,8 @@ $(document).ready(function(){
$('#search-submit').click(plot);
+ renderFields();
+
AutoComplete({
HttpMethod: "GET",
Delay: 300,
@@ -27,6 +29,34 @@ $(document).ready(function(){
});
});
+function renderFields()
+{
+ var request = {};
+ request['query'] = $('#search-input').val();
+
+ var success = function(response){
+
+ $('#search-group-by').empty();
+
+ var option = new Option("", "");
+ $('#search-group-by').append($(option));
+
+ response.forEach(
+ (item, index) => {
+ var option = new Option(item, item);
+ $('#search-group-by').append($(option));
+ }
+ );
+
+ };
+ var error = function(e) {
+ $('#result-view').text("FAILED: " + JSON.stringify(e));
+ };
+
+
+ getJson("fields", request, success, error);
+}
+
function showLoadingIcon()
{
$('#result-view').html("
");
@@ -41,6 +71,7 @@ function plot(event){
request['query'] = $('#search-input').val();
request['height'] = $('#result-view').height()-10;
request['width'] = $('#result-view').width()-10;
+ request['groupBy'] = $('#search-group-by').val();
var success = function(response){
@@ -67,3 +98,15 @@ function postJson(url, requestData, successCallback, errorCallback) {
.fail(errorCallback);
}
+function getJson(url, requestData, successCallback, errorCallback) {
+
+ $.ajax({
+ type: "GET",
+ url: url,
+ data: requestData,
+ contentType: 'application/json'
+ })
+ .done(successCallback)
+ .fail(errorCallback);
+}
+
diff --git a/performanceDb/src/main/java/org/lucares/performance/db/Grouping.java b/performanceDb/src/main/java/org/lucares/performance/db/Grouping.java
index a6b54cc..526b4de 100644
--- a/performanceDb/src/main/java/org/lucares/performance/db/Grouping.java
+++ b/performanceDb/src/main/java/org/lucares/performance/db/Grouping.java
@@ -25,7 +25,7 @@ public class Grouping {
public static Grouping groupBy(final List
pdbReaders, final String groupByField) {
final Grouping result;
- if (groupByField == NO_GROUPING) {
+ if (noGrouping(groupByField)) {
final Group group = new Group(Tags.EMPTY, pdbReaders);
result = new Grouping(group);
@@ -46,6 +46,10 @@ public class Grouping {
return result;
}
+ private static boolean noGrouping(final String groupByField) {
+ return groupByField == NO_GROUPING || groupByField.isEmpty();
+ }
+
private static void addIfNotExists(final Map grouping, final String groupByField,
final String value) {
if (!grouping.containsKey(value)) {