You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ea...@apache.org on 2019/03/12 20:27:14 UTC

[qpid-dispatch] branch master updated (e87577b -> 8196aa6)

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

eallen pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git.


    from e87577b  DISPATCH-1281 - Batch the cleanup of freed messages so they share a single unit of general-work per core-thread action sweep. This closes #457
     new c04b22e  About background
     new f646982  Dispatch logo in svg form for about box
     new 2acc503  About modal
     new 8196aa6  DISPATCH-1284 Implement patternfly masthead

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 console/CMakeLists.txt                             |   8 +
 console/stand-alone/index.html                     | 146 ++++++++------
 console/stand-alone/main.js                        |  89 ++++++---
 console/stand-alone/plugin/css/dispatch.css        |  54 ++++-
 console/stand-alone/plugin/html/qdrList.html       | 217 ++++++++++++---------
 console/stand-alone/plugin/html/qdrOverview.html   | 109 +++++------
 .../stand-alone/plugin/img/bg-modal-about-pf.png   | Bin 0 -> 10987 bytes
 console/stand-alone/plugin/img/logo-alt.svg        |  97 +++++++++
 console/stand-alone/plugin/js/qdrAbout.js          |  70 +++++++
 9 files changed, 554 insertions(+), 236 deletions(-)
 create mode 100644 console/stand-alone/plugin/img/bg-modal-about-pf.png
 create mode 100644 console/stand-alone/plugin/img/logo-alt.svg
 create mode 100644 console/stand-alone/plugin/js/qdrAbout.js


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[qpid-dispatch] 04/04: DISPATCH-1284 Implement patternfly masthead

Posted by ea...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

eallen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git

commit 8196aa62ce580e06a9cbadbd75f4cc5ea1b26361
Author: Ernest Allen <ea...@redhat.com>
AuthorDate: Tue Mar 12 16:26:31 2019 -0400

    DISPATCH-1284 Implement patternfly masthead
---
 console/CMakeLists.txt                           |   8 +
 console/stand-alone/index.html                   | 146 +++++++++------
 console/stand-alone/main.js                      |  89 +++++++---
 console/stand-alone/plugin/css/dispatch.css      |  54 +++++-
 console/stand-alone/plugin/html/qdrList.html     | 217 ++++++++++++++---------
 console/stand-alone/plugin/html/qdrOverview.html | 109 ++++++------
 6 files changed, 387 insertions(+), 236 deletions(-)

diff --git a/console/CMakeLists.txt b/console/CMakeLists.txt
index d9c5758..66e4c0c 100644
--- a/console/CMakeLists.txt
+++ b/console/CMakeLists.txt
@@ -80,6 +80,11 @@ if(CONSOLE_INSTALL)
             ${CONSOLE_SOURCE_DIR}/main.js
             ${CONSOLE_SOURCE_DIR}/favicon-32x32.png
           )
+          ## Files copied to the img/ dir
+          set(IMAGES
+            ${CONSOLE_SOURCE_DIR}/plugin/img/bg-modal-about-pf.png
+            ${CONSOLE_SOURCE_DIR}/plugin/img/logo-alt.svg
+          )
           ## Files copied to the css/ dir
           set(CSS_FONTS
             ${CONSOLE_SOURCE_DIR}/plugin/css/brokers.ttf
@@ -128,6 +133,9 @@ if(CONSOLE_INSTALL)
           install(FILES ${VENDOR_FONTS}
             DESTINATION ${CONSOLE_STAND_ALONE_INSTALL_DIR}/fonts/
           )
+          install(FILES ${IMAGES}
+            DESTINATION ${CONSOLE_STAND_ALONE_INSTALL_DIR}/img/
+          )
           install(DIRECTORY ${CONSOLE_SOURCE_DIR}/plugin/data/
             DESTINATION ${CONSOLE_STAND_ALONE_INSTALL_DIR}/plugin/data
           )
diff --git a/console/stand-alone/index.html b/console/stand-alone/index.html
index ade7c68..220cf50 100644
--- a/console/stand-alone/index.html
+++ b/console/stand-alone/index.html
@@ -20,15 +20,15 @@ under the License.
 <html xmlns:ng="https://angularjs.org">
 
 <head>
-    <meta charset="utf-8"/>
+    <meta charset="utf-8" />
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>Apache Qpid Dispatch Console</title>
 
     <link rel="shortcut icon" type="image/png" href="favicon-32x32.png" sizes="32x32" />
 
-    <link rel="stylesheet" href="css/vendor.min.css" type="text/css"/>
-    <link rel="stylesheet" href="css/dispatch.min.css" type="text/css"/>
+    <link rel="stylesheet" href="css/vendor.min.css" type="text/css" />
+    <link rel="stylesheet" href="css/dispatch.min.css" type="text/css" />
 
     <style>
         #installError {
@@ -36,67 +36,97 @@ under the License.
         }
     </style>
 </head>
+
 <body ng-app="QDR" ng-controller="QDR.Core">
 
 
-<nav class="navbar navbar-default navbar-pf navbar-fixed-top" role="navigation">
-    <div class="navbar-header">
-        <button type='button' class='navbar-toggle left page-menu-button' ng-click="pageMenuClicked()" data-toggle="collapse" data-target=".page-menu">
-            <span class="sr-only">Toggle navigation</span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-        </button>
-        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse-1">
-            <span class="sr-only">Toggle navigation</span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-            <span class="icon-bar"></span>
-        </button>
-        <a class="navbar-brand" href="/">
-            <span class="logo">Apache Qpid Dispatch Console</span>
-        </a>
-    </div>
-    
-    <div class="collapse navbar-collapse navbar-collapse-1">
-        <ul class="nav navbar-nav navbar-primary" ng-controller="QDR.NavBarController">
-            <li ng-repeat="link in breadcrumbs" title="{{link.title}}" ng-show="isValid(link)" ng-class='{active : isActive(link.href), "pull-right" : isRight(link), haschart: hasChart(link)}'>
-                <a ng-href="{{link.href}}{{hash}}" ng-bind-html="link.content"></a>
-            </li>
-        </ul>
-    </div>
-</nav>
+    <nav class="navbar navbar-default navbar-pf navbar-fixed-top" role="navigation">
+        <div class="navbar-header">
+            <button type='button' class='navbar-toggle left page-menu-button' ng-click="pageMenuClicked()"
+                data-toggle="collapse" data-target=".page-menu">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse-1">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+            <a class="navbar-brand" href="/">
+                <span class="logo">Apache Qpid Dispatch Console</span>
+            </a>
+            <div class="masthead-icons">
+                <div class="about" ng-controller="QDR.AboutController" title="About this console">
+                    <span class="fa fa-question-circle-o" ng-click="open()"></span>
+                    <pf-about-modal is-open="isOpen" on-close="onClose()" additional-info="additionalInfo"
+                        product-info="productInfo" title="title" copyright="copyright" img-alt="imgAlt"
+                        img-src="imgSrc">
+                    </pf-about-modal>
+                </div>
+                <span class="pf pficon-user"></span>
+                <span class="user-name">{{user}}</span>
+                <div class="dropdown">
+                    <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1"
+                        data-toggle="dropdown">
+                        <span class="caret"></span>
+                    </button>
+                    <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
+                        <!-- logout is method of QDR.Core -->
+                        <li role="presentation" ng-click="logout()">
+                            <a role="menuitem" tabindex="-1">Log out</a>
+                        </li>
+                    </ul>
+                </div>
+            </div>
+        </div>
 
