You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2017/02/20 09:00:23 UTC

eagle git commit: [EAGLE-914] UI move alert & policy to site spec

Repository: eagle
Updated Branches:
  refs/heads/master 579e83f5f -> c85056736


[EAGLE-914] UI move alert & policy to site spec

UI move alert & policy to site spec

Author: zombieJ <sm...@gmail.com>

Closes #822 from zombieJ/EAGLE-914.


Project: http://git-wip-us.apache.org/repos/asf/eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/eagle/commit/c8505673
Tree: http://git-wip-us.apache.org/repos/asf/eagle/tree/c8505673
Diff: http://git-wip-us.apache.org/repos/asf/eagle/diff/c8505673

Branch: refs/heads/master
Commit: c85056736b9d41df17dd895ecf9cb66ecce2f433
Parents: 579e83f
Author: zombieJ <sm...@gmail.com>
Authored: Mon Feb 20 17:00:17 2017 +0800
Committer: Hao Chen <ha...@apache.org>
Committed: Mon Feb 20 17:00:17 2017 +0800

----------------------------------------------------------------------
 .../webapp/app/dev/partials/alert/list.html     | 10 ---
 .../app/dev/partials/alert/policyList.html      | 14 +--
 .../app/dev/partials/alert/streamList.html      | 10 ---
 .../src/main/webapp/app/dev/public/js/app.js    | 94 ++++++++++----------
 .../webapp/app/dev/public/js/ctrls/alertCtrl.js | 59 ++----------
 .../app/dev/public/js/ctrls/alertEditCtrl.js    |  3 +-
 .../app/dev/public/js/services/pageSrv.js       | 24 +++--
 7 files changed, 79 insertions(+), 135 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/eagle/blob/c8505673/eagle-server/src/main/webapp/app/dev/partials/alert/list.html
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/partials/alert/list.html b/eagle-server/src/main/webapp/app/dev/partials/alert/list.html
index fce2f7f..d06b41f 100644
--- a/eagle-server/src/main/webapp/app/dev/partials/alert/list.html
+++ b/eagle-server/src/main/webapp/app/dev/partials/alert/list.html
@@ -24,16 +24,6 @@
 		</h3>
 	</div>
 	<div class="box-body">
-		<!-- Site Filter -->
-		<ul class="nav nav-pills with-border">
-			<li><span>Site Filter:</span></li>
-			<li ng-class="{active: siteFilter === ''}" ng-click="updateSiteFilter('')"><a>All</a></li>
-			<li ng-class="{active: siteFilter === site.siteId}" ng-click="updateSiteFilter(site.siteId)"
-			    ng-repeat="site in Site.list track by $index">
-				<a>{{site.siteName || site.siteId}}</a>
-			</li>
-		</ul>
-
 		<div sort-table="alertList" is-sorting="isSorting">
 			<table class="table table-bordered">
 				<thead>

http://git-wip-us.apache.org/repos/asf/eagle/blob/c8505673/eagle-server/src/main/webapp/app/dev/partials/alert/policyList.html
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/partials/alert/policyList.html b/eagle-server/src/main/webapp/app/dev/partials/alert/policyList.html
index 6351674..b41c320 100644
--- a/eagle-server/src/main/webapp/app/dev/partials/alert/policyList.html
+++ b/eagle-server/src/main/webapp/app/dev/partials/alert/policyList.html
@@ -24,16 +24,6 @@
 		</h3>
 	</div>
 	<div class="box-body">
-		<!-- Site Filter -->
-		<ul class="nav nav-pills with-border">
-			<li><span>Site Filter:</span></li>
-			<li ng-class="{active: siteFilter === ''}" ng-click="updateSiteFilter('')"><a>All</a></li>
-			<li ng-class="{active: siteFilter === site.siteId}" ng-click="updateSiteFilter(site.siteId)"
-			    ng-repeat="site in Site.list track by $index">
-				<a>{{site.siteName || site.siteId}}</a>
-			</li>
-		</ul>
-
 		<div sort-table="policyList" ng-show="policyList.length">
 			<table class="table table-bordered">
 				<thead>
@@ -72,7 +62,7 @@
 
 		<div class="callout callout-warning no-margin" ng-show="!loading && policyList.length === 0">
 			<h4>No Policy yet</h4>
-			<p>You have not create policy yet. Click <a ui-sref="policyCreate()">here</a> to create a new policy.</p>
+			<p>You have not create policy yet. Click <a ui-sref="policyCreate({ siteId: site })">here</a> to create a new policy.</p>
 		</div>
 	</div>
 
@@ -81,6 +71,6 @@
 	</div>
 
 	<div class="box-footer text-right">
