You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sirona.apache.org by ol...@apache.org on 2014/09/05 11:23:50 UTC

svn commit: r1622652 - in /incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp: ./ css/ js/ js/app/controllers/ js/app/services/ partials/

Author: olamy
Date: Fri Sep  5 09:23:49 2014
New Revision: 1622652

URL: http://svn.apache.org/r1622652
Log:
starting jmx tree

Added:
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/css/abn_tree.css   (with props)
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/abn_tree_directive.js   (with props)
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/angular-animate-1.3.0-beta.17.min.js   (with props)
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/controllers/controllers-jmx.js   (with props)
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/partials/jmx.html   (with props)
Modified:
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/index.html
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/services/services.js
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/main.js
    incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/sirona.js

Added: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/css/abn_tree.css
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/css/abn_tree.css?rev=1622652&view=auto
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/css/abn_tree.css (added)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/css/abn_tree.css Fri Sep  5 09:23:49 2014
@@ -0,0 +1,121 @@
+/*
+   abn-tree.css
+
+   style for the angular-bootstrap-nav-tree
+   for both Bootstrap 2 and Bootstrap 3
+
+*/
+
+
+
+/* ------------------------------------------
+AngularJS Animations...
+
+The first selector is for Angular 1.1.5
+The second selector is for Angular 1.2.0
+
+*/
+.abn-tree-animate-enter,
+li.abn-tree-row.ng-enter {
+    transition: 200ms linear all;
+    position: relative;
+    display: block;
+    opacity: 0;
+    max-height:0px;
+}
+.abn-tree-animate-enter.abn-tree-animate-enter-active,
+li.abn-tree-row.ng-enter-active{
+    opacity: 1;
+    max-height:30px;
+}
+
+.abn-tree-animate-leave,
+li.abn-tree-row.ng-leave {
+    transition: 200ms linear all;
+    position: relative;
+    display: block;
+    height:30px;
+    max-height: 30px;
+    opacity: 1;
+}
+.abn-tree-animate-leave.abn-tree-animate-leave-active,
+li.abn-tree-row.ng-leave-active {
+    height: 0px;
+    max-height:0px;
+    opacity: 0;
+}
+
+
+/*
+------------------------------------------
+Angular 1.2.0 Animation
+*/
+
+
+.abn-tree-animate.ng-enter{
+
+}
+.abn-tree-animate.ng-enter{
+
+}
+
+
+
+
+/*
+   end animation stuff
+-----------------------------------------
+   begin normal css stuff
+*/
+ul.abn-tree li.abn-tree-row {
+    padding: 0px;
+    margin:0px;
+}
+
+ul.abn-tree li.abn-tree-row a {
+    padding: 3px 10px;
+}
+
+ul.abn-tree i.indented {
+    padding: 2px;
+}
+
+.abn-tree {
+    cursor: pointer;
+}
+ul.nav.abn-tree .level-1 .indented {
+    position: relative;
+    left: 0px;
+}
+ul.nav.abn-tree .level-2 .indented {
+    position: relative;
+    left: 20px;
+}
+ul.nav.abn-tree .level-3 .indented {
+    position: relative;
+    left: 40px;
+}
+ul.nav.abn-tree .level-4 .indented {
+    position: relative;
+    left: 60px;
+}
+ul.nav.abn-tree .level-5 .indented {
+    position: relative;
+    left: 80px;
+}
+ul.nav.abn-tree .level-6 .indented {
+    position: relative;
+    left: 100px;
+}
+ul.nav.nav-list.abn-tree .level-7 .indented {
+    position: relative;
+    left: 120px;
+}
+ul.nav.nav-list.abn-tree .level-8 .indented {
+    position: relative;
+    left: 140px;
+}
+ul.nav.nav-list.abn-tree .level-9 .indented {
+    position: relative;
+    left: 160px;
+}

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/css/abn_tree.css
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/css/abn_tree.css
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/index.html
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/index.html?rev=1622652&r1=1622651&r2=1622652&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/index.html (original)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/index.html Fri Sep  5 09:23:49 2014
@@ -40,6 +40,8 @@
 
     <link href="css/ng-grid.2.0.12.css" rel="stylesheet" type="text/css">
 
+    <link href="css/abn_tree.css" rel="stylesheet" type="text/css">
+
   </head>
 
   <body>
@@ -73,6 +75,9 @@
               <a href="#status">Status</a>
             </li>
             <li>
+              <a href="#jmx">JMX</a>
+            </li>
+            <li>
               <a href="#jvm">JVM</a>
             </li>
             <li>