-<div class="container-fluid">
-    <div class="row">
-        <div id="main_container" class="col-md-12">
-            <div ng-view><div id="installError">There was an error when installing the console. Please run make install for the router and check for errors.</div></div>
+        <div class="collapse navbar-collapse navbar-collapse-1">
+            <ul class="nav navbar-nav navbar-primary" ng-controller="QDR.NavBarController">
+                <li ng-repeat="link in breadcrumbs" title="{{link.title}}" ng-show="isValid(link)"
+                    ng-class='{active : isActive(link.href), "pull-right" : isRight(link), haschart: hasChart(link)}'>
+                    <a ng-href="{{link.href}}{{hash}}" ng-bind-html="link.content"></a>
+                </li>
+            </ul>
         </div>
-    </div>
-</div>
+    </nav>
 
-<script type="module" src="main.js"></script>
-<script type="text/javascript" src="js/vendor.min.js"></script>
-<script defer nomodule>
-    var installError = document.getElementById('installError');
-    if (installError) {
-        installError.innerHTML = 'This browser is not supported because it does not support es-2015 modules. <a href="https://www.ecma-international.org/ecma-262/6.0/">https://www.ecma-international.org/ecma-262/6.0/</a><br/>Please use a different browser.';
-    }
-</script>
+    <div class="container-fluid">
+        <div class="row">
+            <div id="main_container" class="col-md-12">
+                <div ng-view>
+                    <div id="installError">There was an error when installing the console. Please run make install for
+                        the router and check for errors.</div>
+                </div>
+            </div>
+        </div>
+    </div>
 
-<script>
-    // If angular hasn't loaded a page after 1 second, display the error message
-    setTimeout(function () {
+    <script type="module" src="main.js"></script>
+    <script type="text/javascript" src="js/vendor.min.js"></script>
+    <script defer nomodule>
         var installError = document.getElementById('installError');
-        if (installError)
-            installError.style.display = "block";
-    }, 1000);
-    $(function(){
-        $('.nav a').on('click', function(){
-            $('.navbar-collapse').collapse('hide');
-        });
-    })
-</script>
+        if (installError) {
+            installError.innerHTML = 'This browser is not supported because it does not support es-2015 modules. <a href="https://www.ecma-international.org/ecma-262/6.0/">https://www.ecma-international.org/ecma-262/6.0/</a><br/>Please use a different browser.';
+        }
+    </script>
+
+    <script>
+        // If angular hasn't loaded a page after 1 second, display the error message
+        setTimeout(function () {
+            var installError = document.getElementById('installError');
+            if (installError)
+                installError.style.display = "block";
+        }, 1000);
+        $(function () {
+            $('.nav a').on('click', function () {
+                $('.navbar-collapse').collapse('hide');
+            });
+        })
+    </script>
 
 </body>
-</html>
+
+</html>
\ No newline at end of file
diff --git a/console/stand-alone/main.js b/console/stand-alone/main.js
index 0fc5c30..2be7114 100644
--- a/console/stand-alone/main.js
+++ b/console/stand-alone/main.js
@@ -43,19 +43,20 @@ import { DetailDialogController, SubTable } from './plugin/js/dlgDetailControlle
 import { SettingsController } from './plugin/js/qdrSettings.js';
 import { SchemaController } from './plugin/js/qdrSchema.js';
 import { ChartsController } from './plugin/js/qdrCharts.js';
+import { AboutController } from './plugin/js/qdrAbout.js';
 import { posint } from './plugin/js/posintDirective.js';
 