-		<a ui-sref="policyCreate()" class="btn btn-primary">New Policy</a>
+		<a ui-sref="policyCreate({ siteId: site })" class="btn btn-primary">New Policy</a>
 	</div>
 </div>

http://git-wip-us.apache.org/repos/asf/eagle/blob/c8505673/eagle-server/src/main/webapp/app/dev/partials/alert/streamList.html
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/partials/alert/streamList.html b/eagle-server/src/main/webapp/app/dev/partials/alert/streamList.html
index a6b6183..0824188 100644
--- a/eagle-server/src/main/webapp/app/dev/partials/alert/streamList.html
+++ b/eagle-server/src/main/webapp/app/dev/partials/alert/streamList.html
@@ -24,16 +24,6 @@
 		</h3>
 	</div>
 	<div class="box-body">
-		<!-- Site Filter -->
-		<ul class="nav nav-pills with-border">
-			<li><span>Site Filter:</span></li>
-			<li ng-class="{active: siteFilter === ''}" ng-click="updateSiteFilter('')"><a>All</a></li>
-			<li ng-class="{active: siteFilter === site.siteId}" ng-click="updateSiteFilter(site.siteId)"
-			    ng-repeat="site in Site.list track by $index">
-				<a>{{site.siteName || site.siteId}}</a>
-			</li>
-		</ul>
-
 		<div sort-table="streamList">
 			<table class="table table-bordered table-hover">
 				<thead>

http://git-wip-us.apache.org/repos/asf/eagle/blob/c8505673/eagle-server/src/main/webapp/app/dev/public/js/app.js
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/js/app.js b/eagle-server/src/main/webapp/app/dev/public/js/app.js
index f28f362..c593406 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/app.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/app.js
@@ -43,6 +43,8 @@ var app = {};
 		// ======================================================================================
 		// =                                   Router config                                    =
 		// ======================================================================================