Added: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/abn_tree_directive.js
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/abn_tree_directive.js?rev=1622652&view=auto
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/abn_tree_directive.js (added)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/abn_tree_directive.js Fri Sep  5 09:23:49 2014
@@ -0,0 +1,485 @@
+
+(function() {
+  var module;
+
+  module = angular.module('angularBootstrapNavTree', []);
+
+  module.directive('abnTree', [
+    '$timeout', function($timeout) {
+      return {
+        restrict: 'E',
+        template: "<ul class=\"nav nav-list nav-pills nav-stacked abn-tree\">\n  <li ng-repeat=\"row in tree_rows | filter:{visible:true} track by row.branch.uid\" ng-animate=\"'abn-tree-animate'\" ng-class=\"'level-' + {{ row.level }} + (row.branch.selected ? ' active':'')\" class=\"abn-tree-row\">\n    <a ng-click=\"user_clicks_branch(row.branch)\">\n      <i ng-class=\"row.tree_icon\" ng-click=\"row.branch.expanded = !row.branch.expanded\" class=\"indented tree-icon\"> </i>\n      <span class=\"indented tree-label\">{{ row.label }} </span>\n    </a>\n  </li>\n</ul>",
+        replace: true,
+        scope: {
+          treeData: '=',
+          onSelect: '&',
+          initialSelection: '@',
+          treeControl: '='
+        },
+        link: function(scope, element, attrs) {
+          var error, expand_all_parents, expand_level, for_all_ancestors, for_each_branch, get_parent, n, on_treeData_change, select_branch, selected_branch, tree;
+          error = function(s) {
+            console.log('ERROR:' + s);
+            debugger;
+            return void 0;
+          };
+          if (attrs.iconExpand == null) {
+            attrs.iconExpand = 'icon-plus  glyphicon glyphicon-plus  fa fa-plus';
+          }
+          if (attrs.iconCollapse == null) {
+            attrs.iconCollapse = 'icon-minus glyphicon glyphicon-minus fa fa-minus';
+          }
+          if (attrs.iconLeaf == null) {
+            attrs.iconLeaf = 'icon-file  glyphicon glyphicon-file  fa fa-file';
+          }
+          if (attrs.expandLevel == null) {
+            attrs.expandLevel = '3';
+          }
+          expand_level = parseInt(attrs.expandLevel, 10);
+          if (!scope.treeData) {
+            alert('no treeData defined for the tree!');
+            return;
+          }
+          if (scope.treeData.length == null) {
+            if (treeData.label != null) {
+              scope.treeData = [treeData];
+            } else {
+              alert('treeData should be an array of root branches');
+              return;
+            }
+          }
+          for_each_branch = function(f) {
+            var do_f, root_branch, _i, _len, _ref, _results;
+            do_f = function(branch, level) {
+              var child, _i, _len, _ref, _results;
+              f(branch, level);
+              if (branch.children != null) {
+                _ref = branch.children;
+                _results = [];
+                for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                  child = _ref[_i];
+                  _results.push(do_f(child, level + 1));
+                }
+                return _results;
+              }
+            };
+            _ref = scope.treeData;
+            _results = [];
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+              root_branch = _ref[_i];
+              _results.push(do_f(root_branch, 1));
+            }
+            return _results;
+          };
+          selected_branch = null;
+          select_branch = function(branch) {
+            if (!branch) {
+              if (selected_branch != null) {
+                selected_branch.selected = false;
+              }
+              selected_branch = null;
+              return;
+            }
+            if (branch !== selected_branch) {
+              if (selected_branch != null) {
+                selected_branch.selected = false;
+              }
+              branch.selected = true;
+              selected_branch = branch;
+              expand_all_parents(branch);
+              if (branch.onSelect != null) {
+                return $timeout(function() {
+                  return branch.onSelect(branch);
+                });
+              } else {
+                if (scope.onSelect != null) {
+                  return $timeout(function() {
+                    return scope.onSelect({
+                                            branch: branch
+                                          });
+                  });
+                }
+              }
+            }
+          };
+          scope.user_clicks_branch = function(branch) {
+            if (branch !== selected_branch) {
+              return select_branch(branch);
+            }
+          };
+          get_parent = function(child) {
+            var parent;
+            parent = void 0;
+            if (child.parent_uid) {
+              for_each_branch(function(b) {
+                if (b.uid === child.parent_uid) {
+                  return parent = b;
+                }
+              });
+            }
+            return parent;
+          };
+          for_all_ancestors = function(child, fn) {
+            var parent;
+            parent = get_parent(child);
+            if (parent != null) {
+              fn(parent);
+              return for_all_ancestors(parent, fn);
+            }
+          };
+          expand_all_parents = function(child) {
+            return for_all_ancestors(child, function(b) {
+              return b.expanded = true;
+            });
+          };
+          scope.tree_rows = [];
+          on_treeData_change = function() {
+            var add_branch_to_list, root_branch, _i, _len, _ref, _results;
+            for_each_branch(function(b, level) {
+              if (!b.uid) {
+                return b.uid = "" + Math.random();
+              }
+            });
+            console.log('UIDs are set.');
+            for_each_branch(function(b) {
+              var child, _i, _len, _ref, _results;
+              if (angular.isArray(b.children)) {
+                _ref = b.children;
+                _results = [];
+                for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                  child = _ref[_i];
+                  _results.push(child.parent_uid = b.uid);
+                }
+                return _results;
+              }
+            });
+            scope.tree_rows = [];
+            for_each_branch(function(branch) {
+              var child, f;
+              if (branch.children) {
+                if (branch.children.length > 0) {
+                  f = function(e) {
+                    if (typeof e === 'string') {
+                      return {
+                        label: e,
+                        children: []
+                      };
+                    } else {
+                      return e;
+                    }
+                  };
+                  return branch.children = (function() {
+                    var _i, _len, _ref, _results;
+                    _ref = branch.children;
+                    _results = [];
+                    for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                      child = _ref[_i];
+                      _results.push(f(child));
+                    }
+                    return _results;
+                  })();
+                }
+              } else {
+                return branch.children = [];
+              }
+            });
+            add_branch_to_list = function(level, branch, visible) {
+              var child, child_visible, tree_icon, _i, _len, _ref, _results;
+              if (branch.expanded == null) {
+                branch.expanded = false;
+              }
+              if (!branch.children || branch.children.length === 0) {
+                tree_icon = attrs.iconLeaf;
+              } else {
+                if (branch.expanded) {
+                  tree_icon = attrs.iconCollapse;
+                } else {
+                  tree_icon = attrs.iconExpand;
+                }
+              }
+              scope.tree_rows.push({
+                                     level: level,
+                                     branch: branch,
+                                     label: branch.label,
+                                     tree_icon: tree_icon,
+                                     visible: visible
+                                   });
+              if (branch.children != null) {
+                _ref = branch.children;
+                _results = [];
+                for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                  child = _ref[_i];
+                  child_visible = visible && branch.expanded;
+                  _results.push(add_branch_to_list(level + 1, child, child_visible));
+                }
+                return _results;
+              }
+            };
+            _ref = scope.treeData;
+            _results = [];
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+              root_branch = _ref[_i];
+              _results.push(add_branch_to_list(1, root_branch, true));
+            }
+            return _results;
+          };
+          scope.$watch('treeData', on_treeData_change, true);
+          if (attrs.initialSelection != null) {
+            for_each_branch(function(b) {
+              if (b.label === attrs.initialSelection) {
+                return $timeout(function() {
+                  return select_branch(b);
+                });
+              }
+            });
+          }
+          n = scope.treeData.length;
+          console.log('num root branches = ' + n);
+          for_each_branch(function(b, level) {
+            b.level = level;
+            return b.expanded = b.level < expand_level;
+          });
+          if (scope.treeControl != null) {
+            if (angular.isObject(scope.treeControl)) {
+              tree = scope.treeControl;
+              tree.expand_all = function() {
+                return for_each_branch(function(b, level) {
+                  return b.expanded = true;
+                });
+              };
+              tree.collapse_all = function() {
+                return for_each_branch(function(b, level) {
+                  return b.expanded = false;
+                });
+              };
+              tree.get_first_branch = function() {
+                n = scope.treeData.length;
+                if (n > 0) {
+                  return scope.treeData[0];
+                }
+              };
+              tree.select_first_branch = function() {
+                var b;
+                b = tree.get_first_branch();
+                return tree.select_branch(b);
+              };
+              tree.get_selected_branch = function() {
+                return selected_branch;
+              };
+              tree.get_parent_branch = function(b) {
+                return get_parent(b);
+              };
+              tree.select_branch = function(b) {
+                select_branch(b);
+                return b;
+              };
+              tree.get_children = function(b) {
+                return b.children;
+              };
+              tree.select_parent_branch = function(b) {
+                var p;
+                if (b == null) {
+                  b = tree.get_selected_branch();
+                }
+                if (b != null) {
+                  p = tree.get_parent_branch(b);
+                  if (p != null) {
+                    tree.select_branch(p);
+                    return p;
+                  }
+                }
+              };
+              tree.add_branch = function(parent, new_branch) {
+                if (parent != null) {
+                  parent.children.push(new_branch);
+                  parent.expanded = true;
+                } else {
+                  scope.treeData.push(new_branch);
+                }
+                return new_branch;
+              };
+              tree.add_root_branch = function(new_branch) {
+                tree.add_branch(null, new_branch);
+                return new_branch;
+              };
+              tree.expand_branch = function(b) {
+                if (b == null) {
+                  b = tree.get_selected_branch();
+                }
+                if (b != null) {
+                  b.expanded = true;
+                  return b;
+                }
+              };
+              tree.collapse_branch = function(b) {
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  b.expanded = false;
+                  return b;
+                }
+              };
+              tree.get_siblings = function(b) {
+                var p, siblings;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  p = tree.get_parent_branch(b);
+                  if (p) {
+                    siblings = p.children;
+                  } else {
+                    siblings = scope.treeData;
+                  }
+                  return siblings;
+                }
+              };
+              tree.get_next_sibling = function(b) {
+                var i, siblings;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  siblings = tree.get_siblings(b);
+                  n = siblings.length;
+                  i = siblings.indexOf(b);
+                  if (i < n) {
+                    return siblings[i + 1];
+                  }
+                }
+              };
+              tree.get_prev_sibling = function(b) {
+                var i, siblings;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                siblings = tree.get_siblings(b);
+                n = siblings.length;
+                i = siblings.indexOf(b);
+                if (i > 0) {
+                  return siblings[i - 1];
+                }
+              };
+              tree.select_next_sibling = function(b) {
+                var next;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  next = tree.get_next_sibling(b);
+                  if (next != null) {
+                    return tree.select_branch(next);
+                  }
+                }
+              };
+              tree.select_prev_sibling = function(b) {
+                var prev;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  prev = tree.get_prev_sibling(b);
+                  if (prev != null) {
+                    return tree.select_branch(prev);
+                  }
+                }
+              };
+              tree.get_first_child = function(b) {
+                var _ref;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  if (((_ref = b.children) != null ? _ref.length : void 0) > 0) {
+                    return b.children[0];
+                  }
+                }
+              };
+              tree.get_closest_ancestor_next_sibling = function(b) {
+                var next, parent;
+                next = tree.get_next_sibling(b);
+                if (next != null) {
+                  return next;
+                } else {
+                  parent = tree.get_parent_branch(b);
+                  return tree.get_closest_ancestor_next_sibling(parent);
+                }
+              };
+              tree.get_next_branch = function(b) {
+                var next;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  next = tree.get_first_child(b);
+                  if (next != null) {
+                    return next;
+                  } else {
+                    next = tree.get_closest_ancestor_next_sibling(b);
+                    return next;
+                  }
+                }
+              };
+              tree.select_next_branch = function(b) {
+                var next;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  next = tree.get_next_branch(b);
+                  if (next != null) {
+                    tree.select_branch(next);
+                    return next;
+                  }
+                }
+              };
+              tree.last_descendant = function(b) {
+                var last_child;
+                if (b == null) {
+                  debugger;
+                }
+                n = b.children.length;
+                if (n === 0) {
+                  return b;
+                } else {
+                  last_child = b.children[n - 1];
+                  return tree.last_descendant(last_child);
+                }
+              };
+              tree.get_prev_branch = function(b) {
+                var parent, prev_sibling;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  prev_sibling = tree.get_prev_sibling(b);
+                  if (prev_sibling != null) {
+                    return tree.last_descendant(prev_sibling);
+                  } else {
+                    parent = tree.get_parent_branch(b);
+                    return parent;
+                  }
+                }
+              };
+              return tree.select_prev_branch = function(b) {
+                var prev;
+                if (b == null) {
+                  b = selected_branch;
+                }
+                if (b != null) {
+                  prev = tree.get_prev_branch(b);
+                  if (prev != null) {
+                    tree.select_branch(prev);
+                    return prev;
+                  }
+                }
+              };
+            }
+          }
+        }
+      };
+    }
+  ]);
+
+}).call(this);

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/abn_tree_directive.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/abn_tree_directive.js
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/angular-animate-1.3.0-beta.17.min.js
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/angular-animate-1.3.0-beta.17.min.js?rev=1622652&view=auto
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/angular-animate-1.3.0-beta.17.min.js (added)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/angular-animate-1.3.0-beta.17.min.js Fri Sep  5 09:23:49 2014
@@ -0,0 +1,28 @@
+/*
+ AngularJS v1.3.0-beta.17
+ (c) 2010-2014 Google, Inc. http://angularjs.org
+ License: MIT
+*/
+(function(J,e,P){'use strict';e.module("ngAnimate",["ng"]).directive("ngAnimateChildren",function(){return function(K,v,f){f=f.ngAnimateChildren;e.isString(f)&&0===f.length?v.data("$$ngAnimateChildren",!0):K.$watch(f,function(e){v.data("$$ngAnimateChildren",!!e)})}}).factory("$$animateReflow",["$$rAF","$document",function(e,v){return function(f){return e(function(){f()})}}]).config(["$provide","$animateProvider",function(K,v){function f(e){for(var f=0;f<e.length;f++){var m=e[f];if(m.nodeType==Z)return m}}
+function H(m){return e.element(f(m))}var B=e.noop,m=e.forEach,R=v.$$selectors,Z=1,n="$$ngAnimateState",T="$$ngAnimateChildren",N="ng-animate",t={running:!0};K.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$$asyncCallback","$rootScope","$document",function(x,J,Y,S,G,U,P){function L(a){var b=a.data(n)||{};b.running=!0;a.data(n,b)}function I(a){var b;U.$$postDigest(function(){b=a()});return function(){b&&b()}}function K(a){if(a){var b=[],c={};a=a.substr(1).split(".");(Y.transitions||
+Y.animations)&&b.push(J.get(R[""]));for(var g=0;g<a.length;g++){var e=a[g],f=R[e];f&&!c[e]&&(b.push(J.get(f)),c[e]=!0)}return b}}function W(a,b,c){function g(a,b){var c=a[b],k=a["before"+b.charAt(0).toUpperCase()+b.substr(1)];if(c||k)return"leave"==b&&(k=c,c=null),q.push({event:b,fn:c}),s.push({event:b,fn:k}),!0}function f(b,e,g){var k=[];m(b,function(a){a.fn&&k.push(a)});var d=0;m(k,function(b,ba){var f=function(){a:{if(e){(e[ba]||B)();if(++d<k.length)break a;e=null}g()}};switch(b.event){case "setClass":e.push(b.fn(a,
+y,u,f));break;case "addClass":e.push(b.fn(a,y||c,f));break;case "removeClass":e.push(b.fn(a,u||c,f));break;default:e.push(b.fn(a,f))}});e&&0===e.length&&g()}var n=a[0];if(n){var E="setClass"==b,w=E||"addClass"==b||"removeClass"==b,y,u;e.isArray(c)&&(y=c[0],u=c[1],c=y+" "+u);var h=a.attr("class")+" "+c;if(l(h)){var F=B,D=[],s=[],p=B,r=[],q=[],h=(" "+h).replace(/\s+/g,".");m(K(h),function(a){!g(a,b)&&E&&(g(a,"addClass"),g(a,"removeClass"))});return{node:n,event:b,className:c,isClassBased:w,isSetClassOperation:E,
+before:function(a){F=a;f(s,D,function(){F=B;a()})},after:function(a){p=a;f(q,r,function(){p=B;a()})},cancel:function(){D&&(m(D,function(a){(a||B)(!0)}),F(!0));r&&(m(r,function(a){(a||B)(!0)}),p(!0))}}}}}function A(a,b,c,g,f,h,E){function l(d){var k="$animate:"+d;r&&(r[k]&&0<r[k].length)&&G(function(){c.triggerHandler(k,{event:a,className:b})})}function y(){l("before")}function u(){l("after")}function t(){l("close");E&&G(function(){E()})}function F(){F.hasBeenRun||(F.hasBeenRun=!0,h())}function D(){if(!D.hasBeenRun){D.hasBeenRun=
+!0;var k=c.data(n);k&&(p&&p.isClassBased?w(c,b):(G(function(){var k=c.data(n)||{};d==k.index&&w(c,b,a)}),c.data(n,k)));t()}}var s=B,p=W(c,a,b);if(!p)return F(),y(),u(),D(),s;b=p.className;var r=e.element._data(p.node),r=r&&r.events;g||(g=f?f.parent():c.parent());f=c.data(n)||{};var q=f.active||{},z=f.totalActive||0,A=f.last,x;p.isClassBased&&(x=f.running||f.disabled||A&&!A.isClassBased);if(x||Q(c,g))return F(),y(),u(),D(),s;g=!1;if(0<z){z=[];if(p.isClassBased)"setClass"==A.event?(z.push(A),w(c,b)):
+q[b]&&(k=q[b],k.event==a?g=!0:(z.push(k),w(c,b)));else if("leave"==a&&q["ng-leave"])g=!0;else{for(var k in q)z.push(q[k]);f={};w(c,!0)}0<z.length&&m(z,function(a){a.cancel()})}q=f.active||{};z=f.totalActive||0;!p.isClassBased||(p.isSetClassOperation||g)||(g="addClass"==a==c.hasClass(b));if(g)return F(),y(),u(),t(),s;if("leave"==a)c.one("$destroy",function(a){a=e.element(this);var d=a.data(n);d&&(d=d.active["ng-leave"])&&(d.cancel(),w(a,"ng-leave"))});c.addClass(N);var d=O++;z++;q[b]=p;c.data(n,{last:p,
+active:q,index:d,totalActive:z});y();p.before(function(d){var k=c.data(n);d=d||!k||!k.active[b]||p.isClassBased&&k.active[b].event!=a;F();!0===d?D():(u(),p.after(D))});return p.cancel}function M(a){if(a=f(a))a=e.isFunction(a.getElementsByClassName)?a.getElementsByClassName(N):a.querySelectorAll("."+N),m(a,function(a){a=e.element(a);(a=a.data(n))&&a.active&&m(a.active,function(a){a.cancel()})})}function w(a,b){if(f(a)==f(S))t.disabled||(t.running=!1,t.structural=!1);else if(b){var c=a.data(n)||{},
+e=!0===b;!e&&(c.active&&c.active[b])&&(c.totalActive--,delete c.active[b]);if(e||!c.totalActive)a.removeClass(N),a.removeData(n)}}function Q(a,b){if(t.disabled)return!0;if(f(a)==f(S))return t.running;var c,g,m;do{if(0===b.length)break;var h=f(b)==f(S),l=h?t:b.data(n)||{};if(l.disabled)return!0;h&&(m=!0);!1!==c&&(h=b.data(T),e.isDefined(h)&&(c=h));g=g||l.running||l.last&&!l.last.isClassBased}while(b=b.parent());return!m||!c&&g}var O=0;S.data(n,t);U.$$postDigest(function(){U.$$postDigest(function(){t.running=
+!1})});var h=v.classNameFilter(),l=h?function(a){return h.test(a)}:function(){return!0};return{enter:function(a,b,c,f){a=e.element(a);b=b&&e.element(b);c=c&&e.element(c);L(a);x.enter(a,b,c);return I(function(){return A("enter","ng-enter",H(a),b,c,B,f)})},leave:function(a,b){a=e.element(a);M(a);L(a);this.enabled(!1,a);return I(function(){return A("leave","ng-leave",H(a),null,null,function(){x.leave(a)},b)})},move:function(a,b,c,f){a=e.element(a);b=b&&e.element(b);c=c&&e.element(c);M(a);L(a);x.move(a,
+b,c);return I(function(){return A("move","ng-move",H(a),b,c,B,f)})},addClass:function(a,b,c){a=e.element(a);a=H(a);return A("addClass",b,a,null,null,function(){x.addClass(a,b)},c)},removeClass:function(a,b,c){a=e.element(a);a=H(a);return A("removeClass",b,a,null,null,function(){x.removeClass(a,b)},c)},setClass:function(a,b,c,f){a=e.element(a);a=H(a);return A("setClass",[b,c],a,null,null,function(){x.setClass(a,b,c)},f)},enabled:function(a,b){switch(arguments.length){case 2:if(a)w(b);else{var c=b.data(n)||
+{};c.disabled=!0;b.data(n,c)}break;case 1:t.disabled=!a;break;default:a=!t.disabled}return!!a}}}]);v.register("",["$window","$sniffer","$timeout","$$animateReflow",function(n,t,v,H){function G(a,d){q&&q();r.push(d);q=H(function(){m(r,function(a){a()});r=[];q=null;s={}})}function K(a,d){var b=f(a);a=e.element(b);X.push(a);b=Date.now()+d;b<=aa||(v.cancel(z),aa=b,z=v(function(){N(X);X=[]},d,!1))}function N(a){m(a,function(a){(a=a.data(u))&&m(a.closeAnimationFns,function(a){a()})})}function L(b,d){var C=
+d?s[d]:null;if(!C){var f=0,e=0,g=0,h=0,p,l,u,q;m(b,function(d){if(d.nodeType==Z){d=n.getComputedStyle(d)||{};u=d[a+$];f=Math.max(I(u),f);q=d[a+V];p=d[a+E];e=Math.max(I(p),e);l=d[c+E];h=Math.max(I(l),h);var b=I(d[c+$]);0<b&&(b*=parseInt(d[c+T],10)||1);g=Math.max(b,g)}});C={total:0,transitionPropertyStyle:q,transitionDurationStyle:u,transitionDelayStyle:p,transitionDelay:e,transitionDuration:f,animationDelayStyle:l,animationDelay:h,animationDuration:g};d&&(s[d]=C)}return C}function I(a){var d=0;a=e.isString(a)?
+a.split(/\s*,\s*/):[];m(a,function(a){d=Math.max(parseFloat(a)||0,d)});return d}function R(b,d,C){b=0<=["ng-enter","ng-leave","ng-move"].indexOf(C);var e,g=d.parent(),h=g.data(y);h||(g.data(y,++p),h=p);e=h+"-"+f(d).getAttribute("class");var g=e+" "+C,h=s[g]?++s[g].total:0,l={};if(0<h){var m=C+"-stagger",l=e+" "+m;(e=!s[l])&&d.addClass(m);l=L(d,l);e&&d.removeClass(m)}d.addClass(C);var m=d.data(u)||{},n=L(d,g);e=n.transitionDuration;n=n.animationDuration;if(b&&0===e&&0===n)return d.removeClass(C),!1;
+C=b&&0<e;b=0<n&&0<l.animationDelay&&0===l.animationDuration;d.data(u,{stagger:l,cacheKey:g,running:m.running||0,itemIndex:h,blockTransition:C,blockAnimation:b,closeAnimationFns:m.closeAnimationFns||[]});d=f(d);C&&(d.style[a+V]="none");b&&(d.style[c]="none 0s");return!0}function W(k,d,e,h){function n(a){d.off(G,p);d.removeClass(t);O(d,e);a=f(d);for(var b in x)a.style.removeProperty(x[b])}function p(a){a.stopPropagation();var d=a.originalEvent||a;a=d.$manualTimeStamp||d.timeStamp||Date.now();d=parseFloat(d.elapsedTime.toFixed(ca));
+Math.max(a-H,0)>=B&&d>=w&&h()}var q=f(d);k=d.data(u);if(-1!=q.getAttribute("class").indexOf(e)&&k){k.blockTransition&&(q.style[a+V]="");k.blockAnimation&&(q.style[c]="");var t="";m(e.split(" "),function(a,d){t+=(0<d?" ":"")+a+"-active"});d.addClass(t);var r=L(d,k.cacheKey+" "+t),w=Math.max(r.transitionDuration,r.animationDuration);if(0===w)d.removeClass(t),O(d,e),h();else{var z=Math.max(r.transitionDelay,r.animationDelay),s=k.stagger,y=k.itemIndex,B=z*D,v="",x=[];if(0<r.transitionDuration){var E=
+r.transitionPropertyStyle;-1==E.indexOf("all")&&(v+=l+"transition-property: "+E+";",v+=l+"transition-duration: "+r.transitionDurationStyle+";",x.push(l+"transition-property"),x.push(l+"transition-duration"))}0<y&&(0<s.transitionDelay&&0===s.transitionDuration&&(v+=l+"transition-delay: "+A(r.transitionDelayStyle,s.transitionDelay,y)+"; ",x.push(l+"transition-delay")),0<s.animationDelay&&0===s.animationDuration&&(v+=l+"animation-delay: "+A(r.animationDelayStyle,s.animationDelay,y)+"; ",x.push(l+"animation-delay")));
+0<x.length&&(r=q.getAttribute("style")||"",q.setAttribute("style",r+"; "+v));var H=Date.now(),G=g+" "+b;d.on(G,p);k.closeAnimationFns.push(function(){n();h()});q=(y*(Math.max(s.animationDelay,s.transitionDelay)||0)+(z+w)*F)*D;k.running++;K(d,q);return n}}else h()}function A(a,d,b){var c="";m(a.split(","),function(a,k){c+=(0<k?",":"")+(b*d+parseInt(a,10))+"s"});return c}function M(a,d,b,c){if(R(a,d,b,c))return function(a){a&&O(d,b)}}function w(a,d,b,c){if(d.data(u))return W(a,d,b,c);O(d,b);c()}function Q(a,
+d,b,c){var e=M(a,d,b);if(e){var f=e;G(d,function(){f=w(a,d,b,c)});return function(a){(f||B)(a)}}c()}function O(a,b){a.removeClass(b);var c=a.data(u);c&&(c.running&&c.running--,c.running&&0!==c.running||a.removeData(u))}function h(a,b){var c="";a=e.isArray(a)?a:a.split(/\s+/);m(a,function(a,e){a&&0<a.length&&(c+=(0<e?" ":"")+a+b)});return c}var l="",a,b,c,g;J.ontransitionend===P&&J.onwebkittransitionend!==P?(l="-webkit-",a="WebkitTransition",b="webkitTransitionEnd transitionend"):(a="transition",b=
+"transitionend");J.onanimationend===P&&J.onwebkitanimationend!==P?(l="-webkit-",c="WebkitAnimation",g="webkitAnimationEnd animationend"):(c="animation",g="animationend");var $="Duration",V="Property",E="Delay",T="IterationCount",y="$$ngAnimateKey",u="$$ngAnimateCSS3Data",ca=3,F=1.5,D=1E3,s={},p=0,r=[],q,z=null,aa=0,X=[];return{enter:function(a,b){return Q("enter",a,"ng-enter",b)},leave:function(a,b){return Q("leave",a,"ng-leave",b)},move:function(a,b){return Q("move",a,"ng-move",b)},beforeSetClass:function(a,
+b,c,e){b=h(c,"-remove")+" "+h(b,"-add");if(b=M("setClass",a,b))return G(a,e),b;e()},beforeAddClass:function(a,b,c){if(b=M("addClass",a,h(b,"-add")))return G(a,c),b;c()},beforeRemoveClass:function(a,b,c){if(b=M("removeClass",a,h(b,"-remove")))return G(a,c),b;c()},setClass:function(a,b,c,e){c=h(c,"-remove");b=h(b,"-add");return w("setClass",a,c+" "+b,e)},addClass:function(a,b,c){return w("addClass",a,h(b,"-add"),c)},removeClass:function(a,b,c){return w("removeClass",a,h(b,"-remove"),c)}}}])}])})(window,
+window.angular);
+//# sourceMappingURL=angular-animate.min.js.map

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/angular-animate-1.3.0-beta.17.min.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/angular-animate-1.3.0-beta.17.min.js
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Added: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/controllers/controllers-jmx.js
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/controllers/controllers-jmx.js?rev=1622652&view=auto
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/controllers/controllers-jmx.js (added)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/controllers/controllers-jmx.js Fri Sep  5 09:23:49 2014
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+'use strict';
+
+/* Controllers */
+define(['jquery','angular','bootstrap','services','ui-bootstrap','abn-tree','angular-animate'], function (){
+
+
+  var jmxControllers = angular.module('jmxControllers', ['jmxControllers','ui.bootstrap','angularBootstrapNavTree'
+                                      ,'ngAnimate']);
+
+  jmxControllers.controller( 'jmxHomeCtrl', ['$scope','$routeParams','jmx',
+    function ($scope,$routeParams,jmx){
+
+      $scope.treeData=[{label:"Loading"}];
+
+
+      console.log("jmxHomeCtrl:");
+
+      jmx.query().$promise.then(function(result){
+        $scope.treeData=result;
+        //return tree.expand_all();
+      });
+
+  }]);
+
+
+});
+
+
+
+
+

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/controllers/controllers-jmx.js
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/controllers/controllers-jmx.js
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/services/services.js
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/services/services.js?rev=1622652&r1=1622651&r2=1622652&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/services/services.js (original)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/app/services/services.js Fri Sep  5 09:23:49 2014
@@ -107,5 +107,16 @@ define(['angular','angular-resource'], f
     }
   ]);
 
