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