This is an automated email from the ASF dual-hosted git repository.

duncangrant pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-ui.git


The following commit(s) were added to refs/heads/master by this push:
     new 133b2c6  Re-position logbook query parameters, query result and query 
result filters for a better UX
     new 5771c98  Merge pull request #240 from algairim/logbook-widget
133b2c6 is described below

commit 133b2c6bac5a3750e3375b097bf22e5518c8be77
Author: Mykola Mandra <[email protected]>
AuthorDate: Tue Jul 6 15:17:08 2021 +0100

    Re-position logbook query parameters, query result and query result filters 
for a better UX
    
    Signed-off-by: Mykola Mandra <[email protected]>
---
 ui-modules/utils/logbook/logbook.js            | 51 +++++++++---------
 ui-modules/utils/logbook/logbook.less          |  5 ++
 ui-modules/utils/logbook/logbook.template.html | 72 +++++++++++++++-----------
 3 files changed, 73 insertions(+), 55 deletions(-)

diff --git a/ui-modules/utils/logbook/logbook.js 
b/ui-modules/utils/logbook/logbook.js
index 11bdbd8..0514aa0 100644
--- a/ui-modules/utils/logbook/logbook.js
+++ b/ui-modules/utils/logbook/logbook.js
@@ -41,7 +41,6 @@ export function logbook() {
         $scope.getBrandedText = brBrandInfo.getBrandedText;
 
         let vm = this;
-        let scrollableElements = Array.from($element.find('textarea'));
 
         $scope.$on('logbook.query', () => {
             vm.doQuery();
@@ -56,7 +55,7 @@ export function logbook() {
         }
         vm.doQuery = function () {
             $scope.waitingResponse = true;
-            $scope.results = "Loading..."
+            $scope.results = 'Loading...';
 
             const levels = $scope.allLevels ? ['ALL'] : 
vm.getChecked($scope.logLevels);
 
@@ -64,8 +63,9 @@ export function logbook() {
                 reverseOrder: $scope.reverseOrder,
                 numberOfItems: $scope.numberOfItems,
                 levels: levels,
-                initTime: $scope.initTime,
-                finalTime: $scope.finalTime,
+                dateTimeFrom: $scope.dateTimeFrom,
+                dateTimeTo: $scope.dateTimeTo,
+                searchPhrase: $scope.searchPhrase
             }
 
             logbookApi.logbookQuery(params, true).then(function (success) {
@@ -74,7 +74,7 @@ export function logbook() {
                 $scope.results = vm.createLogOutputAsText($scope.logEntries);
                 scrollToMostRecentRecords();
             }, function (error) {
-                $scope.results = "Error getting the logs: \n" + 
error.error.message;
+                $scope.results = 'Error getting the logs: \n' + 
error.error.message;
                 console.log(JSON.stringify(error));
             }).finally(() => {
                 $scope.waitingResponse = false;
@@ -86,37 +86,37 @@ export function logbook() {
             const fieldsToShow = vm.getChecked($scope.logFields);
             success.forEach(entry => {
                 let outputLine = [];
-                if (fieldsToShow.includes("datetime") && entry.timestamp)
+                if (fieldsToShow.includes('datetime') && entry.timestamp)
                     outputLine.push(entry.timestamp);
-                if (fieldsToShow.includes("taskId") && entry.taskId)
+                if (fieldsToShow.includes('taskId') && entry.taskId)
                     outputLine.push(entry.taskId);
-                if (fieldsToShow.includes("entityIds") && entry.entityIds)
+                if (fieldsToShow.includes('entityIds') && entry.entityIds)
                     outputLine.push(entry.entityIds);
-                if (fieldsToShow.includes("level") && entry.level)
+                if (fieldsToShow.includes('level') && entry.level)
                     outputLine.push(entry.level);
-                if (fieldsToShow.includes("bundleId") && entry.bundleId)
+                if (fieldsToShow.includes('bundleId') && entry.bundleId)
                     outputLine.push(entry.bundleId);
-                if (fieldsToShow.includes("class") && entry.class)
+                if (fieldsToShow.includes('class') && entry.class)
                     outputLine.push(entry.class);
-                if (fieldsToShow.includes("threadName") && entry.threadName)
+                if (fieldsToShow.includes('threadName') && entry.threadName)
                     outputLine.push(entry.threadName);
-                if (fieldsToShow.includes("message") && entry.message)
+                if (fieldsToShow.includes('message') && entry.message)
                     outputLine.push(entry.message);
 
-                output.push(outputLine.join(" "));
+                output.push(outputLine.join(' '));
             })
-            return output.length > 0 ? output.join("\n") : "No results";
+            return output.length > 0 ? output.join('\n') : 'No results';
         }
 
         vm.resetForm = function () {
             $scope.numberOfItems = 1000;
             $scope.allLevels = true
             $scope.logLevels = [
-                {"name": "Debug", "value": "DEBUG", "selected": false},
-                {"name": "Info", "value": "INFO ", "selected": false},
-                {"name": "Warn", "value": "WARN ", "selected": false},
+                {"name": "Info", "value": "INFO", "selected": false},
+                {"name": "Warn", "value": "WARN", "selected": false},
                 {"name": "Error", "value": "ERROR", "selected": false},
                 {"name": "Fatal", "value": "FATAL", "selected": false},
+                {"name": "Debug", "value": "DEBUG", "selected": false},
             ];
             $scope.fieldsToShow = ['datetime', 'class', 'message']
             $scope.logFields = [
@@ -130,12 +130,13 @@ export function logbook() {
                 {"name": "Message", "value": "message", "selected": true},
             ];
             $scope.reverseOrder = false;
-            $scope.initTime = "";
-            $scope.finalTime = "";
+            $scope.dateTimeFrom = '';
+            $scope.dateTimeTo = '';
+            $scope.searchPhrase = '';
         }
 
-        $scope.$watch('allLevels', function (v) {
-            if (!v) {
+        $scope.$watch('allLevels', function (value) {
+            if (!value) {
                 if (vm.getChecked($scope.logLevels).length === 0) {
                     $scope.allLevels = true;
                 } else {
@@ -173,15 +174,15 @@ export function logbook() {
                     // NOOP: no need to scroll down. Reverse order displays 
the most recent records at the beginning.
                 } else {
                     // Scroll down to the most recent records.
-                    scrollableElements.forEach(item => item.scrollTop = 
item.scrollHeight);
+                    Array.from($element.find('textarea')).forEach(item => 
item.scrollTop = item.scrollHeight);
                 }
             });
         }
 
         $scope.waitingResponse = false;
         vm.resetForm();
-        $scope.logEntries = "";
-        $scope.results = "-empty-"
+        $scope.logEntries = '';
+        $scope.results = null;
     }
 }
 
diff --git a/ui-modules/utils/logbook/logbook.less 
b/ui-modules/utils/logbook/logbook.less
index 5150121..02f27de 100644
--- a/ui-modules/utils/logbook/logbook.less
+++ b/ui-modules/utils/logbook/logbook.less
@@ -34,7 +34,12 @@ input.logbook{
   width:150px;
   display:inline-block;
 }
+
 input[type=checkbox]{
   margin-left: 20px;
   margin-right: 5px;
+}
+
+textarea {
+  resize: none;
 }
\ No newline at end of file
diff --git a/ui-modules/utils/logbook/logbook.template.html 
b/ui-modules/utils/logbook/logbook.template.html
index 0cde2af..4f71df5 100644
--- a/ui-modules/utils/logbook/logbook.template.html
+++ b/ui-modules/utils/logbook/logbook.template.html
@@ -17,44 +17,56 @@
   under the License.
 -->
 
-<form>
-    <div>
-        <div class="form-group col-md-3">
-            <label for="initTime">Initial time</label>
-            <input id="initTime" type="datetime-local" ng-model="initTime" 
class="form-control">
-            <label for="finalTime">Final time</label>
-            <input id="finalTime" type="datetime-local" ng-model="finalTime" 
class="form-control">
-
-            <label for="numberOfItems">Number of lines</label>
-            <input id="numberOfItems" type="number" ng-model="numberOfItems" 
class="form-control logbook" min="1">
-            <label for="reverseOrder">Reverse order</label>
-            <input id="reverseOrder" type="checkbox" 
ng-model="reverseOrder"><br/>
-        </div>
-        <div class="form-group col-md-9">
-            <h4>Log level</h4>
+<form class="form-group">
+    <div class="row">
+        <div class="col-md-6">
+            <label>Levels:</label>
             <label>
-                <input type="checkbox" ng-model="allLevels" class=""/>All
+                <input type="checkbox" ng-model="allLevels" 
class="">All</label>
             </label>
             <label ng-repeat="level in logLevels">
-                <input type="checkbox" ng-model="level.selected" 
class=""/>{{level.name}}
+                <input type="checkbox" ng-model="level.selected" 
class="">{{level.name}}</label>
             </label>
         </div>
-        <div class="form-group col-md-9">
-            <h4>Fields</h4>
-            <label ng-repeat="field in logFields">
-                <input type="checkbox"  ng-model="field.selected" 
class=""/>{{field.name}}
-            </label>
+        <div class="col-md-3">
+            <label for="reverseOrder">Reverse order:</label>
+            <input id="reverseOrder" type="checkbox" ng-model="reverseOrder">
         </div>
     </div>
-    <div  class="form-group col-md-12">
-        <button class="btn btn-outline btn-success" ng-click="vm.doQuery()" 
ng-disabled="waitingResponse">
-            Query
-        </button>
-        <button class="btn btn-outline" ng-click="vm.resetForm()">
-            Reset form
-        </button>
+    <br/>
+    <div class="row">
+        <div class="col-md-2">
+            <label for="dateTimeFrom">From:</label>
+            <input id="dateTimeFrom" type="datetime-local" 
ng-model="dateTimeFrom" class="form-control">
+        </div>
+        <div class="col-md-2">
+            <label for="dateTimeTo">To:</label>
+            <input id="dateTimeTo" type="datetime-local" ng-model="dateTimeTo" 
class="form-control">
+        </div>
+        <div class="col-md-2">
+            <label for="numberOfItems">Number of lines:</label>
+            <input id="numberOfItems" type="number" ng-model="numberOfItems" 
class="form-control" min="1">
+        </div>
+        <div class="col-md-6">
+            <label for="searchPhrase">Search phrase:</label>
+            <div class="input-group">
+                <input id="searchPhrase" type="text" ng-model="searchPhrase" 
class="form-control" placeholder="(None)">
+                <div class="input-group-btn">
+                    <div class="btn-group" uib-dropdown keyboard-nav="true">
+                        <button class="btn btn-default btn-success" 
ng-click="vm.doQuery()" ng-disabled="waitingResponse">Query</button>
+                    </div>
+                </div>
+            </div>
+        </div>
     </div>
 </form>
-<div>
+<div ng-if="results">
     <textarea id="logContent" class="logbook-text" 
ng-model="results"></textarea>
+    <div class="form-group">
+        <br/>
+        <label>Filters:</label>
+        <label ng-repeat="field in logFields">
+            <input type="checkbox"  ng-model="field.selected" 
class="">{{field.name}}</label>
+        </label>
+    </div>
 </div>

Reply via email to