Repository: incubator-eagle
Updated Branches:
  refs/heads/master e3f358c84 -> 4250e2d32


EAGLE-699 UI imporvement

* Init UI hide {{}}
* Description update
* Fix JPM widget bug
* UI tab to window / router update

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

Closes #582 from zombieJ/699.


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

Branch: refs/heads/master
Commit: 4250e2d32f2cb33760af5d3b1d7f06a9bb91748f
Parents: e3f358c
Author: zombieJ <smith3...@gmail.com>
Authored: Fri Oct 28 20:12:28 2016 +0800
Committer: zombieJ <smith3...@gmail.com>
Committed: Fri Oct 28 20:12:28 2016 +0800

----------------------------------------------------------------------
 .../webapp/app/apps/jpm/ctrl/jobTaskCtrl.js     |  2 +-
 .../app/apps/jpm/partials/job/detail.html       | 16 ++--
 eagle-server/src/main/webapp/app/dev/index.html |  7 +-
 .../webapp/app/dev/partials/alert/list.html     | 86 +++++++++++---------
 .../webapp/app/dev/partials/alert/main.html     | 29 -------
 .../app/dev/partials/alert/policyList.html      |  8 +-
 .../app/dev/partials/alert/streamList.html      | 62 ++++++++------
 .../src/main/webapp/app/dev/public/css/main.css |  6 ++
 .../src/main/webapp/app/dev/public/js/app.js    | 35 ++++----
 .../src/main/webapp/app/dev/public/js/common.js |  1 +
 .../webapp/app/dev/public/js/ctrls/alertCtrl.js | 21 ++---
 .../dev/public/js/ctrls/alertEditCtrl.bac.js    |  2 +-
 .../app/dev/public/js/ctrls/alertEditCtrl.js    | 12 +--
 .../app/dev/public/js/services/pageSrv.js       |  8 +-
 .../app/dev/public/js/services/timeSrv.js       | 53 ++++++------
 15 files changed, 175 insertions(+), 173 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/ctrl/jobTaskCtrl.js
----------------------------------------------------------------------
diff --git 
a/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/ctrl/jobTaskCtrl.js 
b/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/ctrl/jobTaskCtrl.js
index 9f0e7f4..fc70bd3 100644
--- a/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/ctrl/jobTaskCtrl.js
+++ b/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/ctrl/jobTaskCtrl.js
@@ -101,7 +101,7 @@
                        var startTime = Number($wrapState.param.startTime);
                        var endTime = Number($wrapState.param.endTime);
 
-                       PageConfig.title = "Task";
+                       PageConfig.title = "(beta) Task Statistic";
                        PageConfig.subTitle = $scope.jobId;
 
                        var timeDiff = endTime - startTime;

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/partials/job/detail.html
----------------------------------------------------------------------
diff --git 
a/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/partials/job/detail.html 
b/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/partials/job/detail.html
index 57561ba..fb8f7b8 100644
--- 
a/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/partials/job/detail.html
+++ 
b/eagle-jpm/eagle-jpm-web/src/main/webapp/app/apps/jpm/partials/job/detail.html
@@ -125,19 +125,23 @@
                                                </tr>
                                                <tr>
                                                        <th>Map vCores</th>
-                                                       
<td>{{common.number.toFixed(job.jobCounters.counters["org.apache.hadoop.mapreduce.JobCounter"].VCORES_MILLIS_MAPS)}}</td>
+                                                       <td 
class="text-no-break">{{common.number.toFixed(job.jobCounters.counters["org.apache.hadoop.mapreduce.JobCounter"].VCORES_MILLIS_MAPS)}}
 ms</td>
                                                        <th>Map CPU</th>
-                                                       
<td>{{common.number.toFixed(job.jobCounters.counters.MapTaskAttemptCounter.CPU_MILLISECONDS)}}</td>
+                                                       <td 
class="text-no-break">{{common.number.toFixed(job.jobCounters.counters.MapTaskAttemptCounter.CPU_MILLISECONDS)}}
 ms</td>
                                                        <th>HDFS Read Bytes</th>
-                                                       
<td>{{common.number.toFixed(job.jobCounters.counters["org.apache.hadoop.mapreduce.FileSystemCounter"].HDFS_BYTES_READ)}}</td>
+                                                       <td 
title="{{job.jobCounters.counters['org.apache.hadoop.mapreduce.FileSystemCounter'].HDFS_BYTES_READ}}">
+                                                               
{{common.number.abbr(job.jobCounters.counters["org.apache.hadoop.mapreduce.FileSystemCounter"].HDFS_BYTES_READ,
 true)}}
+                                                       </td>
                                                </tr>
                                                <tr>
                                                        <th>Reduce vCores</th>
-                                                       
<td>{{common.number.toFixed(job.jobCounters.counters["org.apache.hadoop.mapreduce.JobCounter"].VCORES_MILLIS_REDUCES)}}</td>
+                                                       <td 
class="text-no-break">{{common.number.toFixed(job.jobCounters.counters["org.apache.hadoop.mapreduce.JobCounter"].VCORES_MILLIS_REDUCES)}}
 ms</td>
                                                        <th>Map CPU</th>
-                                                       
<td>{{common.number.toFixed(job.jobCounters.counters.ReduceTaskAttemptCounter.CPU_MILLISECONDS)}}</td>
+                                                       <td 
class="text-no-break">{{common.number.toFixed(job.jobCounters.counters.ReduceTaskAttemptCounter.CPU_MILLISECONDS)}}
 ms</td>
                                                        <th>HDFS Write 
Bytes</th>
-                                                       
<td>{{common.number.toFixed(job.jobCounters.counters["org.apache.hadoop.mapreduce.FileSystemCounter"].HDFS_BYTES_WRITTEN)}}</td>
+                                                       <td 
title="{{job.jobCounters.counters['org.apache.hadoop.mapreduce.FileSystemCounter'].HDFS_BYTES_WRITTEN}}">
+                                                               
{{common.number.abbr(job.jobCounters.counters["org.apache.hadoop.mapreduce.FileSystemCounter"].HDFS_BYTES_WRITTEN,
 true)}}
+                                                       </td>
                                                </tr>
                                                <tr ng-if="!isRunning">
                                                        <th>Last Map 
Duration</th>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-server/src/main/webapp/app/dev/index.html
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/index.html 
b/eagle-server/src/main/webapp/app/dev/index.html
index 05ad602..d889237 100644
--- a/eagle-server/src/main/webapp/app/dev/index.html
+++ b/eagle-server/src/main/webapp/app/dev/index.html
@@ -44,7 +44,7 @@
                <link href="public/css/main.css" rel="stylesheet" 
type="text/css" media="screen">
                <!-- endref -->
        </head>
-       <body class="skin-blue sidebar-mini" ng-class="{'no-sidebar' : 
PageConfig.hideSidebar}">
+       <body class="skin-blue sidebar-mini ng-init-lock" 
ng-class="{'no-sidebar' : PageConfig.hideSidebar}">
                <!-- Site wrapper -->
                <div class="wrapper">
                        <header class="main-header">
@@ -169,6 +169,11 @@
 
                                <!-- Main content -->
                                <section class="content">
+                                       <h1 id="appLoadTip">
+                                               <span class="fa fa-refresh 
fa-spin"></span>
+                                               Loading...
+                                       </h1>
+
                                        <div id="content">
                                                <div ui-view></div>
                                        </div>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/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 182f749..395e24b 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
@@ -16,44 +16,52 @@
   limitations under the License.
   -->
 