-(function(QDR) {
+(function (QDR) {
 
   /**
    * This plugin's angularjs module instance
    */
   QDR.module = angular.module('QDR', ['ngRoute', 'ngSanitize', 'ngResource', 'ui.bootstrap',
     'ui.grid', 'ui.grid.selection', 'ui.grid.autoResize', 'ui.grid.resizeColumns', 'ui.grid.saveState',
-    'ui.slider', 'ui.checkbox', 'patternfly.charts', 'patternfly.card']);
+    'ui.slider', 'ui.checkbox', 'patternfly.charts', 'patternfly.card', 'patternfly.modals']);
 
   // set up the routing for this plugin
-  QDR.module.config(function($routeProvider) {
+  QDR.module.config(function ($routeProvider) {
     $routeProvider
       .when('/', {
         templateUrl: QDRTemplatePath + 'qdrOverview.html'
@@ -88,9 +89,9 @@ import { posint } from './plugin/js/posintDirective.js';
     $compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|mailto|chrome-extension):/);
   });
 
-  QDR.module.filter('to_trusted', ['$sce', function($sce){
-    return function(text) {
-      return $sce.trustAsHtml(text+'');
+  QDR.module.filter('to_trusted', ['$sce', function ($sce) {
+    return function (text) {
+      return $sce.trustAsHtml(text + '');
     };
   }]);
 
@@ -105,19 +106,19 @@ import { posint } from './plugin/js/posintDirective.js';
       if (!str)
         return '';
       return str.replace(/(\w)(\w*)/g,
-        function(g0,g1,g2){return g1.toUpperCase() + g2.toLowerCase();});
+        function (g0, g1, g2) { return g1.toUpperCase() + g2.toLowerCase(); });
     };
   });
 
   QDR.module.filter('safePlural', function () {
     return function (str) {
       var es = ['x', 'ch', 'ss', 'sh'];
-      for (var i=0; i<es.length; ++i) {
+      for (var i = 0; i < es.length; ++i) {
         if (str.endsWith(es[i]))
           return str + 'es';
       }
       if (str.endsWith('y'))
-        return str.substr(0, str.length-2) + 'ies';
+        return str.substr(0, str.length - 2) + 'ies';
       if (str.endsWith('s'))
         return str;
       return str + 's';
@@ -142,7 +143,7 @@ import { posint } from './plugin/js/posintDirective.js';
   });
   // one-time initialization happens in the run function
   // of our module
-  QDR.module.run( ['$rootScope', '$route', '$timeout', '$location', '$log', 'QDRService', 'QDRChartService',  function ($rootScope, $route, $timeout, $location, $log, QDRService, QDRChartService) {
+  QDR.module.run(['$rootScope', '$route', '$timeout', '$location', '$log', 'QDRService', 'QDRChartService', function ($rootScope, $route, $timeout, $location, $log, QDRService, QDRChartService) {
     let QDRLog = new QDRLogger($log, 'main');
     QDRLog.info('************* creating Dispatch Console ************');
 
@@ -164,10 +165,10 @@ import { posint } from './plugin/js/posintDirective.js';
         if (search.org === 'connect')
           $location.search('org', 'overview');
       }
-      var connectOptions = {address: host, port: port};
-      QDRLog.info('Attempting AMQP over websockets connection using address:port of browser ('+host+':'+port+')');
+      var connectOptions = { address: host, port: port };
+      QDRLog.info('Attempting AMQP over websockets connection using address:port of browser (' + host + ':' + port + ')');
       QDRService.management.connection.testConnect(connectOptions)
-        .then( function () {
+        .then(function () {
           // We didn't connect with reconnect: true flag.
           // The reason being that if we used reconnect:true and the connection failed, rhea would keep trying. There
           // doesn't appear to be a way to tell it to stop trying to reconnect.
@@ -176,9 +177,9 @@ import { posint } from './plugin/js/posintDirective.js';
           connectOptions.reconnect = true;
           // complete the connection (create the sender/receiver)
           QDRService.connect(connectOptions)
-            .then( function () {
-            // register a callback for when the node list is available (needed for loading saved charts)
-              QDRService.management.topology.addUpdatedAction('initChartService', function() {
+            .then(function () {
+              // register a callback for when the node list is available (needed for loading saved charts)
+              QDRService.management.topology.addUpdatedAction('initChartService', function () {
                 QDRService.management.topology.delUpdatedAction('initChartService');
                 QDRChartService.init(); // initialize charting service after we are connected
               });
@@ -196,7 +197,7 @@ import { posint } from './plugin/js/posintDirective.js';
         });
     }
 
-    $rootScope.$on('$routeChangeSuccess', function() {
+    $rootScope.$on('$routeChangeSuccess', function () {
       var path = $location.path();
       if (path !== '/connect') {
         localStorage[QDR_LAST_LOCATION] = path;
@@ -204,7 +205,7 @@ import { posint } from './plugin/js/posintDirective.js';
     });
   }]);
 
-  QDR.module.controller ('QDR.MainController', ['$scope', '$log', '$location', function ($scope, $log, $location) {
+  QDR.module.controller('QDR.MainController', ['$scope', '$log', '$location', function ($scope, $log, $location) {
     let QDRLog = new QDRLogger($log, 'MainController');
     QDRLog.debug('started QDR.MainController with location.url: ' + $location.url());
     QDRLog.debug('started QDR.MainController with window.location.pathname : ' + window.location.pathname);
@@ -213,22 +214,22 @@ import { posint } from './plugin/js/posintDirective.js';
       id: 'qdr',
       content: 'Qpid Dispatch Router Console',
       title: 'Dispatch Router Console',
-      isValid: function() { return true; },
-      href: function() { return '#connect'; },
-      isActive: function() { return true; }
+      isValid: function () { return true; },
+      href: function () { return '#connect'; },
+      isActive: function () { return true; }
     });
   }]);
 
-  QDR.module.controller ('QDR.Core', function ($scope, $rootScope) {
+  QDR.module.controller('QDR.Core', function ($scope, $rootScope, $timeout, QDRService) {
     $scope.alerts = [];
     $scope.breadcrumb = {};
-    $scope.closeAlert = function(index) {
+    $scope.closeAlert = function (index) {
       $scope.alerts.splice(index, 1);
     };
-    $scope.$on('setCrumb', function(event, data) {
+    $scope.$on('setCrumb', function (event, data) {
       $scope.breadcrumb = data;
     });
-    $scope.$on('newAlert', function(event, data) {
+    $scope.$on('newAlert', function (event, data) {
       $scope.alerts.push(data);
       $scope.$apply();
     });
@@ -239,6 +240,41 @@ import { posint } from './plugin/js/posintDirective.js';
     $scope.pageMenuClicked = function () {
       $rootScope.$broadcast('pageMenuClicked');
     };
+    $scope.logout = function () {
+      QDRService.management.connection.disconnect();
+      location.href = "#/connect";
+    };
+    $scope.user = '';
+    let onConnected = function () {
+      if (!QDRService.management.connection.is_connected()) {
+        setTimeout(onConnected, 1000);
+        return;
+      }
+      QDRService.management.connection.addDisconnectAction(onDisconnect);
+      let parts = QDRService.management.connection.getReceiverAddress().split("/");
+      parts[parts.length - 1] = "$management";
+      let router = parts.join('/');
+      QDRService.management.topology.fetchEntity(router, "connection", [], function (nodeId, entity, response) {
+        $timeout(function () {
+          response.results.some(result => {
+            let c = QDRService.utilities.flatten(response.attributeNames, result);
+            if (QDRService.utilities.isConsole(c)) {
+              $scope.user = c.user;
+              return true;
+            }
+            return false;
+          });
+        });
+      });
+    };
+
+    let onDisconnect = function () {
+      QDRService.management.connection.addConnectAction(onConnected);
+      $timeout(() => {
+        $scope.user = '';
+      });
+    };
+    onDisconnect();
   });
 
   QDR.module.controller('QDR.NavBarController', NavBarController);
@@ -254,7 +290,8 @@ import { posint } from './plugin/js/posintDirective.js';
   QDR.module.controller('QDR.ListController', ListController);
   QDR.module.controller('QDR.SchemaController', SchemaController);
   QDR.module.controller('QDR.ChartsController', ChartsController);
-  
+  QDR.module.controller('QDR.AboutController', AboutController);
+
   QDR.module.service('QDRService', QDRService);
   QDR.module.service('QDRChartService', QDRChartService);
   QDR.module.directive('posint', posint);
diff --git a/console/stand-alone/plugin/css/dispatch.css b/console/stand-alone/plugin/css/dispatch.css
index 39a7284..2a7472a 100644
--- a/console/stand-alone/plugin/css/dispatch.css
+++ b/console/stand-alone/plugin/css/dispatch.css
@@ -461,7 +461,7 @@ ul.qdrTopoModes {
 }
 
 .overview-tree, .qdr-attributes {
-  min-height: calc(100vh - 90px)
+  min-height: calc(100vh - 100px)
 }
 /*
 .treeContainer {
@@ -1660,13 +1660,11 @@ svg {
   }
 
 /* The following are for matching Patternfly styles */
-span.logo {
-    letter-spacing: 3px;
+  span.logo {
+    letter-spacing: 2px;
+    font-weight: bold;
   }
   
-  .navbar-pf .navbar-brand {
-    padding: 2px 0 2px;
-  }
   /* using fancytree instead of treeview */
   
   #overtree ul.fancytree-container,
@@ -1874,7 +1872,7 @@ span.logo {
   
   .pane-bar {
     float: right;
-    height: calc(100vh - 75px);
+    height: calc(100vh - 89px);
     width: 6px;
     background-color: white;
     border: 1px solid #e0e0e0;
@@ -2023,7 +2021,7 @@ span.logo {
   }
   
   .navbar-fixed-top + .container-fluid {
-    padding-top: 71px;
+    padding-top: 83px;
   }
   
   @media (max-width: 768px) {
@@ -2039,7 +2037,7 @@ span.logo {
   @media (min-width: 768px) {
     .navbar-collapse.page-menu {
       padding-right: 0;
-      /* height: calc(100vh - 74px) !important; */
+      /* height: calc(100vh - 84px) !important; */
     }
   }
   @media (max-width: 768px) {
@@ -2103,3 +2101,41 @@ span.logo {
     color: white;
     background-color: #444444;
   }
+
+  .masthead-icons {
+    position: absolute;
+    right: 1em;
+    color: white;
+    padding-top: 5px;
+    font-size: large;
+    cursor: pointer;
+  }
+
+  .masthead-icons div.about {
+    display: inline-block;
+    margin-right: 1em;
+  }
+
+  .masthead-icons div.dropdown {
+    display: inline-block;
+  }
+
+  .masthead-icons div.dropdown button {
+    border: 0px;
+    background: transparent;
+    color: #F8F8F8;
+    font-weight: bold;
+  }
+
+  .masthead-icons .dropdown-menu {
+    right: 0;
+    left: auto;
+  }
+
+  .masthead-icons span.caret {
+    font-weight: bold;
+  }
+
+  .masthead-icons span.user-name {
+    font-size: 12px;
+  }
diff --git a/console/stand-alone/plugin/html/qdrList.html b/console/stand-alone/plugin/html/qdrList.html
index fc9b19c..845339d 100644
--- a/console/stand-alone/plugin/html/qdrList.html
+++ b/console/stand-alone/plugin/html/qdrList.html
@@ -18,61 +18,59 @@ under the License.
 -->
 
 <style>
-.list-grid {
-    padding-left: 300px;
-}
-
-span.fancytree-icon {
-    margin-left: 0;
-}
-
-._treeContainer {
-    width: 300px;
-    padding-right: 10px;
-}
-
-.tree-header {
-    z-index: 4;
-}
-
-#list-controller .tree-header {
-  height: auto;
-}
-
-#list-controller select {
-  height: 25px;
-  width: 300px;
-  background-color: #333333;
-  border: 0;
-}
-
-#list-controller div.list-grid select {
-    background-color: white;
-}
-
-.list-grid {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: calc(100% - 40px);
-    margin-left: 20px;
-}
-
-@media (min-width: 768px) {
-    .navbar-collapse.page-menu {
-        padding-right: 0;
-        min-height: calc(100vh - 71px) !important;
+    .list-grid {
+        padding-left: 300px;
+    }
+
+    span.fancytree-icon {
+        margin-left: 0;
+    }
+
+    ._treeContainer {
+        width: 300px;
+        padding-right: 10px;
+    }
+
+    .tree-header {
+        z-index: 4;
+    }
+
+    #list-controller .tree-header {
+        height: auto;
+    }
+
+    #list-controller select {
+        height: 25px;
+        width: 300px;
+        background-color: #333333;
+        border: 0;
+    }
+
+    #list-controller div.list-grid select {
+        background-color: white;
+    }
+
+    .list-grid {
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: calc(100% - 40px);
+        margin-left: 20px;
+    }
+
+    @media (min-width: 768px) {
+        .navbar-collapse.page-menu {
+            padding-right: 0;
+            min-height: calc(100vh - 84px) !important;
+        }
     }
-}
 </style>
 
 <div id="list-controller" ng-controller="QDR.ListController">
 
     <div class="page-menu navbar-collapse collapse">
-        <div class="tree-header"><select id="routerSelect"
-            ng-options="node as node.name for node in nodes" 
-            ng-model="currentNode" 
-            ng-change="selectNode(currentNode)"></select></div>
+        <div class="tree-header"><select id="routerSelect" ng-options="node as node.name for node in nodes"
+                ng-model="currentNode" ng-change="selectNode(currentNode)"></select></div>
         <div class="_treeContainer">
             <div id="entityTree" onSelect="onTreeSelected" onRoot="onRootReady" hideRoot="true"></div>
             <div ng-init="treeReady()"></div>
@@ -82,17 +80,20 @@ span.fancytree-icon {
     <div class="list-grid">
         <div class="row-fluid qdrListActions">
             <ul class="nav nav-tabs">
-                <li ng-repeat="mode in modes" ng-show="isValid(mode)" ng-click="selectMode(mode)" ng-class="{active : isModeSelected(mode)}" title="{{mode.title}}" ng-bind-html="mode.content"> </li>
+                <li ng-repeat="mode in modes" ng-show="isValid(mode)" ng-click="selectMode(mode)"
+                    ng-class="{active : isModeSelected(mode)}" title="{{mode.title}}" ng-bind-html="mode.content"> </li>
             </ul>
             <h4>{{selectedRecordName | to_trusted}}</h4>
             <div ng-show="currentMode.id === 'attributes'" class="selectedItems">
-                <div ng-show="selectedRecordName === selectedEntity" class="no-content">There are no {{selectedEntity | safePlural | to_trusted}}</div>
-                <div id='details-grid' ng-hide="selectedRecordName === selectedEntity" ui-grid="details" ui-grid-resize-columns ui-grid-save-state
-                ui-grid-auto-resize ng-style="getTableHeight()"></div>
+                <div ng-show="selectedRecordName === selectedEntity" class="no-content">There are no
+                    {{selectedEntity | safePlural | to_trusted}}</div>
+                <div id='details-grid' ng-hide="selectedRecordName === selectedEntity" ui-grid="details"
+                    ui-grid-resize-columns ui-grid-save-state ui-grid-auto-resize ng-style="getTableHeight()"></div>
             </div>
             <div ng-show="currentMode.id === 'delete'">
                 <div class="delete" ng-show="selectedRecordName !== selectedEntity">
-                    <button class="btn btn-primary" ng-click="remove()">Delete</button> {{selectedRecordName | to_trusted}}
+                    <button class="btn btn-primary" ng-click="remove()">Delete</button>
+                    {{selectedRecordName | to_trusted}}
                 </div>
                 <div ng-hide="selectedRecordName !== selectedEntity">
                     There are no {{selectedEntity | safePlural | to_trusted}}
@@ -105,28 +106,61 @@ span.fancytree-icon {
                             <th>Attribute</th>
                             <th>Value</th>
                         </tr>
-                    <tr title="{{attribute.title}}" ng-repeat="attribute in detailFields">
-                        <td><label for="{{attribute.name}}">{{attribute.name | humanify | to_trusted}}</label></td>
-                        <!-- we can't do <input type="{angular expression}"> because... jquery throws an exception because... -->
-                        <td>
-                        <div ng-if="attribute.input == 'input'">
-                            <!-- ng-pattern="testPattern(attribute)" -->
-                            <div ng-if="attribute.type == 'number'"><input type="number" name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.rawValue" ng-required="attribute.required" ng-class="{required: attribute.required, unique: attribute.unique}" class="ui-widget-content ui-corner-all"/><span ng-if="attribute.required" title="required" class="required-indicator"></span><span ng-if="attribute.unique" title="unique" class="unique-indicator"></span></div>
-                            <div ng-if="attribute.type == 'text'"><input type="text" name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.attributeValue" ng-required="attribute.required" ng-class="{required: attribute.required, unique: attribute.unique}" class="ui-widget-content ui-corner-all"/><span ng-if="attribute.required" title="required" class="required-indicator"></span><span ng-if="attribute.unique" title="unique" class="unique-indicator"></span></div>
-                            <div ng-if="attribute.type == 'textarea'"><textarea name="{{attribute.name}}" id="{{attribute.name}}" ng-model="attribute.attributeValue" ng-required="attribute.required" ng-class="{required: attribute.required, unique: attribute.unique}" class="ui-widget-content ui-corner-all"></textarea><span ng-if="attribute.required" title="required" class="required-indicator"></span><span ng-if="attribute.unique" title="unique" class="unique-indicator"></span></div>
-                            <span ng-if="attribute.type == 'disabled'" >{{getAttributeValue(attribute) | to_trusted}}</span>
-                        </div>
-                        <div ng-if="attribute.input == 'select'">
-                            <select id="{{attribute.name}}" ng-model="attribute.selected" ng-required="attribute.required" ng-class="{required: attribute.required, unique: attribute.unique}" ng-options="item for item in attribute.rawtype track by item"></select>
-                            <span ng-if="attribute.required" title="required" class="required-indicator"></span><span ng-if="attribute.unique" title="unique" class="unique-indicator"></span>
-                        </div>
-                        <div ng-if="attribute.input == 'boolean'" class="boolean">
-                            <label><input type="radio" ng-model="attribute.rawValue" ng-value="true"> True</label>
-                            <label><input type="radio" ng-model="attribute.rawValue" ng-value="false"> False</label>
-                        </div>
-                        </td>
-                    </tr>
-                    <tr><td></td><td><button class="btn btn-primary" type="button" ng-click="ok()">{{operation | Pascalcase | to_trusted}}</button></td></tr>
+                        <tr title="{{attribute.title}}" ng-repeat="attribute in detailFields">
+                            <td><label for="{{attribute.name}}">{{attribute.name | humanify | to_trusted}}</label></td>
+                            <!-- we can't do <input type="{angular expression}"> because... jquery throws an exception because... -->
+                            <td>
+                                <div ng-if="attribute.input == 'input'">
+                                    <!-- ng-pattern="testPattern(attribute)" -->
+                                    <div ng-if="attribute.type == 'number'"><input type="number"
+                                            name="{{attribute.name}}" id="{{attribute.name}}"
+                                            ng-model="attribute.rawValue" ng-required="attribute.required"
+                                            ng-class="{required: attribute.required, unique: attribute.unique}"
+                                            class="ui-widget-content ui-corner-all" /><span ng-if="attribute.required"
+                                            title="required" class="required-indicator"></span><span
+                                            ng-if="attribute.unique" title="unique" class="unique-indicator"></span>
+                                    </div>
+                                    <div ng-if="attribute.type == 'text'"><input type="text" name="{{attribute.name}}"
+                                            id="{{attribute.name}}" ng-model="attribute.attributeValue"
+                                            ng-required="attribute.required"
+                                            ng-class="{required: attribute.required, unique: attribute.unique}"
+                                            class="ui-widget-content ui-corner-all" /><span ng-if="attribute.required"
+                                            title="required" class="required-indicator"></span><span
+                                            ng-if="attribute.unique" title="unique" class="unique-indicator"></span>
+                                    </div>
+                                    <div ng-if="attribute.type == 'textarea'"><textarea name="{{attribute.name}}"
+                                            id="{{attribute.name}}" ng-model="attribute.attributeValue"
+                                            ng-required="attribute.required"
+                                            ng-class="{required: attribute.required, unique: attribute.unique}"
+                                            class="ui-widget-content ui-corner-all"></textarea><span
+                                            ng-if="attribute.required" title="required"
+                                            class="required-indicator"></span><span ng-if="attribute.unique"
+                                            title="unique" class="unique-indicator"></span></div>
+                                    <span
+                                        ng-if="attribute.type == 'disabled'">{{getAttributeValue(attribute) | to_trusted}}</span>
+                                </div>
+                                <div ng-if="attribute.input == 'select'">
+                                    <select id="{{attribute.name}}" ng-model="attribute.selected"
+                                        ng-required="attribute.required"
+                                        ng-class="{required: attribute.required, unique: attribute.unique}"
+                                        ng-options="item for item in attribute.rawtype track by item"></select>
+                                    <span ng-if="attribute.required" title="required"
+                                        class="required-indicator"></span><span ng-if="attribute.unique" title="unique"
+                                        class="unique-indicator"></span>
+                                </div>
+                                <div ng-if="attribute.input == 'boolean'" class="boolean">
+                                    <label><input type="radio" ng-model="attribute.rawValue" ng-value="true">
+                                        True</label>
+                                    <label><input type="radio" ng-model="attribute.rawValue" ng-value="false">
+                                        False</label>
+                                </div>
+                            </td>
+                        </tr>
+                        <tr>
+                            <td></td>
+                            <td><button class="btn btn-primary" type="button"
+                                    ng-click="ok()">{{operation | Pascalcase | to_trusted}}</button></td>
+                        </tr>
                     </table>
                 </fieldset>
             </div>
@@ -137,17 +171,23 @@ span.fancytree-icon {
                             <td align="left" colspan="2">{{entry.time}}</td>
                         </tr>
                         <tr>
-                            <td>Type</td><td>{{entry.type}}</td>
+                            <td>Type</td>
+                            <td>{{entry.type}}</td>
                         </tr>
                         <tr>
-                            <td>Source</td><td>{{entry.source}}:{{entry.line}}</td>
+                            <td>Source</td>
+                            <td>{{entry.source}}:{{entry.line}}</td>
                         </tr>
                         <tr>
-                            <td valign="middle">Message</td><td valign="middle"><pre>{{entry.message}}</pre></td>
+                            <td valign="middle">Message</td>
+                            <td valign="middle">
+                                <pre>{{entry.message}}</pre>
+                            </td>
                         </tr>
                     </table>
                 </div>
-                <div ng-if="logResults.length == 0 && !fetchingLog">No log entries for {{selectedRecordName | to_trusted}}</div>
+                <div ng-if="logResults.length == 0 && !fetchingLog">No log entries for
+                    {{selectedRecordName | to_trusted}}</div>
                 <div ng-if="fetchingLog">Fetching logs for {{selectedRecordName | to_trusted}}</div>
             </div>
         </div>
@@ -156,14 +196,15 @@ span.fancytree-icon {
 
 <style>
     @media (min-width: 768px) {
-      .list-grid {
-        padding-left: 300px;
-      }
+        .list-grid {
+            padding-left: 300px;
+        }
     }
+
     @media (max-width: 768px) {
-      .list-grid {
-          padding-left: 0;
-      }
-    
+        .list-grid {
+            padding-left: 0;
+        }
+
     }
-</style>
+</style>
\ No newline at end of file
diff --git a/console/stand-alone/plugin/html/qdrOverview.html b/console/stand-alone/plugin/html/qdrOverview.html
index e1a1fce..98d7027 100644
--- a/console/stand-alone/plugin/html/qdrOverview.html
+++ b/console/stand-alone/plugin/html/qdrOverview.html
@@ -18,72 +18,72 @@ under the License.
 -->
 
 <style>
-@media (min-width: 768px) {
-  .overview-grid {
-    padding-left: 300px;
-  }
-}
-@media (max-width: 768px) {
-  .overview-grid {
-      padding-left: 0;
-  }
+    @media (min-width: 768px) {
+        .overview-grid {
+            padding-left: 300px;
+        }
+    }
 
-}
+    @media (max-width: 768px) {
+        .overview-grid {
+            padding-left: 0;
+        }
 
-span.fancytree-icon {
-    margin-left: 0;
-}
+    }
 
-.treeContainer {
-    width: 300px;
-    padding-right: 10px;
-}
+    span.fancytree-icon {
+        margin-left: 0;
+    }
 
-  .gridDetails .aChart {
-    margin-left: -1em;
-    margin-right: 2em;
-    width: 400px;
-  }
+    .treeContainer {
+        width: 300px;
+        padding-right: 10px;
+    }
 
-@media (max-width: 768px) {
-  .gridDetails .aChart {
-    margin-right: 1em;
-    width: 380px;
-  }
-}
+    .gridDetails .aChart {
+        margin-left: -1em;
+        margin-right: 2em;
+        width: 400px;
+    }
 
-.page-menu {
-    top: 0;
-}
+    @media (max-width: 768px) {
+        .gridDetails .aChart {
+            margin-right: 1em;
+            width: 380px;
+        }
+    }
 
-.overview-grid {
-    position: absolute;
-    top: 0;
-    left: 0;
-    width: calc(100% - 40px);
-    margin-left: 20px;
-}
+    .page-menu {
+        top: 0;
+    }
 
-@media (min-width: 768px) {
-    .navbar-collapse.page-menu {
-        padding-right: 0;
-        min-height: calc(100vh - 71px) !important;
+    .overview-grid {
+        position: absolute;
+        top: 0;
+        left: 0;
+        width: calc(100% - 40px);
+        margin-left: 20px;
     }
-}
 
-div.chartContainer {
-    clear: both;
-    width: 100%;
-}
+    @media (min-width: 768px) {
+        .navbar-collapse.page-menu {
+            padding-right: 0;
+            min-height: calc(100vh - 84px) !important;
+        }
+    }
 
-.line-chart-pf .c3-zoom-rect {
-    opacity: 0 !important;
-}
+    div.chartContainer {
+        clear: both;
+        width: 100%;
+    }
 
-.trend-header-compact-pf {
-    width: 11em;
-}
+    .line-chart-pf .c3-zoom-rect {
+        opacity: 0 !important;
+    }
 
+    .trend-header-compact-pf {
+        width: 11em;
+    }
 </style>
 
 <div id="overview-controller" ng-controller="QDR.OverviewController">
@@ -311,5 +311,4 @@ div.chartContainer {
     <div class="modal-footer">
         <button class="btn btn-primary" type="button" ng-click="ok()">Close</button>
     </div>
-</script>
-
+</script>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[qpid-dispatch] 01/04: About background

Posted by ea...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

eallen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git

commit c04b22e23cb2abd493ef419516026861a8be69b2
Author: Ernest Allen <ea...@redhat.com>
AuthorDate: Tue Mar 12 16:20:17 2019 -0400

    About background
---
 console/stand-alone/plugin/img/bg-modal-about-pf.png | Bin 0 -> 10987 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/console/stand-alone/plugin/img/bg-modal-about-pf.png b/console/stand-alone/plugin/img/bg-modal-about-pf.png
new file mode 100644
index 0000000..7309fa8
Binary files /dev/null and b/console/stand-alone/plugin/img/bg-modal-about-pf.png differ


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[qpid-dispatch] 02/04: Dispatch logo in svg form for about box

Posted by ea...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

eallen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git

commit f646982c1ce18554ac778da355d8a9dc060ed068
Author: Ernest Allen <ea...@redhat.com>
AuthorDate: Tue Mar 12 16:20:44 2019 -0400

    Dispatch logo in svg form for about box
---
 console/stand-alone/plugin/img/logo-alt.svg | 97 +++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)

diff --git a/console/stand-alone/plugin/img/logo-alt.svg b/console/stand-alone/plugin/img/logo-alt.svg
new file mode 100644
index 0000000..f0eb38b
--- /dev/null
+++ b/console/stand-alone/plugin/img/logo-alt.svg
@@ -0,0 +1,97 @@
+<svg width="48" height="48" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Created with SVG-edit - https://github.com/SVG-Edit/svgedit-->
+ <defs>
+  <symbol id="svg_12" viewBox="0 0 2392.5 4226.6" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+   <linearGradient id="svg_11" x1="0.16538" x2="1.5947" y1="0.63665" y2="0.19964">
+    <stop offset="0" stop-color="#F69923"/>
+    <stop offset="0.3123" stop-color="#F79A23"/>
+    <stop offset="0.8383" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m1798.9,20.1c-66.3,39.1 -176.4,149.9 -307.9,310.4l120.8,228c84.8,-121.3 170.9,-230.4 257.8,-323.6c6.7,-7.4 10.2,-10.9 10.2,-10.9c-3.4,3.6 -6.8,7.3 -10.2,10.9c-28.1,31 -113.4,130.5 -242.1,328.1c123.9,-6.2 314.3,-31.5 469.6,-58.1c46.2,-258.8 -45.3,-377.3 -45.3,-377.3s-116.3,-188.2 -252.9,-107.5z" fill="url(#svg_11)" id="svg_1"/>
+   <path d="m1594.4,1320.7c0.9,-0.2 1.8,-0.3 2.7,-0.5l-17.4,1.9c-1.1,0.5 -2,1 -3.1,1.4c6,-0.9 11.9,-1.9 17.8,-2.8z" fill="none" id="svg_16"/>
+   <path d="m1471.1,1729.1c-9.9,2.2 -20,3.9 -30.2,5.4c10.2,-1.5 20.3,-3.3 30.2,-5.4z" fill="none" id="svg_17"/>
+   <path d="m633.1,2645.2c1.3,-3.4 2.6,-6.8 3.8,-10.2c26.6,-70.2 52.9,-138.4 79,-204.9c29.3,-74.6 58.2,-146.8 86.8,-216.8c30.1,-73.8 59.8,-145.1 89.1,-214c30.7,-72.3 61,-141.9 90.7,-208.9c24.2,-54.5 48,-107.3 71.5,-158.4c7.8,-17 15.6,-33.9 23.4,-50.6c15.4,-33.1 30.7,-65.6 45.7,-97.3c13.9,-29.3 27.7,-57.9 41.4,-86c4.5,-9.4 9.1,-18.6 13.6,-27.9c0.7,-1.5 1.5,-3 2.2,-4.5l-14.8,1.6l-11.8,-23.2c-1.1,2.3 -2.3,4.5 -3.5,6.8c-21.2,42.1 -42.2,84.6 -63,127.5c-12,24.8 -24,49.7 -35.9,74.7c-33,69.3 -65 [...]
+   <path d="m1433.2,1735.7l0,0c0.1,0 0.1,-0.1 0.2,-0.1c0,0 -0.1,0 -0.2,0.1z" fill="none" id="svg_19"/>
+   <path d="m1393.2,1934.8c-15.4,2.8 -31.3,5.5 -47.6,8.3c-0.1,0 -0.2,0.1 -0.3,0.1c8.2,-1.2 16.3,-2.4 24.3,-3.8c8,-1.4 15.8,-2.9 23.6,-4.6z" fill="#BE202E" id="svg_20"/>
+   <path d="m1393.2,1934.8c-15.4,2.8 -31.3,5.5 -47.6,8.3c-0.1,0 -0.2,0.1 -0.3,0.1c8.2,-1.2 16.3,-2.4 24.3,-3.8c8,-1.4 15.8,-2.9 23.6,-4.6z" fill="#BE202E" id="svg_21" opacity="0.35"/>
+   <path d="m1433.6,1735.5c0,0 -0.1,0 -0.1,0.1c-0.1,0 -0.1,0.1 -0.2,0.1c2.6,-0.3 5.1,-0.8 7.6,-1.1c10.3,-1.5 20.4,-3.3 30.2,-5.4c-12.3,2 -24.8,4.2 -37.5,6.3l0,0l0,0z" fill="#BE202E" id="svg_22"/>
+   <path d="m1433.6,1735.5c0,0 -0.1,0 -0.1,0.1c-0.1,0 -0.1,0.1 -0.2,0.1c2.6,-0.3 5.1,-0.8 7.6,-1.1c10.3,-1.5 20.4,-3.3 30.2,-5.4c-12.3,2 -24.8,4.2 -37.5,6.3l0,0l0,0z" fill="#BE202E" id="svg_23" opacity="0.35"/>
+   <linearGradient id="svg_10" x1="-2.17759" x2="0.74719" y1="3.94596" y2="0.1377">
+    <stop offset="0.3233" stop-color="#9E2064"/>
+    <stop offset="0.6302" stop-color="#C92037"/>
+    <stop offset="0.7514" stop-color="#CD2335"/>
+    <stop offset="1" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m1255.7,1147.6c36.7,-68.6 73.9,-135.7 111.5,-201c39,-67.8 78.5,-133.6 118.4,-197c2.3,-3.7 4.7,-7.5 7,-11.3c39.4,-62.4 79.2,-122.4 119.3,-179.8l-120.8,-228c-9.1,11.1 -18.2,22.4 -27.5,33.9c-34.8,43.4 -71,90.1 -108.1,139.6c-41.8,55.8 -84.8,115.4 -128.5,177.9c-40.3,57.8 -81.2,118.3 -122.1,180.9c-34.8,53.3 -69.8,108.2 -104.5,164.5c-1.3,2.1 -2.6,4.2 -3.9,6.3l157.2,310.5c33.6,-66.5 67.6,-132.1 102,-196.5z" fill="url(#svg_10)" id="svg_24"/>
+   <linearGradient id="svg_9" x1="-0.20656" x2="1.25233" y1="1.92491" y2="-1.3644">
+    <stop offset="0" stop-color="#282662"/>
+    <stop offset="0.09548" stop-color="#662E8D"/>
+    <stop offset="0.7882" stop-color="#9F2064"/>
+    <stop offset="0.9487" stop-color="#CD2032"/>
+   </linearGradient>
+   <path d="m539.7,2897.1c-20.8,57.2 -41.7,115.4 -62.7,174.9c-0.3,0.9 -0.6,1.7 -0.9,2.6c-3,8.4 -5.9,16.8 -8.9,25.2c-14.1,40.1 -26.4,76.2 -54.5,158.3c46.3,21.1 83.5,76.7 118.7,139.8c-3.7,-65.3 -30.8,-126.7 -82.1,-174.2c228.3,10.3 425,-47.4 526.7,-214.3c9.1,-14.9 17.4,-30.5 24.9,-47.2c-46.2,58.6 -103.5,83.5 -211.4,77.4c-0.2,0.1 -0.5,0.2 -0.7,0.3c0.2,-0.1 0.5,-0.2 0.7,-0.3c158.8,-71.1 238.5,-139.3 308.9,-252.4c16.7,-26.8 32.9,-56.1 49.5,-88.6c-138.9,142.6 -299.8,183.2 -469.3,152.4l-127.1,13 [...]
+   <linearGradient id="svg_8" x1="-0.80034" x2="1.46228" y1="1.70501" y2="-0.44364">
+    <stop offset="0.3233" stop-color="#9E2064"/>
+    <stop offset="0.6302" stop-color="#C92037"/>
+    <stop offset="0.7514" stop-color="#CD2335"/>
+    <stop offset="1" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m599,2612.4c27.5,-71 55.8,-142.8 84.8,-215.3c27.8,-69.4 56.4,-139.2 85.6,-209.4c29.2,-70.2 59.1,-140.5 89.6,-210.9c31,-71.6 62.7,-143.1 94.9,-214.2c31.9,-70.3 64.4,-140.3 97.4,-209.6c11.9,-25 23.9,-49.9 35.9,-74.7c20.8,-42.9 41.8,-85.4 63,-127.5c1.1,-2.3 2.3,-4.5 3.5,-6.8l-157.2,-310.5c-2.6,4.2 -5.1,8.4 -7.7,12.6c-36.6,59.8 -73.1,121 -108.9,183.5c-36.2,63.1 -71.7,127.4 -106.4,192.6c-29.3,55 -57.9,110.5 -85.7,166.5c-5.6,11.4 -11.1,22.6 -16.6,33.9c-34.3,70.5 -65.2,138.6 -93.2,2 [...]
+   <linearGradient id="svg_7" x1="-0.18399" x2="1.64845" y1="0.77332" y2="-0.41423">
+    <stop offset="0" stop-color="#282662"/>
+    <stop offset="0.09548" stop-color="#662E8D"/>
+    <stop offset="0.7882" stop-color="#9F2064"/>
+    <stop offset="0.9487" stop-color="#CD2032"/>
+   </linearGradient>
+   <path d="m356.1,2529.2c-19.8,99.8 -33.9,199.2 -41,298c-0.2,3.5 -0.6,6.9 -0.8,10.4c-49.3,-79 -181.3,-156.1 -181,-155.4c94.5,137 166.2,273 176.9,406.5c-50.6,10.4 -119.9,-4.6 -200,-34.1c83.5,76.7 146.2,97.9 170.6,103.6c-76.7,4.8 -156.6,57.5 -237.1,118.2c117.7,-48 212.8,-67 280.9,-51.6c-108,305.8 -216.3,643.4 -324.6,1001.8c33.2,-9.8 53,-32.1 64.1,-62.3c19.3,-64.9 147.4,-490.7 348.1,-1050.4c5.7,-15.9 11.5,-31.9 17.3,-48c1.6,-4.5 3.3,-9 4.9,-13.4c21.2,-58.7 43.2,-118.6 65.9,-179.7c5.2,-13.9 [...]
+   <linearGradient id="svg_6" x1="-0.34785" x2="1.10662" y1="1.87748" y2="-0.51146">
+    <stop offset="0.3233" stop-color="#9E2064"/>
+    <stop offset="0.6302" stop-color="#C92037"/>
+    <stop offset="0.7514" stop-color="#CD2335"/>
+    <stop offset="1" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m1178.1,1370.3c-4.5,9.2 -9,18.5 -13.6,27.9c-13.6,28.1 -27.4,56.7 -41.4,86c-15.1,31.7 -30.3,64.1 -45.7,97.3c-7.8,16.7 -15.5,33.5 -23.4,50.6c-23.5,51.1 -47.3,103.9 -71.5,158.4c-29.7,67 -60,136.6 -90.7,208.9c-29.3,68.9 -59,140.2 -89.1,214c-28.6,70 -57.5,142.3 -86.8,216.8c-26.1,66.5 -52.4,134.7 -79,204.9c-1.3,3.4 -2.6,6.8 -3.8,10.2c-26.4,69.7 -53,141.3 -79.8,214.7c-0.6,1.7 -1.2,3.4 -1.8,5l127.1,-13.9c-2.5,-0.5 -5.1,-0.8 -7.6,-1.3c152,-18.9 354,-132.5 484.6,-272.7c60.2,-64.6 114.8 [...]
+   <linearGradient id="svg_5" x1="-1.29865" x2="0.66418" y1="4.65606" y2="0.1718">
+    <stop offset="0.3233" stop-color="#9E2064"/>
+    <stop offset="0.6302" stop-color="#C92037"/>
+    <stop offset="0.7514" stop-color="#CD2335"/>
+    <stop offset="1" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m1627.6,563.1c-35.5,54.5 -74.3,116.4 -116,186.5c-2.2,3.6 -4.4,7.4 -6.6,11.1c-36,60.7 -74.3,127.3 -114.5,200.3c-34.8,63 -71,130.6 -108.6,203.3c-32.8,63.3 -66.7,130.5 -101.5,201.6l399.3,-43.8c116.3,-53.5 168.3,-101.9 218.8,-171.9c13.4,-19.3 26.9,-39.5 40.3,-60.4c41,-64 81.2,-134.5 117.2,-204.6c34.7,-67.7 65.3,-134.8 88.8,-195.3c14.9,-38.5 26.9,-74.3 35.2,-105.7c7.3,-27.7 13,-54 17.4,-79.1c-155.5,26.5 -345.9,51.9 -469.8,58z" fill="url(#svg_5)" id="svg_29"/>
+   <path d="m1369.6,1939.4c-8,1.4 -16.1,2.7 -24.3,3.8l0,0c8.2,-1.1 16.3,-2.4 24.3,-3.8z" fill="#BE202E" id="svg_30"/>
+   <path d="m1369.6,1939.4c-8,1.4 -16.1,2.7 -24.3,3.8l0,0c8.2,-1.1 16.3,-2.4 24.3,-3.8z" fill="#BE202E" id="svg_31" opacity="0.35"/>
+   <linearGradient id="svg_4" x1="-45.49177" x2="28.57879" y1="631.28527" y2="-384.53728">
+    <stop offset="0.3233" stop-color="#9E2064"/>
+    <stop offset="0.6302" stop-color="#C92037"/>
+    <stop offset="0.7514" stop-color="#CD2335"/>
+    <stop offset="1" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m1369.6,1939.4c-8,1.4 -16.1,2.7 -24.3,3.8l0,0c8.2,-1.1 16.3,-2.4 24.3,-3.8z" fill="url(#svg_4)" id="svg_32"/>
+   <path d="m1433.2,1735.7c2.6,-0.3 5.1,-0.8 7.6,-1.1c-2.5,0.3 -5,0.7 -7.6,1.1l0,0z" fill="#BE202E" id="svg_33"/>
+   <path d="m1433.2,1735.7c2.6,-0.3 5.1,-0.8 7.6,-1.1c-2.5,0.3 -5,0.7 -7.6,1.1l0,0z" fill="#BE202E" id="svg_34" opacity="0.35"/>
+   <linearGradient id="svg_3" x1="-158.80617" x2="78.02096" y1="2361.23263" y2="-1147.98278">
+    <stop offset="0.3233" stop-color="#9E2064"/>
+    <stop offset="0.6302" stop-color="#C92037"/>
+    <stop offset="0.7514" stop-color="#CD2335"/>
+    <stop offset="1" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m1433.2,1735.7c2.6,-0.3 5.1,-0.8 7.6,-1.1c-2.5,0.3 -5,0.7 -7.6,1.1l0,0z" fill="url(#svg_3)" id="svg_35"/>
+   <path d="m1433.5,1735.6c0,0 0.1,0 0.1,-0.1l0,0l0,0l0,0c0,0 -0.1,0 -0.1,0.1z" fill="#BE202E" id="svg_36"/>
+   <path d="m1433.5,1735.6c0,0 0.1,0 0.1,-0.1l0,0l0,0l0,0c0,0 -0.1,0 -0.1,0.1z" fill="#BE202E" id="svg_37" opacity="0.35"/>
+   <linearGradient id="svg_2" x1="-1988.54644" x2="1990.81431" y1="4267.09899" y2="-4266.96258">
+    <stop offset="0.3233" stop-color="#9E2064"/>
+    <stop offset="0.6302" stop-color="#C92037"/>
+    <stop offset="0.7514" stop-color="#CD2335"/>
+    <stop offset="1" stop-color="#E97826"/>
+   </linearGradient>
+   <path d="m1433.5,1735.6c0,0 0.1,0 0.1,-0.1l0,0l0,0l0,0c0,0 -0.1,0 -0.1,0.1z" fill="url(#svg_2)" id="svg_38"/>
+   <path d="m2218.7,387l0,11.7l27.4,0l0,77.4l12.7,0l0,-77.4l27.6,0l0,-11.7l-67.7,0zm158.3,0l-30.6,62.2l-30.8,-62.2l-15.3,0l0,89.1l11.7,0l0,-70.7l30.3,61.3l8.1,0l30.3,-61.3l0,70.7l11.7,0l0,-89.1l-15.4,0z" fill="#6D6E71" id="svg_39"/>
+  </symbol>
+ </defs>
+ <g class="layer">
+  <title>Layer 1</title>
+  <use id="svg_13" transform="matrix(0.668757 0 0 0.668757 0 -25)" x="0" xlink:href="#svg_12" y="44.85938"/>
+  <g id="svg_14"/>
+  <text fill="#ffffff" font-family="serif" font-size="24" id="svg_15" stroke="#000000" stroke-width="0" text-anchor="middle" x="30" xml:space="preserve" y="25.5">D</text>
+ </g>
+</svg>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[qpid-dispatch] 03/04: About modal

Posted by ea...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

eallen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git

commit 2acc503ea02394355c12533ef1c75312da8059ce
Author: Ernest Allen <ea...@redhat.com>
AuthorDate: Tue Mar 12 16:21:15 2019 -0400

    About modal
---
 console/stand-alone/plugin/js/qdrAbout.js | 70 +++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/console/stand-alone/plugin/js/qdrAbout.js b/console/stand-alone/plugin/js/qdrAbout.js
new file mode 100644
index 0000000..9d72138
--- /dev/null
+++ b/console/stand-alone/plugin/js/qdrAbout.js
@@ -0,0 +1,70 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+export class AboutController {
+  constructor($scope, QDRService, $timeout) {
+    this.controllerName = 'QDR.AboutController';
+
+    $scope.additionalInfo = "Console for the Apache Qpid dispatch router: A high-performance, lightweight AMQP 1.0 message router, written in C and built on Qpid Proton. It provides flexible and scalable interconnect between any AMQP endpoints, whether they be clients, brokers or other AMQP-enabled services.";
+    $scope.copyright = "Apache License, Version 2.0";
+    $scope.imgAlt = "Qpid Dispatch Router Logo";
+    $scope.imgSrc = "img/logo-alt.svg";
+    $scope.title = "Apache Qpid Dispatch Router Console";
+    $scope.productInfo = [
+      { name: 'Version', value: '<not connected>' },
+      { name: 'Server Name', value: window.location.host },
+      { name: 'User Name', value: '<not connected>' },
+      { name: 'User Role', value: 'Administrator' }];
+    $scope.open = function () {
+      if (QDRService.management.connection.is_connected()) {
+        let parts = QDRService.management.connection.getReceiverAddress().split("/");
+        parts[parts.length - 1] = "$management";
+        let router = parts.join('/');
+        QDRService.management.topology.fetchEntity(router, "router", ["version"], function (nodeId, entity, response) {
+          $timeout(function () {
+            let r = QDRService.utilities.flatten(response.attributeNames, response.results[0]);
+            $scope.productInfo[0].value = r.version;
+          });
+        });
+        QDRService.management.topology.fetchEntity(router, "connection", [], function (nodeId, entity, response) {
+          $timeout(function () {
+            let user = '<unknown>';
+            response.results.some(result => {
+              let c = QDRService.utilities.flatten(response.attributeNames, result);
+              if (QDRService.utilities.isConsole(c)) {
+                user = c.user;
+                return true;
+              }
+              return false;
+            });
+            $scope.productInfo[2].value = user;
+          });
+        });
+
+      }
+      $scope.isOpen = true;
+    };
+    $scope.onClose = function () {
+      $scope.isOpen = false;
+    };
+
+  }
+}
+
+AboutController.$inject = ['$scope', 'QDRService', '$timeout'];


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org