+  sironaServices.factory('jmx', ['$resource',
+    function($resource){
+      return $resource('restServices/sironaServices/jmx/:mbean',
+                       {},
+                       {
+                         query: {method:'GET', params:{mbean:'@mbean'},isArray:false},
+                         all: {method:'GET', params:{},isArray:true}
+                       });
+    }
+  ]);
+
 
 });
\ No newline at end of file

Modified: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/main.js
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/main.js?rev=1622652&r1=1622651&r2=1622652&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/main.js (original)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/main.js Fri Sep  5 09:23:49 2014
@@ -33,6 +33,7 @@ require.config({
     'angular': 'angular-'+angularVersion+(useAngularMin?".min":""),
     'angular-route': 'angular-route-'+angularVersion+(useAngularMin?".min":""),
     'angular-resource': 'angular-resource-'+angularVersion+(useAngularMin?".min":""),
+    'angular-animate': 'angular-animate-'+angularVersion+".min",
     'bootstrap' : 'bootstrap.3.2.0.min',
     'controllers': 'app/controllers/controllers',
     'controllers-jvm': 'app/controllers/controllers-jvm',
@@ -40,6 +41,7 @@ require.config({
     'controllers-report': 'app/controllers/controllers-report',
     'controllers-gauges': 'app/controllers/controllers-gauges',
     'controllers-status': 'app/controllers/controllers-status',
+    'controllers-jmx': 'app/controllers/controllers-jmx',
     'services': 'app/services/services',
     'sirona': 'sirona',
     'morris': 'plugins/morris/morris-0.5.0.min',
@@ -47,17 +49,20 @@ require.config({
     'ui-bootstrap': 'ui-bootstrap-tpls-0.11.0',
     'datetimepicker': 'datetimepicker-0.2.4',
     'moment': 'moment-2.8.1.min',
-    'nggrid': 'ng-grid-2.0.12.debug'
+    'nggrid': 'ng-grid-2.0.12.debug',
+    'abn-tree' : 'abn_tree_directive'
   },
 
   shim: {
     'angular': ['jquery'],
     'angular-route': ['angular'],
     'angular-resource': ['angular'],
+    'angular-animate': ['angular'],
     'morris': ['raphael'],
     'ui-bootstrap': ['angular','bootstrap'],
     'datetimepicker': ['angular','bootstrap','moment'],
-    'nggrid': ['angular','bootstrap','ui-bootstrap']
+    'nggrid': ['angular','bootstrap','ui-bootstrap'],
+    'abn-tree': ['angular','bootstrap']
   },
 
   deps: ['sirona']

Modified: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/sirona.js
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/sirona.js?rev=1622652&r1=1622651&r2=1622652&view=diff
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/sirona.js (original)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/js/sirona.js Fri Sep  5 09:23:49 2014
@@ -18,7 +18,7 @@
 'use strict';
 
 define(['jquery','controllers','controllers-jvm','controllers-threads','controllers-gauges','angular-route',
-         'bootstrap','datetimepicker','controllers-report','controllers-status'],
+         'bootstrap','datetimepicker','controllers-report','controllers-status','controllers-jmx'],
        function (jquery,controllers) {
 
   var sirona = angular.module('sirona', [
@@ -28,7 +28,8 @@ define(['jquery','controllers','controll
     'threadsControllers',
     'countersControllers',
     'gaugesControllers',
-    'statusControllers'
+    'statusControllers',
+    'jmxControllers'
   ]);
 
   sirona.config(['$routeProvider','$logProvider',
@@ -89,6 +90,12 @@ define(['jquery','controllers','controll
                controller: 'StatusDetailCtrl'
              }
         ).
+        when('/jmx',
+             {
+               templateUrl: 'partials/jmx.html',
+               controller: 'jmxHomeCtrl'
+             }
+        ).
         otherwise({
           redirectTo: '/home'
         });

Added: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/partials/jmx.html
URL: http://svn.apache.org/viewvc/incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/partials/jmx.html?rev=1622652&view=auto
==============================================================================
--- incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/partials/jmx.html (added)
+++ incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/partials/jmx.html Fri Sep  5 09:23:49 2014
@@ -0,0 +1,23 @@
+<!--
+  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.
+-->
+<div class="row">
+  <div class="col-lg-12">
+    jmx home
+    <abn-tree tree-data="treeData"></abn-tree>
+  </div>
+
+</div>
\ No newline at end of file

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/partials/jmx.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/sirona/trunk/server/reporting/reporting-ui/src/main/webapp/partials/jmx.html
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision