From 562dadb69252128fffd2d37c6eb6d5e88a4e099c Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Sun, 12 Feb 2017 09:59:14 +0100 Subject: [PATCH] group plots by field --- .../src/main/resources/resources/index.html | 1 + .../src/main/resources/resources/js/search.js | 43 +++++++++++++++++++ .../org/lucares/performance/db/Grouping.java | 6 ++- 3 files changed, 49 insertions(+), 1 deletion(-) 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)) {