-<div class="box-body">
-       <div sort-table="alertList" is-sorting="isSorting">
-               <table class="table table-bordered">
-                       <thead>
-                               <tr>
-                                       <th sortpath="alertTimestamp" 
width="135">
-                                               Alert Time
-                                               <span class="fa fa-refresh 
fa-spin no-animate" ng-show="!alertList._done || isSorting"></span>
-                                       </th>
-                                       <th sortpath="siteId" 
width="75">Site</th>
-                                       <th sortpath="policyId" 
width="75">Policy</th>
-                                       <!--th sortpath="streamId" 
width="75">Stream</th-->
-                                       <th width="100">Application</th>
-                                       <th>Alert Data</th>
-                                       <th width="10"></th>
-                               </tr>
-                       </thead>
-                       <tbody>
-                               <tr>
-                                       
<td>{{Time.format(item.alertTimestamp)}}</td>
-                                       <td>{{item.siteId}}</td>
-                                       <td>
-                                               <a ui-sref="policyDetail({name: 
item.policyId})">{{item.policyId}}</a>
-                                       </td>
-                                       <!--td>{{item.streamId}}</td-->
-                                       <td>
-                                               <ul class="list-unstyled">
-                                                       <li ng-repeat="app in 
item.appIds track by $index" class="label label-sm label-primary">
-                                                               
{{Application.findProvider(app).type || app}}
-                                                       </li>
-                                               </ul>
-                                       </td>
-                                       <td 
class="text-break">{{item.alertData}}</td>
-                                       <td>
-                                               <a 
ui-sref="alertDetail({alertId: item.alertId})">Detail</a>
-                                       </td>
-                               </tr>
-                       </tbody>
-               </table>
+<div class="box box-primary">
+       <div class="box-header with-border">
+               <span class="fa fa-bell"></span>
+               <h3 class="box-title">
+                       Alert List
+               </h3>
+       </div>
+       <div class="box-body">
+               <div sort-table="alertList" is-sorting="isSorting">
+                       <table class="table table-bordered">
+                               <thead>
+                                       <tr>
+                                               <th sortpath="alertTimestamp" 
width="135">
+                                                       Alert Time
+                                                       <span class="fa 
fa-refresh fa-spin no-animate" ng-show="!alertList._done || isSorting"></span>
+                                               </th>
+                                               <th sortpath="siteId" 
width="75">Site</th>
+                                               <th sortpath="policyId" 
width="75">Policy</th>
+                                               <!--th sortpath="streamId" 
width="75">Stream</th-->
+                                               <th width="100">Application</th>
+                                               <th>Alert Data</th>
+                                               <th width="10"></th>
+                                       </tr>
+                               </thead>
+                               <tbody>
+                                       <tr>
+                                               
<td>{{Time.format(item.alertTimestamp)}}</td>
+                                               <td>{{item.siteId}}</td>
+                                               <td>
+                                                       <a 
ui-sref="policyDetail({name: item.policyId})">{{item.policyId}}</a>
+                                               </td>
+                                               <!--td>{{item.streamId}}</td-->
+                                               <td>
+                                                       <ul 
class="list-unstyled">
+                                                               <li 
ng-repeat="app in item.appIds track by $index" class="label label-sm 
label-primary">
+                                                                       
{{Application.findProvider(app).type || app}}
+                                                               </li>
+                                                       </ul>
+                                               </td>
+                                               <td 
class="text-break">{{item.alertData}}</td>
+                                               <td>
+                                                       <a 
ui-sref="alertDetail({alertId: item.alertId})">Detail</a>
+                                               </td>
+                                       </tr>
+                               </tbody>
+                       </table>
+               </div>
        </div>
 </div>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-server/src/main/webapp/app/dev/partials/alert/main.html
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/partials/alert/main.html 
b/eagle-server/src/main/webapp/app/dev/partials/alert/main.html
deleted file mode 100644
index 5d35893..0000000
--- a/eagle-server/src/main/webapp/app/dev/partials/alert/main.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-  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="nav-tabs-custom">
-       <ul class="nav nav-tabs">
-               <li ng-class="{active: getState() === 'alert.list'}"><a 
href="#/alert/">Alerts</a></li>
-               <li ng-class="{active: getState() === 'alert.policyList'}"><a 
href="#/alert/policyList">Policies</a></li>
-               <li ng-class="{active: getState() === 'alert.streamList'}"><a 
href="#/alert/streamList">Streams</a></li>
-       </ul>
-       <div class="tab-content no-padding">
-               <div ui-view></div>
-       </div>
-</div>
-

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/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 862f944..46bf082 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
@@ -16,7 +16,13 @@
   limitations under the License.
   -->
 