+		var defaultRouterStates = ['site', 'alertList', 'policyList', 'streamList', 'policyCreate', 'policyEdit', 'alertDetail', 'policyDetail'];
+
 		function routeResolve(config) {
 			var resolve = {};
 			if(config === false) return resolve;
@@ -72,7 +74,7 @@ var app = {};
 			resolve._router = function (Site, $wrapState, $q) {
 				var name = state_next.name;
 				var siteId = param_next.siteId;
-				if (siteId && name !== "site") {
+				if (siteId && defaultRouterStates.indexOf(name) === -1) {
 					return Site.getPromise(config).then(function () {
 						var match =  false;
 						$.each(common.getValueByPath(Site.find(siteId), ["applicationList"]), function (i, app) {
@@ -120,50 +122,6 @@ var app = {};
 					controller: "setupCtrl",
 					resolve: routeResolve({ site: false, application: false })
 				})
-				// ================================= Alerts =================================
-				.state('alertList', {
-					url: "/alerts?startTime&endTime",
-					templateUrl: "partials/alert/list.html?_=" + window._TRS(),
-					controller: "alertListCtrl",
-					resolve: routeResolve({ time: { autoRefresh: true } })
-				})
-				.state('policyList', {
-					url: "/policies",
-					templateUrl: "partials/alert/policyList.html?_=" + window._TRS(),
-					controller: "policyListCtrl",
-					resolve: routeResolve()
-				})
-				.state('streamList', {
-					url: "/streams",
-					templateUrl: "partials/alert/streamList.html?_=" + window._TRS(),
-					controller: "alertStreamListCtrl",
-					resolve: routeResolve()
-				})
-				.state('policyCreate', {
-					url: "/policy/create",
-					templateUrl: "partials/alert/policyEdit/main.html?_=" + window._TRS(),
-					controller: "policyCreateCtrl",
-					resolve: routeResolve()
-				})
-				.state('policyEdit', {
-					url: "/policy/edit/{name}",
-					templateUrl: "partials/alert/policyEdit/main.html?_=" + window._TRS(),
-					controller: "policyEditCtrl",
-					resolve: routeResolve()
-				})
-
-				.state('alertDetail', {
-					url: "/alert/detail/{alertId}",
-					templateUrl: "partials/alert/detail.html?_=" + window._TRS(),
-					controller: "alertDetailCtrl",
-					resolve: routeResolve()
-				})
-				.state('policyDetail', {
-					url: "/policy/detail/{name}",
-					templateUrl: "partials/alert/policyDetail.html?_=" + window._TRS(),
-					controller: "policyDetailCtrl",
-					resolve: routeResolve()
-				})
 
 				// =============================== Integration ==============================
 				.state('integration', {
@@ -208,6 +166,52 @@ var app = {};
 					controller: "siteCtrl",
 					resolve: routeResolve()
 				})
+
+				// ============================== Site: Alerts ==============================
+				.state('alertList', {
+					url: "/site/:siteId/alerts?startTime&endTime",
+					templateUrl: "partials/alert/list.html?_=" + window._TRS(),
+					controller: "alertListCtrl",
+					resolve: routeResolve({ time: { autoRefresh: true } })
+				})
+				.state('policyList', {
+					url: "/site/:siteId/policies",
+					templateUrl: "partials/alert/policyList.html?_=" + window._TRS(),
+					controller: "policyListCtrl",
+					resolve: routeResolve()
+				})
+				.state('streamList', {
+					url: "/site/:siteId/streams",
+					templateUrl: "partials/alert/streamList.html?_=" + window._TRS(),
+					controller: "alertStreamListCtrl",
+					resolve: routeResolve()
+				})
+
+				.state('policyCreate', {
+					url: "/site/:siteId/policy/create",
+					templateUrl: "partials/alert/policyEdit/main.html?_=" + window._TRS(),
+					controller: "policyCreateCtrl",
+					resolve: routeResolve()
+				})
+				.state('policyEdit', {
+					url: "/site/:siteId/policy/edit/{name}",
+					templateUrl: "partials/alert/policyEdit/main.html?_=" + window._TRS(),
+					controller: "policyEditCtrl",
+					resolve: routeResolve()
+				})
+
+				.state('alertDetail', {
+					url: "/site/:siteId/alert/detail/{alertId}",
+					templateUrl: "partials/alert/detail.html?_=" + window._TRS(),
+					controller: "alertDetailCtrl",
+					resolve: routeResolve()
+				})
+				.state('policyDetail', {
+					url: "/site/:siteId/policy/detail/{name}",
+					templateUrl: "partials/alert/policyDetail.html?_=" + window._TRS(),
+					controller: "policyDetailCtrl",
+					resolve: routeResolve()
+				})
 			;
 
 			// =========================== Application States ===========================

http://git-wip-us.apache.org/repos/asf/eagle/blob/c8505673/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertCtrl.js
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertCtrl.js b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertCtrl.js
index d464858..5360571 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertCtrl.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertCtrl.js
@@ -26,34 +26,21 @@
 	// ======================================================================================
 	eagleControllers.controller('alertListCtrl', function ($scope, $wrapState, PageConfig, CompatibleEntity, Time) {
 		PageConfig.title = "Alerts";
+		$scope.site = $wrapState.param.siteId;
 
-		var originAlertList = [];
 		$scope.alertList = [];
-		$scope.siteFilter = '';
 		$scope.loading = false;
 
-		$scope.updateSiteFilter = function (siteId) {
-			if (siteId !== undefined) $scope.siteFilter = siteId;
-
-			if ($scope.siteFilter) {
-				$scope.alertList = $.grep(originAlertList, function (alert) {
-					return alert.tags.siteId === $scope.siteFilter;
-				});
-			} else {
-				$scope.alertList = originAlertList;
-			}
-		};
-
 		function loadAlerts() {
 			$scope.loading = true;
 			var list = CompatibleEntity.query("LIST", {
 				query: "AlertService",
+				condition: {siteId: $scope.site},
 				startTime: new Time('startTime'),
 				endTime: new Time('endTime')
 			});
 			list._then(function () {
-				originAlertList = list;
-				$scope.updateSiteFilter();
+				$scope.alertList = list;
 				$scope.loading = false;
 			});
 		}
@@ -93,28 +80,14 @@
 	eagleControllers.controller('alertStreamListCtrl', function ($scope, $wrapState, PageConfig, Application, Entity) {
 		PageConfig.title = "Streams";
 
-		var originStreamList = [];
 		$scope.streamList = [];
-		$scope.siteFilter = '';
-
-		$scope.updateSiteFilter = function (siteId) {
-			if (siteId !== undefined) $scope.siteFilter = siteId;
+		$scope.site = $wrapState.param.siteId;
 
-			if ($scope.siteFilter) {
-				$scope.streamList = $.grep(originStreamList, function (stream) {
-					return stream.siteId === $scope.siteFilter;
-				});
-			} else {
-				$scope.streamList = originStreamList;
-			}
-		};
-
-		Entity.queryMetadata("streams")._then(function (res) {
-			originStreamList = $.map(res.data, function (stream) {
+		Entity.queryMetadata("streams", { siteId: $scope.site })._then(function (res) {
+			$scope.streamList = $.map(res.data, function (stream) {
 				var application = Application.findProvider(stream.dataSource);
 				return $.extend({application: application}, stream);
 			});
-			$scope.updateSiteFilter();
 		});
 
 		$scope.dataSources = {};
@@ -141,30 +114,16 @@
 		PageConfig.title = "Policies";
 		$scope.loading = false;
 
-		var originPolicyList = [];
 		$scope.policyList = [];
-		$scope.siteFilter = '';
-
-		$scope.updateSiteFilter = function (siteId) {
-			if (siteId !== undefined) $scope.siteFilter = siteId;
-
-			if ($scope.siteFilter) {
-				$scope.policyList = $.grep(originPolicyList, function (policy) {
-					return policy.siteId === $scope.siteFilter;
-				});
-			} else {
-				$scope.policyList = originPolicyList;
-			}
-		};
+		$scope.site = $wrapState.param.siteId;
 
 		function updateList() {
-			var list = Entity.queryMetadata("policies");
+			var list = Entity.queryMetadata("policies", { siteId: $scope.site });
 			$scope.loading = true;
 
 			list._then(function () {
 				$scope.loading = false;
-				originPolicyList = list;
-				$scope.updateSiteFilter();
+				$scope.policyList = list;
 			});
 		}
 		updateList();

http://git-wip-us.apache.org/repos/asf/eagle/blob/c8505673/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js
index 9b62f6a..b32a87f 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.js
@@ -76,6 +76,7 @@
 			partitionSpec: [],
 			parallelismHint: 5
 		}, $scope.policy);
+		$scope.policy.siteId = $scope.policy.siteId || $wrapState.param.siteId;
 		console.log("[Policy]", $scope.policy);
 
 		var cacheSiteId;
@@ -388,7 +389,7 @@
 								title: "Done",
 								content: "Close dialog to go to the policy detail page."
 							}, function () {
-								$wrapState.go("policyDetail", {name: $scope.policy.name});
+								$wrapState.go("policyDetail", {name: $scope.policy.name, siteId: $scope.policy.siteId});
 							});
 						}, function (res) {
 							// Link Failed

http://git-wip-us.apache.org/repos/asf/eagle/blob/c8505673/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js b/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js
index 6f7e3c6..f68789d 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/services/pageSrv.js
@@ -91,12 +91,12 @@
 
 		var defaultPortalList = [
 			{name: "Home", icon: "home", path: "#/"},
-			{name: "Alert", icon: "bell", showFunc: checkApplication, list: [
+			/* {name: "Alert", icon: "bell", showFunc: checkApplication, list: [
 				{name: "Alerts", path: "#/alerts"},
 				{name: "Policies", path: "#/policies"},
 				{name: "Streams", path: "#/streams"},
 				{name: "Define Policy", path: "#/policy/create"}
-			]}
+			]} */
 		];
 		var adminPortalList = [
 			{name: "Integration", icon: "puzzle-piece", showFunc: checkSite, list: [
@@ -112,12 +112,23 @@
 		var connectedMainPortalList = [];
 		var sitePortals = {};
 
-		var backHome = {name: "Back", icon: "arrow-left", path: "#/"};
-
 		Portal.register = function (portal, isSite) {
 			(isSite ? sitePortalList : mainPortalList).push(portal);
 		};
 
+		function getDefaultSitePortal(site) {
+			return[
+				{name: "Back", icon: "arrow-left", path: "#/"},
+				{name: site.siteName || site.siteId + " Home", icon: "home", path: "#/site/" + site.siteId},
+				{name: "Alert", icon: "bell", list: [
+					{name: "Alerts", path: "#/site/" + site.siteId + "/alerts"},
+					{name: "Policies", path: "#/site/" + site.siteId + "/policies"},
+					{name: "Streams", path: "#/site/" + site.siteId + "/streams"},
+					{name: "Define Policy", path: "#/site/" + site.siteId + "/policy/create"}
+				]},
+			];
+		}
+
 		function convertSitePortal(site, portal) {
 			portal = $.extend({}, portal, {
 				path: portal.path ? "#/site/" + site.siteId + "/" + portal.path.replace(/^[\\\/]/, "") : null
@@ -165,15 +176,14 @@
 			// Site level
 			sitePortals = {};
 			$.each(Site.list, function (i, site) {
-				var siteHome = {name: site.siteName || site.siteId + " Home", icon: "home", path: "#/site/" + site.siteId};
-				var sitePortalList = [backHome, siteHome].concat($.map(sitePortalList, function (portal) {
+				var tmpSitePortalList = getDefaultSitePortal(site).concat($.map(sitePortalList, function (portal) {
 					var hasApp = !!common.array.find(portal.application, site.applicationList, "descriptor.type");
 					if(hasApp) {
 						return convertSitePortal(site, portal);
 					}
 				}));
 
-				sitePortals[site.siteId] = mergePortalList(sitePortalList);
+				sitePortals[site.siteId] = mergePortalList(tmpSitePortalList);
 			});
 		};