]> git.basschouten.com Git - openhab-addons.git/commitdiff
[homeconnect] Show response code in request detail modal and JS code cleanup (#10695...
authorbruestel <jonas@bruestel.net>
Tue, 6 Jul 2021 17:49:56 +0000 (19:49 +0200)
committerGitHub <noreply@github.com>
Tue, 6 Jul 2021 17:49:56 +0000 (19:49 +0200)
Signed-off-by: Jonas BrĂ¼stel <jonas@bruestel.net>
bundles/org.openhab.binding.homeconnect/src/main/java/org/openhab/binding/homeconnect/internal/servlet/HomeConnectServlet.java
bundles/org.openhab.binding.homeconnect/src/main/resources/assets/js/homeconnect.js
bundles/org.openhab.binding.homeconnect/src/main/resources/templates/log-requests.html

index de8520c742ac7e001289e4f003d9e68af3447c62..84dc26470c50a3c38d2059e4c403a75a698a36bf 100644 (file)
@@ -163,9 +163,7 @@ public class HomeConnectServlet extends HttpServlet {
 
         String path = request.getPathInfo();
         if (path == null || path.isEmpty() || path.equals(ROOT_PATH)) {
-            @Nullable
             String code = request.getParameter(PARAM_CODE);
-            @Nullable
             String state = request.getParameter(PARAM_STATE);
             if (code != null && state != null && !code.trim().isEmpty() && !state.trim().isEmpty()) {
                 getBridgeAuthenticationPage(request, response, code, state);
@@ -173,9 +171,7 @@ public class HomeConnectServlet extends HttpServlet {
                 getBridgesPage(request, response);
             }
         } else if (pathMatches(path, APPLIANCES_PATH)) {
-            @Nullable
             String action = request.getParameter(PARAM_ACTION);
-            @Nullable
             String thingId = request.getParameter(PARAM_THING_ID);
             if (action != null && thingId != null && !action.trim().isEmpty() && !thingId.trim().isEmpty()) {
                 processApplianceActions(response, action, thingId);
@@ -183,9 +179,7 @@ public class HomeConnectServlet extends HttpServlet {
                 getAppliancesPage(request, response);
             }
         } else if (pathMatches(path, REQUEST_LOG_PATH)) {
-            @Nullable
             String export = request.getParameter(PARAM_EXPORT);
-            @Nullable
             String bridgeId = request.getParameter(PARAM_BRIDGE_ID);
             if (export != null && bridgeId != null && !export.trim().isEmpty() && !bridgeId.trim().isEmpty()) {
                 getRequestLogExport(response, bridgeId);
@@ -193,9 +187,7 @@ public class HomeConnectServlet extends HttpServlet {
                 getRequestLogPage(request, response);
             }
         } else if (pathMatches(path, EVENT_LOG_PATH)) {
-            @Nullable
             String export = request.getParameter(PARAM_EXPORT);
-            @Nullable
             String bridgeId = request.getParameter(PARAM_BRIDGE_ID);
             if (export != null && bridgeId != null && !export.trim().isEmpty() && !bridgeId.trim().isEmpty()) {
                 getEventLogExport(response, bridgeId);
@@ -225,11 +217,8 @@ public class HomeConnectServlet extends HttpServlet {
             }
         } else if (pathMatches(path, APPLIANCES_PATH)) {
             String requestPayload = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
-            @Nullable
             String action = request.getParameter(PARAM_ACTION);
-            @Nullable
             String thingId = request.getParameter(PARAM_THING_ID);
-            @Nullable
             String targetPath = request.getParameter(PARAM_PATH);
 
             if ((ACTION_PUT_RAW.equals(action) || ACTION_GET_RAW.equals(action)) && thingId != null
@@ -366,7 +355,6 @@ public class HomeConnectServlet extends HttpServlet {
                     String actionResponse = bridgeHandler.get().getApiClient().putRaw(haId, path, body);
                     response.getWriter().write(actionResponse);
                 } else if (ACTION_GET_RAW.equals(action)) {
-                    @Nullable
                     String actionResponse = bridgeHandler.get().getApiClient().getRaw(haId, path, true);
                     if (actionResponse == null) {
                         response.getWriter().write("{\"status\": \"No response\"}");
@@ -393,9 +381,7 @@ public class HomeConnectServlet extends HttpServlet {
     }
 
     private void postBridgesPage(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        @Nullable
         String action = request.getParameter(PARAM_ACTION);
-        @Nullable
         String bridgeId = request.getParameter(PARAM_BRIDGE_ID);
         Optional<HomeConnectBridgeHandler> bridgeHandlerOptional = bridgeHandlers.stream().filter(
                 homeConnectBridgeHandler -> homeConnectBridgeHandler.getThing().getUID().toString().equals(bridgeId))
index 596a7f0d2821cbf387f9ac4d3e382e9a10039f2e..9f7fb05ef11e69a5b6b4eb73baed47df84b9ae68 100644 (file)
@@ -1,4 +1,4 @@
-/* globals Chart:false, feather:false, Plotly:false, requests:false */
+/* globals Chart:false, feather:false, requests:false */
 
 (function () {
     'use strict'
         var modal = $(this);
         var requestBodyElement = modal.find('.modal-request-body');
         var title = modal.find('.modal-title');
+        var titleBadgeElement = modal.find('.modal-title-badge');
         var responseBodyElement = modal.find('.modal-response-body');
         var requestHeaderElement = modal.find('.modal-request-header');
         var responseHeaderElement = modal.find('.modal-response-header');
             responseBodyElement.addClass('text-muted')
         }
 
+        titleBadgeElement.empty();
+        if (request.homeConnectResponse) {
+            var statusCode = request.homeConnectResponse.code;
+            titleBadgeElement.text(statusCode);
+            titleBadgeElement.removeClass('badge-success');
+            titleBadgeElement.removeClass('badge-danger');
+            titleBadgeElement.removeClass('badge-warning');
+
+            if (statusCode >= 300 && statusCode != 404) {
+                titleBadgeElement.addClass('badge-danger');
+            } else if (statusCode >= 200 && statusCode < 300) {
+                titleBadgeElement.addClass('badge-success');
+            } else {
+                titleBadgeElement.addClass('badge-warning');
+            }
+        }
+
         responseHeaderElement.empty();
         if (request.homeConnectResponse && request.homeConnectResponse.header) {
             var responseHeader = request.homeConnectResponse.header;
     $('.reload-page').click(function () {
         location.reload();
     });
-
-    $('.request-chart').each(function (index, element) {
-        var bridgeId = $(this).data('bridge-id');
-        var chartElement = element;
-
-        function makeplot (bridgeId, chartElement) {
-            Plotly.d3.csv('requests?bridgeId=' + bridgeId + '&action=request-csv', function (data) {
-                processData(data, chartElement)
-            });
-        }
-
-        function processData (allRows, chartElement) {
-            console.log(allRows);
-            var x = [], y = [], standardDeviation = [];
-
-            for (var i = 0; i < allRows.length; i++) {
-                var row = allRows[i];
-                x.push(row['time']);
-                y.push(row['requests']);
-            }
-            console.log('X', x, 'Y', y, 'SD', standardDeviation);
-            makePlotly(x, y, standardDeviation, chartElement);
-        }
-
-        function makePlotly (x, y, standard_deviation, chartElement){
-            var traces = [{
-                x: x,
-                y: y,
-                type: 'histogram',
-                histfunc: 'sum',
-                xbins: {
-                    size: 1000
-                }
-            }];
-
-            Plotly.newPlot(chartElement, traces,
-                           {
-                               xaxis: {
-                                   rangemode: 'nonnegative',
-                                   autorange: true,
-                                   title: '',
-                                   type: 'date'
-                               },
-                               yaxis: {
-                                   title: 'requests',
-                                   rangemode: 'nonnegative'
-                               }
-                           },
-                           {
-                               displayModeBar: false,
-                               responsive: true
-                           });
-        }
-
-        makeplot(bridgeId, chartElement);
-    });
 }())
index 62cc0e7f8f12f654adec47fbdff66e06ecb748e7..e70625008bc07f0a7030c630d215526b43ed3598 100644 (file)
@@ -60,6 +60,7 @@
         <div class="modal-dialog modal-lg" role="document">
             <div class="modal-content">
                 <div class="modal-header">
+                    <span class="modal-title-badge badge mt-2 mr-1">200</span>
                     <h5 class="modal-title .text-truncate" id="requestDetailModalLabel">Request Details</h5>
                     <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                         <span aria-hidden="true">&times;</span>