-<div class="box box-solid">
+<div class="box box-primary">
+       <div class="box-header with-border">
+               <span class="fa fa-rocket"></span>
+               <h3 class="box-title">
+                       Policy List
+               </h3>
+       </div>
        <div class="box-body">
                <div sort-table="policyList" ng-show="policyList.length">
                        <table class="table table-bordered">

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/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 79f15a6..2c2332f 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
@@ -16,32 +16,40 @@
   limitations under the License.
   -->
 
-<div class="box-body">
-       <div sort-table="streamList">
-               <table class="table table-bordered table-hover">
-                       <thead>
-                               <tr>
-                                       <th>Stream</th>
-                                       <th>Provider (App)</th>
-                                       <th>Site</th>
-                                       <th>Schema</th>
-                               </tr>
-                       </thead>
-                       <tbody>
-                               <tr>
-                                       <td><span class="label 
label-primary">{{item.streamId}}</span></td>
-                                       <td>{{item.appType}}</td>
-                                       <td>{{item.siteId}}</td>
-                                       <td>
-                                               <ul class="no-margin">
-                                                       <li ng-repeat="column 
in item.schema.columns track by $index">
-                                                               
<strong>{{column.name}}</strong>:
-                                                               {{column.type}}
-                                                       </li>
-                                               </ul>
-                                       </td>
-                               </tr>
-                       </tbody>
-               </table>
+<div class="box box-primary">
+       <div class="box-header with-border">
+               <span class="fa fa-code-fork"></span>
+               <h3 class="box-title">
+                       Stream List
+               </h3>
+       </div>
+       <div class="box-body">
+               <div sort-table="streamList">
+                       <table class="table table-bordered table-hover">
+                               <thead>
+                                       <tr>
+                                               <th>Stream</th>
+                                               <th>Provider (App)</th>
+                                               <th>Site</th>
+                                               <th>Schema</th>
+                                       </tr>
+                               </thead>
+                               <tbody>
+                                       <tr>
+                                               <td><span class="label 
label-primary">{{item.streamId}}</span></td>
+                                               <td>{{item.appType}}</td>
+                                               <td>{{item.siteId}}</td>
+                                               <td>
+                                                       <ul class="no-margin">
+                                                               <li 
ng-repeat="column in item.schema.columns track by $index">
+                                                                       
<strong>{{column.name}}</strong>:
+                                                                       
{{column.type}}
+                                                               </li>
+                                                       </ul>
+                                               </td>
+                                       </tr>
+                               </tbody>
+                       </table>
+               </div>
        </div>
 </div>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-server/src/main/webapp/app/dev/public/css/main.css
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/css/main.css 
b/eagle-server/src/main/webapp/app/dev/public/css/main.css
index a447bdf..8f65c69 100644
--- a/eagle-server/src/main/webapp/app/dev/public/css/main.css
+++ b/eagle-server/src/main/webapp/app/dev/public/css/main.css
@@ -17,6 +17,12 @@
  * limitations under the License.
  */
 
+body.ng-init-lock .main-sidebar .sidebar-menu,
+body.ng-init-lock .content-wrapper .content-header,
+body.ng-init-lock .main-header .navbar-custom-menu {
+       display: none;
+}
+
 a {
        cursor: pointer;
 }

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/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 67b8487..ca5c6ef 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
@@ -117,52 +117,45 @@ var app = {};
                                        resolve: routeResolve({ site: false, 
application: false })
                                })
                                // ================================= Alerts 
=================================
-                               .state('alert', {
-                                       abstract: true,
-                                       url: "/alert/",
-                                       templateUrl: 
"partials/alert/main.html?_=" + window._TRS(),
-                                       controller: "alertCtrl",
-                                       resolve: routeResolve(false)
-                               })
-                               .state('alert.list', {
-                                       url: "",
+                               .state('alertList', {
+                                       url: "/alerts",
                                        templateUrl: 
"partials/alert/list.html?_=" + window._TRS(),
                                        controller: "alertListCtrl",
                                        resolve: routeResolve()
                                })
-                               .state('alert.policyList', {
-                                       url: "policyList",
+                               .state('policyList', {
+                                       url: "/policies",
                                        templateUrl: 
"partials/alert/policyList.html?_=" + window._TRS(),
                                        controller: "policyListCtrl",
                                        resolve: routeResolve()
                                })
-                               .state('alert.streamList', {
-                                       url: "streamList",
+                               .state('streamList', {
+                                       url: "/streams",
                                        templateUrl: 
"partials/alert/streamList.html?_=" + window._TRS(),
                                        controller: "alertStreamListCtrl",
                                        resolve: routeResolve()
                                })
                                .state('policyCreate', {
-                                       url: "/alert/policyCreate",
+                                       url: "/policy/create",
                                        templateUrl: 
"partials/alert/policyEdit/main.html?_=" + window._TRS(),
                                        controller: "policyCreateCtrl",
                                        resolve: routeResolve()
                                })
                                .state('policyEdit', {
-                                       url: "/alert/policyEdit/{name}",
+                                       url: "/policy/edit/{name}",
                                        templateUrl: 
"partials/alert/policyEdit/main.html?_=" + window._TRS(),
                                        controller: "policyEditCtrl",
                                        resolve: routeResolve()
                                })
 
                                .state('alertDetail', {
-                                       url: "/alertDetail/{alertId}",
+                                       url: "/alert/detail/{alertId}",
                                        templateUrl: 
"partials/alert/detail.html?_=" + window._TRS(),
                                        controller: "alertDetailCtrl",
                                        resolve: routeResolve()
                                })
                                .state('policyDetail', {
-                                       url: "/policyDetail/{name}",
+                                       url: "/policy/detail/{name}",
                                        templateUrl: 
"partials/alert/policyDetail.html?_=" + window._TRS(),
                                        controller: "policyDetailCtrl",
                                        resolve: routeResolve()
@@ -303,6 +296,10 @@ var app = {};
                                }
                        });
 
+                       $scope.$on('$stateChangeSuccess ', function (event) {
+                               console.log("[Switch] done ->", event);
+                       });
+
                        // ================================ Function 
================================
                        // Get side bar navigation item class
                        $scope.getNavClass = function (portal) {
@@ -355,8 +352,12 @@ var app = {};
                //noinspection JSCheckFunctionSignatures
                angular.element(document).ready(function() {
                        console.info("[Eagle] UI start...");
+
                        //noinspection JSCheckFunctionSignatures
                        angular.bootstrap(document, ['eagleApp']);
+
+                       $("body").removeClass("ng-init-lock");
+                       $("#appLoadTip").remove();
                });
        });
 })();

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-server/src/main/webapp/app/dev/public/js/common.js
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/js/common.js 
b/eagle-server/src/main/webapp/app/dev/public/js/common.js
index 7d41371..e4f806d 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/common.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/common.js
@@ -360,6 +360,7 @@
                var sign = number < 0 ? -1 : 1;
                var unit = '';
                number = Math.abs(number);
+               if(isNaN(number)) return "-";
 
                for(var i = abbrev.length - 1; i >= 0; i--) {
                        var size = Math.pow(base, i + 1);

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/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 ed3ca74..6c3b930 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
@@ -22,20 +22,10 @@
        var eagleControllers = angular.module('eagleControllers');
 
        // 
======================================================================================
-       // =                                        Main                        
                =
-       // 
======================================================================================
-       eagleControllers.controller('alertCtrl', function ($scope, $wrapState, 
PageConfig) {
-               PageConfig.title = "Alert";
-               $scope.getState = function() {
-                       return $wrapState.current.name;
-               };
-       });
-
-       // 
======================================================================================
        // =                                        Alert                       
                =
        // 
======================================================================================
        eagleControllers.controller('alertListCtrl', function ($scope, 
$wrapState, $interval, PageConfig, Entity) {
-               PageConfig.subTitle = "Explore Alerts";
+               PageConfig.title = "Alerts";
 
                $scope.alertList = Entity.queryMetadata("alerts", {size: 
10000});
 
@@ -67,8 +57,7 @@
        // =                                       Stream                       
                =
        // 
======================================================================================
        eagleControllers.controller('alertStreamListCtrl', function ($scope, 
$wrapState, PageConfig, Application) {
-               PageConfig.title = "Alert";
-               PageConfig.subTitle = "Streams";
+               PageConfig.title = "Streams";
 
                $scope.streamList = $.map(Application.list, function (app) {
                        return (app.streams || []).map(function (stream) {
@@ -86,7 +75,7 @@
        // =                                       Policy                       
                =
        // 
======================================================================================
        eagleControllers.controller('policyListCtrl', function ($scope, 
$wrapState, PageConfig, Entity, UI) {
-               PageConfig.subTitle = "Manage Policies";
+               PageConfig.title = "Policies";
 
                $scope.policyList = [];
 
@@ -124,7 +113,7 @@
                PageConfig.title = $wrapState.param.name;
                PageConfig.subTitle = "Detail";
                PageConfig.navPath = [
-                       {title: "Policy List", path: "/alert/policyList"},
+                       {title: "Policy List", path: "/policies"},
                        {title: "Detail"}
                ];
 
@@ -138,7 +127,7 @@
                                        title: "OPS",
                                        content: "Policy '" + 
$wrapState.param.name + "' not found!"
                                }, function () {
-                                       $wrapState.go("alert.policyList");
+                                       $wrapState.go("policyList");
                                });
                        } else {
                                $scope.publisherList = 
Entity.queryMetadata("policies/" + encodeURIComponent($scope.policy.name) + 
"/publishments");

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.bac.js
----------------------------------------------------------------------
diff --git 
a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.bac.js 
b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.bac.js
index 3bcd8d8..ce32013 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.bac.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/alertEditCtrl.bac.js
@@ -58,7 +58,7 @@
                                        title: "OPS",
                                        content: "Policy '" + 
$wrapState.param.name + "' not found!"
                                }, function () {
-                                       $wrapState.go("alert.policyList");
+                                       $wrapState.go("policyList");
                                });
                        }
                });

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/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 8b7d041..989ce0f 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
@@ -73,7 +73,7 @@
                                        title: "OPS",
                                        content: "Policy '" + 
$wrapState.param.name + "' not found!"
                                }, function () {
-                                       $wrapState.go("alert.policyList");
+                                       $wrapState.go("policyList");
                                });
                        }
                });
@@ -82,11 +82,6 @@
        function policyEditController(policy, $scope, $q, $wrapState, $timeout, 
PageConfig, Entity) {
                $scope.publisherTypes = publisherTypes;
 
-               PageConfig.navPath = [
-                       {title: "Policy List", path: "/alert/policyList"},
-                       {title: "Policy"}
-               ];
-
                $scope.policy = policy;
                $scope.policy = common.merge({
                        name: "",
@@ -108,6 +103,11 @@
                $scope.applications = {};
                $scope.newPolicy = !$scope.policy.name;
 
+               PageConfig.navPath = [
+                       {title: "Policy List", path: "/policies"},
+                       {title: ($scope.newPolicy ? "Define" : "Update") + " 
Policy"}
+               ];
+
                // 
==============================================================
                // =                             UI                             
=
                // 
==============================================================

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/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 be3281b..2c61087 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
@@ -53,10 +53,10 @@
                var defaultPortalList = [
                        {name: "Home", icon: "home", path: "#/"},
                        {name: "Alert", icon: "bell", showFunc: 
checkApplication, list: [
-                               {name: "Alerts", path: "#/alert/"},
-                               {name: "Policies", path: "#/alert/policyList"},
-                               {name: "Streams", path: "#/alert/streamList"},
-                               {name: "Define Policy", path: 
"#/alert/policyCreate"}
+                               {name: "Alerts", path: "#/alerts"},
+                               {name: "Policies", path: "#/policies"},
+                               {name: "Streams", path: "#/streams"},
+                               {name: "Define Policy", path: "#/policy/create"}
                        ]}
                ];
                var adminPortalList = [

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4250e2d3/eagle-server/src/main/webapp/app/dev/public/js/services/timeSrv.js
----------------------------------------------------------------------
diff --git a/eagle-server/src/main/webapp/app/dev/public/js/services/timeSrv.js 
b/eagle-server/src/main/webapp/app/dev/public/js/services/timeSrv.js
index 9d1f85c..a80de86 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/services/timeSrv.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/services/timeSrv.js
@@ -235,41 +235,44 @@
 
                var promiseLock = false;
                $Time.getPromise = function (config, state, param) {
+                       var deferred = $q.defer();
+
                        if(keepTime) {
                                keepTime = false;
-                               return $q.when($Time);
-                       }
-
-                       if(config.time === true) {
-                               $Time.pickerType = $Time.TIME_RANGE_PICKER;
-
-                               if(!promiseLock) {
-                                       startTime = 
$Time.verifyTime(param.startTime);
-                                       endTime = 
$Time.verifyTime(param.endTime);
+                               deferred.resolve($Time);
+                       } else {
+                               if (config.time === true) {
+                                       $Time.pickerType = 
$Time.TIME_RANGE_PICKER;
 
-                                       if (!startTime || !endTime) {
-                                               endTime = $Time();
-                                               startTime = 
endTime.clone().subtract(2, "hour");
+                                       if (!promiseLock) {
+                                               startTime = 
$Time.verifyTime(param.startTime);
+                                               endTime = 
$Time.verifyTime(param.endTime);
 
-                                               setTimeout(function () {
-                                                       promiseLock = true;
-                                                       keepTime = true;
-                                                       
$wrapState.go(state.name, $.extend({}, param, {
-                                                               startTime: 
$Time.format(startTime),
-                                                               endTime: 
$Time.format(endTime)
-                                                       }), {location: 
"replace", notify: false});
+                                               if (!startTime || !endTime) {
+                                                       endTime = $Time();
+                                                       startTime = 
endTime.clone().subtract(2, "hour");
 
                                                        setTimeout(function () {
-                                                               promiseLock = 
false;
-                                                       }, 150);
-                                               }, 100);
+                                                               promiseLock = 
true;
+                                                               keepTime = true;
+                                                               
$wrapState.go(state.name, $.extend({}, param, {
+                                                                       
startTime: $Time.format(startTime),
+                                                                       
endTime: $Time.format(endTime)
+                                                               }), {location: 
"replace", notify: false});
+
+                                                               
setTimeout(function () {
+                                                                       
promiseLock = false;
+                                                               }, 150);
+                                                       }, 100);
+                                               }
                                        }
+                               } else {
+                                       $Time.pickerType = null;
                                }
-                       } else {
-                               $Time.pickerType = null;
+                               deferred.resolve($Time);
                        }
 
-                       return $q.when($Time);
+                       return deferred.promise;
                };
 
                return $Time;

Reply via email to