You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@griffin.apache.org by gu...@apache.org on 2017/06/01 06:55:49 UTC

[1/7] incubator-griffin git commit: Schedule2

Repository: incubator-griffin
Updated Branches:
  refs/heads/master a0802ed49 -> 1fa4f2438


http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/createrule-va-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/createrule-va-ctrl.spec.js b/ui/tests/ut/specs/controllers/createrule-va-ctrl.spec.js
index 990ef4e..aa4a8e1 100644
--- a/ui/tests/ut/specs/controllers/createrule-va-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/createrule-va-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 define(['angular', 'angularMocks', 'js/controllers/createrule-va-ctrl'],
   function(angular, mocks, CreateRuleVACtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/createrule0-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/createrule0-ctrl.spec.js b/ui/tests/ut/specs/controllers/createrule0-ctrl.spec.js
index 8df4af1..189a354 100644
--- a/ui/tests/ut/specs/controllers/createrule0-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/createrule0-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 define(['angular', 'angularMocks', 'js/controllers/createrule0-ctrl'],
   function(angular, mocks, CreateRule0Ctrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/health-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/health-ctrl.spec.js b/ui/tests/ut/specs/controllers/health-ctrl.spec.js
index b35e40a..12da7fb 100644
--- a/ui/tests/ut/specs/controllers/health-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/health-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
 define(['require', 'angular', 'angularMocks', 'js/controllers/health-ctrl', 'echarts'],
   function(require, angular, mocks, HealthCtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/job-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/job-ctrl.spec.js b/ui/tests/ut/specs/controllers/job-ctrl.spec.js
new file mode 100644
index 0000000..53810ae
--- /dev/null
+++ b/ui/tests/ut/specs/controllers/job-ctrl.spec.js
@@ -0,0 +1,58 @@
+/*-
+ * Licensed 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.
+
+ */
+
+define(['angular', 'angularMocks', 'js/controllers/job-ctrl'],
+  function(angular, mocks, JobCtrl) {
+    describe('Test /js/controllers/job-ctrl.js', function(){
+      	beforeEach(function(){
+	        module('app.controllers');
+	        module('app.services');
+      	});
+    	var $scope, $rootScope, $controller, $httpBackend, $config, $location, toaster, $timeout, $route;
+
+	    beforeEach(inject(function(_$rootScope_ , _$controller_, _$httpBackend_, _$config_, _$location_, _$timeout_){
+	    	$rootScope = _$rootScope_;
+	    	$controller = _$controller_;
+	        $httpBackend = _$httpBackend_;
+	        $config = _$config_;
+	        $location = _$location_;
+	        $timeout = _$timeout_;
+	        toaster = {};
+	        $route = {};
+	    }));
+
+        beforeEach(function(){
+          	$scope =  $rootScope.$new();
+	        controller = $controller('JobCtrl', {$scope: $scope, $route: $route, toaster: toaster });
+        });
+
+        describe("if the controller of JobCtrl exists",function(){
+        	it('controller exists', function(){
+	          	expect(controller).toBeDefined();
+	        });
+        })
+
+        describe("check if createRowCollection",function(){
+
+	        it('createRowCollection', function(){
+	          	expect($scope.rowCollection).not.toEqual([]);
+	        });
+
+      	})
+
+
+    });
+  }
+)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/metrics-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/metrics-ctrl.spec.js b/ui/tests/ut/specs/controllers/metrics-ctrl.spec.js
index 0036101..00e921c 100644
--- a/ui/tests/ut/specs/controllers/metrics-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/metrics-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
 define(['angular', 'angularMocks', 'js/controllers/metrics-ctrl'],
   function(angular, mocks, MetricsCtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/nav-ctrl_spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/nav-ctrl_spec.js b/ui/tests/ut/specs/controllers/nav-ctrl_spec.js
index b4549fb..9cfebf1 100644
--- a/ui/tests/ut/specs/controllers/nav-ctrl_spec.js
+++ b/ui/tests/ut/specs/controllers/nav-ctrl_spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 define(['angular', 'angularMocks', 'js/controllers/nav-ctrl'],
   function(angular, mocks, navCtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/rule-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/rule-ctrl.spec.js b/ui/tests/ut/specs/controllers/rule-ctrl.spec.js
index c5b0df8..aa4654e 100644
--- a/ui/tests/ut/specs/controllers/rule-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/rule-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 define(['angular', 'angularMocks', 'js/controllers/rule-ctrl'],
   function(angular, mocks, RuleCtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/sidebar-ctrl_spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/sidebar-ctrl_spec.js b/ui/tests/ut/specs/controllers/sidebar-ctrl_spec.js
index 5b5a949..5502d6f 100644
--- a/ui/tests/ut/specs/controllers/sidebar-ctrl_spec.js
+++ b/ui/tests/ut/specs/controllers/sidebar-ctrl_spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
 define(['angular', 'angularMocks', 'js/controllers/sidebar-ctrl'],
   function(angular, mocks, sidebarCtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/viewrule-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/viewrule-ctrl.spec.js b/ui/tests/ut/specs/controllers/viewrule-ctrl.spec.js
index 1aa3c61..dd97413 100644
--- a/ui/tests/ut/specs/controllers/viewrule-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/viewrule-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
 define(['angular', 'angularMocks', 'js/controllers/viewrule-ctrl'],
   function(angular, mocks, ViewRuleCtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/filters/strmap_spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/filters/strmap_spec.js b/ui/tests/ut/specs/filters/strmap_spec.js
index a2bbee0..3ae6ce0 100644
--- a/ui/tests/ut/specs/filters/strmap_spec.js
+++ b/ui/tests/ut/specs/filters/strmap_spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 define(['angular', 'angularMocks', 'js/filters/strmap'],
   function(angular, mocks, filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/filters/strshorten_spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/filters/strshorten_spec.js b/ui/tests/ut/specs/filters/strshorten_spec.js
index e6ffa7d..e4aa472 100644
--- a/ui/tests/ut/specs/filters/strshorten_spec.js
+++ b/ui/tests/ut/specs/filters/strshorten_spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
 define(['angular', 'angularMocks', 'js/filters/strshorten'],
   function(angular, mocks, filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/services/services_spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/services/services_spec.js b/ui/tests/ut/specs/services/services_spec.js
index 8709dc1..e9b5df7 100644
--- a/ui/tests/ut/specs/services/services_spec.js
+++ b/ui/tests/ut/specs/services/services_spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
 define(['angular', 'angularMocks', 'js/services/services'],
   function(angular, mocks, filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/test-main.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/test-main.js b/ui/tests/ut/test-main.js
index ef3c9bb..d6a3329 100644
--- a/ui/tests/ut/test-main.js
+++ b/ui/tests/ut/test-main.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
 //for demo purpose
 var allTestFiles = [];


[2/7] incubator-griffin git commit: Schedule2

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/createrule-va.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/createrule-va.html b/ui/pages/rules/createrule-va.html
deleted file mode 100644
index 7a6bf01..0000000
--- a/ui/pages/rules/createrule-va.html
+++ /dev/null
@@ -1,403 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
-  </div><!--//row-->
-  <div class="row">
-    <form name="Form" id="form" novalidate>
-      <div id="wizard" class="swMain" >
-        <ul>
-						<li ng-click="form.goTo(Form, 1)">
-							<a href="" ng-class="{'selected' : currentStep >= 1, 'done' : currentStep > 1}" class="selected" style="">
-								<div class="stepNumber">
-									1
-								</div>
-								<span class="stepDesc text-small"> Choose Target </span>
-							</a>
-						</li>
-						<li ng-click="form.goTo(Form, 2)">
-							<a href="" ng-class="{'selected' : currentStep >= 2, 'done' : currentStep > 2}" class="" style="">
-								<div class="stepNumber">
-									2
-								</div>
-								<span class="stepDesc text-small"> Select Models </span>
-							</a>
-						</li>
-						<li ng-click="form.goTo(Form, 3)">
-							<a href="" ng-class="{'selected' : currentStep >= 3, 'done' : currentStep > 3}" class="" style="">
-								<div class="stepNumber">
-									3
-								</div>
-								<span class="stepDesc text-small"> Configuration </span>
-							</a>
-						</li>
-
-					</ul>
-
-        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
-          <label class="stepDesc">This step let you choose the target for data quality comparision with target, Apollo datasets are enabled, other platofrms are coming soon. Currently you can only select the attributes from one schema</label>
-					<div class="container-fluid">
-            <!-- select db tree -->
-						<div class="col-md-4 col-lg-4 col-sm-4">
-							<fieldset>
-							  <legend>Please select schema</legend>
-                <div class="add-dataset" style="color:#b2c831">
-                    <a class="bark-link" href="#/createdataasset">Cannot find your DataAsset? Click here to add</a>
-                </div>
-                <div angular-treeview="true"
-                      tree-model="dbList"
-                      node-id="id"
-                      node-label="name"
-                      node-children="children"
-                      l1-icon="fa fa-database"
-                      l2-icon="fa fa-table"
-                      l3-icon="fa fa-file-text-o"
-                      class="y-scrollable">
-                </div>
-
-              </fieldset>
-						</div>
-
-            <!-- schema definition list -->
-						<div class="col-md-8 col-lg-8 col-sm-8">
-							<fieldset>
-								<legend>
-									Select one attribute
-								</legend>
-
-								<div class="y-scrollable">
-                  <div>
-                   <label>View schema:</label> <i ng-show="currentNode.parent" style="color:#fff;font-weight: bold;">{{currentNode.parent.name}}.{{currentNode.name}}</i>
-                  </div>
-                  <div>
-                   <label>Selected Column:</label> <i style="color:#fff;font-weight: bold;">{{form.selection}}</i>
-                  </div>
-                 <div>
-                   <table st-table="schemaCollection" class="table table-striped">
-                   	<thead>
-                     	<tr style="background-color:#7D95CC">
-                        <th></th>
-                     		<th>Column Name</th>
-                     		<th>Description</th>
-                     		<th>Data Type</th>
-                     		<th>Sample Data</th>
-
-                     	</tr>
-                   	</thead>
-                   	<tbody>
-                       <tr ng-if="!schemaCollection || schemaCollection.length == 0">
-                         <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
-                       </tr>
-                     	<tr ng-repeat="row in schemaCollection">
-                        <td><input type="radio"
-                              name="selAttr"
-                              value="{{row.name}}"
-                              ng-model="form.selection"
-                            />
-                        </td>
-                        <td>{{row.name}}</td>
-                     		<td>{{row.desc}}</td>
-                        <td>{{row.type}}</td>
-                        <td class="highlight">{{row.sample}}</td>
-                     	</tr>
-                   	</tbody>
-                   </table>
-                 </div>
-                </div>
-              </fieldset>
-            </div>
-
-            <div class="form-group btn-container">
-							<button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
-								Next <i class="fa fa-arrow-circle-right"></i>
-							</button>
-						</div>
-
-          </div>
-
-      </div>
-
-
-
-
-      <div id="step-2" ng-show="currentStep == 2" class="formStep" >
-        <label class="stepDesc">Please choose one of the validity models provided below:</label>
-        <div class="container-fluid">
-          <div class="col-md-12 col-lg-12 col-sm-12">
-            <fieldset>
-              <div class="y-scrollable">
-                <div class="container col-md-12 col-lg-12 col-sm-12">
-                  <div class="row">
-                    <div class="col-md-3 col-lg-3 col-sm-3">
-                      <h5>Simple Statistics</h5>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType" value="2" ng-init="form.vaType=2" /> <label>Null Count</label>
-                        </div>
-                      </div>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType"   value="3"/> <label>Unique Count</label>
-                        </div>
-                      </div>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType" value="4"/> <label>Duplicate Count</label>
-                        </div>
-                      </div>
-                      <h5>Summary Statistics</h5>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType"  value="5"/> <label>Maximum</label>
-                        </div>
-                      </div>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType" value="6"/> <label>Minimum</label>
-                        </div>
-                      </div>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType" value="7"/> <label>Mean</label>
-                        </div>
-                      </div>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType" value="8"/> <label>Median</label>
-                        </div>
-                      </div>
-                      <h5>Advanced Statistics</h5>
-                      <div class="container-fluid">
-                        <div class="col-md-12 col-lg-12 col-sm-12">
-                          <input name="vaType" type="radio" ng-model="form.vaType" value="9" disabled/> <label>Regular Expression Match</label>
-                        </div>
-                      </div>
-                    </div>
-                    <div class="col-md-9 col-lg-9 col-sm-9" ng-include="'/pages/rules/va-explaination.html'">
-                      <!-- <ng-include src="'/models.html'"/> -->
-                    </div>
-                  </div>
-                </div>
-              </div>
-            </fieldset>
-          </div>
-
-          <div class="form-group btn-container" >
-            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
-                <i class="fa fa-arrow-circle-left"></i> Back
-            </button>
-            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
-                Next <i class="fa fa-arrow-circle-right"></i>
-            </button>
-          </div>
-        </div>
-      </div>
-
-      <div id="step-3" ng-show="currentStep == 3" class="formStep" >
-        <label class="stepDesc">Please setup the model required information</label>
-        <div class="container-fluid">
-
-          <!-- schema definition list -->
-          <div class="col-md-12 col-lg-12 col-sm-12">
-            <fieldset>
-              <legend>
-                Required Information
-              </legend>
-              <div class="y-scrollable">
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Model Name<span class="symbol required"></span>:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <input type="text" class="form-control" ng-model="form.basic.name" name="ruleName" placeholder="Please input the rule name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
-                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
-                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
-                    </div>
-
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Model Definition:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <input type="text" class="form-control" ng-model="form.basic.desc" placeholder="Please input detail description of your model">
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Model Type:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <select id="typeSelector" class="form-control" ng-model="form.basic.type" ng-init="form.basic.type='1'" disabled required>
-                        <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
-                      </select>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Organization:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <select id="systemSelector" class="form-control" ng-model="form.basic.system" required disabled>
-                        <option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>
-                      </select>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      DataAsset:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                      <input type="text" class="form-control" ng-model="currentNode.name" disabled>
-                    </div>
-                  </div>
-                </div>
-                <div ng-show="form.vaType==9" class="col-md-12 col-lg-12 col-sm-12" ng-class="{'has-error':Form.regex.$dirty && Form.regex.$invalid, 'has-success':Form.regex.$valid}">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Regular Expression<span class="symbol required"></span>:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                      <div class="row">
-                        <div class="col-md-10 col-lg-10 col-sm-10">
-                          <input type="text"  class="form-control" ng-model="form.basic.regex" name="regex" placeholder="Some expression like ^[A-Za-z]+$" ng-required="form.vaType==9" ng-change="form.testRegex(Form)">
-                          <span class="error text-small block" ng-if="Form.regex.$dirty && Form.regex.$invalid">Please input valid regular expression.</span>
-                        </div>
-                        <div class="col-md-2 col-lg-2 col-sm-2">
-                          <button type="button" class="btn btn-primary btn-o next-step" style="width:100%;" ng-click="needTestRegex=!needTestRegex" ng-init="needTestRegex=false;"><i class="faChevron" ng-class="needTestRegex ?'fa fa-angle-down':'fa fa-angle-right'" style="width:10px"></i>&nbsp;Test Regex</button>
-                        </div>
-                      </div>
-                      <div class="row" ng-show="needTestRegex">
-                        <div class="col-md-10 col-lg-10 col-sm-10">
-                          <input type="text"  class="form-control" ng-model="form.basic.regexTestStr" name="regexTestStr" placeholder="Please input the test string here" ng-change="form.testRegex(Form)">
-                        </div>
-                        <div class="col-md-2 col-lg-2 col-sm-2" style="padding-top:8px;">
-                          <span class="test-result" ng-class="{'bg-success': regexTestResult=='Matched', 'bg-danger': regexTestResult=='Unmatched'}">{{regexTestResult}}</span>
-                        </div>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group" ng-class="{'has-error':Form.threshold.$invalid}">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Threshold:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                        <input type="number" class="form-control" ng-model="form.basic.threshold" name="threshold">
-                        <span class="error text-small block" ng-if="Form.threshold.$error.number">Only number is allowed</span>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Schedule Type:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <select class="form-control" ng-init="form.basic.scheduleType='1'" ng-model="form.basic.scheduleType" ng-init="form.basic.scheduleType='0'">
-                        <option ng-repeat="row in scheduleTypes" value="{{$index}}" >{{row}}</option>
-                      </select>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group" ng-class="{'has-error':Form.email.$dirty&&Form.email.$invalid, 'has-success':Form.email.$valid}">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Notification email<span class="symbol required"></span>:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                      <input type="email"  class="form-control" ng-model="form.basic.email" name="email" ng-required="currentStep==3" placeholder="Please input valid email address" ng-pattern="'^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'">
-                      <span class="error text-small block" ng-if="Form.email.$dirty&&Form.email.$invalid">Please, enter a valid email address.</span>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Owner:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                      <input type="text"  class="form-control" ng-model="form.basic.owner" ng-init="form.basic.owner=ntAccount" disabled>
-                    </div>
-                  </div>
-                </div>
-              </div>
-
-              <!-- <div style="color:#fff">
-                <label style="color:#b2c831">Tips: </label>After submitted, please go to "Rule Repository" to check the rule status
-              </div> -->
-
-              <div style="color:#b2c831">
-                <p>
-                  <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/rules">Models</a>" to check the model status
-                </p>
-              </div>
-
-            </fieldset>
-          </div>
-
-          <div class="form-group btn-container" >
-            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
-                <i class="fa fa-arrow-circle-left"></i> Back
-            </button>
-            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
-            <!-- <button class="btn btn-primary btn-o next-step btn-wide pull-right" data-toggle="modal" data-target="#confirm"> -->
-                Submit
-            </button>
-          </div>
-        </div>
-      </div>
-
-      <div class="modal fade" id="confirm-va" role="dialog">
-        <div class="modal-dialog modal-xg modal-lg">
-          <div class="modal-content">
-            <div class="modal-header">
-              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-              <h4 class="modal-title">Save the model with the below information?</h4>
-            </div>
-            <div class="modal-body">
-              <ng-include src="'/pages/rules/confirmation-va.html'"/>
-            </div>
-            <div class="modal-footer">
-              <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
-              <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
-            </div>
-          </div>
-        </div>
-      </div>
-    </form>
-  </div><!--//row-->
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/createrule0.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/createrule0.html b/ui/pages/rules/createrule0.html
deleted file mode 100644
index 3e14f48..0000000
--- a/ui/pages/rules/createrule0.html
+++ /dev/null
@@ -1,251 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid" id="main" >
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
-  </div><!--//row-->
-  <div class="row">
-
-    <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
-      <section id="panel-1" class="panel panel-red" style="cursor:pointer" ng-click="click('ac')">
-        <div class="panel-heading">
-          <span style="font-size:20px">Accuracy</span>
-          <span class="pull-right" style="font-size:20px">
-                <span class="fa fa-arrow-circle-right" ng-click="click()"></span>
-          </span>
-        </div>
-        <div class="swMain panel-body" >
-
-          <label class="label-definition">Definition: Measured by how the values agree with an identified source of truth</label>
-
-          <ul style="border-radius:0; background: none">
-              <li >
-                <a href="" class="selected" >
-                  <div class="stepNumber">
-                    1
-                  </div>
-                  <span class="stepDesc text-small"> Choose Source </span>
-                </a>
-              </li>
-              <li>
-                <a href=""  >
-                  <div class="stepNumber">
-                    2
-                  </div>
-                  <span class="stepDesc text-small"> Choose Target </span>
-                </a>
-              </li>
-              <li >
-                <a href=""  >
-                  <div class="stepNumber">
-                    3
-                  </div>
-                  <span class="stepDesc text-small"> Mapping Source and Target </span>
-                </a>
-              </li>
-              <li>
-                <a href="" >
-                  <div class="stepNumber">
-                    4
-                  </div>
-                  <span class="stepDesc text-small"> Configuration </span>
-                </a>
-              </li>
-
-            </ul>
-            <div>
-
-              <ol>
-                <li>Select the source dataset and fields which will be used for comparision</li>
-                <li>Select the target dataset and fields which will be used for comparision</li>
-                <li>Mapping the target fields with source</li>
-                <li>Set basic configuration for your model (name, system, threshold, etc.)</li>
-              </ol>
-            </div>
-
-
-          </div>
-          <div class="panel-footer stepDesc">
-            <label>Example:</label> suppose source table A has 1000 records and target table B only has 999 records pefectly matched with A for selected fields, then
-            Accuracy Rate(%) = 999/1000 * 100% = 99.9%
-          </div>
-        </section>
-      </div>
-      <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
-        <section id="panel-2"  class="panel panel-primary"  ng-click="click('va')">
-          <div class="panel-heading">
-            <span style="font-size:20px">Data Profiling</span>
-            <span class="pull-right" style="font-size:20px">
-                  <span class="fa fa-arrow-circle-right"></span>
-            </span>
-          </div>
-          <div class="swMain panel-body" >
-
-            <label class="label-definition">Definition: Data profiling is the process of examining the data available in an existing data set and collecting statistics and information about that data</label>
-
-            <ul style="border-radius:0; background: none">
-                <li >
-                  <a href="" class="done" style="cursor:default">
-                    <div class="stepNumber">
-                      1
-                    </div>
-                    <span class="stepDesc text-small"> Choose Target </span>
-                  </a>
-                </li>
-                <li>
-                  <a href="" class="selected" style="cursor:default" >
-                    <div class="stepNumber">
-                      2
-                    </div>
-                    <span class="stepDesc text-small">Define/Select Models </span>
-                  </a>
-                </li>
-                <li >
-                  <a href="" style="cursor:default" >
-                    <div class="stepNumber">
-                      3
-                    </div>
-                    <span class="stepDesc text-small"> Configuration </span>
-                  </a>
-                </li>
-
-
-              </ul>
-              <div>
-
-                <ol>
-                  <li>Select the target dataset and fields which want to be checked</li>
-                  <li>Define your syntax check logic which will be applied on the selected fields</li>
-                  <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
-                </ol>
-
-
-              </div>
-
-
-            </div>
-            <div class="panel-footer stepDesc">
-
-              <label>Example:</label> Check the data range(minimum, maximum) within a set of allowable values
-            </div>
-          </section>
-      </div>
-
-    </div><!--//row-->
-
-    <div class="row">
-        <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
-          <section id="panel-3" class="panel panel-yellow" ng-click="click('an')">
-            <div class="panel-heading">
-              <span style="font-size:20px">Anomaly Detection</span>
-              <span class="pull-right" style="font-size:20px">
-                    <span class="fa fa-arrow-circle-right"></span>
-              </span>
-            </div>
-            <div class="swMain panel-body" >
-
-              <label class="label-definition">Definition: Identification of items, events or observations which do not conform to an expected pattern or other items in a dataset</label>
-
-              <ul style="border-radius:0; background: none">
-                  <li >
-                    <a href="" class="done" style="cursor:default">
-                      <div class="stepNumber">
-                        1
-                      </div>
-                      <span class="stepDesc text-small"> Choose Target </span>
-                    </a>
-                  </li>
-                  <li>
-                    <a href="" class="selected" style="cursor:default" >
-                      <div class="stepNumber">
-                        2
-                      </div>
-                      <span class="stepDesc text-small">Define/Select Models </span>
-                    </a>
-                  </li>
-                  <li >
-                    <a href="" style="cursor:default" >
-                      <div class="stepNumber">
-                        3
-                      </div>
-                      <span class="stepDesc text-small"> Configuration </span>
-                    </a>
-                  </li>
-
-
-                </ul>
-                <div>
-
-                  <ol>
-                    <li>Select the target dataset and fields which want to be checked</li>
-                    <li>Select the pre-defined anomaly detection methods which will be applied on the selected fields</li>
-                    <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
-                  </ol>
-                </div>
-              </div>
-              <div class="panel-footer stepDesc">
-                <label>Example1:</label> Check the total row count changed day over day (or hour over hour) on one Dataset
-                <label>Example2:</label> Check the values of all records in Column A should be matched with one expression pattern (first 3 character is 'abc') in one Dataset
-              </div>
-            </section>
-        </div>
-
-        <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
-          <section id="panel-4" class="panel panel-green" ng-click="click('pu')">
-            <div class="panel-heading">
-              <span style="font-size:20px">Publish DQ Metrics Directly</span>
-              <span class="pull-right" style="font-size:20px">
-                    <span class="fa fa-arrow-circle-right"></span>
-              </span>
-            </div>
-            <div class="swMain panel-body" >
-
-              <label class="label-definition">Definition: This is used to publish DQ results which already calculated offline by customers</label>
-
-              <ul style="border-radius:0; background: none">
-                  <li >
-                    <a href="" style="cursor:default" class="onlyone selected">
-                      <div class="stepNumber">
-                        1
-                      </div>
-                      <span class="stepDesc text-small"> Configuration </span>
-                    </a>
-                  </li>
-
-
-
-
-                </ul>
-                <div>
-
-                  <ol>
-                    <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
-                  </ol>
-                </div>
-              </div>
-              <div class="panel-footer stepDesc">
-                <label>Example:</label> This example shows how to publish viewitem accuracy result with RESTful service
-<pre style="background-color:transparent;color:inherit;border:none;overflow:hidden;margin:0 0;padding:0 0">Method: POST
-Endpoint: {{publishURL}}
-Body:{"metricName": "viewitem_accuracy", "timestamp": 1463373496583, "value": "99.9"}</pre>
-              </div>
-            </section>
-        </div>
-
-      </div><!--//row-->
-
-
-
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/delete-confirm.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/delete-confirm.html b/ui/pages/rules/delete-confirm.html
deleted file mode 100644
index 682b050..0000000
--- a/ui/pages/rules/delete-confirm.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid" id="deleteContent" style="overflow:auto;">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Basic information</h5>
-  </div><!--//row-->
-  <div class="row">
-
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-      <div id="viewrule-definition" class="viewrule-content">
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Model Name:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{deletedRow.name}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Model Definition:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{deletedRow.description}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Model Type:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{deletedRow.type|strmap:'modeltype'}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
-            Organization:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{deletedRow.organization|strmap:'modelsystem'}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            DataAsset:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-            {{deletedRow.source.config.tableName}}&nbsp;&nbsp;{{deletedRow.target.config.tableName}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Owner:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-            {{deletedRow.owner}}
-          </div>
-        </div>
-
-
-      </div>
-    </div>
-
-
-  </div><!--//row-->
-
-
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/rule.css
----------------------------------------------------------------------
diff --git a/ui/pages/rules/rule.css b/ui/pages/rules/rule.css
deleted file mode 100644
index e4df215..0000000
--- a/ui/pages/rules/rule.css
+++ /dev/null
@@ -1,341 +0,0 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- */
-.pagination > li > a{
-  cursor:pointer;
-}
-
-
-.swMain>ul {
-    display: table;
-    list-style: none;
-    margin: 0 0 20px;
-    padding: 10px 0;
-    position: relative;
-    width: 100%;
-    background: #f7f7f8;
-    border-radius: 5px
-}
-
-.swMain>div.formStep{
-  background-color: #000000;
-  border-radius: 5px;
-  padding:10px;
-  /*height:800px;*/
-}
-
-.swMain>ul li {
-    display: table-cell;
-    text-align: center;
-    width: 1%
-}
-
-.swMain>ul li>a:before {
-    border-top: 4px solid #c8c7cc;
-    content: "";
-    display: block;
-    font-size: 0;
-    height: 1px;
-    overflow: hidden;
-    position: relative;
-    top: 21px;
-    width: 100%;
-    z-index: 1
-}
-
-.swMain>ul li:first-child>a:before {
-    left: 50%;
-    max-width: 51%
-}
-
-.swMain>ul li:last-child>a:before {
-    max-width: 50%;
-    width: 50%
-}
-
-.swMain li>a.done:before,.swMain>ul li>a.selected:before {
-    border-color: #007AFF
-}
-
-.onlyone:before{
-  left:0  !important;
-  max-width: 100% !important;
-  width: 100% !important;
-}
-
-.swMain>ul .stepNumber {
-    background-color: #fff;
-    border: 5px solid #c8c7cc;
-    border-radius: 100%;
-    color: #546474;
-    display: inline-block;
-    font-size: 15px;
-    height: 40px;
-    line-height: 30px;
-    position: relative;
-    text-align: center;
-    width: 40px;
-    z-index: 2
-}
-
-.swMain>ul li>a.selected .stepNumber {
-    border-color: #007AFF
-}
-
-/*.swMain ul li>a.done .stepNumber,.swMain>ul li:last-child>a.selected .stepNumber {*/
-.swMain ul li>a.done .stepNumber{
-    border-color: #007AFF;
-    background-color: #007AFF;
-    color: #fff;
-    text-indent: -9999px
-}
-
-/*.swMain ul li>a.done .stepNumber:before,.swMain>ul li:last-child>a.selected .stepNumber:before {*/
-.swMain ul li>a.done .stepNumber:before {
-    content: "\f00c";
-    display: inline;
-    float: right;
-    font-family: FontAwesome;
-    font-weight: 300;
-    height: auto;
-    text-shadow: none;
-    margin-right: 7px;
-    text-indent: 0
-}
-
-.swMain ul li>a.done.wait .stepNumber {
-    background-color: #F6F6F6!important;
-    color: #CCC!important;
-    text-indent: 0!important
-}
-
-.swMain ul li>a.done.wait .stepNumber:before {
-    content: ""!important
-}
-
-.swMain>ul li .stepDesc {
-    color: #8e8e93;
-    display: block;
-    font-size: 14px;
-    margin-top: 4px;
-    max-width: 100%;
-    table-layout: fixed;
-    text-align: center;
-    word-wrap: break-word;
-    z-index: 104
-}
-
-.swMain li>a.done .stepDesc,.swMain>ul li>a.selected .stepDesc {
-    /*color: #2B3D53*/
-    color: #007AFF
-}
-
-.swMain>ul li>a.disabled {
-    cursor: default
-}
-
-.swMain .progress {
-    margin-bottom: 30px
-}
-
-.swMain .stepContainer {
-    height: auto!important
-}
-
-/*.swMain .close,.swMain .loader,.swMain [class*=" button"],.swMain [class^=button] {
-    display: none
-}*/
-
-.swMain .y-scrollable{
-  overflow-y: auto;
-  overflow-x: hidden;
-  max-height: 600px;
-}
-
-fieldset{
-  border: 1px solid #e6e8e8;
-  border-radius: 5px;
-  margin:20px 0;
-  padding: 25px;
-  position:relative;
-  min-width:0;
-  display:block;
-
-}
-
-fieldset legend{
-  background-color: black;
-  /*font-family: Lato,sans-serif;*/
-  /*color: #007AFF;*/
-  /*font-size: 15px;*/
-  left: 10px;
-  padding: 0 10px;
-  position: absolute;
-  top: -12px;
-  font-weight: 400;
-  width: auto!important;
-  border: none!important;
-}
-
-.btn-o{
-  background:0 0!important;
-}
-
-.btn-wide{
-  min-width:120px;
-}
-
-.highlight {
-    background: rgba(255, 230, 0, 0.5);
-    padding: 3px 5px;
-    margin: -3px -5px;
-    line-height: 1.7;
-    word-break: break-word;
-    /*border-radius: 3px;*/
-    /*display:inline-block;*/
-}
-
-.label-definition{
-  color:#fff;
-}
-.formStep>.stepDesc{
-  color: #b2c831;
-}
-
-.formStep>.container-fluid{
-  /*position:relative;*/
-}
-
-.btn-container{
-  height:50px;
-  /*position: absolute;
-  bottom: 10;*/
-}
-
-.panel-disabled {
-  border-color: #B9D3DF;
-}
-.panel-disabled > .panel-heading {
-  background-color: #B9D3DF;
-  border-color: #B9D3DF;
-}
-
-.panel-body>ul{
-  border-radius:0;
-  background: none;
-  margin:0;
-}
-
-
-.panel-green {
-    border-color: #5cb85c;
-}
-
-.panel-green .panel-heading {
-    border-color: #5cb85c;
-    color: #fff;
-    background-color: #5cb85c;
-}
-
-.panel-green a {
-    color: #5cb85c;
-}
-
-.panel-green a:hover {
-    color: #3d8b3d;
-}
-
-.panel-red {
-    border-color: #d9534f;
-}
-
-.panel-red .panel-heading {
-    border-color: #d9534f;
-    color: #fff;
-    background-color: #d9534f;
-}
-
-.panel-red a {
-    color: #d9534f;
-}
-
-.panel-red a:hover {
-    color: #b52b27;
-}
-
-.panel-yellow {
-    border-color: #f0ad4e;
-}
-
-.panel-yellow .panel-heading {
-    border-color: #f0ad4e;
-    color: #fff;
-    background-color: #f0ad4e;
-}
-
-.panel-yellow a {
-    color: #f0ad4e;
-}
-
-.panel-yellow a:hover {
-    color: #df8a13;
-}
-
-.viewrule-content{
-  border:1px solid #fff;
-  border-radius:4px;
-  padding:10px;
-}
-
-.ruletypes>.panel{
-  cursor:pointer
-}
-
-.ruletypes>.panel:hover{
-  box-shadow:         3px 3px 5px 6px #ccc;  /* Opera 10.5, IE 9, Firefox 4+, Chrome 6+, iOS 5 */
-  -webkit-box-shadow: 3px 3px 5px 6px #ccc;  /* Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
-  -moz-box-shadow:    3px 3px 5px 6px #ccc;  /* Firefox 3.5 - 3.6 */
-}
-
-.createrule-hint{
-  color:#b2c831;
-  padding-top:10px;
-}
-
-
-::-webkit-scrollbar {
-    width: 6px;
-}
-::-webkit-scrollbar-track {
-    background-color: #eaeaea;
-    /*background-color: #0a0a0a;*/
-    border-left: 1px solid #ccc;
-}
-::-webkit-scrollbar-thumb {
-    background-color: #ccc;
-}
-::-webkit-scrollbar-thumb:hover {
-    background-color: #aaa;
-}
-
-.disabled {
-    pointer-events: none;
-    cursor: default;
-    opacity: 0.6;
-}
-
-.test-result {
-  border-radius: 5px;
-  padding: 1px 5px;
-}

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/rules.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/rules.html b/ui/pages/rules/rules.html
deleted file mode 100644
index cd5a908..0000000
--- a/ui/pages/rules/rules.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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 >
-    <p>
-        <a class="btn btn-primary btn-o btn-wide" href="#/createrule0"><i class="fa fa-plus"></i> Create DQ Model</a>
-    </p>
-
-    <div id="modelContainer">
-        <table st-table="displayed" st-pipe="paging" class="table table-striped">
-            <thead>
-            <!-- <tr>
-
-                    <th colspan="7">
-                        <input st-search placeholder="Search..." type="search" style="color:#000000"/>
-                    </th>
-                </tr> -->
-            <tr style="background-color:#7D95CC">
-                <th st-ratio="15">Model Name</th>
-                <!--<th st-ratio="15">Organization</th>-->
-                <th st-ratio="15">Model Type</th>
-                <th st-ratio="20">Description</th>
-                <!--<th st-ratio="15">Create Date</th>-->
-                <!--<th st-ratio="10">Model Stage</th>-->
-                <th st-ratio="5">Organization</th>
-                <th st-ratio="5">Action</th>
-            </tr>
-            </thead>
-            <tbody>
-            <tr ng-if="!rowCollection || rowCollection.length == 0">
-                <td colspan="7" style="text-align:center">No content!</td>
-            </tr>
-            <tr ng-repeat="row in displayed">
-                <td><a href="#/viewrule/{{row.name}}">{{row.name}}</a></td>
-                <!--<td>{{row.system|strmap:'modelsystem'}}</td>-->
-                <td>{{row.type|strmap:'modeltype'}}</td>
-                <td>{{row.description}}</td>
-                <!--<td>{{row.createDate | date:'short':'-0700'}}</td>-->
-                <!--<td><label class="label" ng-class="row.status==0?'label-default':row.status==1?'label-info':'label-success'" >{{row.status|strmap:'modelstatus'}}</label></td>-->
-                <td>{{row.organization}}</td>
-                <td>
-                    &nbsp;
-                    <a ng-class="" href="" ng-click="remove(row)" title="delete">
-                        <i class="fa fa-trash-o"></i>
-                    </a>
-                    &nbsp;
-                    <a href="#/viewrule/{{row.name}}" title="subscribe">
-                        <i class="fa fa-eye"></i>
-                    </a>
-                </td>
-                <!-- <td>
-                    <button class="btn btn-sm" popover-placement="top" popover="{{row.email}}" type="button">
-                        <i class="glyphicon glyphicon-eye-open"></i>
-                    </button>
-                    <a ng-href="mailto:{{row.email}}">email</a></td>
-                <td>
-                    <button type="button" ng-click="removeRow(row)" class="btn btn-sm btn-danger">
-                        <i class="glyphicon glyphicon-remove-circle">
-                        </i>
-                    </button>
-                </td> -->
-            </tr>
-            </tbody>
-            <tfoot>
-            <tr>
-                <td colspan="8" class="text-right">
-                    <div  st-items-by-page="10" st-pagination="" st-displayed-pages="10"></div>
-                </td>
-            </tr>
-            </tfoot>
-        </table>
-    </div>
-    <div class="modal fade" id="deleteConfirmation" role="dialog">
-        <div class="modal-dialog modal-xg modal-lg">
-            <div class="modal-content">
-                <div class="modal-header">
-                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-                    <h4 class="modal-title">Delete the model with the below information?</h4>
-                </div>
-                <div class="modal-body">
-                    <ng-include src="'/pages/rules/delete-confirm.html'"/>
-                </div>
-                <div class="modal-footer">
-                    <button type="button" class="btn btn-primary" ng-click="confirmDelete()">Yes</button>
-                    <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/va-explaination.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/va-explaination.html b/ui/pages/rules/va-explaination.html
deleted file mode 100644
index 1131613..0000000
--- a/ui/pages/rules/va-explaination.html
+++ /dev/null
@@ -1,767 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
-<!-- Simple Statistics -->
-	<!-- Null Count -->
-<div class="container-fluid" ng-show="form.vaType==2">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is Null Count ?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		Null is a special marker used to indicate that a data value does not exist.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<label class="text-left">
-						Suppose we have the below data table, then the Null Count of "FIRSTNAME" is <kbd style="font-size: 16px">3</kbd>
-			  	</label>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<thead>
-						<tr class="success">
-							<td>ID</td>
-							<td>FRISTNAME</td>
-							<td>LASTNAME</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>1</td>
-							<td>lei</td>
-							<td>li</td>
-						</tr>
-						<tr>
-							<td>2</td>
-							<td>lei</td>
-							<td>li</td>
-						</tr>
-						<tr>
-							<td>3</td>
-							<td>lei</td>
-							<td>li</td>
-						</tr>
-						<tr>
-							<td>4</td>
-							<td>
-								<abbr title="the value isn't necessary " class="initialism"><mark>null</mark></abbr>
-							</td>
-							<td>stone</td>
-						</tr>
-						<tr>
-							<td>5</td>
-							<td>lei</td>
-							<td>li</td>
-						</tr>
-						<tr>
-							<td>6</td>
-							<td>lei</td>
-							<td>li</td>
-						</tr>
-						<tr>
-							<td>7</td>
-							<td>
-								<abbr title="the value isn't necessary " class="initialism"><mark>null</mark></abbr>
-							</td>
-							<td>stone</td>
-						</tr>
-						<tr>
-							<td>8</td>
-							<td>
-								<abbr title="the value isn't necessary " class="initialism"><mark>null</mark></abbr>
-							</td>
-							<td>zhang</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-</div>
-	<!-- Unique Count -->
-<div class="container-fluid" ng-show="form.vaType==3">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is Unique Count ?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		The UNIQUE Constraint prevents two records from having identical values in a particular column.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<label class="text-left">
-			  		Suppose we have the below data table which has four attributes-ID, NAME, AGE and FAVOURITE FOOD. Then the Unique Count is <kbd style="font-size: 16px">2</kbd>
-			  	</label>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<colgroup>
-					    <col span="2" style="background-color:#064225">
-					 </colgroup>
-					<thead>
-						<tr class="success">
-							<td>ID</td>
-							<td>NAME</td>
-							<td>AGE</td>
-							<td>FAVOURITE FOOD</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>1</td>
-							<td>Lily</td>
-							<td>20</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>2</td>
-							<td>Lucy</td>
-							<td>20</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>3</td>
-							<td>John</td>
-							<td>20</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>4</td>
-							<td>David</td>
-							<td>20</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>5</td>
-							<td>Sam</td>
-							<td>35</td>
-							<td>banana</td>
-						</tr>
-						<tr>
-							<td>6</td>
-							<td>Kaka</td>
-							<td>35</td>
-							<td>banana</td>
-						</tr>
-						<tr>
-							<td>7</td>
-							<td>stone</td>
-							<td>35</td>
-							<td>banana</td>
-						</tr>
-						<tr>
-							<td>8</td>
-							<td>Adison</td>
-							<td>35</td>
-							<td>banana</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-</div>
-    <!--  Duplicate Count -->
-<div class="container-fluid" ng-show="form.vaType==4">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is Duplicate Count ?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		Duplicate Count is the number of duplicate rows in a table and generate an output column that shows how many times each row occurs.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<label class="text-left">
-			  		Suppose we have the below data table, and we only count the  the number of duplicate rows for age. Then the Duplicate Count is <kbd style="font-size: 16px">2</kbd>
-			  	</label>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<thead>
-						<tr class="success">
-							<td>ID</td>
-							<td>NAME</td>
-							<td>AGE</td>
-							<td>FAVOURITE FOOD</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>1</td>
-							<td>Lily</td>
-							<td>21</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>2</td>
-							<td>Lucy</td>
-							<td class="info">20</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>3</td>
-							<td>John</td>
-							<td class="info">20</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>4</td>
-							<td>David</td>
-							<td class="info">20</td>
-							<td>APPLE</td>
-						</tr>
-						<tr>
-							<td>5</td>
-							<td>Sam</td>
-							<td>37</td>
-							<td>banana</td>
-						</tr>
-						<tr>
-							<td>6</td>
-							<td>Kaka</td>
-							<td class="warning">35</td>
-							<td>banana</td>
-						</tr>
-						<tr>
-							<td>7</td>
-							<td>stone</td>
-							<td class="warning">35</td>
-							<td>banana</td>
-						</tr>
-						<tr>
-							<td>8</td>
-							<td>Adison</td>
-							<td>38</td>
-							<td>banana</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-</div>
-<!-- Summary Statistics -->
-	<!-- Maximum -->
-<div class="container-fluid" ng-show="form.vaType==5">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is Maximum ?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		Maximum is the biggest value of the selected column.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-					<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				Suppose we have the below data table, then the maximum is: 26 <kbd style="font-size: 16px">26</kbd>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<thead>
-						<tr class="success">
-							<td>ID</td>
-							<td>NAME</td>
-							<td>AGE</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>1</td>
-							<td>lei</td>
-							<td>17</td>
-						</tr>
-						<tr>
-							<td>2</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>3</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>4</td>
-							<td>lei</td>
-							<td>21</td>
-						</tr>
-						<tr>
-							<td>5</td>
-							<td>lei</td>
-							<td>23</td>
-						</tr>
-						<tr>
-							<td>6</td>
-							<td>lei</td>
-							<td>23</td>
-						</tr>
-						<tr>
-							<td>7</td>
-							<td>lei</td>
-							<td>24</td>
-						</tr>
-						<tr>
-							<td>8</td>
-							<td>lei</td>
-							<td>
-								<abbr title="the value is the biggest number " class="initialism"><mark>26</mark></abbr>
-							</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-</div>
-	<!-- Minimum -->
-<div class="container-fluid" ng-show="form.vaType==6">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is Minimum ?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		Minimum is smallest value of the selected column.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-					<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				Suppose we have the below data table, then the minimum is: <kbd style="font-size: 16px">14</kbd>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<thead>
-						<tr class="success">
-							<td>ID</td>
-							<td>NAME</td>
-							<td>AGE</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>1</td>
-							<td>lei</td>
-							<td>17</td>
-						</tr>
-						<tr>
-							<td>2</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>3</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>4</td>
-							<td>lei</td>
-							<td>
-								<abbr title="the value is the minimum number " class="initialism"><mark>14</mark></abbr>
-							</td>
-						</tr>
-						<tr>
-							<td>5</td>
-							<td>lei</td>
-							<td>23</td>
-						</tr>
-						<tr>
-							<td>6</td>
-							<td>lei</td>
-							<td>23</td>
-						</tr>
-						<tr>
-							<td>7</td>
-							<td>lei</td>
-							<td>24</td>
-						</tr>
-						<tr>
-							<td>8</td>
-							<td>lei</td>
-							<td>26</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-</div>
-	<!-- Mean -->
-<div class="container-fluid" ng-show="form.vaType==7">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is Mean ?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		Mean is the usual average.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-					<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				Suppose we have the below data table, then the mean of AGE is: <kbd style="font-size: 16px">20</kbd>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<thead>
-						<tr class="success">
-							<td>ID</td>
-							<td>NAME</td>
-							<td>AGE</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>1</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>2</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>3</td>
-							<td>lei</td>
-							<td>19</td>
-						</tr>
-						<tr>
-							<td>4</td>
-							<td>lei</td>
-							<td>19</td>
-						</tr>
-						<tr>
-							<td>5</td>
-							<td>lei</td>
-							<td>21</td>
-						</tr>
-						<tr>
-							<td>6</td>
-							<td>lei</td>
-							<td>21</td>
-						</tr>
-						<tr>
-							<td>7</td>
-							<td>lei</td>
-							<td>22</td>
-						</tr>
-						<tr>
-							<td>8</td>
-							<td>lei</td>
-							<td>22</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-</div>
-	<!-- Median -->
-<div class="container-fluid" ng-show="form.vaType==8">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is Median ?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		Median is the middle value.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-					<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				Suppose we have the below data table, then the median of AGE is: <kbd style="font-size: 16px">21</kbd>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<thead>
-						<tr class="success">
-							<td>ID</td>
-							<td>NAME</td>
-							<td>AGE</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>1</td>
-							<td>lei</td>
-							<td>17</td>
-						</tr>
-						<tr>
-							<td>2</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>3</td>
-							<td>lei</td>
-							<td>19</td>
-						</tr>
-						<tr>
-							<td>4</td>
-							<td>lei</td>
-							<td>20</td>
-						</tr>
-						<tr>
-							<td>5</td>
-							<td>lei</td>
-							<td>21</td>
-						</tr>
-						<tr>
-							<td>6</td>
-							<td>lei</td>
-							<td>21</td>
-						</tr>
-						<tr>
-							<td>7</td>
-							<td>lei</td>
-							<td>22</td>
-						</tr>
-						<tr>
-							<td>8</td>
-							<td>lei</td>
-							<td>22</td>
-						</tr>
-						<tr>
-							<td>9</td>
-							<td>lei</td>
-							<td>23</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-</div>
-<!-- Regular Expression Matching -->
-<div class="container-fluid" ng-show="form.vaType==9">
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">What is the Regular Expression Match?</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		In theoretical computer science and formal language theory, a regular expression (sometimes called a rational expression) is a sequence of characters that define a search pattern, mainly for use in pattern matching with strings, or string matching, i.e. "find and replace"-like operations.
-			  	</label>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<h5 class="text-left" style="margin-left: 0px">Example</h5>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<label class="text-left">
-			  		There is a series characters of in the column of IDENTIFIER in the following table, and we can use a kind of Regular Expression Matching to search it.
-			  	</label>
-			</div>
-		</div>
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-				<table class="table table-bordered text-center">
-					<thead>
-						<tr class="success">
-							<td>IDENTIFIER</td>
-							<td>NAME</td>
-							<td>AGE</td>
-						</tr>
-					</thead>
-					<tbody>
-						<tr>
-							<td>#1111</td>
-							<td>lei</td>
-							<td>17</td>
-						</tr>
-						<tr>
-							<td>#1245</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>15245</td>
-							<td>lei</td>
-							<td>18</td>
-						</tr>
-						<tr>
-							<td>87956</td>
-							<td>lei</td>
-							<td>21</td>
-						</tr>
-						<tr>
-							<td>
-								<abbr title="the value is the biggest number " class="initialism">
-									<mark>monkey</mark>
-								</abbr>
-							</td>
-							<td>lei</td>
-							<td>23</td>
-						</tr>
-						<tr>
-							<td>
-								<abbr title="the value is the biggest number " class="initialism">
-									<mark>tiger</mark>
-								</abbr>
-							</td>
-							<td>lei</td>
-							<td>23</td>
-						</tr>
-						<tr>
-							<td>456</td>
-							<td>lei</td>
-							<td>24</td>
-						</tr>
-						<tr>
-							<td>324</td>
-							<td>lei</td>
-							<td>26</td>
-						</tr>
-					</tbody>
-				</table>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<p class="text-left">
-					<strong>Suppose Regular Expression is :</strong> ^[A-Za-z]+$
-				</p>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<p class="text-left">
-					<strong>The regular expression matching means :</strong> Matches a string consisting of 26 english letters
-				</p>
-			</div>
-		</div>
-	</div>
-	<div class="container-fluid">
-		<div class="row">
-			<div class="col-md-12 col-lg-12 col-sm-12">
-			  	<p class="text-left">
-			  		The result is: <kbd>2 (MONKEY AND TIGER)</kbd>
-				</p>
-			</div>
-		</div>
-	</div>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/viewrule.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/viewrule.html b/ui/pages/rules/viewrule.html
deleted file mode 100644
index 3e7955c..0000000
--- a/ui/pages/rules/viewrule.html
+++ /dev/null
@@ -1,210 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid" id="viewruleContent">
-    <div class="row">
-        <h5 class="over-title margin-bottom-15">View Model</h5>
-    </div><!--//row-->
-    <div class="row">
-
-        <div  class="col-sm-6 col-xs-12">
-            <div id="viewruleDefinition" class="viewrule-content">
-                <div class="row">
-                    <label class="col-xs-4">
-                        Model Name:
-                    </label>
-
-                    <div class="col-xs-8 " style="color: #fff">
-                        {{ruleData.name}}
-                    </div>
-                </div>
-
-                <div class="row">
-                    <label class="col-xs-4">
-                        Model Description:
-                    </label>
-
-                    <div class="col-xs-8 " style="color: #fff">
-                        {{ruleData.description}}
-                    </div>
-                </div>
-
-                <div class="row">
-                    <label class="col-xs-4">
-                        Model Type:
-                    </label>
-
-                    <div class="col-xs-8 " style="color: #fff">
-                        {{ruleData.type|strmap:'modeltype'}}
-                    </div>
-                </div>
-
-                <div class="row">
-                    <label for="systemSelector" class="col-xs-4">
-                        Organization:
-                    </label>
-
-                    <div class="col-xs-8 " style="color: #fff">
-                        {{ruleData.organization|strmap:'modelsystem'}}
-                    </div>
-                </div>
-
-                <div class="row">
-                    <label class="col-xs-4">
-                        DataAsset:
-                    </label>
-
-                    <div class="col-xs-8" style="color: #fff">
-                        {{ruleData.source.config.tableName}}&nbsp;&nbsp;{{ruleData.target.config.tableName}}
-                    </div>
-                </div>
-
-                <div class="row">
-                    <label class="col-xs-4">
-                        Owner:
-                    </label>
-
-                    <div class="col-xs-8" style="color: #fff">
-                        {{ruleData.owner}}
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div><!--//row-->
-    <div class="container-fluid" ng-show="ruleData.basic.status==1" >
-        <br/>
-        <label style="color:#B2C831">This model is ready to deploy now, if you are the owner, please click the deploy button after you verify all the information.</label>
-        <button ng-click="confirmDeploy()" ng-disabled="(ntAccount!=ruleData.basic.owner && !adminAccess)" class="btn btn-primary pull-right"> Deploy</button>
-        </p>
-    </div>
-    <br/>
-    <div ng-if="ruleData.type=='accuracy'"><!--Accuracy-->
-        <h5 class="row">Mapping rules</h5>
-        <div class="">
-            <p>{{ruleData.evaluateRule.rules}}</p>
-            <p>
-                <label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
-            </p>
-
-            <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex;align-items: center">
-
-                <div class="" style="text-align:right;display:block;float:left;width:20%;">
-                    Accuracy Rate(%) =
-                </div>
-                <div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
-                    <div class="formula-text-up" style="border-bottom:1px solid;">
-                        Total Count of Matched records between <span class="badge">{{sourceLength}}</span> <span style="color:green;">{{ruleData.target.config.database}}</span>  and <span class="badge">{{sourceLength}}</span> <span style="color:green;">{{ruleData.source.config.database}}</span>  fields
-                    </div>
-                    <div class="">
-                        Total Count of records in <span style="color:green;font-weight:bold;">{{ruleData.target.config.database}}&nbsp;&nbsp;{{ruleData.target.config.tableName}}</span>
-                    </div>
-                </div>
-                <div class="" style="text-align:left;display:block;float:left;width:10%;">
-                    x 100%
-                </div>
-
-            </div>
-
-
-        </div>
-    </div>
-
-    <div ng-if="ruleData.basic.type==1"><!--Validity-->
-        <h5 class="row">Validity metrics</h5>
-        <div  class="">
-            <div id="viewrule-definition" class="viewrule-content">
-                <div class="row">
-                    <label class="col-xs-4">
-                        Validity type:
-                    </label>
-
-                    <div class="col-xs-8 " style="color: #fff">
-                        {{ruleData.extra.vaType|strmap:'vatype'}}
-                    </div>
-                </div>
-
-                <div class="row">
-                    <label class="col-xs-4">
-                        Selected column:
-                    </label>
-
-                    <div class="col-xs-8 " style="color: #fff">
-                        {{ruleData.extra.column}}
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-
-    <div ng-if="ruleData.basic.type==2"><!--Anomaly Detection-->
-        <h5 class="row">Key information</h5>
-        <div class="row">
-            <div  class="col-lg-12 col-md-12 col-sm-12">
-                <div id="viewrule-definition" class="viewrule-content">
-                    <div class="row">
-                        <label class="col-xs-4">
-                            Detection type:
-                        </label>
-
-                        <div class="col-xs-8 " style="color: #fff">
-                            {{ruleData.extra.anType|strmap:'antype'}}
-                        </div>
-                    </div>
-                    <div class="row-fluid">
-                        <img ng-if="ruleData.extra.anType==1" src="/img/yoy.png" style="max-height: 300px;width:100%"/>
-                        <img ng-if="ruleData.extra.anType==2" src="/img/bollinger.png" style="max-height: 400px;width:100%"/>
-                        <img ng-if="ruleData.extra.anType==3" src="/img/mad.png" style="max-height: 300px;width:100%"/>
-                    </div>
-
-
-                </div>
-            </div>
-
-        </div>
-    </div>
-
-    <div ng-if="ruleData.basic.type==3"><!--Publish Metrics-->
-        <h5 class="row">Publish Metrics URL</h5>
-        <div id="viewrule-definition" class="viewrule-content">
-
-            <div class="row">
-                <label class="col-xs-4">
-                    Publish URL:
-                </label>
-
-                <div class="col-xs-8" style="color: #fff">
-                    {{ruleData.extra.publishUrl}}
-                </div>
-            </div>
-
-            <div class="row">
-                <label class="col-xs-4">
-                    Publish data format:
-                </label>
-
-                <div class="col-xs-8" style="color: #fff">
-              <pre style="background-color:transparent;color:inherit;border:none">Method: POST
-Endpoint: {{ruleData.extra.publishUrl}}
-Body:
-{
-"metricName": "{{ruleData.basic.name}}",
-"timestamp": 1463373496583,
-"value": 99.9
-}</pre>
-                </div>
-            </div>
-        </div>
-    </div>
-
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/template/bigchart.css
----------------------------------------------------------------------
diff --git a/ui/pages/template/bigchart.css b/ui/pages/template/bigchart.css
index 755180a..b87939d 100644
--- a/ui/pages/template/bigchart.css
+++ b/ui/pages/template/bigchart.css
@@ -1,17 +1,19 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+   Licensed 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.
 
-	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.
  */
+
 .big-chart-container{
   z-index:1040;
   display:block;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/template/bigchart.html
----------------------------------------------------------------------
diff --git a/ui/pages/template/bigchart.html b/ui/pages/template/bigchart.html
index ab7da14..34859f7 100644
--- a/ui/pages/template/bigchart.html
+++ b/ui/pages/template/bigchart.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+  Licensed 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
 
-	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.
- -->
+     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 id="bigChartShow" style="display: none;"> -->
 	
 <div id="bigChartContainer"  class="big-chart-container" style="display:none;">

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/template/undercons.html
----------------------------------------------------------------------
diff --git a/ui/pages/template/undercons.html b/ui/pages/template/undercons.html
index 349ed24..e855a67 100644
--- a/ui/pages/template/undercons.html
+++ b/ui/pages/template/undercons.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+  Licensed 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
 
-	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.
- -->
+     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 style="height:400px;line-height:400px;text-align:center;width:100%;font-size:48px">
 	<img src="/img/construction.gif" style="max-height:120px;"/>
 	Under construction! Coming soon!

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/sidebar.html
----------------------------------------------------------------------
diff --git a/ui/sidebar.html b/ui/sidebar.html
index 189a81c..4b4f011 100644
--- a/ui/sidebar.html
+++ b/ui/sidebar.html
@@ -1,17 +1,18 @@
 <!--
-    Copyright (c) 2016 eBay Software Foundation.
-    Licensed 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
+  Licensed 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
 
-    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.
- -->
+     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 id="rightbar" ng-controller="SideBarCtrl" class="" style="background-color:#262626;">
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/src/main/java/jar/App.java
----------------------------------------------------------------------
diff --git a/ui/src/main/java/jar/App.java b/ui/src/main/java/jar/App.java
index 9772ca4..4e434a7 100644
--- a/ui/src/main/java/jar/App.java
+++ b/ui/src/main/java/jar/App.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package jar;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/src/test/java/jar/AppTest.java
----------------------------------------------------------------------
diff --git a/ui/src/test/java/jar/AppTest.java b/ui/src/test/java/jar/AppTest.java
index 4f2fe94..7bfbb4f 100644
--- a/ui/src/test/java/jar/AppTest.java
+++ b/ui/src/test/java/jar/AppTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package jar;
 
 import junit.framework.Test;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/karma.conf.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/karma.conf.js b/ui/tests/ut/karma.conf.js
index 4f8a5e1..2c80655 100644
--- a/ui/tests/ut/karma.conf.js
+++ b/ui/tests/ut/karma.conf.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 // Karma configuration
 // Generated on Thu Apr 07 2016 15:02:00 GMT+0800 (China Standard Time)

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/createjob-ac-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/createjob-ac-ctrl.spec.js b/ui/tests/ut/specs/controllers/createjob-ac-ctrl.spec.js
new file mode 100644
index 0000000..bd729d7
--- /dev/null
+++ b/ui/tests/ut/specs/controllers/createjob-ac-ctrl.spec.js
@@ -0,0 +1,58 @@
+/*-
+ * Licensed 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.
+
+ */
+
+define(['angular', 'angularMocks', 'js/controllers/createjob-ac-ctrl'],
+  function(angular, mocks, CreateJobACCtrl) {
+    describe('Test /js/controllers/createjob-ac-ctrl.js', function(){
+      	beforeEach(function(){
+	        module('app.controllers');
+	        module('app.services');
+      	});
+    	var $scope, $rootScope, $controller, $httpBackend, $config, $location, toaster, $timeout, $route;
+
+	    beforeEach(inject(function(_$rootScope_ , _$controller_, _$httpBackend_, _$config_, _$location_, _$timeout_){
+	    	$rootScope = _$rootScope_;
+	    	$controller = _$controller_;
+	        $httpBackend = _$httpBackend_;
+	        $config = _$config_;
+	        $location = _$location_;
+	        $timeout = _$timeout_;
+	        toaster = {};
+	        $route = {};
+	    }));
+
+        beforeEach(function(){
+          	$scope =  $rootScope.$new();
+	        controller = $controller('CreateJobACCtrl', {$scope: $scope, $route: $route, toaster: toaster });
+        });
+
+        describe("if the controller of CreateJobACCtrl exists",function(){
+        	it('controller exists', function(){
+	          	expect(controller).toBeDefined();
+	        });
+        })
+
+        describe("check if createRowCollection",function(){
+
+	        it('createRowCollection', function(){
+	          	expect($scope.rowCollection).not.toEqual([]);
+	        });
+
+      	})
+
+
+    });
+  }
+)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/createrule-ac-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/createrule-ac-ctrl.spec.js b/ui/tests/ut/specs/controllers/createrule-ac-ctrl.spec.js
index bf34dcb..17e61b3 100644
--- a/ui/tests/ut/specs/controllers/createrule-ac-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/createrule-ac-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 define(['angular', 'angularMocks', 'js/controllers/createrule-ac-ctrl'],
   function(angular, mocks, CreateRuleACCtrl) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/tests/ut/specs/controllers/createrule-pu-ctrl.spec.js
----------------------------------------------------------------------
diff --git a/ui/tests/ut/specs/controllers/createrule-pu-ctrl.spec.js b/ui/tests/ut/specs/controllers/createrule-pu-ctrl.spec.js
index 9bf9af2..fce2a27 100644
--- a/ui/tests/ut/specs/controllers/createrule-pu-ctrl.spec.js
+++ b/ui/tests/ut/specs/controllers/createrule-pu-ctrl.spec.js
@@ -1,16 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
+/*-
+ * Licensed 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.
+
  */
 define(['angular', 'angularMocks', 'js/controllers/createrule-pu-ctrl'],
   function(angular, mocks, CreateRulePUCtrl) {



[4/7] incubator-griffin git commit: Schedule2

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/createrule-pu.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/createrule-pu.html b/ui/pages/measures/createrule-pu.html
new file mode 100644
index 0000000..17ad15a
--- /dev/null
+++ b/ui/pages/measures/createrule-pu.html
@@ -0,0 +1,235 @@
+<!--
+
+  Licensed 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="container-fluid">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
+  </div><!--//row-->
+  <div class="row">
+    <form name="Form" id="form" novalidate>
+      <div id="wizard" class="swMain" >
+        <ul>
+						<li>
+							<a href="" class="onlyone selected" >
+								<div class="stepNumber">
+									1
+								</div>
+								<span class="stepDesc text-small"> Configuration </span>
+							</a>
+        </ul>
+
+        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
+          <label class="stepDesc">Please setup the model required information</label>
+          <div class="container-fluid">
+
+            <!-- schema definition list -->
+            <div class="col-md-12 col-lg-12 col-sm-12">
+              <fieldset>
+                <legend>
+                  Required Information
+                </legend>
+                <div class="y-scrollable">
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Model Name<span class="symbol required"></span>:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <input type="text" class="form-control" ng-model="form.basic.name" name="ruleName" placeholder="Please input the measure name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
+                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
+                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Model Definition:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <input type="text" class="form-control" ng-model="form.basic.desc" placeholder="Please input detail description of your model">
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Model Type:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <select id="typeSelector" class="form-control" ng-model="form.basic.type" ng-init="form.basic.type='3'" disabled required>
+                          <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
+                        </select>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Organization<span class="symbol required"></span>:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <select id="systemSelector" class="form-control" ng-model="form.basic.system" ng-init="form.basic.system='-1'" ng-change="sysChange()" required>
+                          <option value="-1">Please select...</option>
+                          <option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>
+                        </select>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        DataAsset:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10">
+                        <!-- <input type="text" class="form-control" ng-model="form.basic.dataaset"> -->
+                        <select id="assetSelector" class="form-control" ng-model="form.basic.dataaset">
+                          <option value="">Please select...(optional)</option>
+                          <option ng-repeat="row in assets" value="{{row.name}}" >{{row.name}}</option>
+                        </select>
+                     </div>
+
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group" ng-class="{'has-error':Form.threshold.$invalid}">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Threshold:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10">
+                          <input type="number" class="form-control" ng-model="form.basic.threshold" name="threshold">
+                          <span class="error text-small block" ng-if="Form.threshold.$error.number">Only number is allowed</span>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Schedule Type:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <select class="form-control" ng-init="form.basic.scheduleType='1'" ng-model="form.basic.scheduleType" ng-init="form.basic.scheduleType='0'">
+                          <option ng-repeat="row in scheduleTypes" value="{{$index}}" >{{row}}</option>
+                        </select>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group" ng-class="{'has-error':Form.email.$dirty&&Form.email.$invalid, 'has-success':Form.email.$valid}">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Notification email<span class="symbol required"></span>:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10">
+                        <input type="email"  class="form-control" ng-model="form.basic.email" name="email" ng-required="currentStep==1" placeholder="Please input valid email address" ng-pattern="'^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'">
+                        <span class="error text-small block" ng-if="Form.email.$dirty&&Form.email.$invalid">Please, enter a valid email address.</span>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Owner:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10">
+                        <input type="text"  class="form-control" ng-model="form.basic.owner" ng-init="form.basic.owner=ntAccount" disabled>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group " >
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Publish URL:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 has-error">
+                        <input type="text"  class="form-control" ng-model="form.publishUrl" ng-init="form.publishUrl='https://bark.vip.ebay.com/api/v1/metrics/&lt;name&gt;'" disabled>
+                        <span class="error text-small block" >Please remember this URL which is used to publish your metrics</span>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group " >
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Publish data format:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <pre style="background-color:transparent;color:inherit;border:none">Method: POST
+  Endpoint: {{form.publishUrl}}
+  Body:
+  {
+    "metricName": "{{form.basic.name}}",
+    "timestamp": 1463373496583,
+    "value": 99.9
+  }</pre>
+
+                      </div>
+                    </div>
+                  </div>
+
+
+                </div>
+
+                <div class="createrule-hint">
+                  <p>
+                    <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href='#/measures
+
+'>Models</a>" to check the model status
+                  </p>
+                </div>
+
+
+              </fieldset>
+
+            </div>
+
+            <div class="form-group btn-container" >
+              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
+                  Submit
+              </button>
+            </div>
+          </div>
+        </div>
+
+        <div class="modal fade" id="confirm-pu" role="dialog">
+          <div class="modal-dialog modal-xg modal-lg">
+            <div class="modal-content">
+              <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+                <h4 class="modal-title">Save the model with the below information?</h4>
+              </div>
+              <div class="modal-body">
+                <ng-include src="'/pages/measures/confirmation-pu.html'"/>
+              </div>
+              <div class="modal-footer">
+                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+                <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div><!--//row-->
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/createrule-va.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/createrule-va.html b/ui/pages/measures/createrule-va.html
new file mode 100644
index 0000000..4bf1c95
--- /dev/null
+++ b/ui/pages/measures/createrule-va.html
@@ -0,0 +1,404 @@
+<!--
+
+  Licensed 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="container-fluid">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
+  </div><!--//row-->
+  <div class="row">
+    <form name="Form" id="form" novalidate>
+      <div id="wizard" class="swMain" >
+        <ul>
+						<li ng-click="form.goTo(Form, 1)">
+							<a href="" ng-class="{'selected' : currentStep >= 1, 'done' : currentStep > 1}" class="selected" style="">
+								<div class="stepNumber">
+									1
+								</div>
+								<span class="stepDesc text-small"> Choose Target </span>
+							</a>
+						</li>
+						<li ng-click="form.goTo(Form, 2)">
+							<a href="" ng-class="{'selected' : currentStep >= 2, 'done' : currentStep > 2}" class="" style="">
+								<div class="stepNumber">
+									2
+								</div>
+								<span class="stepDesc text-small"> Select Models </span>
+							</a>
+						</li>
+						<li ng-click="form.goTo(Form, 3)">
+							<a href="" ng-class="{'selected' : currentStep >= 3, 'done' : currentStep > 3}" class="" style="">
+								<div class="stepNumber">
+									3
+								</div>
+								<span class="stepDesc text-small"> Configuration </span>
+							</a>
+						</li>
+
+					</ul>
+
+        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
+          <label class="stepDesc">This step let you choose the target for data quality comparision with target, Apollo datasets are enabled, other platofrms are coming soon. Currently you can only select the attributes from one schema</label>
+					<div class="container-fluid">
+            <!-- select db tree -->
+						<div class="col-md-4 col-lg-4 col-sm-4">
+							<fieldset>
+							  <legend>Please select schema</legend>
+                <div class="add-dataset" style="color:#b2c831">
+                    <a class="bark-link" href="#/createdataasset">Cannot find your DataAsset? Click here to add</a>
+                </div>
+                <div angular-treeview="true"
+                      tree-model="dbList"
+                      node-id="id"
+                      node-label="name"
+                      node-children="children"
+                      l1-icon="fa fa-database"
+                      l2-icon="fa fa-table"
+                      l3-icon="fa fa-file-text-o"
+                      class="y-scrollable">
+                </div>
+
+              </fieldset>
+						</div>
+
+            <!-- schema definition list -->
+						<div class="col-md-8 col-lg-8 col-sm-8">
+							<fieldset>
+								<legend>
+									Select one attribute
+								</legend>
+
+								<div class="y-scrollable">
+                  <div>
+                   <label>View schema:</label> <i ng-show="currentNode.parent" style="color:#fff;font-weight: bold;">{{currentNode.parent.name}}.{{currentNode.name}}</i>
+                  </div>
+                  <div>
+                   <label>Selected Column:</label> <i style="color:#fff;font-weight: bold;">{{form.selection}}</i>
+                  </div>
+                 <div>
+                   <table st-table="schemaCollection" class="table table-striped">
+                   	<thead>
+                     	<tr style="background-color:#7D95CC">
+                        <th></th>
+                     		<th>Column Name</th>
+                     		<th>Description</th>
+                     		<th>Data Type</th>
+                     		<th>Sample Data</th>
+
+                     	</tr>
+                   	</thead>
+                   	<tbody>
+                       <tr ng-if="!schemaCollection || schemaCollection.length == 0">
+                         <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
+                       </tr>
+                     	<tr ng-repeat="row in schemaCollection">
+                        <td><input type="radio"
+                              name="selAttr"
+                              value="{{row.name}}"
+                              ng-model="form.selection"
+                            />
+                        </td>
+                        <td>{{row.name}}</td>
+                     		<td>{{row.desc}}</td>
+                        <td>{{row.type}}</td>
+                        <td class="highlight">{{row.sample}}</td>
+                     	</tr>
+                   	</tbody>
+                   </table>
+                 </div>
+                </div>
+              </fieldset>
+            </div>
+
+            <div class="form-group btn-container">
+							<button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
+								Next <i class="fa fa-arrow-circle-right"></i>
+							</button>
+						</div>
+
+          </div>
+
+      </div>
+
+
+
+
+      <div id="step-2" ng-show="currentStep == 2" class="formStep" >
+        <label class="stepDesc">Please choose one of the validity models provided below:</label>
+        <div class="container-fluid">
+          <div class="col-md-12 col-lg-12 col-sm-12">
+            <fieldset>
+              <div class="y-scrollable">
+                <div class="container col-md-12 col-lg-12 col-sm-12">
+                  <div class="row">
+                    <div class="col-md-3 col-lg-3 col-sm-3">
+                      <h5>Simple Statistics</h5>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType" value="2" ng-init="form.vaType=2" /> <label>Null Count</label>
+                        </div>
+                      </div>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType"   value="3"/> <label>Unique Count</label>
+                        </div>
+                      </div>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType" value="4"/> <label>Duplicate Count</label>
+                        </div>
+                      </div>
+                      <h5>Summary Statistics</h5>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType"  value="5"/> <label>Maximum</label>
+                        </div>
+                      </div>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType" value="6"/> <label>Minimum</label>
+                        </div>
+                      </div>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType" value="7"/> <label>Mean</label>
+                        </div>
+                      </div>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType" value="8"/> <label>Median</label>
+                        </div>
+                      </div>
+                      <h5>Advanced Statistics</h5>
+                      <div class="container-fluid">
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                          <input name="vaType" type="radio" ng-model="form.vaType" value="9" disabled/> <label>Regular Expression Match</label>
+                        </div>
+                      </div>
+                    </div>
+                    <div class="col-md-9 col-lg-9 col-sm-9" ng-include="'/pages/measures/va-explaination.html'">
+                      <!-- <ng-include src="'/models.html'"/> -->
+                    </div>
+                  </div>
+                </div>
+              </div>
+            </fieldset>
+          </div>
+
+          <div class="form-group btn-container" >
+            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                <i class="fa fa-arrow-circle-left"></i> Back
+            </button>
+            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
+                Next <i class="fa fa-arrow-circle-right"></i>
+            </button>
+          </div>
+        </div>
+      </div>
+
+      <div id="step-3" ng-show="currentStep == 3" class="formStep" >
+        <label class="stepDesc">Please setup the model required information</label>
+        <div class="container-fluid">
+
+          <!-- schema definition list -->
+          <div class="col-md-12 col-lg-12 col-sm-12">
+            <fieldset>
+              <legend>
+                Required Information
+              </legend>
+              <div class="y-scrollable">
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Model Name<span class="symbol required"></span>:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <input type="text" class="form-control" ng-model="form.basic.name" name="ruleName" placeholder="Please input the measure name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
+                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
+                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
+                    </div>
+
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Model Definition:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <input type="text" class="form-control" ng-model="form.basic.desc" placeholder="Please input detail description of your model">
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Model Type:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <select id="typeSelector" class="form-control" ng-model="form.basic.type" ng-init="form.basic.type='1'" disabled required>
+                        <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
+                      </select>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Organization:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <select id="systemSelector" class="form-control" ng-model="form.basic.system" required disabled>
+                        <option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>
+                      </select>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      DataAsset:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                      <input type="text" class="form-control" ng-model="currentNode.name" disabled>
+                    </div>
+                  </div>
+                </div>
+                <div ng-show="form.vaType==9" class="col-md-12 col-lg-12 col-sm-12" ng-class="{'has-error':Form.regex.$dirty && Form.regex.$invalid, 'has-success':Form.regex.$valid}">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Regular Expression<span class="symbol required"></span>:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                      <div class="row">
+                        <div class="col-md-10 col-lg-10 col-sm-10">
+                          <input type="text"  class="form-control" ng-model="form.basic.regex" name="regex" placeholder="Some expression like ^[A-Za-z]+$" ng-required="form.vaType==9" ng-change="form.testRegex(Form)">
+                          <span class="error text-small block" ng-if="Form.regex.$dirty && Form.regex.$invalid">Please input valid regular expression.</span>
+                        </div>
+                        <div class="col-md-2 col-lg-2 col-sm-2">
+                          <button type="button" class="btn btn-primary btn-o next-step" style="width:100%;" ng-click="needTestRegex=!needTestRegex" ng-init="needTestRegex=false;"><i class="faChevron" ng-class="needTestRegex ?'fa fa-angle-down':'fa fa-angle-right'" style="width:10px"></i>&nbsp;Test Regex</button>
+                        </div>
+                      </div>
+                      <div class="row" ng-show="needTestRegex">
+                        <div class="col-md-10 col-lg-10 col-sm-10">
+                          <input type="text"  class="form-control" ng-model="form.basic.regexTestStr" name="regexTestStr" placeholder="Please input the test string here" ng-change="form.testRegex(Form)">
+                        </div>
+                        <div class="col-md-2 col-lg-2 col-sm-2" style="padding-top:8px;">
+                          <span class="test-result" ng-class="{'bg-success': regexTestResult=='Matched', 'bg-danger': regexTestResult=='Unmatched'}">{{regexTestResult}}</span>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group" ng-class="{'has-error':Form.threshold.$invalid}">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Threshold:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                        <input type="number" class="form-control" ng-model="form.basic.threshold" name="threshold">
+                        <span class="error text-small block" ng-if="Form.threshold.$error.number">Only number is allowed</span>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Schedule Type:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <select class="form-control" ng-init="form.basic.scheduleType='1'" ng-model="form.basic.scheduleType" ng-init="form.basic.scheduleType='0'">
+                        <option ng-repeat="row in scheduleTypes" value="{{$index}}" >{{row}}</option>
+                      </select>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group" ng-class="{'has-error':Form.email.$dirty&&Form.email.$invalid, 'has-success':Form.email.$valid}">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Notification email<span class="symbol required"></span>:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                      <input type="email"  class="form-control" ng-model="form.basic.email" name="email" ng-required="currentStep==3" placeholder="Please input valid email address" ng-pattern="'^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'">
+                      <span class="error text-small block" ng-if="Form.email.$dirty&&Form.email.$invalid">Please, enter a valid email address.</span>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Owner:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                      <input type="text"  class="form-control" ng-model="form.basic.owner" ng-init="form.basic.owner=ntAccount" disabled>
+                    </div>
+                  </div>
+                </div>
+              </div>
+
+              <!-- <div style="color:#fff">
+                <label style="color:#b2c831">Tips: </label>After submitted, please go to "Rule Repository" to check the rule status
+              </div> -->
+
+              <div style="color:#b2c831">
+                <p>
+                  <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/measures">Models</a>" to check the model status
+                </p>
+              </div>
+
+            </fieldset>
+          </div>
+
+          <div class="form-group btn-container" >
+            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                <i class="fa fa-arrow-circle-left"></i> Back
+            </button>
+            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
+            <!-- <button class="btn btn-primary btn-o next-step btn-wide pull-right" data-toggle="modal" data-target="#confirm"> -->
+                Submit
+            </button>
+          </div>
+        </div>
+      </div>
+
+      <div class="modal fade" id="confirm-va" role="dialog">
+        <div class="modal-dialog modal-xg modal-lg">
+          <div class="modal-content">
+            <div class="modal-header">
+              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+              <h4 class="modal-title">Save the model with the below information?</h4>
+            </div>
+            <div class="modal-body">
+              <ng-include src="'/pages/measures/confirmation-va.html'"/>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+              <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
+            </div>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div><!--//row-->
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/createrule0.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/createrule0.html b/ui/pages/measures/createrule0.html
new file mode 100644
index 0000000..f884028
--- /dev/null
+++ b/ui/pages/measures/createrule0.html
@@ -0,0 +1,256 @@
+<!--
+
+  Licensed 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="container-fluid" id="main" >
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
+  </div><!--//row-->
+  <div class="row">
+
+    <div class="col-lg-6 col-md-6 col-sm-6 ruletypes">
+      <section id="panel-1" class="panel panel-red" style="cursor:pointer" ng-click="click('ac')">
+        <div class="panel-heading">
+          <span style="font-size:20px">Accuracy</span>
+          <span class="pull-right" style="font-size:20px">
+                <span class="fa fa-arrow-circle-right" ng-click="click()"></span>
+          </span>
+        </div>
+        <div class="swMain panel-body" >
+
+          <label class="label-definition">Definition: Measured by how the values agree with an identified source of truth</label>
+
+          <ul style="border-radius:0; background: none">
+            <li >
+              <a href="" class="selected" >
+                <div class="stepNumber">
+                  1
+                </div>
+                <span class="stepDesc text-small"> Choose Source </span>
+              </a>
+            </li>
+            <li>
+              <a href=""  >
+                <div class="stepNumber">
+                  2
+                </div>
+                <span class="stepDesc text-small"> Choose Target </span>
+              </a>
+            </li>
+            <li >
+              <a href=""  >
+                <div class="stepNumber">
+                  3
+                </div>
+                <span class="stepDesc text-small"> Mapping Source and Target </span>
+              </a>
+            </li>
+            <li>
+              <a href="" >
+                <div class="stepNumber">
+                  4
+                </div>
+                <span class="stepDesc text-small"> Configuration </span>
+              </a>
+            </li>
+
+          </ul>
+          <div>
+
+            <ol>
+              <li>Select the source dataset and fields which will be used for comparision</li>
+              <li>Select the target dataset and fields which will be used for comparision</li>
+              <li>Mapping the target fields with source</li>
+              <li>Set basic configuration for your model (name, system, threshold, etc.)</li>
+            </ol>
+          </div>
+
+
+        </div>
+        <div class="panel-footer stepDesc">
+          <label>Example:</label> suppose source table A has 1000 records and target table B only has 999 records pefectly matched with A for selected fields, then
+          Accuracy Rate(%) = 999/1000 * 100% = 99.9%
+        </div>
+      </section>
+    </div>
+    <div class="col-lg-6 col-md-6 col-sm-6 ruletypes" style="opacity:0.6">
+      <section id="panel-2"  class="panel panel-primary"  style="cursor:default;">
+        <!--ng-click="click('va')" -->
+        <div class="panel-heading">
+          <span style="font-size:20px">Data Profiling</span>
+          <span class="pull-right" style="font-size:20px">
+                  <span class="fa fa-arrow-circle-right"></span>
+            </span>
+        </div>
+        <div class="swMain panel-body" >
+
+          <label class="label-definition">Definition: Data profiling is the process of examining the data available in an existing data set and collecting statistics and information about that data</label>
+
+          <ul style="border-radius:0; background: none">
+            <li >
+              <a href="" class="done" style="cursor:default">
+                <div class="stepNumber">
+                  1
+                </div>
+                <span class="stepDesc text-small"> Choose Target </span>
+              </a>
+            </li>
+            <li>
+              <a href="" class="selected" style="cursor:default" >
+                <div class="stepNumber">
+                  2
+                </div>
+                <span class="stepDesc text-small">Define/Select Models </span>
+              </a>
+            </li>
+            <li >
+              <a href="" style="cursor:default" >
+                <div class="stepNumber">
+                  3
+                </div>
+                <span class="stepDesc text-small"> Configuration </span>
+              </a>
+            </li>
+
+
+          </ul>
+          <div>
+
+            <ol>
+              <li>Select the target dataset and fields which want to be checked</li>
+              <li>Define your syntax check logic which will be applied on the selected fields</li>
+              <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
+            </ol>
+
+
+          </div>
+
+
+        </div>
+        <div class="panel-footer stepDesc">
+
+          <label>Example:</label> Check the data range(minimum, maximum) within a set of allowable values
+        </div>
+      </section>
+    </div>
+
+  </div><!--//row-->
+
+  <div class="row">
+    <div class="col-lg-6 col-md-6 col-sm-6 ruletypes" style="opacity:0.6;">
+      <section id="panel-3" class="panel panel-yellow"  style="cursor:default;">
+        <!--ng-click="click('an')"-->
+        <div class="panel-heading">
+          <span style="font-size:20px">Anomaly Detection</span>
+          <span class="pull-right" style="font-size:20px">
+                    <span class="fa fa-arrow-circle-right"></span>
+              </span>
+        </div>
+        <div class="swMain panel-body" >
+
+          <label class="label-definition">Definition: Identification of items, events or observations which do not conform to an expected pattern or other items in a dataset</label>
+
+          <ul style="border-radius:0; background: none">
+            <li >
+              <a href="" class="done" style="cursor:default">
+                <div class="stepNumber">
+                  1
+                </div>
+                <span class="stepDesc text-small"> Choose Target </span>
+              </a>
+            </li>
+            <li>
+              <a href="" class="selected" style="cursor:default" >
+                <div class="stepNumber">
+                  2
+                </div>
+                <span class="stepDesc text-small">Define/Select Models </span>
+              </a>
+            </li>
+            <li >
+              <a href="" style="cursor:default" >
+                <div class="stepNumber">
+                  3
+                </div>
+                <span class="stepDesc text-small"> Configuration </span>
+              </a>
+            </li>
+
+
+          </ul>
+          <div>
+
+            <ol>
+              <li>Select the target dataset and fields which want to be checked</li>
+              <li>Select the pre-defined anomaly detection methods which will be applied on the selected fields</li>
+              <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
+            </ol>
+          </div>
+        </div>
+        <div class="panel-footer stepDesc">
+          <label>Example1:</label> Check the total row count changed day over day (or hour over hour) on one Dataset
+          <label>Example2:</label> Check the values of all records in Column A should be matched with one expression pattern (first 3 character is 'abc') in one Dataset
+        </div>
+      </section>
+    </div>
+
+    <div class="col-lg-6 col-md-6 col-sm-6 ruletypes" style="opacity:0.6;">
+      <section id="panel-4" class="panel panel-green" style="cursor:default;">
+        <!--ng-click="click('pu')"-->
+        <div class="panel-heading">
+          <span style="font-size:20px">Publish DQ Metrics Directly</span>
+          <span class="pull-right" style="font-size:20px">
+                    <span class="fa fa-arrow-circle-right"></span>
+              </span>
+        </div>
+        <div class="swMain panel-body" >
+
+          <label class="label-definition">Definition: This is used to publish DQ results which already calculated offline by customers</label>
+
+          <ul style="border-radius:0; background: none">
+            <li >
+              <a href="" style="cursor:default" class="onlyone selected">
+                <div class="stepNumber">
+                  1
+                </div>
+                <span class="stepDesc text-small"> Configuration </span>
+              </a>
+            </li>
+
+
+
+
+          </ul>
+          <div>
+
+            <ol>
+              <li>Set basic configuration for your model(name, system, threshold, etc.)</li>
+            </ol>
+          </div>
+        </div>
+        <div class="panel-footer stepDesc">
+          <label>Example:</label> This example shows how to publish viewitem accuracy result with RESTful service
+          <pre style="background-color:transparent;color:inherit;border:none;overflow:hidden;margin:0 0;padding:0 0">Method: POST
+Endpoint: {{publishURL}}
+Body:{"metricName": "viewitem_accuracy", "timestamp": 1463373496583, "value": "99.9"}</pre>
+        </div>
+      </section>
+    </div>
+
+  </div><!--//row-->
+
+
+
+</div>
+

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/delete-confirm.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/delete-confirm.html b/ui/pages/measures/delete-confirm.html
new file mode 100644
index 0000000..6db3b0d
--- /dev/null
+++ b/ui/pages/measures/delete-confirm.html
@@ -0,0 +1,92 @@
+<!--
+
+  Licensed 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="container-fluid" id="deleteContent" style="overflow:auto;">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Basic information</h5>
+  </div><!--//row-->
+  <div class="row">
+
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+      <div id="viewrule-definition" class="viewrule-content">
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Model Name:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{deletedRow.name}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Model Definition:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{deletedRow.description}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Model Type:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{deletedRow.type|strmap:'modeltype'}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
+            Organization:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{deletedRow.organization|strmap:'modelsystem'}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            DataAsset:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+            {{deletedRow.source.config.tableName}}&nbsp;&nbsp;{{deletedRow.target.config.tableName}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Owner:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+            {{deletedRow.owner}}
+          </div>
+        </div>
+
+
+      </div>
+    </div>
+
+
+  </div><!--//row-->
+
+
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/measure.css
----------------------------------------------------------------------
diff --git a/ui/pages/measures/measure.css b/ui/pages/measures/measure.css
new file mode 100644
index 0000000..989dc78
--- /dev/null
+++ b/ui/pages/measures/measure.css
@@ -0,0 +1,343 @@
+/*
+      Licensed 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.
+
+
+*/
+.pagination > li > a{
+  cursor:pointer;
+}
+
+
+.swMain>ul {
+    display: table;
+    list-style: none;
+    margin: 0 0 20px;
+    padding: 10px 0;
+    position: relative;
+    width: 100%;
+    background: #f7f7f8;
+    border-radius: 5px
+}
+
+.swMain>div.formStep{
+  background-color: #000000;
+  border-radius: 5px;
+  padding:10px;
+  /*height:800px;*/
+}
+
+.swMain>ul li {
+    display: table-cell;
+    text-align: center;
+    width: 1%
+}
+
+.swMain>ul li>a:before {
+    border-top: 4px solid #c8c7cc;
+    content: "";
+    display: block;
+    font-size: 0;
+    height: 1px;
+    overflow: hidden;
+    position: relative;
+    top: 21px;
+    width: 100%;
+    z-index: 1
+}
+
+.swMain>ul li:first-child>a:before {
+    left: 50%;
+    max-width: 51%
+}
+
+.swMain>ul li:last-child>a:before {
+    max-width: 50%;
+    width: 50%
+}
+
+.swMain li>a.done:before,.swMain>ul li>a.selected:before {
+    border-color: #007AFF
+}
+
+.onlyone:before{
+  left:0  !important;
+  max-width: 100% !important;
+  width: 100% !important;
+}
+
+.swMain>ul .stepNumber {
+    background-color: #fff;
+    border: 5px solid #c8c7cc;
+    border-radius: 100%;
+    color: #546474;
+    display: inline-block;
+    font-size: 15px;
+    height: 40px;
+    line-height: 30px;
+    position: relative;
+    text-align: center;
+    width: 40px;
+    z-index: 2
+}
+
+.swMain>ul li>a.selected .stepNumber {
+    border-color: #007AFF
+}
+
+/*.swMain ul li>a.done .stepNumber,.swMain>ul li:last-child>a.selected .stepNumber {*/
+.swMain ul li>a.done .stepNumber{
+    border-color: #007AFF;
+    background-color: #007AFF;
+    color: #fff;
+    text-indent: -9999px
+}
+
+/*.swMain ul li>a.done .stepNumber:before,.swMain>ul li:last-child>a.selected .stepNumber:before {*/
+.swMain ul li>a.done .stepNumber:before {
+    content: "\f00c";
+    display: inline;
+    float: right;
+    font-family: FontAwesome;
+    font-weight: 300;
+    height: auto;
+    text-shadow: none;
+    margin-right: 7px;
+    text-indent: 0
+}
+
+.swMain ul li>a.done.wait .stepNumber {
+    background-color: #F6F6F6!important;
+    color: #CCC!important;
+    text-indent: 0!important
+}
+
+.swMain ul li>a.done.wait .stepNumber:before {
+    content: ""!important
+}
+
+.swMain>ul li .stepDesc {
+    color: #8e8e93;
+    display: block;
+    font-size: 14px;
+    margin-top: 4px;
+    max-width: 100%;
+    table-layout: fixed;
+    text-align: center;
+    word-wrap: break-word;
+    z-index: 104
+}
+
+.swMain li>a.done .stepDesc,.swMain>ul li>a.selected .stepDesc {
+    /*color: #2B3D53*/
+    color: #007AFF
+}
+
+.swMain>ul li>a.disabled {
+    cursor: default
+}
+
+.swMain .progress {
+    margin-bottom: 30px
+}
+
+.swMain .stepContainer {
+    height: auto!important
+}
+
+/*.swMain .close,.swMain .loader,.swMain [class*=" button"],.swMain [class^=button] {
+    display: none
+}*/
+
+.swMain .y-scrollable{
+  overflow-y: auto;
+  overflow-x: hidden;
+  max-height: 600px;
+}
+
+fieldset{
+  border: 1px solid #e6e8e8;
+  border-radius: 5px;
+  margin:20px 0;
+  padding: 25px;
+  position:relative;
+  min-width:0;
+  display:block;
+
+}
+
+fieldset legend{
+  background-color: black;
+  /*font-family: Lato,sans-serif;*/
+  /*color: #007AFF;*/
+  /*font-size: 15px;*/
+  left: 10px;
+  padding: 0 10px;
+  position: absolute;
+  top: -12px;
+  font-weight: 400;
+  width: auto!important;
+  border: none!important;
+}
+
+.btn-o{
+  background:0 0!important;
+}
+
+.btn-wide{
+  min-width:120px;
+}
+
+.highlight {
+    background: rgba(255, 230, 0, 0.5);
+    padding: 3px 5px;
+    margin: -3px -5px;
+    line-height: 1.7;
+    word-break: break-word;
+    /*border-radius: 3px;*/
+    /*display:inline-block;*/
+}
+
+.label-definition{
+  color:#fff;
+}
+.formStep>.stepDesc{
+  color: #b2c831;
+}
+
+.formStep>.container-fluid{
+  /*position:relative;*/
+}
+
+.btn-container{
+  height:50px;
+  /*position: absolute;
+  bottom: 10;*/
+}
+
+.panel-disabled {
+  border-color: #B9D3DF;
+}
+.panel-disabled > .panel-heading {
+  background-color: #B9D3DF;
+  border-color: #B9D3DF;
+}
+
+.panel-body>ul{
+  border-radius:0;
+  background: none;
+  margin:0;
+}
+
+
+.panel-green {
+    border-color: #5cb85c;
+}
+
+.panel-green .panel-heading {
+    border-color: #5cb85c;
+    color: #fff;
+    background-color: #5cb85c;
+}
+
+.panel-green a {
+    color: #5cb85c;
+}
+
+.panel-green a:hover {
+    color: #3d8b3d;
+}
+
+.panel-red {
+    border-color: #d9534f;
+}
+
+.panel-red .panel-heading {
+    border-color: #d9534f;
+    color: #fff;
+    background-color: #d9534f;
+}
+
+.panel-red a {
+    color: #d9534f;
+}
+
+.panel-red a:hover {
+    color: #b52b27;
+}
+
+.panel-yellow {
+    border-color: #f0ad4e;
+}
+
+.panel-yellow .panel-heading {
+    border-color: #f0ad4e;
+    color: #fff;
+    background-color: #f0ad4e;
+}
+
+.panel-yellow a {
+    color: #f0ad4e;
+}
+
+.panel-yellow a:hover {
+    color: #df8a13;
+}
+
+.viewrule-content{
+  border:1px solid #fff;
+  border-radius:4px;
+  padding:10px;
+}
+
+.ruletypes>.panel{
+  cursor:pointer
+}
+
+/*.ruletypes>.panel:hover{*/
+#panel-1:hover{
+  box-shadow:         3px 3px 5px 6px #ccc;  /* Opera 10.5, IE 9, Firefox 4+, Chrome 6+, iOS 5 */
+  -webkit-box-shadow: 3px 3px 5px 6px #ccc;  /* Safari 3-4, iOS 4.0.2 - 4.2, Android 2.3+ */
+  -moz-box-shadow:    3px 3px 5px 6px #ccc;  /* Firefox 3.5 - 3.6 */
+}
+
+.createrule-hint{
+  color:#b2c831;
+  padding-top:10px;
+}
+
+
+::-webkit-scrollbar {
+    width: 6px;
+}
+::-webkit-scrollbar-track {
+    background-color: #eaeaea;
+    /*background-color: #0a0a0a;*/
+    border-left: 1px solid #ccc;
+}
+::-webkit-scrollbar-thumb {
+    background-color: #ccc;
+}
+::-webkit-scrollbar-thumb:hover {
+    background-color: #aaa;
+}
+
+.disabled {
+    pointer-events: none;
+    cursor: default;
+    opacity: 0.6;
+}
+
+.test-result {
+  border-radius: 5px;
+  padding: 1px 5px;
+}

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/measures.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/measures.html b/ui/pages/measures/measures.html
new file mode 100644
index 0000000..64c999a
--- /dev/null
+++ b/ui/pages/measures/measures.html
@@ -0,0 +1,102 @@
+<!--
+
+  Licensed 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 >
+    <p>
+        <a class="btn btn-primary btn-o btn-wide" href="#/createrule0"><i class="fa fa-plus"></i> Create Measure</a>
+    </p>
+
+    <div id="modelContainer">
+        <table st-table="displayed" st-pipe="paging" class="table table-striped">
+            <thead>
+            <!-- <tr>
+
+                    <th colspan="7">
+                        <input st-search placeholder="Search..." type="search" style="color:#000000"/>
+                    </th>
+                </tr> -->
+            <tr style="background-color:#7D95CC">
+                <th st-ratio="15">Model Name</th>
+                <!--<th st-ratio="15">Organization</th>-->
+                <th st-ratio="15">Model Type</th>
+                <th st-ratio="20">Description</th>
+                <!--<th st-ratio="15">Create Date</th>-->
+                <!--<th st-ratio="10">Model Stage</th>-->
+                <th st-ratio="5">Organization</th>
+                <th st-ratio="5">Action</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-if="!rowCollection || rowCollection.length == 0">
+                <td colspan="7" style="text-align:center">No content!</td>
+            </tr>
+            <tr ng-repeat="row in displayed">
+                <td><a href="#/viewrule/{{row.name}}">{{row.name}}</a></td>
+                <!--<td>{{row.system|strmap:'modelsystem'}}</td>-->
+                <td>{{row.type|strmap:'modeltype'}}</td>
+                <td>{{row.description}}</td>
+                <!--<td>{{row.createDate | date:'short':'-0700'}}</td>-->
+                <!--<td><label class="label" ng-class="row.status==0?'label-default':row.status==1?'label-info':'label-success'" >{{row.status|strmap:'modelstatus'}}</label></td>-->
+                <td>{{row.organization}}</td>
+                <td>
+                    &nbsp;
+                    <a ng-class="" href="" ng-click="remove(row)" title="delete" style="text-decoration:none">
+                        <i class="fa fa-trash-o"></i>
+                    </a>
+                    &nbsp;
+                    <a href="#/viewrule/{{row.name}}" title="subscribe">
+                        <i class="fa fa-eye"></i>
+                    </a>
+                </td>
+                <!-- <td>
+                    <button class="btn btn-sm" popover-placement="top" popover="{{row.email}}" type="button">
+                        <i class="glyphicon glyphicon-eye-open"></i>
+                    </button>
+                    <a ng-href="mailto:{{row.email}}">email</a></td>
+                <td>
+                    <button type="button" ng-click="removeRow(row)" class="btn btn-sm btn-danger">
+                        <i class="glyphicon glyphicon-remove-circle">
+                        </i>
+                    </button>
+                </td> -->
+            </tr>
+            </tbody>
+            <tfoot>
+            <tr>
+                <td colspan="8" class="text-right">
+                    <div  st-items-by-page="10" st-pagination="" st-displayed-pages="10"></div>
+                </td>
+            </tr>
+            </tfoot>
+        </table>
+    </div>
+    <div class="modal fade" id="deleteConfirmation" role="dialog">
+        <div class="modal-dialog modal-xg modal-lg">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+                    <h4 class="modal-title">Delete the model with the below information?</h4>
+                </div>
+                <div class="modal-body">
+                    <ng-include src="'/pages/measures/delete-confirm.html'"/>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-primary" ng-click="confirmDelete()">Yes</button>
+                    <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/va-explaination.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/va-explaination.html b/ui/pages/measures/va-explaination.html
new file mode 100644
index 0000000..918e15f
--- /dev/null
+++ b/ui/pages/measures/va-explaination.html
@@ -0,0 +1,768 @@
+<!--
+
+  Licensed 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.
+
+-->
+<!-- Simple Statistics -->
+	<!-- Null Count -->
+<div class="container-fluid" ng-show="form.vaType==2">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is Null Count ?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		Null is a special marker used to indicate that a data value does not exist.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<label class="text-left">
+						Suppose we have the below data table, then the Null Count of "FIRSTNAME" is <kbd style="font-size: 16px">3</kbd>
+			  	</label>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<thead>
+						<tr class="success">
+							<td>ID</td>
+							<td>FRISTNAME</td>
+							<td>LASTNAME</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>lei</td>
+							<td>li</td>
+						</tr>
+						<tr>
+							<td>2</td>
+							<td>lei</td>
+							<td>li</td>
+						</tr>
+						<tr>
+							<td>3</td>
+							<td>lei</td>
+							<td>li</td>
+						</tr>
+						<tr>
+							<td>4</td>
+							<td>
+								<abbr title="the value isn't necessary " class="initialism"><mark>null</mark></abbr>
+							</td>
+							<td>stone</td>
+						</tr>
+						<tr>
+							<td>5</td>
+							<td>lei</td>
+							<td>li</td>
+						</tr>
+						<tr>
+							<td>6</td>
+							<td>lei</td>
+							<td>li</td>
+						</tr>
+						<tr>
+							<td>7</td>
+							<td>
+								<abbr title="the value isn't necessary " class="initialism"><mark>null</mark></abbr>
+							</td>
+							<td>stone</td>
+						</tr>
+						<tr>
+							<td>8</td>
+							<td>
+								<abbr title="the value isn't necessary " class="initialism"><mark>null</mark></abbr>
+							</td>
+							<td>zhang</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+	<!-- Unique Count -->
+<div class="container-fluid" ng-show="form.vaType==3">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is Unique Count ?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		The UNIQUE Constraint prevents two records from having identical values in a particular column.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<label class="text-left">
+			  		Suppose we have the below data table which has four attributes-ID, NAME, AGE and FAVOURITE FOOD. Then the Unique Count is <kbd style="font-size: 16px">2</kbd>
+			  	</label>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<colgroup>
+					    <col span="2" style="background-color:#064225">
+					 </colgroup>
+					<thead>
+						<tr class="success">
+							<td>ID</td>
+							<td>NAME</td>
+							<td>AGE</td>
+							<td>FAVOURITE FOOD</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>Lily</td>
+							<td>20</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>2</td>
+							<td>Lucy</td>
+							<td>20</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>3</td>
+							<td>John</td>
+							<td>20</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>4</td>
+							<td>David</td>
+							<td>20</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>5</td>
+							<td>Sam</td>
+							<td>35</td>
+							<td>banana</td>
+						</tr>
+						<tr>
+							<td>6</td>
+							<td>Kaka</td>
+							<td>35</td>
+							<td>banana</td>
+						</tr>
+						<tr>
+							<td>7</td>
+							<td>stone</td>
+							<td>35</td>
+							<td>banana</td>
+						</tr>
+						<tr>
+							<td>8</td>
+							<td>Adison</td>
+							<td>35</td>
+							<td>banana</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+    <!--  Duplicate Count -->
+<div class="container-fluid" ng-show="form.vaType==4">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is Duplicate Count ?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		Duplicate Count is the number of duplicate rows in a table and generate an output column that shows how many times each row occurs.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<label class="text-left">
+			  		Suppose we have the below data table, and we only count the  the number of duplicate rows for age. Then the Duplicate Count is <kbd style="font-size: 16px">2</kbd>
+			  	</label>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<thead>
+						<tr class="success">
+							<td>ID</td>
+							<td>NAME</td>
+							<td>AGE</td>
+							<td>FAVOURITE FOOD</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>Lily</td>
+							<td>21</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>2</td>
+							<td>Lucy</td>
+							<td class="info">20</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>3</td>
+							<td>John</td>
+							<td class="info">20</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>4</td>
+							<td>David</td>
+							<td class="info">20</td>
+							<td>APPLE</td>
+						</tr>
+						<tr>
+							<td>5</td>
+							<td>Sam</td>
+							<td>37</td>
+							<td>banana</td>
+						</tr>
+						<tr>
+							<td>6</td>
+							<td>Kaka</td>
+							<td class="warning">35</td>
+							<td>banana</td>
+						</tr>
+						<tr>
+							<td>7</td>
+							<td>stone</td>
+							<td class="warning">35</td>
+							<td>banana</td>
+						</tr>
+						<tr>
+							<td>8</td>
+							<td>Adison</td>
+							<td>38</td>
+							<td>banana</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- Summary Statistics -->
+	<!-- Maximum -->
+<div class="container-fluid" ng-show="form.vaType==5">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is Maximum ?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		Maximum is the biggest value of the selected column.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+					<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				Suppose we have the below data table, then the maximum is: 26 <kbd style="font-size: 16px">26</kbd>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<thead>
+						<tr class="success">
+							<td>ID</td>
+							<td>NAME</td>
+							<td>AGE</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>lei</td>
+							<td>17</td>
+						</tr>
+						<tr>
+							<td>2</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>3</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>4</td>
+							<td>lei</td>
+							<td>21</td>
+						</tr>
+						<tr>
+							<td>5</td>
+							<td>lei</td>
+							<td>23</td>
+						</tr>
+						<tr>
+							<td>6</td>
+							<td>lei</td>
+							<td>23</td>
+						</tr>
+						<tr>
+							<td>7</td>
+							<td>lei</td>
+							<td>24</td>
+						</tr>
+						<tr>
+							<td>8</td>
+							<td>lei</td>
+							<td>
+								<abbr title="the value is the biggest number " class="initialism"><mark>26</mark></abbr>
+							</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+	<!-- Minimum -->
+<div class="container-fluid" ng-show="form.vaType==6">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is Minimum ?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		Minimum is smallest value of the selected column.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+					<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				Suppose we have the below data table, then the minimum is: <kbd style="font-size: 16px">14</kbd>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<thead>
+						<tr class="success">
+							<td>ID</td>
+							<td>NAME</td>
+							<td>AGE</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>lei</td>
+							<td>17</td>
+						</tr>
+						<tr>
+							<td>2</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>3</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>4</td>
+							<td>lei</td>
+							<td>
+								<abbr title="the value is the minimum number " class="initialism"><mark>14</mark></abbr>
+							</td>
+						</tr>
+						<tr>
+							<td>5</td>
+							<td>lei</td>
+							<td>23</td>
+						</tr>
+						<tr>
+							<td>6</td>
+							<td>lei</td>
+							<td>23</td>
+						</tr>
+						<tr>
+							<td>7</td>
+							<td>lei</td>
+							<td>24</td>
+						</tr>
+						<tr>
+							<td>8</td>
+							<td>lei</td>
+							<td>26</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+	<!-- Mean -->
+<div class="container-fluid" ng-show="form.vaType==7">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is Mean ?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		Mean is the usual average.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+					<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				Suppose we have the below data table, then the mean of AGE is: <kbd style="font-size: 16px">20</kbd>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<thead>
+						<tr class="success">
+							<td>ID</td>
+							<td>NAME</td>
+							<td>AGE</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>2</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>3</td>
+							<td>lei</td>
+							<td>19</td>
+						</tr>
+						<tr>
+							<td>4</td>
+							<td>lei</td>
+							<td>19</td>
+						</tr>
+						<tr>
+							<td>5</td>
+							<td>lei</td>
+							<td>21</td>
+						</tr>
+						<tr>
+							<td>6</td>
+							<td>lei</td>
+							<td>21</td>
+						</tr>
+						<tr>
+							<td>7</td>
+							<td>lei</td>
+							<td>22</td>
+						</tr>
+						<tr>
+							<td>8</td>
+							<td>lei</td>
+							<td>22</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+	<!-- Median -->
+<div class="container-fluid" ng-show="form.vaType==8">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is Median ?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		Median is the middle value.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+					<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				Suppose we have the below data table, then the median of AGE is: <kbd style="font-size: 16px">21</kbd>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<thead>
+						<tr class="success">
+							<td>ID</td>
+							<td>NAME</td>
+							<td>AGE</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>1</td>
+							<td>lei</td>
+							<td>17</td>
+						</tr>
+						<tr>
+							<td>2</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>3</td>
+							<td>lei</td>
+							<td>19</td>
+						</tr>
+						<tr>
+							<td>4</td>
+							<td>lei</td>
+							<td>20</td>
+						</tr>
+						<tr>
+							<td>5</td>
+							<td>lei</td>
+							<td>21</td>
+						</tr>
+						<tr>
+							<td>6</td>
+							<td>lei</td>
+							<td>21</td>
+						</tr>
+						<tr>
+							<td>7</td>
+							<td>lei</td>
+							<td>22</td>
+						</tr>
+						<tr>
+							<td>8</td>
+							<td>lei</td>
+							<td>22</td>
+						</tr>
+						<tr>
+							<td>9</td>
+							<td>lei</td>
+							<td>23</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+</div>
+<!-- Regular Expression Matching -->
+<div class="container-fluid" ng-show="form.vaType==9">
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">What is the Regular Expression Match?</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		In theoretical computer science and formal language theory, a regular expression (sometimes called a rational expression) is a sequence of characters that define a search pattern, mainly for use in pattern matching with strings, or string matching, i.e. "find and replace"-like operations.
+			  	</label>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<h5 class="text-left" style="margin-left: 0px">Example</h5>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<label class="text-left">
+			  		There is a series characters of in the column of IDENTIFIER in the following table, and we can use a kind of Regular Expression Matching to search it.
+			  	</label>
+			</div>
+		</div>
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+				<table class="table table-bordered text-center">
+					<thead>
+						<tr class="success">
+							<td>IDENTIFIER</td>
+							<td>NAME</td>
+							<td>AGE</td>
+						</tr>
+					</thead>
+					<tbody>
+						<tr>
+							<td>#1111</td>
+							<td>lei</td>
+							<td>17</td>
+						</tr>
+						<tr>
+							<td>#1245</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>15245</td>
+							<td>lei</td>
+							<td>18</td>
+						</tr>
+						<tr>
+							<td>87956</td>
+							<td>lei</td>
+							<td>21</td>
+						</tr>
+						<tr>
+							<td>
+								<abbr title="the value is the biggest number " class="initialism">
+									<mark>monkey</mark>
+								</abbr>
+							</td>
+							<td>lei</td>
+							<td>23</td>
+						</tr>
+						<tr>
+							<td>
+								<abbr title="the value is the biggest number " class="initialism">
+									<mark>tiger</mark>
+								</abbr>
+							</td>
+							<td>lei</td>
+							<td>23</td>
+						</tr>
+						<tr>
+							<td>456</td>
+							<td>lei</td>
+							<td>24</td>
+						</tr>
+						<tr>
+							<td>324</td>
+							<td>lei</td>
+							<td>26</td>
+						</tr>
+					</tbody>
+				</table>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<p class="text-left">
+					<strong>Suppose Regular Expression is :</strong> ^[A-Za-z]+$
+				</p>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<p class="text-left">
+					<strong>The regular expression matching means :</strong> Matches a string consisting of 26 english letters
+				</p>
+			</div>
+		</div>
+	</div>
+	<div class="container-fluid">
+		<div class="row">
+			<div class="col-md-12 col-lg-12 col-sm-12">
+			  	<p class="text-left">
+			  		The result is: <kbd>2 (MONKEY AND TIGER)</kbd>
+				</p>
+			</div>
+		</div>
+	</div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/viewrule.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/viewrule.html b/ui/pages/measures/viewrule.html
new file mode 100644
index 0000000..8592959
--- /dev/null
+++ b/ui/pages/measures/viewrule.html
@@ -0,0 +1,211 @@
+<!--
+
+  Licensed 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="container-fluid" id="viewruleContent">
+    <div class="row">
+        <h5 class="over-title margin-bottom-15">View Model</h5>
+    </div><!--//row-->
+    <div class="row">
+
+        <div  class="col-sm-6 col-xs-12">
+            <div id="viewruleDefinition" class="viewrule-content">
+                <div class="row">
+                    <label class="col-xs-4">
+                        Model Name:
+                    </label>
+
+                    <div class="col-xs-8 " style="color: #fff">
+                        {{ruleData.name}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-xs-4">
+                        Model Description:
+                    </label>
+
+                    <div class="col-xs-8 " style="color: #fff">
+                        {{ruleData.description}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-xs-4">
+                        Model Type:
+                    </label>
+
+                    <div class="col-xs-8 " style="color: #fff">
+                        {{ruleData.type|strmap:'modeltype'}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label for="systemSelector" class="col-xs-4">
+                        Organization:
+                    </label>
+
+                    <div class="col-xs-8 " style="color: #fff">
+                        {{ruleData.organization|strmap:'modelsystem'}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-xs-4">
+                        DataAsset:
+                    </label>
+
+                    <div class="col-xs-8" style="color: #fff">
+                        {{ruleData.source.config.tableName}}&nbsp;&nbsp;{{ruleData.target.config.tableName}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-xs-4">
+                        Owner:
+                    </label>
+
+                    <div class="col-xs-8" style="color: #fff">
+                        {{ruleData.owner}}
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div><!--//row-->
+    <div class="container-fluid" ng-show="ruleData.basic.status==1" >
+        <br/>
+        <label style="color:#B2C831">This model is ready to deploy now, if you are the owner, please click the deploy button after you verify all the information.</label>
+        <button ng-click="confirmDeploy()" ng-disabled="(ntAccount!=ruleData.basic.owner && !adminAccess)" class="btn btn-primary pull-right"> Deploy</button>
+        </p>
+    </div>
+    <br/>
+    <div ng-if="ruleData.type=='accuracy'"><!--Accuracy-->
+        <h5 class="row">Mapping rules</h5>
+        <div class="">
+            <p>{{ruleData.evaluateRule.rules}}</p>
+            <p>
+                <label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
+            </p>
+
+            <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex;align-items: center">
+
+                <div class="" style="text-align:right;display:block;float:left;width:20%;">
+                    Accuracy Rate(%) =
+                </div>
+                <div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
+                    <div class="formula-text-up" style="border-bottom:1px solid;">
+                        Total Count of Matched records between <span class="badge">{{sourceLength}}</span> <span style="color:green;">{{ruleData.target.config.database}}</span>  and <span class="badge">{{sourceLength}}</span> <span style="color:green;">{{ruleData.source.config.database}}</span>  fields
+                    </div>
+                    <div class="">
+                        Total Count of records in <span style="color:green;font-weight:bold;">{{ruleData.target.config.database}}&nbsp;&nbsp;{{ruleData.target.config.tableName}}</span>
+                    </div>
+                </div>
+                <div class="" style="text-align:left;display:block;float:left;width:10%;">
+                    x 100%
+                </div>
+
+            </div>
+
+
+        </div>
+    </div>
+
+    <div ng-if="ruleData.basic.type==1"><!--Validity-->
+        <h5 class="row">Validity metrics</h5>
+        <div  class="">
+            <div id="viewrule-definition" class="viewrule-content">
+                <div class="row">
+                    <label class="col-xs-4">
+                        Validity type:
+                    </label>
+
+                    <div class="col-xs-8 " style="color: #fff">
+                        {{ruleData.extra.vaType|strmap:'vatype'}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-xs-4">
+                        Selected column:
+                    </label>
+
+                    <div class="col-xs-8 " style="color: #fff">
+                        {{ruleData.extra.column}}
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div ng-if="ruleData.basic.type==2"><!--Anomaly Detection-->
+        <h5 class="row">Key information</h5>
+        <div class="row">
+            <div  class="col-lg-12 col-md-12 col-sm-12">
+                <div id="viewrule-definition" class="viewrule-content">
+                    <div class="row">
+                        <label class="col-xs-4">
+                            Detection type:
+                        </label>
+
+                        <div class="col-xs-8 " style="color: #fff">
+                            {{ruleData.extra.anType|strmap:'antype'}}
+                        </div>
+                    </div>
+                    <div class="row-fluid">
+                        <img ng-if="ruleData.extra.anType==1" src="/img/yoy.png" style="max-height: 300px;width:100%"/>
+                        <img ng-if="ruleData.extra.anType==2" src="/img/bollinger.png" style="max-height: 400px;width:100%"/>
+                        <img ng-if="ruleData.extra.anType==3" src="/img/mad.png" style="max-height: 300px;width:100%"/>
+                    </div>
+
+
+                </div>
+            </div>
+
+        </div>
+    </div>
+
+    <div ng-if="ruleData.basic.type==3"><!--Publish Metrics-->
+        <h5 class="row">Publish Metrics URL</h5>
+        <div id="viewrule-definition" class="viewrule-content">
+
+            <div class="row">
+                <label class="col-xs-4">
+                    Publish URL:
+                </label>
+
+                <div class="col-xs-8" style="color: #fff">
+                    {{ruleData.extra.publishUrl}}
+                </div>
+            </div>
+
+            <div class="row">
+                <label class="col-xs-4">
+                    Publish data format:
+                </label>
+
+                <div class="col-xs-8" style="color: #fff">
+              <pre style="background-color:transparent;color:inherit;border:none">Method: POST
+Endpoint: {{ruleData.extra.publishUrl}}
+Body:
+{
+"metricName": "{{ruleData.basic.name}}",
+"timestamp": 1463373496583,
+"value": 99.9
+}</pre>
+                </div>
+            </div>
+        </div>
+    </div>
+
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/metrics/dashboard.html
----------------------------------------------------------------------
diff --git a/ui/pages/metrics/dashboard.html b/ui/pages/metrics/dashboard.html
index ad58627..55dcd99 100644
--- a/ui/pages/metrics/dashboard.html
+++ b/ui/pages/metrics/dashboard.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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 id="dashboard" class="bs-component" >
 	<div  class="container-fluid">
 		<div class="row col-lg-12" style="margin-top: 15px;">

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/metrics/download-sample.html
----------------------------------------------------------------------
diff --git a/ui/pages/metrics/download-sample.html b/ui/pages/metrics/download-sample.html
index ea5998b..a438182 100644
--- a/ui/pages/metrics/download-sample.html
+++ b/ui/pages/metrics/download-sample.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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="container-fluid" id="viewsample-content" style="overflow:auto;">
   <div class="row">
     <h5 class="over-title margin-bottom-15">Download sample</h5>



[5/7] incubator-griffin git commit: Schedule2

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/health/health.html
----------------------------------------------------------------------
diff --git a/ui/pages/health/health.html b/ui/pages/health/health.html
index ceb2d65..3a72a11 100644
--- a/ui/pages/health/health.html
+++ b/ui/pages/health/health.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+  Licensed 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
 
-	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.
- -->
+     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="bs-component">
   <ul class="nav nav-tabs ">
     <li class="active">

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/jobs/confirmation-ac.html
----------------------------------------------------------------------
diff --git a/ui/pages/jobs/confirmation-ac.html b/ui/pages/jobs/confirmation-ac.html
new file mode 100644
index 0000000..b254359
--- /dev/null
+++ b/ui/pages/jobs/confirmation-ac.html
@@ -0,0 +1,83 @@
+<!--
+
+  Licensed 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="container-fluid" id="viewJobContent" style="overflow:auto;">
+    <div class="row">
+        <h5 class="over-title margin-bottom-15">Basic information</h5>
+    </div><!--//row-->
+    <div class="row">
+
+        <div  class="col-lg-12 col-md-12 col-sm-12">
+            <div id="viewrule-definition" class="viewrule-content">
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Source Partition:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{sourcePat}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Target Partition:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{targetPat}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Measure Name:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{Measures[measure]}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
+                        Start after:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{jobStartTime}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Interval:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff"  >{{periodTime}}
+
+                    </div>
+                </div>
+            </div>
+        </div>
+
+
+    </div><!--//row-->
+
+    <br/>
+
+
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/jobs/createjob-ac.html
----------------------------------------------------------------------
diff --git a/ui/pages/jobs/createjob-ac.html b/ui/pages/jobs/createjob-ac.html
new file mode 100644
index 0000000..43242f5
--- /dev/null
+++ b/ui/pages/jobs/createjob-ac.html
@@ -0,0 +1,136 @@
+<!--
+
+  Licensed 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="container-fluid">
+    <div class="row">
+        <h5 class="over-title margin-bottom-15">Create Job</h5>
+    </div><!--//row-->
+    <div class="row">
+        <form name="Form" id="form" novalidate>
+                <div  class="formStep" >
+                    <label class="stepDesc">Please setup the job required information</label>
+                    <div class="container-fluid">
+
+                        <!-- schema definition list -->
+                        <div class="col-md-12 col-lg-12 col-sm-12">
+                            <fieldset>
+                                <legend>
+                                    Required Information
+                                </legend>
+                                <div class="y-scrollable">
+                                    <div class="col-md-12 col-lg-12 col-sm-12">
+                                        <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
+                                            <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                                                Source Partition<span class="symbol required"></span>:
+                                            </label>
+
+                                            <div class="col-md-10 col-lg-10 col-sm-10 ">
+                                                <input type="text" class="form-control" ng-model="sourcePat" name="ruleName" placeholder="Please input the source partition" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
+                                                <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
+                                                <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="col-md-12 col-lg-12 col-sm-12">
+                                        <div class="form-group">
+                                            <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                                                Target Partition:
+                                            </label>
+
+                                            <div class="col-md-10 col-lg-10 col-sm-10 ">
+                                                <input type="text" class="form-control" ng-model="targetPat" placeholder="Please input target partition of your model">
+                                            </div>
+                                        </div>
+                                    </div>
+
+                                    <div class="col-md-12 col-lg-12 col-sm-12">
+                                        <div class="form-group">
+                                            <label for="measureSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                                                Measure Name:
+                                            </label>
+
+                                            <div class="col-md-10 col-lg-10 col-sm-10 ">
+                                                <select id="measureSelector" class="form-control" ng-model="measure" ng-init="Measures[0]" required>
+                                                    <option ng-repeat="row in Measures" value="{{$index}}" >{{row}}</option>
+                                                </select>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="col-md-12 col-lg-12 col-sm-12">
+                                        <div class="form-group">
+                                            <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                                                 Start After(s):
+                                            </label>
+
+                                            <div class="col-md-10 col-lg-10 col-sm-10 ">
+                                                <input type="text" class="form-control" ng-model="jobStartTime" >
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="col-md-12 col-lg-12 col-sm-12">
+                                        <div class="form-group">
+                                            <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                                                Interval:
+                                            </label>
+
+                                            <div class="col-md-10 col-lg-10 col-sm-10 ">
+                                                <input type="text" id="systemSelector" class="form-control" ng-model="periodTime"  required >
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div style="color:#b2c831">
+                                    <p>
+                                        <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/jobs">Jobs</a>" to check the job status
+                                    </p>
+                                </div>
+
+                            </fieldset>
+                        </div>
+
+                        <div class="form-group btn-container" >
+                            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                                <i class="fa fa-arrow-circle-left"></i> Back
+                            </button>
+                            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
+                                <!-- <button class="btn btn-primary btn-o next-step btn-wide pull-right" data-toggle="modal" data-target="#confirm"> -->
+                                Submit
+                            </button>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="modal fade" id="confirm-job" role="dialog">
+                    <div class="modal-dialog modal-xg modal-lg">
+                        <div class="modal-content">
+                            <div class="modal-header">
+                                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+                                <h4 class="modal-title">Save the job with the below information?</h4>
+                            </div>
+                            <div class="modal-body">
+                                <ng-include src="'/pages/jobs/confirmation-ac.html'"/>
+                            </div>
+                            <div class="modal-footer">
+                                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+                                <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+        </form>
+    </div><!--//row-->
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/jobs/createjob0.html
----------------------------------------------------------------------
diff --git a/ui/pages/jobs/createjob0.html b/ui/pages/jobs/createjob0.html
new file mode 100644
index 0000000..ae5d510
--- /dev/null
+++ b/ui/pages/jobs/createjob0.html
@@ -0,0 +1,26 @@
+<!--
+
+  Licensed 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.
+
+-->
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/jobs/delete-confirm.html
----------------------------------------------------------------------
diff --git a/ui/pages/jobs/delete-confirm.html b/ui/pages/jobs/delete-confirm.html
new file mode 100644
index 0000000..81d00da
--- /dev/null
+++ b/ui/pages/jobs/delete-confirm.html
@@ -0,0 +1,92 @@
+<!--
+
+  Licensed 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="container-fluid" id="deleteContent" style="overflow:auto;">
+    <div class="row">
+        <h5 class="over-title margin-bottom-15">Basic information</h5>
+    </div><!--//row-->
+    <div class="row">
+
+        <div  class="col-lg-12 col-md-12 col-sm-12">
+            <div id="viewrule-definition" class="viewrule-content">
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Job Name:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{deletedRow.jobName}}
+                    </div>
+                </div>
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Source Partition:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{deletedRow.sourcePat}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Target Partition:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{deletedRow.targetPat}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
+                        Next Fire Time:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+                        {{deletedRow.nextFireTime}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Interval:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+                        {{deletedRow.periodTime}}
+                    </div>
+                </div>
+
+                <div class="row">
+                    <label class="col-md-4 col-lg-4 col-sm-4">
+                        Group:
+                    </label>
+
+                    <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+                        {{deletedRow.groupName}}
+                    </div>
+                </div>
+
+
+            </div>
+        </div>
+
+
+    </div><!--//row-->
+
+
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/jobs/jobs.html
----------------------------------------------------------------------
diff --git a/ui/pages/jobs/jobs.html b/ui/pages/jobs/jobs.html
new file mode 100644
index 0000000..4f5b6ba
--- /dev/null
+++ b/ui/pages/jobs/jobs.html
@@ -0,0 +1,90 @@
+<!--
+
+  Licensed 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 >
+    <p>
+        <a class="btn btn-primary btn-o btn-wide" href="#/createjob-ac"><i class="fa fa-plus"></i> Create Job</a>
+    </p>
+
+    <div id="modelContainer">
+        <table st-table="displayed" st-pipe="paging" class="table table-striped">
+            <thead>
+            <tr style="background-color:#7D95CC">
+                <th st-ratio="15">Job Name</th>
+                <th st-ratio="15">Source Partition</th>
+                <th st-ratio="15">Target Partition</th>
+                <th st-ratio="15">Previous Fire Time</th>
+
+                <th st-ratio="20">Next Fire Time</th>
+                <th st-ratio="15">Trigger State</th>
+
+                <th st-ratio="5">Interval</th>
+                <th st-ratio="5">Action</th>
+            </tr>
+            </thead>
+            <tbody>
+            <tr ng-if="!rowCollection || rowCollection.length == 0">
+                <td colspan="7" style="text-align:center">No content!</td>
+            </tr>
+            <tr ng-repeat="row in displayed">
+                <td>{{row.jobName}}</a></td>
+                <td>{{row.sourcePat}}</a></td>
+                <td>{{row.targetPat|strmap:'modeltype'}}</td>
+                <td>{{(row.previousFireTime | date: 'short':'-0700') || 'N/A' }}</td>
+
+                <td>{{(row.nextFireTime | date: 'short':'-0700') || 'N/A' }}</td>
+                <td>{{row.triggerState}}</td>
+
+                <td>{{row.periodTime}}</td>
+                <td>
+                    &nbsp;
+                    <a ng-class="" href="" ng-click="remove(row)" title="delete" style="text-decoration:none">
+                        <i class="fa fa-trash-o"></i>
+                    </a>
+                    &nbsp;
+                    <!--<a href="#/viewrule/{{row.name}}" title="subscribe">-->
+                        <!--<i class="fa fa-eye"></i>-->
+                    <!--</a>-->
+                </td>
+            </tr>
+            </tbody>
+            <tfoot>
+            <tr>
+                <td colspan="8" class="text-right">
+                    <div  st-items-by-page="10" st-pagination="" st-displayed-pages="10"></div>
+                </td>
+            </tr>
+            </tfoot>
+        </table>
+    </div>
+    <div class="modal fade" id="deleteJobConfirmation" role="dialog">
+        <div class="modal-dialog modal-xg modal-lg">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+                    <h4 class="modal-title">Delete the model with the below information?</h4>
+                </div>
+                <div class="modal-body">
+                    <ng-include src="'/pages/jobs/delete-confirm.html'"/>
+                </div>
+                <div class="modal-footer">
+                    <button type="button" class="btn btn-primary" ng-click="confirmDelete()">Yes</button>
+                    <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/confirmation-ac.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/confirmation-ac.html b/ui/pages/measures/confirmation-ac.html
new file mode 100644
index 0000000..7684604
--- /dev/null
+++ b/ui/pages/measures/confirmation-ac.html
@@ -0,0 +1,119 @@
+<!--
+
+  Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Basic information</h5>
+  </div><!--//row-->
+  <div class="row">
+
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+      <div id="viewrule-definition" class="viewrule-content">
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Measure Name:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{basic.name}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Measure Description:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{basic.desc}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Measure Type:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{basic.type|strmap:ruleTypes}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
+            Organization:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+            {{basic.system}}
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            DataAsset:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff"  >{{dataAsset}}
+
+          </div>
+        </div>
+
+        <div class="row">
+          <label class="col-md-4 col-lg-4 col-sm-4">
+            Owner:
+          </label>
+
+          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+            {{basic.owner}}
+          </div>
+        </div>
+      </div>
+    </div>
+
+
+  </div><!--//row-->
+
+  <br/>
+  <h5 class="row">Mapping rules</h5>
+  <div class="row">
+
+    <p>{{rules}}</p>
+
+    <p>
+      <label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
+    </p>
+
+    <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex;align-items: center">
+
+      <div class="" style="text-align:right;display:block;float:left;width:20%;">
+        Accuracy Rate(%) =
+      </div>
+      <div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
+        <div class="formula-text-up" style="border-bottom:1px solid;">
+          Total Count of Matched records between <span class="badge">{{form.data.mappings.length}}</span><span style="color:green;">{{currentNodeTarget.name}}</span> and <span class="badge">{{form.data.mappings.length}}</span> <span style="color:green;">{{currentNode.name}}</span>  fields
+        </div>
+        <div class="">
+          Total Count of records in <span style="color:green;font-weight:bold;">{{currentNode.parent[0].dbName}}.{{currentNodeTarget.name}}</span>
+        </div>
+      </div>
+      <div class="" style="text-align:left;display:block;float:left;width:10%;">
+        x 100%
+      </div>
+
+    </div>
+  </div>
+
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/confirmation-an.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/confirmation-an.html b/ui/pages/measures/confirmation-an.html
new file mode 100644
index 0000000..98429fc
--- /dev/null
+++ b/ui/pages/measures/confirmation-an.html
@@ -0,0 +1,144 @@
+<!--
+
+  Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Basic information</h5>
+  </div><!--//row-->
+  <div class="row">
+
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+        <div id="viewrule-definition" class="viewrule-content">
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Name:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.name}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Definition:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.desc}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.type|strmap:ruleTypes}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
+              Organization:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.system|strmap:ruleSystems}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              DataAsset:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.dataaset}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Threshold:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.threshold}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Schedule Type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.scheduleType|strmap:scheduleTypes}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Notification email:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.email}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Owner:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.owner}}
+            </div>
+        </div>
+      </div>
+    </div>
+
+
+  </div><!--//row-->
+
+  <br/>
+  <h5 class="row">Key information</h5>
+  <div class="row">
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+        <div id="viewrule-definition" class="viewrule-content">
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Detection type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.anType|strmap:anTypes}}
+            </div>
+          </div>
+          <div class="row-fluid">
+            <img ng-if="form.anType == 1" src="/img/yoy.png" style="max-height: 300px;width:100%"/>
+            <img ng-if="form.anType == 2" src="/img/bollinger.png" style="max-height: 400px;width:100%"/>
+          </div>
+
+
+        </div>
+    </div>
+
+  </div>
+
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/confirmation-pu.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/confirmation-pu.html b/ui/pages/measures/confirmation-pu.html
new file mode 100644
index 0000000..17762cd
--- /dev/null
+++ b/ui/pages/measures/confirmation-pu.html
@@ -0,0 +1,158 @@
+<!--
+
+  Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Basic information</h5>
+  </div><!--//row-->
+  <div class="row">
+
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+        <div id="viewrule-definition" class="viewrule-content">
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Name:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.name}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Definition:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.desc}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.type|strmap:ruleTypes}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
+              Organization:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.system|strmap:ruleSystems}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              DataAsset:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.dataaset}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Threshold:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.threshold}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Schedule Type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.scheduleType|strmap:scheduleTypes}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Notification email:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.email}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Owner:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.owner}}
+            </div>
+          </div>
+
+
+      </div>
+    </div>
+
+
+  </div><!--//row-->
+
+  <br/>
+  <h5 class="row">Extra information</h5>
+  <div class="row">
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+        <div id="viewrule-definition" class="viewrule-content">
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Publish URL:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.extra.publishUrl}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Publish data format:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              <pre style="background-color:transparent;color:inherit;border:none">Method: POST
+Endpoint: {{form.publishUrl}}
+Body:
+{
+"metricName": "{{form.basic.name}}",
+"timestamp": 1463373496583,
+"value": 99.9
+}</pre>
+            </div>
+          </div>
+        </div>
+    </div>
+
+  </div>
+
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/confirmation-va.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/confirmation-va.html b/ui/pages/measures/confirmation-va.html
new file mode 100644
index 0000000..f700e64
--- /dev/null
+++ b/ui/pages/measures/confirmation-va.html
@@ -0,0 +1,158 @@
+<!--
+
+  Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Basic information</h5>
+  </div><!--//row-->
+  <div class="row">
+
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+        <div id="viewrule-definition" class="viewrule-content">
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Name:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.name}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Definition:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.desc}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Model Type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.type|strmap:ruleTypes}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
+              Organization:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.system|strmap:ruleSystems}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              DataAsset:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.dataaset}}
+            </div>
+          </div>
+
+          <div class="row" ng-show="form.data.extra.vaType=='9'">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Regular Expression:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.regex}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Threshold:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.threshold}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Schedule Type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.data.basic.scheduleType|strmap:scheduleTypes}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Notification email:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.email}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Owner:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
+              {{form.data.basic.owner}}
+            </div>
+        </div>
+      </div>
+    </div>
+
+
+  </div><!--//row-->
+
+  <br/>
+  <h5 class="row">Key information</h5>
+  <div class="row">
+    <div  class="col-lg-12 col-md-12 col-sm-12">
+        <div id="viewrule-definition" class="viewrule-content">
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Validity type:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{form.vaType|strmap:vaTypes}}
+            </div>
+          </div>
+
+          <div class="row">
+            <label class="col-md-4 col-lg-4 col-sm-4">
+              Selected column:
+            </label>
+
+            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
+              {{currentNode.parent.name}}.{{currentNode.name}}.{{form.selection}}
+            </div>
+          </div>
+        </div>
+    </div>
+
+  </div>
+
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/createrule-ac.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/createrule-ac.html b/ui/pages/measures/createrule-ac.html
new file mode 100644
index 0000000..1e278b6
--- /dev/null
+++ b/ui/pages/measures/createrule-ac.html
@@ -0,0 +1,436 @@
+<!--
+
+  Licensed 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="container-fluid">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
+  </div><!--//row-->
+  <div class="row">
+    <form name="Form" id="form" novalidate>
+      <div id="wizard" class="swMain" >
+        <ul>
+          <li ng-click="form.goTo(Form, 1)">
+            <a href="" ng-class="{'selected' : currentStep >= 1, 'done' : currentStep > 1}" class="selected" style="">
+              <div class="stepNumber">
+                1
+              </div>
+              <span class="stepDesc text-small"> Choose Source </span>
+            </a>
+          </li>
+          <li ng-click="form.goTo(Form, 2)">
+            <a href="" ng-class="{'selected' : currentStep >= 2, 'done' : currentStep > 2}" class="" style="">
+              <div class="stepNumber">
+                2
+              </div>
+              <span class="stepDesc text-small"> Choose Target </span>
+            </a>
+          </li>
+          <li ng-click="form.goTo(Form, 3)">
+            <a href="" ng-class="{'selected' : currentStep >= 3, 'done' : currentStep > 3}" class="" style="">
+              <div class="stepNumber">
+                3
+              </div>
+              <span class="stepDesc text-small"> Mapping Source and Target </span>
+            </a>
+          </li>
+          <li ng-click="form.goTo(Form, 4)">
+            <a href="" ng-class="{'selected' : currentStep >= 4, 'done' : currentStep > 4}">
+              <div class="stepNumber">
+                4
+              </div>
+              <span class="stepDesc text-small"> Configuration </span>
+            </a>
+          </li>
+        </ul>
+      </div>
+
+        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
+          <label class="stepDesc">This step let you choose the single source of truth for data quality comparision with target, Apollo datasets are enabled, other platofrms are coming soon. Currently you can only select the attributes from one schema</label>
+          <div class="container-fluid">
+            <!-- select db tree -->
+            <div class="col-md-4 col-lg-4 col-sm-4">
+              <fieldset>
+                <legend>Please select schema</legend>
+                <div class="add-dataset" style="color:#b2c831">
+                  <a class="bark-link" href="#/createdataasset">Cannot find your DataAsset? Click here to add</a>
+                </div>
+                <div angular-treeview="true"
+                     tree-model="dbList"
+                     node-id="id"
+                     node-label="name"
+                     node-children="children"
+                     l1-icon="fa fa-database"
+                     l2-icon="fa fa-table"
+                     class="y-scrollable">
+                </div>
+
+              </fieldset>
+            </div>
+
+            <!-- schema definition list -->
+            <div class="col-md-8 col-lg-8 col-sm-8">
+              <fieldset>
+                <legend>
+                  Select attributes
+                </legend>
+                <div class="y-scrollable">
+                  <div>
+                    <label>View schema:</label> <i ng-show="currentNode.parent" style="color:#fff;font-weight: bold;">{{currentNode.parent.name}}.{{currentNode.name}}</i>
+                  </div>
+                  <div>
+                    <table st-table="schemaCollection" class="table table-striped">
+                      <thead>
+                      <tr style="background-color:#7D95CC">
+                        <th><input type="checkbox" ng-click="toggleAll()" ng-model="selectedAll"/></th>
+                        <th>Column Name</th>
+                        <th>Type</th>
+                        <th>Comment</th>
+                      </tr>
+                      </thead>
+                      <tbody>
+                      <tr ng-if="!schemaCollection || schemaCollection.length == 0">
+                        <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
+                      </tr>
+                      <tr ng-repeat="row in schemaCollection">
+                        <td><input type="checkbox"
+                                   value="{{currentNode.name + '.' + row.name}}"
+                                   ng-checked="selection.indexOf(currentNode.name + '.' + row.name) > -1"
+                                   ng-click="toggleSelection($event)"
+                                   ng-model="row.selected"
+                        />
+                        </td>
+                        <td>{{row.name}}</td>
+                        <td>{{row.type}}</td>
+                        <td>{{row.comment}}</td>
+                        <!--<td class="highlight">{{row.sample}}</td>-->
+                      </tr>
+                      </tbody>
+                    </table>
+                  </div>
+                </div>
+              </fieldset>
+            </div>
+
+            <div class="form-group btn-container">
+              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
+                Next <i class="fa fa-arrow-circle-right"></i>
+              </button>
+            </div>
+
+          </div>
+
+        </div>
+
+
+
+        <div id="step-2" ng-show="currentStep == 2" class="formStep" >
+          <label class="stepDesc">This step let you choose the target for data quality comparision with source, Apollo datasets are enabled, other platforms are coming soon</label>
+          <div class="container-fluid">
+            <!-- select db tree -->
+            <div class="col-md-4 col-lg-4 col-sm-4">
+              <fieldset>
+                <legend>Please select schema</legend>
+                <div angular-treeview="true"
+                     tree-model="dbListTarget"
+                     node-id="id"
+                     node-label="name"
+                     node-children="children"
+                     label-select="selectNodeLabelTarget"
+                     l1-icon="fa fa-database"
+                     l2-icon="fa fa-table"
+                     class="y-scrollable">
+                </div>
+
+              </fieldset>
+            </div>
+
+            <!-- schema definition list -->
+            <div class="col-md-8 col-lg-8 col-sm-8">
+              <fieldset>
+                <legend>
+                  Select attributes
+                </legend>
+                <div class="y-scrollable">
+                  <div>
+                    <label>View schema:</label> <i ng-show="currentNodeTarget.parent" style="color:#fff;font-weight: bold;">{{currentNodeTarget.parent.name}}.{{currentNodeTarget.name}}</i>
+                  </div>
+                  <div>
+                    <table st-table="schemaCollection" class="table table-striped">
+                      <thead>
+                      <tr style="background-color:#7D95CC">
+                        <th><input type="checkbox" ng-click="toggleAllTarget()" ng-model="selectedAllTarget"/></th>
+                        <th>Column Name</th>
+                        <th>Type</th>
+                        <th>Comment</th>
+
+                      </tr>
+                      </thead>
+                      <tbody>
+                      <tr ng-if="!schemaCollectionTarget || schemaCollectionTarget.length == 0">
+                        <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
+                      </tr>
+                      <tr ng-repeat="row in schemaCollectionTarget">
+                        <td><input type="checkbox"
+                                   value="{{currentNodeTarget.name + '.' + row.name}}"
+                                   ng-checked="selectionTarget.indexOf(currentNodeTarget.name + '.' + row.name) > -1"
+                                   ng-click="toggleSelectionTarget($event)"
+                                   ng-model="row.selected"
+                        />
+                        </td>
+                        <td>{{row.name}}</td>
+                        <td>{{row.type}}</td>
+                        <td>{{row.comment}}</td>
+                      </tr>
+                      </tbody>
+                    </table>
+                  </div>
+                </div>
+              </fieldset>
+            </div>
+
+            <div class="form-group btn-container" >
+              <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                <i class="fa fa-arrow-circle-left"></i> Back
+              </button>
+              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
+                Next <i class="fa fa-arrow-circle-right"></i>
+              </button>
+            </div>
+          </div>
+        </div>
+
+        <div id="step-3" ng-show="currentStep == 3" class="formStep" >
+          <label class="stepDesc">This step let you map the target data fields to source fields, you can choose the related fields from dropdown list of source</label>
+          <div class="container-fluid">
+
+            <!-- schema definition list -->
+            <div class="col-md-12 col-lg-12 col-sm-12">
+              <fieldset>
+                <legend>
+                  Map the fields
+                </legend>
+
+                <div class="y-scrollable">
+
+                  <div class="container col-md-12 col-lg-12 col-sm-12">
+                    <div style="color:#b2c831">
+                      <i class="fa fa-info-circle"></i> Please make sure to select a primary key in "PK?" column
+                    </div>
+                    <table class="table table-striped">
+                      <thead style="">
+                      <tr style="background-color:#7D95CC;font-size:20px">
+                        <th style="width:40%;">Target Fields</th>
+                        <th style="width:10%;text-align:center">Map To</th>
+                        <th style="width:40%;text-align:center">Source Fields</th>
+                      </tr>
+                      </thead>
+                      <tbody>
+                      <tr ng-repeat="item in selectionTarget" >
+                        <td>{{currentNodeTarget.parent[0].dbName}}.{{item}}</td>
+                        <td style="text-align:center;">
+                          <select ng-model="matches[$index]" class="form-control" ng-init="matches[$index]='=='" style="background:#00FFFF;font-weight:bold" id="mapRule">
+                            <option ng-repeat="func in matchFunctions" value="{{func}}">{{func}}</option>
+                          </select>
+                        </td>
+                        <td>
+                          <select ng-model="mappings[$index]" class="form-control">
+                            <option value="">---Please select---</option>
+                            <option ng-repeat="itemSrc in selection" value="{{itemSrc}}">{{currentNode.parent[0].dbName}}.{{itemSrc}}</option>
+
+                          </select>
+
+                        </td>
+
+                      </tr>
+
+                      </tbody>
+                    </table>
+                    <p>
+                      <label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
+                    </p>
+
+                    <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex;align-items: center">
+
+                      <div class="" style="text-align:right;display:block;float:left;width:20%;">
+                        Accuracy Rate(%) =
+                      </div>
+                      <div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
+                        <div class="formula-text-up" style="border-bottom:1px solid;">
+                          Total Count of Matched records between <span class="badge">{{selectionTarget.length}}</span> <span style="color:green;">{{currentNodeTarget.name}}</span>  and <span class="badge">{{mappings.length}}</span> <span style="color:green;">{{currentNode.name}}</span>  fields
+                        </div>
+                        <div class="">
+                          Total Count of records in <span style="color:green;font-weight:bold;">{{currentNode.parent[0].dbName}}.{{currentNode.name}}</span>
+                        </div>
+                      </div>
+                      <div class="" style="text-align:left;display:block;float:left;width:10%;">
+                        x 100%
+                      </div>
+
+                    </div>
+
+                  </div>
+
+                </div>
+              </fieldset>
+            </div>
+
+            <div class="form-group btn-container" >
+              <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                <i class="fa fa-arrow-circle-left"></i> Back
+              </button>
+              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
+                Next <i class="fa fa-arrow-circle-right"></i>
+              </button>
+            </div>
+          </div>
+        </div>
+
+        <div id="step-4" ng-show="currentStep == 4" class="formStep" >
+          <label class="stepDesc">Please setup the model required information</label>
+          <div class="container-fluid">
+
+            <!-- schema definition list -->
+            <div class="col-md-12 col-lg-12 col-sm-12">
+              <fieldset>
+                <legend>
+                  Required Information
+                </legend>
+                <div class="y-scrollable">
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Measure Name<span class="symbol required"></span>:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <input type="text" class="form-control" ng-model="basic.name" name="ruleName" placeholder="Please input the measure name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
+                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
+                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Measure Description:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <input type="text" class="form-control" ng-model="basic.desc" placeholder="Please input detail description of your model">
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Measure Type:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <select id="typeSelector" class="form-control" ng-model="basic.type" ng-init="basic.type='0'" disabled required>
+                          <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
+                        </select>
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Organization:
+                      </label>
+
+                      <!--<div class="col-md-10 col-lg-10 col-sm-10 ">-->
+                      <!--<select id="systemSelector" class="form-control" ng-model="form.basic.system">-->
+                      <!--<option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>-->
+                      <!--</select>-->
+
+
+                      <!--</div>-->
+                      <div class="col-md-10 col-lg-10 col-sm-10 ">
+                        <input type="text" id="systemSelector" class="form-control" ng-model="basic.system"  required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
+
+                      </div>
+                    </div>
+                  </div>
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        DataAsset:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10">
+                        <input type="text" class="form-control" ng-model="dataAsset" disabled>
+                      </div>
+                    </div>
+                  </div>
+
+                  <div class="col-md-12 col-lg-12 col-sm-12">
+                    <div class="form-group">
+                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                        Owner:
+                      </label>
+
+                      <div class="col-md-10 col-lg-10 col-sm-10">
+                        <input type="text"  class="form-control" ng-model="basic.owner" ng-init="basic.owner=ntAccount" disabled>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+
+                <!-- <div style="color:#fff">
+                  <label style="color:#b2c831">Tips: </label>After submitted, please go to "Rule Repository" to check the rule status
+                </div> -->
+
+                <div style="color:#b2c831">
+                  <p>
+                    <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/measures">Models</a>" to check the model status
+                  </p>
+                </div>
+
+              </fieldset>
+            </div>
+
+            <div class="form-group btn-container" >
+              <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                <i class="fa fa-arrow-circle-left"></i> Back
+              </button>
+              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
+                <!-- <button class="btn btn-primary btn-o next-step btn-wide pull-right" data-toggle="modal" data-target="#confirm"> -->
+                Submit
+              </button>
+            </div>
+          </div>
+        </div>
+
+        <div class="modal fade" id="confirm" role="dialog">
+          <div class="modal-dialog modal-xg modal-lg">
+            <div class="modal-content">
+              <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+                <h4 class="modal-title">Save the model with the below information?</h4>
+              </div>
+              <div class="modal-body">
+                <ng-include src="'/pages/measures/confirmation-ac.html'"/>
+              </div>
+              <div class="modal-footer">
+                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+                <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
+              </div>
+            </div>
+          </div>
+        </div>
+    </form>
+  </div><!--//row-->
+</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/measures/createrule-an.html
----------------------------------------------------------------------
diff --git a/ui/pages/measures/createrule-an.html b/ui/pages/measures/createrule-an.html
new file mode 100644
index 0000000..dec4fda
--- /dev/null
+++ b/ui/pages/measures/createrule-an.html
@@ -0,0 +1,407 @@
+<!--
+
+  Licensed 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="container-fluid">
+  <div class="row">
+    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
+  </div><!--//row-->
+  <div class="row">
+    <form name="Form" id="form" novalidate>
+      <div id="wizard" class="swMain" >
+        <ul>
+						<li ng-click="form.goTo(Form, 1)">
+							<a href="" ng-class="{'selected' : currentStep >= 1, 'done' : currentStep > 1}" class="selected" style="">
+								<div class="stepNumber">
+									1
+								</div>
+								<span class="stepDesc text-small"> Choose Target </span>
+							</a>
+						</li>
+						<li ng-click="form.goTo(Form, 2)">
+							<a href="" ng-class="{'selected' : currentStep >= 2, 'done' : currentStep > 2}" class="" style="">
+								<div class="stepNumber">
+									2
+								</div>
+								<span class="stepDesc text-small"> Select Models </span>
+							</a>
+						</li>
+						<li ng-click="form.goTo(Form, 3)">
+							<a href="" ng-class="{'selected' : currentStep >= 3, 'done' : currentStep > 3}" class="" style="">
+								<div class="stepNumber">
+									3
+								</div>
+								<span class="stepDesc text-small"> Configuration </span>
+							</a>
+						</li>
+
+					</ul>
+
+        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
+          <label class="stepDesc">This step let you choose the target for data quality model, Apollo datasets are enabled, other platofrms are coming soon. </label>
+
+					<div class="container-fluid">
+            <!-- select db tree -->
+						<div class="col-md-4 col-lg-4 col-sm-4">
+							<fieldset>
+							  <legend>Please select schema</legend>
+                <div class="add-dataset" style="color:#b2c831">
+                    <a class="bark-link" href="#/createdataasset">Cannot find your DataAsset? Click here to add</a>
+                </div>
+
+                <div angular-treeview="true"
+                      tree-model="dbList"
+                      node-id="id"
+                      node-label="name"
+                      node-children="children"
+                      l1-icon="fa fa-database"
+                      l2-icon="fa fa-table"
+                      l3-icon="fa fa-file-text-o"
+                      class="y-scrollable">
+                </div>
+
+              </fieldset>
+						</div>
+
+            <!-- schema definition list -->
+						<div class="col-md-8 col-lg-8 col-sm-8">
+							<fieldset>
+								<legend>
+									<!-- Select one attribute -->
+                  Schema definition
+								</legend>
+
+								<div class="y-scrollable">
+                  <div>
+                   <label>View schema:</label> <i ng-show="currentNode.parent" style="color:#fff;font-weight: bold;">{{currentNode.parent.name}}.{{currentNode.name}}</i>
+                  </div>
+                  <!-- <div>
+                   <label>Selected Column:</label> <i style="color:#fff;font-weight: bold;">{{form.selection}}</i>
+                  </div> -->
+
+                 <div>
+                   <table st-table="schemaCollection" class="table table-striped">
+                   	<thead>
+                     	<tr style="background-color:#7D95CC">
+                        <!-- <th></th> -->
+                     		<th>Column Name</th>
+                     		<th>Description</th>
+                     		<th>Data Type</th>
+                     		<th>Sample Data</th>
+
+                     	</tr>
+                   	</thead>
+                   	<tbody>
+                       <tr ng-if="!schemaCollection || schemaCollection.length == 0">
+                         <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
+                       </tr>
+                     	<tr ng-repeat="row in schemaCollection">
+                        <!-- <td><input type="radio"
+                              name="selAttr"
+                              value="{{row.name}}"
+                              ng-model="form.selection"
+                            />
+                        </td> -->
+                        <td>{{row.name}}</td>
+                     		<td>{{row.desc}}</td>
+                        <td>{{row.type}}</td>
+                        <td class="highlight">{{row.sample}}</td>
+                     	</tr>
+                   	</tbody>
+                   </table>
+                 </div>
+
+                 <div style="color:#b2c831">
+                   <p ng-show="currentNode.parent">
+                     <i class="fa fa-info-circle"></i> Total Count of this schema will be applied to the machine learning algorithm
+                   </p>
+                 </div>
+                </div>
+              </fieldset>
+            </div>
+
+            <div class="form-group btn-container">
+							<button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
+								Next <i class="fa fa-arrow-circle-right"></i>
+							</button>
+						</div>
+
+          </div>
+
+      </div>
+
+
+
+
+      <div id="step-2" ng-show="currentStep == 2" class="formStep" >
+        <label class="stepDesc">Please choose one of the statistical techniques provided below for automatically detecting anomalies:</label>
+        <div class="container-fluid">
+
+
+          <div class="col-md-12 col-lg-12 col-sm-12">
+            <fieldset>
+              <!-- <legend>
+                Map the fields
+              </legend> -->
+
+              <div class="y-scrollable">
+
+                <div class="container col-md-12 col-lg-12 col-sm-12">
+                  <div class="row">
+
+                    <div class="col-md-6 col-lg-6 col-sm-6">
+
+                      <h5>
+                        <input name="anType" type="radio" ng-model="form.anType" value="1" ng-init="form.anType=1" style="width:1em;height:1em;"/>
+                        <span>History Trend Detection</span>
+                      </h5>
+
+                        <label style="color:#fff;">This is a method of evaluating two or more measured events to comparison the results at one time period with those from another time period (or series of time periods), on an yearly, monthly, weekly, daily or hourly basis. Currently weekly comparision is supported.</label>
+
+                    </div>
+                    <div class="col-md-6 col-lg-6 col-sm-6">
+                      <div class="container-fluid">
+                        <!-- <p>Here's an example for Year over Year difference calculation</p> -->
+                        <img src="/img/yoy.png" style="max-height: 200px;width:100%"/>
+                      </div>
+                    </div>
+
+                  </div>
+                  <br/>
+                  <div class="row">
+
+                    <div class="col-md-6 col-lg-6 col-sm-6">
+                      <h5>
+                        <input name="anType" type="radio" ng-model="form.anType" value="3" style="width:1em;height:1em;"/>
+                        <span>Deviation Detection(Based on MAD)</span>
+                      </h5>
+
+                        <label style="color:#fff;">Deviation detection algorithm usually look at a given time window of a metric time series and establish an upper and lower band for accepted deviations and assume any data point out of those band as a deviation.
+                          <a href="https://en.wikipedia.org/wiki/Median_absolute_deviation" target="_blank">MAD(Median absolute deviation)</a> is a robust measure of the variability of a univariate sample of quantitative data
+                        </label>
+
+                    </div>
+                    <div class="col-md-6 col-lg-6 col-sm-6">
+                      <div class="container-fluid">
+                        <!-- <p>Here's an example for Year over Year difference calculation</p> -->
+                        <img src="/img/mad.png" style="max-height: 200px;width:100%"/>
+                      </div>
+                    </div>
+
+                  </div>
+                  <br/>
+                  <div class="row">
+                    <div class="col-md-6 col-lg-6 col-sm-6">
+                      <h5>
+                        <input name="anType" type="radio" ng-model="form.anType" value="2" style="width:1em;height:1em;"/>
+                        Bollinger Bands Detection
+                      </h5>
+
+                      <label style="color:#fff">
+                        <a href="https://en.wikipedia.org/wiki/Bollinger_Bands" target="_blank">Bollinger Bands</a> are volatility bands placed above and below a moving average. Volatility is based on the standard deviation, which changes as volatility increases and decreases. The bands automatically widen when volatility increases and narrow when volatility decreases.
+                      </label>
+                    </div>
+                    <div class="col-md-6 col-lg-6 col-sm-6">
+                      <div class="container-fluid">
+                        <!-- <p>Here's an example for Bollinger Bands</p> -->
+                        <img src="/img/bollinger.png" style="max-height: 200px;width:100%"/>
+                      </div>
+                    </div>
+
+                  </div>
+
+                </div>
+
+              </div>
+            </fieldset>
+          </div>
+
+          <div class="form-group btn-container" >
+            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                <i class="fa fa-arrow-circle-left"></i> Back
+            </button>
+            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
+                Next <i class="fa fa-arrow-circle-right"></i>
+            </button>
+          </div>
+        </div>
+      </div>
+
+      <div id="step-3" ng-show="currentStep == 3" class="formStep" >
+        <label class="stepDesc">Please setup the model required information</label>
+        <div class="container-fluid">
+
+          <!-- schema definition list -->
+          <div class="col-md-12 col-lg-12 col-sm-12">
+            <fieldset>
+              <legend>
+                Required Information
+              </legend>
+              <div class="y-scrollable">
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Model Name<span class="symbol required"></span>:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <input type="text" class="form-control" ng-model="form.basic.name" name="ruleName" placeholder="Please input the measure name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
+                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
+                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Model Definition:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <input type="text" class="form-control" ng-model="form.basic.desc" placeholder="Please input detail description of your model">
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Model Type:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <select id="typeSelector" class="form-control" ng-model="form.basic.type" ng-init="form.basic.type='2'" disabled required>
+                        <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
+                      </select>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Organization:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <select id="systemSelector" class="form-control" ng-model="form.basic.system" required disabled>
+                        <option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>
+                      </select>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      DataAsset:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                      <input type="text" class="form-control" ng-model="currentNode.name" disabled>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group" ng-class="{'has-error':Form.threshold.$invalid}">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Threshold:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                        <input type="number" class="form-control" ng-model="form.basic.threshold" name="threshold">
+                        <span class="error text-small block" ng-if="Form.threshold.$error.number">Only number is allowed</span>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Schedule Type:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10 ">
+                      <select class="form-control" ng-init="form.basic.scheduleType='1'" ng-model="form.basic.scheduleType" ng-init="form.basic.scheduleType='0'">
+                        <option ng-repeat="row in scheduleTypes" value="{{$index}}" >{{row}}</option>
+                      </select>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group" ng-class="{'has-error':Form.email.$dirty&&Form.email.$invalid, 'has-success':Form.email.$valid}">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Notification email<span class="symbol required"></span>:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                      <input type="email"  class="form-control" ng-model="form.basic.email" name="email" ng-required="currentStep==3" placeholder="Please input valid email address" ng-pattern="'^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'">
+                      <span class="error text-small block" ng-if="Form.email.$dirty&&Form.email.$invalid">Please, enter a valid email address.</span>
+                    </div>
+                  </div>
+                </div>
+                <div class="col-md-12 col-lg-12 col-sm-12">
+                  <div class="form-group">
+                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
+                      Owner:
+                    </label>
+
+                    <div class="col-md-10 col-lg-10 col-sm-10">
+                      <input type="text"  class="form-control" ng-model="form.basic.owner" ng-init="form.basic.owner=ntAccount" disabled>
+                    </div>
+                  </div>
+                </div>
+              </div>
+
+              <!-- <div style="color:#fff">
+                <label style="color:#b2c831">Tips: </label>After submitted, please go to "Rule Repository" to check the rule status
+              </div> -->
+
+              <div style="color:#b2c831">
+                <p>
+                  <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/measures">Models</a>" to check the model status
+                </p>
+              </div>
+
+            </fieldset>
+          </div>
+
+          <div class="form-group btn-container" >
+            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
+                <i class="fa fa-arrow-circle-left"></i> Back
+            </button>
+            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
+            <!-- <button class="btn btn-primary btn-o next-step btn-wide pull-right" data-toggle="modal" data-target="#confirm"> -->
+                Submit
+            </button>
+          </div>
+        </div>
+      </div>
+
+      <div class="modal fade" id="confirm-an" role="dialog">
+        <div class="modal-dialog modal-xg modal-lg">
+          <div class="modal-content">
+            <div class="modal-header">
+              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+              <h4 class="modal-title">Save the model with the below information?</h4>
+            </div>
+            <div class="modal-body">
+              <ng-include src="'/pages/measures/confirmation-an.html'"/>
+            </div>
+            <div class="modal-footer">
+              <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+              <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
+            </div>
+          </div>
+        </div>
+      </div>
+    </form>
+  </div><!--//row-->
+</div>


[6/7] incubator-griffin git commit: Schedule2

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createdataasset-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createdataasset-ctrl.js b/ui/js/controllers/createdataasset-ctrl.js
index d951851..a92a844 100644
--- a/ui/js/controllers/createdataasset-ctrl.js
+++ b/ui/js/controllers/createdataasset-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('CreateDataAssetCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function ($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createjob-ac-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createjob-ac-ctrl.js b/ui/js/controllers/createjob-ac-ctrl.js
new file mode 100644
index 0000000..a5e9620
--- /dev/null
+++ b/ui/js/controllers/createjob-ac-ctrl.js
@@ -0,0 +1,160 @@
+/*-
+ * Licensed 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.
+
+ */
+
+
+define(['./module'], function(controllers) {
+    'use strict';
+    controllers.controller('CreateJobACCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {
+        console.log('Create job controller');
+        $scope.currentStep = 1;
+
+        $scope.Measures = [];
+        $scope.$on('$viewContentLoaded', function() {
+            // console.log($('#footerwrap').css('height'));
+            // console.log($('.formStep').offset());
+            $scope.$emit('initReq');
+            resizeWindow();
+
+            //  $('#confirm').on('hidden.bs.modal', function (e) {
+            //    console.log('hidden');
+            //   //  $('#confirm').off('hidden.bs.modal');
+            //    $location.path('/rules');
+            //   });
+
+            // $('.formStep').css({height: 800});
+        });
+        var getMeasureUrl = $config.uri.getMeasuresByOwner+$scope.ntAccount;
+        $http.get(getMeasureUrl).success(function(res){
+            angular.forEach(res,function(measure){
+                $scope.Measures.push(measure);
+            })
+            console.log($scope.Measures);
+        })
+
+
+
+        $scope.$on('resizeHandler', function(e) {
+            if ($route.current.$$route.controller == "CreateRuleACCtrl") {
+                $scope.$emit('initReq');
+                resizeWindow();
+            }
+        });
+
+
+        function resizeWindow() {
+                    var stepSelection = '.formStep[id=step-' + $scope.currentStep + ']';
+                    $(stepSelection).css({
+                        height: window.innerHeight - $(stepSelection).offset().top - $('#footerwrap').outerHeight()
+                    });
+                    $('fieldset').height($(stepSelection).height() - $(stepSelection + '>.stepDesc').height() - $('.btn-container').height() - 80);
+                    $('.y-scrollable').css({
+                        'max-height': $('fieldset').height()- $('.add-dataset').outerHeight()
+                    });
+
+        }
+
+        // Initial Value
+        $scope.form = {
+            submit: function(form) {
+                if (!form.$valid) {
+                    var field = null
+                      , firstError = null ;
+                    for (field in form) {
+                        if (field[0] != '$') {
+                            if (firstError === null  && !form[field].$valid) {
+                                firstError = form[field].$name;
+                            }
+
+                            if (form[field].$invalid) {
+                                form[field].$dirty = true;
+                            }
+                        }
+                    }
+                    angular.element('.ng-invalid[name=' + firstError + ']').focus();
+                    errorMessage($scope.currentStep);
+                } else {
+                    //  $location.path('/rules');
+                    form.$setPristine();
+                    var rule = '';
+                    this.data={
+                      "sourcePat":$scope.sourcePat,
+                      "targetPat":$scope.targetPat,
+                      "jobStartTime":$scope.jobStartTime,
+                      "periodTime":$scope.periodTime,
+                      "groupName":'BA',
+                    };
+                    $('#confirm-job').modal('show');
+                }
+            },
+
+            save: function() {
+
+
+                //::TODO: Need to save the data to backend with POST/PUT method
+                console.log(JSON.stringify($scope.form.data));
+
+//                var newModel = $config.uri.newAccuracyModel;
+//                var BACKEND_SERVER = '';
+                var date = new Date();
+                var month = date.getMonth()+1;
+                var timestamp = Date.parse(date);
+                timestamp = timestamp / 1000;
+                var jobName = $scope.Measures[$scope.measure] + '-BA-' + $scope.ntAccount + '-' + date.getFullYear() + '-'+ month + '-'+date.getDate();
+                var newJob = $config.uri.addJobs + this.data.groupName + '/' + jobName + '/' + $scope.Measures[$scope.measure];
+                console.log(newJob);
+                console.log(this.data);
+                $http.post(newJob, this.data).success(function(data) {
+                	// if(data.status=='0')
+                	// {
+                	  console.log(data);
+                      if(data=='fail'){
+                          toaster.pop('error', 'Please modify the name of job, because there is already a same model in database ', data.message);
+                          return;
+                      }
+
+	                  $('#confirm-job').on('hidden.bs.modal', function(e) {
+	                      $('#confirm-job').off('hidden.bs.modal');
+	                      $location.path('/jobs').replace();
+	                      $scope.$apply();
+	                  });
+	                	$('#confirm-job').modal('hide');
+	                // }
+                	// else
+                	// {
+                	// 	errorMessage(0, data.result);
+                	// }
+
+                }).error(function(data){
+                  // errorMessage(0, 'Save model failed, please try again!');
+                  toaster.pop('error', 'Save model failed, please try again!', data.message);
+                });
+
+            },
+
+        }
+
+        var errorMessage = function(i, msg) {
+            var errorMsgs = ['Please select at least one attribute!', 'Please select at least one attribute in target, make sure target is different from source!', 'Please make sure to map each target to a unique source.', 'please complete the form in this step before proceeding'];
+            if (!msg) {
+                toaster.pop('error', 'Error', errorMsgs[i - 1], 0);
+            } else {
+                toaster.pop('error', 'Error', msg, 0);
+            }
+        };
+    }
+    ]);
+
+
+});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createjob0.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createjob0.js b/ui/js/controllers/createjob0.js
new file mode 100644
index 0000000..7b3db39
--- /dev/null
+++ b/ui/js/controllers/createjob0.js
@@ -0,0 +1,43 @@
+/*-
+ * Licensed 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.
+
+ */
+
+
+define(['./module'], function (controllers) {
+    'use strict';
+    controllers.controller('CreateJob0Ctrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route',  function ($scope, $http, $config, $location, toaster, $timeout, $route) {
+      console.log('Create job 0 controller');
+      $scope.publishURL = document.location.origin;
+
+      $scope.click = function(type){
+        $location.path('/createjob-' + type);
+      }
+      $scope.$on('$viewContentLoaded', function(){
+        $scope.$emit('initReq');
+        resizeWindow();
+      });
+
+      $scope.$on('resizeHandler', function(e) {
+        if($route.current.$$route.controller == 'CreateJob0Ctrl'){
+            console.log('createjob0 resize');
+            resizeWindow();
+        }
+      });
+
+      function resizeWindow(){
+        $('#panel-2 >.panel-body').css({height: $('#panel-1 >.panel-body').outerHeight() + $('#panel-1 >.panel-footer').outerHeight() - $('#panel-2 >.panel-footer').outerHeight()});
+        $('#panel-4 >.panel-body').css({height: $('#panel-3 >.panel-body').outerHeight() + $('#panel-3 >.panel-footer').outerHeight() - $('#panel-4 >.panel-footer').outerHeight()});
+      }
+    }]);
+});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createrule-ac-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createrule-ac-ctrl.js b/ui/js/controllers/createrule-ac-ctrl.js
index 4e00749..79b918f 100644
--- a/ui/js/controllers/createrule-ac-ctrl.js
+++ b/ui/js/controllers/createrule-ac-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('CreateRuleACCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {
@@ -87,7 +88,7 @@ define(['./module'], function(controllers) {
 
             // $scope.schemaCollection = null;
             if (newValue) {
-                $http.get(schemaDefinitionUrl + '/table/' + newValue.name).success(function(data) {
+                $http.get(schemaDefinitionUrl+ '/' + newValue.parent[0].dbName+'/table/'+newValue.name).success(function(data) {
                 console.log(data);
                 $scope.schemaCollection = data.sd.cols;
                 console.log($scope.schemaCollection);

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createrule-an-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createrule-an-ctrl.js b/ui/js/controllers/createrule-an-ctrl.js
index 891c23e..59282b6 100644
--- a/ui/js/controllers/createrule-an-ctrl.js
+++ b/ui/js/controllers/createrule-an-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('CreateRuleANCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createrule-pu-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createrule-pu-ctrl.js b/ui/js/controllers/createrule-pu-ctrl.js
index 1786fb3..5d217d6 100644
--- a/ui/js/controllers/createrule-pu-ctrl.js
+++ b/ui/js/controllers/createrule-pu-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('CreateRulePUCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createrule-va-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createrule-va-ctrl.js b/ui/js/controllers/createrule-va-ctrl.js
index 882f807..16a30e3 100644
--- a/ui/js/controllers/createrule-va-ctrl.js
+++ b/ui/js/controllers/createrule-va-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('CreateRuleVACtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/createrule0-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/createrule0-ctrl.js b/ui/js/controllers/createrule0-ctrl.js
index 241445a..8a954b3 100644
--- a/ui/js/controllers/createrule0-ctrl.js
+++ b/ui/js/controllers/createrule0-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('CreateRule0Ctrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route',  function ($scope, $http, $config, $location, toaster, $timeout, $route) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/dataassets-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/dataassets-ctrl.js b/ui/js/controllers/dataassets-ctrl.js
index 110da44..d33fd36 100644
--- a/ui/js/controllers/dataassets-ctrl.js
+++ b/ui/js/controllers/dataassets-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('DataAssetsCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function ($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/downloadSample-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/downloadSample-ctrl.js b/ui/js/controllers/downloadSample-ctrl.js
index aa1ad89..290693f 100644
--- a/ui/js/controllers/downloadSample-ctrl.js
+++ b/ui/js/controllers/downloadSample-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('DownloadSampleCtrl', ['$scope', '$http', '$config', '$filter', '$timeout', '$compile', '$routeParams', '$barkChart', '$rootScope', function($scope, $http, $config, $filter, $timeout, $compile, $routeParams, $barkChart, $rootScope) {
@@ -33,4 +34,4 @@ define(['./module'], function(controllers) {
 
     }
     ]);
-});
\ No newline at end of file
+});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/editdataasset-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/editdataasset-ctrl.js b/ui/js/controllers/editdataasset-ctrl.js
index 718525c..858d07f 100644
--- a/ui/js/controllers/editdataasset-ctrl.js
+++ b/ui/js/controllers/editdataasset-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('EditDataAssetCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$routeParams', '$filter', function ($scope, $http, $config, $location, toaster, $timeout, $route, $routeParams, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/footer-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/footer-ctrl.js b/ui/js/controllers/footer-ctrl.js
index 7eb9e13..2788e98 100644
--- a/ui/js/controllers/footer-ctrl.js
+++ b/ui/js/controllers/footer-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('FooterCtrl', ['$scope', '$http', '$config', '$location', '$cookies', '$interval', function ($scope, $http, $config, $location, $cookies, $interval) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/health-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/health-ctrl.js b/ui/js/controllers/health-ctrl.js
index 3c0c662..fe3c90e 100644
--- a/ui/js/controllers/health-ctrl.js
+++ b/ui/js/controllers/health-ctrl.js
@@ -1,17 +1,18 @@
-/*
-    Copyright (c) 2016 eBay Software Foundation.
-    Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('HealthCtrl', ['$scope', '$http', '$config', '$location','$timeout', '$route', '$barkChart', '$rootScope', function ($scope, $http, $config, $location, $timeout, $route, $barkChart, $rootScope) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/index.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/index.js b/ui/js/controllers/index.js
index a374161..84de409 100644
--- a/ui/js/controllers/index.js
+++ b/ui/js/controllers/index.js
@@ -1,23 +1,26 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 
 define([
     './nav-ctrl',
     './sidebar-ctrl',
     './health-ctrl',
     './rule-ctrl',
+    './job-ctrl',
+    './createjob-ac-ctrl',
     './createrule0-ctrl',
     './createrule-ac-ctrl',
     './createrule-va-ctrl',

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/job-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/job-ctrl.js b/ui/js/controllers/job-ctrl.js
new file mode 100644
index 0000000..d739fb8
--- /dev/null
+++ b/ui/js/controllers/job-ctrl.js
@@ -0,0 +1,127 @@
+/*-
+ * Licensed 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.
+
+ */
+
+
+define(['./module'], function (controllers) {
+    'use strict';
+    controllers.controller('JobCtrl', ['$scope', '$http', '$config', '$location', '$timeout', '$route', 'toaster', '$filter', function ($scope, $http, $config, $location, $timeout, $route, toaster, $filter) {
+      console.log('job controller');
+      console.log($scope.ntAccount);
+      var allJobs = $config.uri.allJobs;
+      var ts = null;
+      var start = 0;
+      var number = 10;
+      var originalRowCollection = undefined;
+
+      $scope.paging = function(tableState){
+        console.log(tableState);
+        ts = tableState;
+
+        // tableState.pagination.numberOfPages = $scope.rowCollection.length/10 + 1;
+        start = tableState.pagination.start || 0;
+        number = tableState.pagination.number || 10;
+
+        if(start == 0 && !$scope.rowCollection){
+         $http.get(allJobs).success(function(data) {
+           originalRowCollection = angular.copy(data);
+           $scope.rowCollection = angular.copy(data);
+
+           $scope.displayed = $scope.rowCollection.slice(start, start+number);
+           tableState.pagination.numberOfPages = Math.ceil($scope.rowCollection.length/number);
+         });
+        }else{
+         $scope.displayed = $scope.rowCollection.slice(start, start+number);
+        }
+      };
+
+
+
+
+      $scope.remove = function remove(row) {
+//        var getJobUrl = $config.uri.getJob + '/' +row.name;
+//        $http.get(getJobUrl).success(function(data){
+//  			  $scope.deletedRow = data;
+//
+//  		  });
+        $scope.deletedRow = row;
+        $scope.deletedBriefRow = row;
+        $('#deleteJobConfirmation').modal('show');
+      }
+
+      $scope.confirmDelete = function(){
+        var row =   $scope.deletedBriefRow;
+        var deleteModelUrl = $config.uri.deleteJob + row.groupName+'/jobs/'+row.jobName;
+        $http.delete(deleteModelUrl).success(function(){
+
+          var index = $scope.rowCollection.indexOf(row);
+          $scope.rowCollection.splice(index, 1);
+
+          index = $scope.displayed.indexOf(row);
+          $scope.displayed.splice(index, 1);
+
+          $('#deleteJobConfirmation').modal('hide');
+
+        }).error(function(data, status){
+          toaster.pop('error', 'Error when deleting record', data);
+        });
+      }
+
+
+
+      $scope.edit = function edit() {
+      }
+
+
+      $scope.$on('$viewContentLoaded', function() {
+        $scope.$emit('initReq');
+      });
+
+
+/*
+       function createRowCollection(){
+         var data = [];
+         for (var j = 0; j < 22; j++) {
+              data.push(createRandomItem());
+          }
+
+          return data;
+       }
+
+       function createRandomItem() {
+         var nameList = ['ViewItem', 'Search', 'BidEvent', 'user_dna', 'LAST_ITEMS_VIEWED'],
+             systemList = ['Bullseye', 'PDS', 'GPS', 'IDLS', 'Hadoop'],
+             dateList = ['2016-03-10', '2016-03-12', '2016-03-15', '2016-03-19', '2016-03-20'],
+             statusList = [0, 1, 2];
+
+           var
+               name = nameList[Math.floor(Math.random() * 5)],
+               system = Math.floor(Math.random() * 7),
+               type = Math.floor(Math.random() * 4),
+               description = 'Only for demo purpose',
+               createDate = dateList[Math.floor(Math.random() * 5)],
+               status = Math.floor(Math.random() * 3);
+
+           return{
+               name: name,
+               system: system,
+               type: type,
+               description: description,
+               createDate: createDate,
+               status:status
+           };
+       }
+*/
+    }]);
+});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/main-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/main-ctrl.js b/ui/js/controllers/main-ctrl.js
index 37274af..f7ca72a 100644
--- a/ui/js/controllers/main-ctrl.js
+++ b/ui/js/controllers/main-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('MainCtrl', ['$scope', '$http', '$config', '$location', '$routeParams', '$timeout', '$compile', '$route', '$barkChart', '$rootScope', function($scope, $http, $config, $location, $routeParams, $timeout, $compile, $route, $barkChart, $rootScope) {
@@ -33,4 +34,4 @@ define(['./module'], function(controllers) {
         })
     }
     ]);
-});
\ No newline at end of file
+});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/metrics-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/metrics-ctrl.js b/ui/js/controllers/metrics-ctrl.js
index 5452f27..4637358 100644
--- a/ui/js/controllers/metrics-ctrl.js
+++ b/ui/js/controllers/metrics-ctrl.js
@@ -1,17 +1,18 @@
-/*
-  Copyright (c) 2016 eBay Software Foundation.
-  Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('MetricsCtrl', ['$scope', '$http', '$config', '$location', '$routeParams', '$timeout', '$compile', '$route', '$barkChart', '$rootScope',function($scope, $http, $config, $location, $routeParams, $timeout, $compile, $route, $barkChart, $rootScope) {
@@ -37,10 +38,7 @@ define(['./module'], function(controllers) {
                     orgNode.assetMap = value;
                });
                $scope.originalOrgs = angular.copy($scope.orgs);
-
-               var url_briefmetrics = $config.uri.dashboard;
-               $http.post(url_dashboard, {"query": {"match_all":{}},  "sort": [{"tmst": {"order": "asc"}}], "size": 1000}).success(function(data) {
-                    $scope.briefmetrics = data;
+               $http.post(url_dashboard, {"query": {"match_all":{}},  "sort": [{"tmst": {"order": "asc"}}],"size":1000}).success(function(data) {
                     angular.forEach(data.hits.hits, function(sys) {
                         var chartData = sys._source;
                         chartData.sort = function(a,b){

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/module.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/module.js b/ui/js/controllers/module.js
index 624c962..fbd571a 100644
--- a/ui/js/controllers/module.js
+++ b/ui/js/controllers/module.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define(['angular'], function (ng) {
     'use strict';
     return ng.module('app.controllers', []);

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/mydashboard-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/mydashboard-ctrl.js b/ui/js/controllers/mydashboard-ctrl.js
index 3cc215d..b258f3f 100644
--- a/ui/js/controllers/mydashboard-ctrl.js
+++ b/ui/js/controllers/mydashboard-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('MyDashboardCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', '$compile', '$barkChart', '$rootScope', function($scope, $http, $config, $location, toaster, $timeout, $route, $filter, $compile, $barkChart, $rootScope) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/nav-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/nav-ctrl.js b/ui/js/controllers/nav-ctrl.js
index 8808000..1ccac18 100644
--- a/ui/js/controllers/nav-ctrl.js
+++ b/ui/js/controllers/nav-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('NavCtrl', ['$scope', '$http', '$config', '$location', '$cookies', '$rootScope', '$timeout', function ($scope, $http, $config, $location, $cookies, $rootScope, $timeout) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/rule-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/rule-ctrl.js b/ui/js/controllers/rule-ctrl.js
index a202c2c..2f40855 100644
--- a/ui/js/controllers/rule-ctrl.js
+++ b/ui/js/controllers/rule-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('RuleCtrl', ['$scope', '$http', '$config', '$location', '$timeout', '$route', 'toaster', '$filter', function ($scope, $http, $config, $location, $timeout, $route, toaster, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/sidebar-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/sidebar-ctrl.js b/ui/js/controllers/sidebar-ctrl.js
index 7cf4945..e048ed3 100644
--- a/ui/js/controllers/sidebar-ctrl.js
+++ b/ui/js/controllers/sidebar-ctrl.js
@@ -1,17 +1,18 @@
-/*
-  Copyright (c) 2016 eBay Software Foundation.
-  Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('SideBarCtrl', ['$scope', '$http', '$config', '$filter', '$timeout', '$compile', '$routeParams', '$barkChart', '$rootScope', function($scope, $http, $config, $filter, $timeout, $compile, $routeParams, $barkChart, $rootScope) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/subscribemodel-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/subscribemodel-ctrl.js b/ui/js/controllers/subscribemodel-ctrl.js
index e13bfd1..1a3a001 100644
--- a/ui/js/controllers/subscribemodel-ctrl.js
+++ b/ui/js/controllers/subscribemodel-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('SubscribeModelCtrl', ['$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$route', '$filter', function($scope, $http, $config, $location, toaster, $timeout, $route, $filter) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/viewrule-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/viewrule-ctrl.js b/ui/js/controllers/viewrule-ctrl.js
index 0c8c7e5..42d2e01 100644
--- a/ui/js/controllers/viewrule-ctrl.js
+++ b/ui/js/controllers/viewrule-ctrl.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (controllers) {
     'use strict';
     controllers.controller('ViewRuleCtrl', ['$filter', '$scope', '$http', '$config', '$location', 'toaster', '$timeout', '$routeParams', '$barkChart', '$route',  function ($filter, $scope, $http, $config, $location, toaster, $timeout, $routeParams, $barkChart, $route) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/directives/bigchart.js
----------------------------------------------------------------------
diff --git a/ui/js/directives/bigchart.js b/ui/js/directives/bigchart.js
index c8e3fc5..4fccaf9 100644
--- a/ui/js/directives/bigchart.js
+++ b/ui/js/directives/bigchart.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define(['./module'], function (directives) {
     'use strict';
     directives.directive( 'bigChart', ['$compile', '$timeout', function( $compile, $timeout ) {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/directives/index.js
----------------------------------------------------------------------
diff --git a/ui/js/directives/index.js b/ui/js/directives/index.js
index 7bbb0e4..94e8fe6 100644
--- a/ui/js/directives/index.js
+++ b/ui/js/directives/index.js
@@ -1,15 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./treeview', './bigchart'], function () {});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/directives/module.js
----------------------------------------------------------------------
diff --git a/ui/js/directives/module.js b/ui/js/directives/module.js
index 3656955..f5ac32b 100644
--- a/ui/js/directives/module.js
+++ b/ui/js/directives/module.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
+
 define(['angular'], function (ng) {
     'use strict';
     return ng.module('app.directives', []);

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/directives/treeview.js
----------------------------------------------------------------------
diff --git a/ui/js/directives/treeview.js b/ui/js/directives/treeview.js
index fe40995..1d09770 100644
--- a/ui/js/directives/treeview.js
+++ b/ui/js/directives/treeview.js
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 /*
   The MIT License (MIT)
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/filters/index.js
----------------------------------------------------------------------
diff --git a/ui/js/filters/index.js b/ui/js/filters/index.js
index bcd414c..3789392 100644
--- a/ui/js/filters/index.js
+++ b/ui/js/filters/index.js
@@ -1,15 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define([ './strshorten', './strmap'], function () {});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/filters/module.js
----------------------------------------------------------------------
diff --git a/ui/js/filters/module.js b/ui/js/filters/module.js
index 3b35aeb..c505ecc 100644
--- a/ui/js/filters/module.js
+++ b/ui/js/filters/module.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define(['angular'], function (ng) {
     'use strict';
     return ng.module('app.filters', []).config(

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/filters/strmap.js
----------------------------------------------------------------------
diff --git a/ui/js/filters/strmap.js b/ui/js/filters/strmap.js
index daa8df7..94190a5 100644
--- a/ui/js/filters/strmap.js
+++ b/ui/js/filters/strmap.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define(['./module'], function (filters) {
     'use strict';
     var constants = {

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/filters/strshorten.js
----------------------------------------------------------------------
diff --git a/ui/js/filters/strshorten.js b/ui/js/filters/strshorten.js
index f4dadf7..4bdb4b1 100644
--- a/ui/js/filters/strshorten.js
+++ b/ui/js/filters/strshorten.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define(['./module'], function (filters) {
     'use strict';
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/main.js
----------------------------------------------------------------------
diff --git a/ui/js/main.js b/ui/js/main.js
index 8103358..a58015e 100644
--- a/ui/js/main.js
+++ b/ui/js/main.js
@@ -1,17 +1,17 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
-*/
+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.
+
+ */
 
 //Reference: https://www.startersquad.com/blog/angularjs-requirejs/
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/routes.js
----------------------------------------------------------------------
diff --git a/ui/js/routes.js b/ui/js/routes.js
index 099e3ee..943196e 100644
--- a/ui/js/routes.js
+++ b/ui/js/routes.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./app'], function(app) {
     'use strict';
 
@@ -26,46 +27,56 @@ define(['./app'], function(app) {
             controller: 'HealthCtrl'
         });
 
-        $routeProvider.when('/rules', {
-            templateUrl: '/pages/rules/rules.html',
+        $routeProvider.when('/measures', {
+            templateUrl: '/pages/measures/measures.html',
             controller: 'RuleCtrl'
         });
 
         $routeProvider.when('/createrule0', {
-            templateUrl: '/pages/rules/createrule0.html',
+            templateUrl: '/pages/measures/createrule0.html',
             controller: 'CreateRule0Ctrl'
         });
 
         $routeProvider.when('/createrule-ac', {
-            templateUrl: '/pages/rules/createrule-ac.html',
+            templateUrl: '/pages/measures/createrule-ac.html',
             controller: 'CreateRuleACCtrl'
         });
 
         $routeProvider.when('/createrule-va', {
-            templateUrl: '/pages/rules/createrule-va.html',
+            templateUrl: '/pages/measures/createrule-va.html',
             controller: 'CreateRuleVACtrl'
         });
 
         $routeProvider.when('/createrule-an', {
-            templateUrl: '/pages/rules/createrule-an.html',
+            templateUrl: '/pages/measures/createrule-an.html',
             controller: 'CreateRuleANCtrl'
         });
 
         $routeProvider.when('/createrule-pu', {
-            templateUrl: '/pages/rules/createrule-pu.html',
+            templateUrl: '/pages/measures/createrule-pu.html',
             controller: 'CreateRulePUCtrl'
         });
 
         $routeProvider.when('/viewrule/:modelname/:modeltype', {
-            templateUrl: '/pages/rules/viewrule.html',
+            templateUrl: '/pages/measures/viewrule.html',
             controller: 'ViewRuleCtrl'
         });
 
         $routeProvider.when('/viewrule/:modelname', {
-            templateUrl: '/pages/rules/viewrule.html',
+            templateUrl: '/pages/measures/viewrule.html',
             controller: 'ViewRuleCtrl'
         });
 
+        $routeProvider.when('/jobs',{
+            templateUrl:'pages/jobs/jobs.html',
+            controller:'JobCtrl'
+        });
+
+        $routeProvider.when('/createjob-ac', {
+            templateUrl: '/pages/jobs/createjob-ac.html',
+            controller: 'CreateJobACCtrl'
+        });
+
         $routeProvider.when('/metrics', {
             templateUrl: '/pages/metrics/dashboard.html',
             controller: 'MetricsCtrl'

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/services/bark-chart.js
----------------------------------------------------------------------
diff --git a/ui/js/services/bark-chart.js b/ui/js/services/bark-chart.js
index 2df8748..85cc7ae 100644
--- a/ui/js/services/bark-chart.js
+++ b/ui/js/services/bark-chart.js
@@ -1,17 +1,18 @@
-/*
-  Copyright (c) 2016 eBay Software Foundation.
-  Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-  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.
-*/
 define(['./module'], function (services) {
   services.factory('$barkChart', function(){
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/services/index.js
----------------------------------------------------------------------
diff --git a/ui/js/services/index.js b/ui/js/services/index.js
index 17a5aa7..df98854 100644
--- a/ui/js/services/index.js
+++ b/ui/js/services/index.js
@@ -1,15 +1,16 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./services', './bark-chart'], function () {});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/services/module.js
----------------------------------------------------------------------
diff --git a/ui/js/services/module.js b/ui/js/services/module.js
index f8fbecb..3e1f38a 100644
--- a/ui/js/services/module.js
+++ b/ui/js/services/module.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
 
-	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.
  */
+
 define(['angular'], function (ng) {
     'use strict';
     return ng.module('app.services', []);

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/services/services.js
----------------------------------------------------------------------
diff --git a/ui/js/services/services.js b/ui/js/services/services.js
index 39b0df7..7096301 100644
--- a/ui/js/services/services.js
+++ b/ui/js/services/services.js
@@ -1,15 +1,18 @@
-/*
-  Copyright (c) 2016 eBay Software Foundation.
-  Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 define(['./module'], function (services) {
     'use strict';
     //version
@@ -59,7 +62,8 @@ define(['./module'], function (services) {
               metricsByOrg:'',
 //              organization:'/org.json',
 //              dashboard:'/dashboard.json',
-              organization: BACKEND_SERVER + '/orgWithMetrics',
+
+              organization:BACKEND_SERVER + '/orgWithMetrics',
               dashboard:ES_SERVER+'/griffin/accuracy/_search?pretty&filter_path=hits.hits._source',
               metricsample: BACKEND_SERVER + API_ROOT_PATH + '/metrics/sample',
               metricdownload: BACKEND_SERVER + API_ROOT_PATH + '/metrics/download',
@@ -70,6 +74,12 @@ define(['./module'], function (services) {
               getModel: BACKEND_SERVER + '/measures/findByName',
               enableModel: BACKEND_SERVER + API_ROOT_PATH + '/models/enableModel',
 
+              //Jobs
+              allJobs:BACKEND_SERVER + '/jobs/',
+              addJobs:BACKEND_SERVER+'/jobs/add/',
+              getMeasuresByOwner:BACKEND_SERVER+'/measures/owner/',
+              deleteJob:BACKEND_SERVER + '/jobs/groups/',
+//              allJobs:'/jobs.json',
               newAccuracyModel: BACKEND_SERVER + API_ROOT_PATH + '/models' ,
               newValidityModel: BACKEND_SERVER + API_ROOT_PATH + '/models' ,
               newAnomalyModel: BACKEND_SERVER + API_ROOT_PATH + '/models' ,
@@ -91,4 +101,4 @@ define(['./module'], function (services) {
 
       return config;
     });
-});
\ No newline at end of file
+});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/login/login.js
----------------------------------------------------------------------
diff --git a/ui/login/login.js b/ui/login/login.js
index 11e5486..5435ca5 100644
--- a/ui/login/login.js
+++ b/ui/login/login.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
+
 
 $(document).ready(function() {
     $('input:eq(1)').keyup(function(evt){

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/dataassets/confirmation-dataasset.html
----------------------------------------------------------------------
diff --git a/ui/pages/dataassets/confirmation-dataasset.html b/ui/pages/dataassets/confirmation-dataasset.html
index 93f5145..1d019dc 100644
--- a/ui/pages/dataassets/confirmation-dataasset.html
+++ b/ui/pages/dataassets/confirmation-dataasset.html
@@ -1,17 +1,19 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
   <div class="row">
     <h5 class="over-title margin-bottom-15">Basic information</h5>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/dataassets/confirmation-delete-dataasset.html
----------------------------------------------------------------------
diff --git a/ui/pages/dataassets/confirmation-delete-dataasset.html b/ui/pages/dataassets/confirmation-delete-dataasset.html
index b397314..fd52ba8 100644
--- a/ui/pages/dataassets/confirmation-delete-dataasset.html
+++ b/ui/pages/dataassets/confirmation-delete-dataasset.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
   <div class="row">
     <h5 class="over-title margin-bottom-15">Basic information</h5>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/dataassets/createdataasset.html
----------------------------------------------------------------------
diff --git a/ui/pages/dataassets/createdataasset.html b/ui/pages/dataassets/createdataasset.html
index 13bbb4d..df5d3c0 100644
--- a/ui/pages/dataassets/createdataasset.html
+++ b/ui/pages/dataassets/createdataasset.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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="container-fluid">
   <div class="row pageTitle">
     <h5 class="over-title margin-bottom-15">Register Data Asset</h5>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/dataassets/dataassets.html
----------------------------------------------------------------------
diff --git a/ui/pages/dataassets/dataassets.html b/ui/pages/dataassets/dataassets.html
index b26af13..79a3df2 100644
--- a/ui/pages/dataassets/dataassets.html
+++ b/ui/pages/dataassets/dataassets.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+  Licensed 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
 
-	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.
- -->
+     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="bs-component" >
 	<p>
 		<!--<a class="btn btn-primary btn-o btn-wide" href="#/createdataasset"><i class="fa fa-plus"></i> Register Data Asset</a>-->

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/dataassets/editdataasset.html
----------------------------------------------------------------------
diff --git a/ui/pages/dataassets/editdataasset.html b/ui/pages/dataassets/editdataasset.html
index 8d22e91..724eb94 100644
--- a/ui/pages/dataassets/editdataasset.html
+++ b/ui/pages/dataassets/editdataasset.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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="container-fluid">
   <div class="row">
     <h5 class="over-title margin-bottom-15">Edit Data Asset</h5>



[7/7] incubator-griffin git commit: Schedule2

Posted by gu...@apache.org.
Schedule2

Author: Yang <xi...@ebay.com>
Author: Chen <xi...@lm-shc-16501061.corp.ebay.com>

Closes #44 from RachelYang2/schedule2.


Project: http://git-wip-us.apache.org/repos/asf/incubator-griffin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-griffin/commit/1fa4f243
Tree: http://git-wip-us.apache.org/repos/asf/incubator-griffin/tree/1fa4f243
Diff: http://git-wip-us.apache.org/repos/asf/incubator-griffin/diff/1fa4f243

Branch: refs/heads/master
Commit: 1fa4f24386e558498f2dc3fb1dd1295a185a1d3e
Parents: a0802ed
Author: Yang <xi...@ebay.com>
Authored: Thu Jun 1 14:55:26 2017 +0800
Committer: William Guo <gu...@icloud.com>
Committed: Thu Jun 1 14:55:26 2017 +0800

----------------------------------------------------------------------
 .../griffin/core/GriffinWebApplication.java     |  17 +-
 .../griffin/core/common/SimpleCORSFilter.java   |  28 +-
 .../griffin/core/measure/AuditableEntity.java   |  15 +
 .../griffin/core/measure/DataConnector.java     |  27 +-
 .../griffin/core/measure/EvaluateRule.java      |  15 +
 .../apache/griffin/core/measure/Measure.java    |  15 +
 .../griffin/core/measure/MeasureController.java |  21 +
 .../griffin/core/measure/MeasureService.java    |  18 +
 .../core/measure/MeasureServiceImpl.java        |  31 +-
 .../core/measure/repo/DataConnectorRepo.java    |  15 +
 .../core/measure/repo/EvaluateRuleRepo.java     |  15 +
 .../griffin/core/measure/repo/MeasureRepo.java  |  15 +
 .../core/metastore/HiveMetastoreController.java |  15 +
 .../core/metastore/HiveMetastoreProxy.java      |  15 +
 .../core/metastore/HiveMetastoreService.java    |  15 +
 .../core/metastore/KafkaSchemaController.java   |  15 +
 .../core/metastore/KafkaSchemaService.java      |  15 +
 .../griffin/core/metric/MetricController.java   |  15 +
 .../griffin/core/metric/MetricService.java      |  15 +
 .../griffin/core/metric/MetricServiceImpl.java  |  15 +
 .../AutowiringSpringBeanJobFactory.java         |  15 +
 .../org/apache/griffin/core/schedule/Conf.java  |  15 +
 .../core/schedule/Repo/ScheduleStateRepo.java   |  20 +
 .../griffin/core/schedule/ScheduleResult.java   |  84 ++
 .../griffin/core/schedule/ScheduleState.java    |  97 +++
 .../griffin/core/schedule/SchedulerConfig.java  |  15 +
 .../core/schedule/SchedulerController.java      |  44 +-
 .../core/schedule/SchedulerRequestBody.java     |  15 +
 .../griffin/core/schedule/SparkJobDO.java       |  15 +
 .../griffin/core/schedule/SparkSubmitJob.java   |  34 +-
 .../griffin/core/service/GriffinController.java |  15 +
 .../org/apache/griffin/core/util/AvroUtil.java  |  15 +
 .../core/util/GriffinOperationMessage.java      |  15 +
 service/src/main/resources/Init_quartz.sql      |   2 +-
 service/src/main/resources/sparkJob.properties  |   3 +-
 .../measure/repo/MeasureControllerTest.java     |  15 +
 .../core/measure/repo/MeasureRepoTest.java      |  15 +
 .../metastore/HiveMetastoreControllerTest.java  |  15 +
 .../metastore/HiveMetastoreServiceTests.java    |  15 +
 .../metastore/KafkaSchemaControllerTest.java    |  15 +
 .../core/metric/MetricControllerTest.java       |  15 +
 .../core/schedule/SparkSubmitJobTest.java       |  15 +
 .../core/service/GriffinControllerTest.java     |  15 +
 ui/css/main.css                                 |  25 +-
 ui/css/sidebar.css                              |  28 +-
 ui/css/treeview-check.css                       |  24 +-
 ui/css/treeview.css                             |  24 +-
 ui/index.html                                   |  27 +-
 ui/js/app.js                                    |  25 +-
 ui/js/bs.js                                     |  25 +-
 ui/js/controllers/bigChart-ctrl.js              |  30 +-
 ui/js/controllers/createdataasset-ctrl.js       |  29 +-
 ui/js/controllers/createjob-ac-ctrl.js          | 160 ++++
 ui/js/controllers/createjob0.js                 |  43 ++
 ui/js/controllers/createrule-ac-ctrl.js         |  31 +-
 ui/js/controllers/createrule-an-ctrl.js         |  29 +-
 ui/js/controllers/createrule-pu-ctrl.js         |  29 +-
 ui/js/controllers/createrule-va-ctrl.js         |  29 +-
 ui/js/controllers/createrule0-ctrl.js           |  25 +-
 ui/js/controllers/dataassets-ctrl.js            |  29 +-
 ui/js/controllers/downloadSample-ctrl.js        |  31 +-
 ui/js/controllers/editdataasset-ctrl.js         |  29 +-
 ui/js/controllers/footer-ctrl.js                |  29 +-
 ui/js/controllers/health-ctrl.js                |  29 +-
 ui/js/controllers/index.js                      |  27 +-
 ui/js/controllers/job-ctrl.js                   | 127 +++
 ui/js/controllers/main-ctrl.js                  |  31 +-
 ui/js/controllers/metrics-ctrl.js               |  34 +-
 ui/js/controllers/module.js                     |  25 +-
 ui/js/controllers/mydashboard-ctrl.js           |  29 +-
 ui/js/controllers/nav-ctrl.js                   |  25 +-
 ui/js/controllers/rule-ctrl.js                  |  29 +-
 ui/js/controllers/sidebar-ctrl.js               |  29 +-
 ui/js/controllers/subscribemodel-ctrl.js        |  29 +-
 ui/js/controllers/viewrule-ctrl.js              |  29 +-
 ui/js/directives/bigchart.js                    |  25 +-
 ui/js/directives/index.js                       |  29 +-
 ui/js/directives/module.js                      |  23 +-
 ui/js/directives/treeview.js                    |  15 +
 ui/js/filters/index.js                          |  29 +-
 ui/js/filters/module.js                         |  25 +-
 ui/js/filters/strmap.js                         |  25 +-
 ui/js/filters/strshorten.js                     |  25 +-
 ui/js/main.js                                   |  24 +-
 ui/js/routes.js                                 |  57 +-
 ui/js/services/bark-chart.js                    |  25 +-
 ui/js/services/index.js                         |  29 +-
 ui/js/services/module.js                        |  23 +-
 ui/js/services/services.js                      |  38 +-
 ui/login/login.js                               |  29 +-
 ui/pages/dataassets/confirmation-dataasset.html |  28 +-
 .../confirmation-delete-dataasset.html          |  27 +-
 ui/pages/dataassets/createdataasset.html        |  27 +-
 ui/pages/dataassets/dataassets.html             |  23 +-
 ui/pages/dataassets/editdataasset.html          |  27 +-
 ui/pages/health/health.html                     |  23 +-
 ui/pages/jobs/confirmation-ac.html              |  83 ++
 ui/pages/jobs/createjob-ac.html                 | 136 ++++
 ui/pages/jobs/createjob0.html                   |  26 +
 ui/pages/jobs/delete-confirm.html               |  92 +++
 ui/pages/jobs/jobs.html                         |  90 +++
 ui/pages/measures/confirmation-ac.html          | 119 +++
 ui/pages/measures/confirmation-an.html          | 144 ++++
 ui/pages/measures/confirmation-pu.html          | 158 ++++
 ui/pages/measures/confirmation-va.html          | 158 ++++
 ui/pages/measures/createrule-ac.html            | 436 +++++++++++
 ui/pages/measures/createrule-an.html            | 407 ++++++++++
 ui/pages/measures/createrule-pu.html            | 235 ++++++
 ui/pages/measures/createrule-va.html            | 404 ++++++++++
 ui/pages/measures/createrule0.html              | 256 +++++++
 ui/pages/measures/delete-confirm.html           |  92 +++
 ui/pages/measures/measure.css                   | 343 +++++++++
 ui/pages/measures/measures.html                 | 102 +++
 ui/pages/measures/va-explaination.html          | 768 +++++++++++++++++++
 ui/pages/measures/viewrule.html                 | 211 +++++
 ui/pages/metrics/dashboard.html                 |  27 +-
 ui/pages/metrics/download-sample.html           |  27 +-
 ui/pages/metrics/metrics.css                    |  26 +-
 .../mydashboard/confirmation-subscribe.html     |  27 +-
 ui/pages/mydashboard/mydashboard.html           |  29 +-
 ui/pages/mydashboard/subscribemodel.html        |  25 +-
 ui/pages/rules/confirmation-ac.html             | 118 ---
 ui/pages/rules/confirmation-an.html             | 143 ----
 ui/pages/rules/confirmation-pu.html             | 157 ----
 ui/pages/rules/confirmation-va.html             | 157 ----
 ui/pages/rules/createrule-ac.html               | 434 -----------
 ui/pages/rules/createrule-an.html               | 406 ----------
 ui/pages/rules/createrule-pu.html               | 232 ------
 ui/pages/rules/createrule-va.html               | 403 ----------
 ui/pages/rules/createrule0.html                 | 251 ------
 ui/pages/rules/delete-confirm.html              |  91 ---
 ui/pages/rules/rule.css                         | 341 --------
 ui/pages/rules/rules.html                       | 101 ---
 ui/pages/rules/va-explaination.html             | 767 ------------------
 ui/pages/rules/viewrule.html                    | 210 -----
 ui/pages/template/bigchart.css                  |  24 +-
 ui/pages/template/bigchart.html                 |  23 +-
 ui/pages/template/undercons.html                |  23 +-
 ui/sidebar.html                                 |  23 +-
 ui/src/main/java/jar/App.java                   |  15 +
 ui/src/test/java/jar/AppTest.java               |  15 +
 ui/tests/ut/karma.conf.js                       |  26 +-
 .../specs/controllers/createjob-ac-ctrl.spec.js |  58 ++
 .../controllers/createrule-ac-ctrl.spec.js      |  26 +-
 .../controllers/createrule-pu-ctrl.spec.js      |  26 +-
 .../controllers/createrule-va-ctrl.spec.js      |  26 +-
 .../specs/controllers/createrule0-ctrl.spec.js  |  26 +-
 .../ut/specs/controllers/health-ctrl.spec.js    |  22 +-
 ui/tests/ut/specs/controllers/job-ctrl.spec.js  |  58 ++
 .../ut/specs/controllers/metrics-ctrl.spec.js   |  22 +-
 ui/tests/ut/specs/controllers/nav-ctrl_spec.js  |  26 +-
 ui/tests/ut/specs/controllers/rule-ctrl.spec.js |  26 +-
 .../ut/specs/controllers/sidebar-ctrl_spec.js   |  22 +-
 .../ut/specs/controllers/viewrule-ctrl.spec.js  |  22 +-
 ui/tests/ut/specs/filters/strmap_spec.js        |  26 +-
 ui/tests/ut/specs/filters/strshorten_spec.js    |  22 +-
 ui/tests/ut/specs/services/services_spec.js     |  22 +-
 ui/tests/ut/test-main.js                        |  22 +-
 158 files changed, 6638 insertions(+), 4791 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/GriffinWebApplication.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/GriffinWebApplication.java b/service/src/main/java/org/apache/griffin/core/GriffinWebApplication.java
index b9d7eb6..6a2f315 100644
--- a/service/src/main/java/org/apache/griffin/core/GriffinWebApplication.java
+++ b/service/src/main/java/org/apache/griffin/core/GriffinWebApplication.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core;
 
 
@@ -63,4 +78,4 @@ public class GriffinWebApplication/* implements CommandLineRunner*/{
         return new SimpleCORSFilter();
     }
 
-}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/common/SimpleCORSFilter.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/common/SimpleCORSFilter.java b/service/src/main/java/org/apache/griffin/core/common/SimpleCORSFilter.java
index 64da4fb..beeca24 100644
--- a/service/src/main/java/org/apache/griffin/core/common/SimpleCORSFilter.java
+++ b/service/src/main/java/org/apache/griffin/core/common/SimpleCORSFilter.java
@@ -1,17 +1,17 @@
-/*
-   Copyright (c) 2016 eBay Software Foundation.
-   Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
 package org.apache.griffin.core.common;
 import javax.servlet.*;
 import javax.servlet.http.HttpServletResponse;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/AuditableEntity.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/AuditableEntity.java b/service/src/main/java/org/apache/griffin/core/measure/AuditableEntity.java
index 47283c1..079c460 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/AuditableEntity.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/AuditableEntity.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/DataConnector.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/DataConnector.java b/service/src/main/java/org/apache/griffin/core/measure/DataConnector.java
index 2dda483..58e8219 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/DataConnector.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/DataConnector.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure;
 
 
@@ -29,7 +44,15 @@ public class DataConnector extends AuditableEntity  {
     
     @Enumerated(EnumType.STRING)
     private ConnectorType type;
-    
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
     private String version;
 
     private String config;
@@ -55,6 +78,7 @@ public class DataConnector extends AuditableEntity  {
     }
 
     public Map<String,String> getConfigInMaps() {
+        if (this.configInMaps == null) this.configInMaps = convertJonsToMap(config);
         return configInMaps;
     }
 
@@ -64,6 +88,7 @@ public class DataConnector extends AuditableEntity  {
     }
 
     public DataConnector() {
+        System.out.println();
     }
 
     public DataConnector(ConnectorType type,String version, Map<String,String> config){

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/EvaluateRule.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/EvaluateRule.java b/service/src/main/java/org/apache/griffin/core/measure/EvaluateRule.java
index 6565b6a..8428e38 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/EvaluateRule.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/EvaluateRule.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 
 package org.apache.griffin.core.measure;
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/Measure.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/Measure.java b/service/src/main/java/org/apache/griffin/core/measure/Measure.java
index 3812065..dad8caa 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/Measure.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/Measure.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure;
 
 import javax.persistence.*;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java b/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
index 661f72d..a0fc9c1 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/MeasureController.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure;
 
 import org.apache.griffin.core.util.GriffinOperationMessage;
@@ -7,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 @RestController
 public class MeasureController {
     private static final Logger log = LoggerFactory.getLogger(MeasureController.class);
@@ -43,6 +60,10 @@ public class MeasureController {
         return measureService.updateMeasure(measure);
     }
 
+    @RequestMapping("/measures/owner/{owner}")
+    public List<String> getAllMeasureNameOfOwner(@PathVariable("owner") String owner){
+        return measureService.getAllMeasureNameByOwner(owner);
+    }
 
     @RequestMapping(value = "/measures/add", method = RequestMethod.POST)
     @ResponseBody

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/MeasureService.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/MeasureService.java b/service/src/main/java/org/apache/griffin/core/measure/MeasureService.java
index a6d7b22..067ce6d 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/MeasureService.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/MeasureService.java
@@ -1,9 +1,26 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure;
 
 
 import org.apache.griffin.core.util.GriffinOperationMessage;
 import org.springframework.web.bind.annotation.PathVariable;
 
+import java.util.List;
+
 public interface MeasureService {
 
     public Iterable<Measure> getAllMeasures();
@@ -20,6 +37,7 @@ public interface MeasureService {
 
     public GriffinOperationMessage updateMeasure(Measure measure);
 
+    public List<String> getAllMeasureNameByOwner(String owner);
 
     public GriffinOperationMessage createNewMeasure(Measure measure);
 }

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java b/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
index 2821f16..ff74aa7 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/MeasureServiceImpl.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure;
 
 
@@ -7,7 +22,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class MeasureServiceImpl implements MeasureService{
@@ -57,6 +76,16 @@ public class MeasureServiceImpl implements MeasureService{
         }
     }
 
+    public List<String> getAllMeasureNameByOwner(String owner){
+        List<String> res=new ArrayList<String>();
+        for (Measure measure:measureRepo.findAll()){
+            if(measure.getOwner().equals(owner)){
+                res.add(measure.getName());
+            }
+        }
+        return res;
+    }
+
     public GriffinOperationMessage updateMeasure(@RequestBody Measure measure) {
 
         String name=measure.getName();

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/repo/DataConnectorRepo.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/repo/DataConnectorRepo.java b/service/src/main/java/org/apache/griffin/core/measure/repo/DataConnectorRepo.java
index fa50d0c..fcfc46f 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/repo/DataConnectorRepo.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/repo/DataConnectorRepo.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure.repo;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/repo/EvaluateRuleRepo.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/repo/EvaluateRuleRepo.java b/service/src/main/java/org/apache/griffin/core/measure/repo/EvaluateRuleRepo.java
index fd659ce..45915bd 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/repo/EvaluateRuleRepo.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/repo/EvaluateRuleRepo.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure.repo;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/measure/repo/MeasureRepo.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/measure/repo/MeasureRepo.java b/service/src/main/java/org/apache/griffin/core/measure/repo/MeasureRepo.java
index b1b0c7f..5bc84a4 100644
--- a/service/src/main/java/org/apache/griffin/core/measure/repo/MeasureRepo.java
+++ b/service/src/main/java/org/apache/griffin/core/measure/repo/MeasureRepo.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure.repo;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreController.java b/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreController.java
index 3b035e9..85a2d36 100644
--- a/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreController.java
+++ b/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreController.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreProxy.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreProxy.java b/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreProxy.java
index 6454b17..185bc2b 100644
--- a/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreProxy.java
+++ b/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreProxy.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 import org.apache.hadoop.hive.conf.HiveConf;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreService.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreService.java b/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreService.java
index 856959b..c907b45 100644
--- a/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreService.java
+++ b/service/src/main/java/org/apache/griffin/core/metastore/HiveMetastoreService.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaController.java b/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaController.java
index 1491518..f4ae18d 100644
--- a/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaController.java
+++ b/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaController.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 import io.confluent.kafka.schemaregistry.client.rest.entities.Config;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaService.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaService.java b/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaService.java
index 2113312..fc1e693 100644
--- a/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaService.java
+++ b/service/src/main/java/org/apache/griffin/core/metastore/KafkaSchemaService.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 import io.confluent.kafka.schemaregistry.client.rest.entities.Config;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metric/MetricController.java b/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
index f29aa02..30741fb 100644
--- a/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
+++ b/service/src/main/java/org/apache/griffin/core/metric/MetricController.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metric;
 
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metric/MetricService.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metric/MetricService.java b/service/src/main/java/org/apache/griffin/core/metric/MetricService.java
index 17a4a9f..02cc1dd 100644
--- a/service/src/main/java/org/apache/griffin/core/metric/MetricService.java
+++ b/service/src/main/java/org/apache/griffin/core/metric/MetricService.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metric;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/metric/MetricServiceImpl.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/metric/MetricServiceImpl.java b/service/src/main/java/org/apache/griffin/core/metric/MetricServiceImpl.java
index 7c103c9..3c390a1 100644
--- a/service/src/main/java/org/apache/griffin/core/metric/MetricServiceImpl.java
+++ b/service/src/main/java/org/apache/griffin/core/metric/MetricServiceImpl.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metric;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/AutowiringSpringBeanJobFactory.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/AutowiringSpringBeanJobFactory.java b/service/src/main/java/org/apache/griffin/core/schedule/AutowiringSpringBeanJobFactory.java
index 8e10384..6da6a45 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/AutowiringSpringBeanJobFactory.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/AutowiringSpringBeanJobFactory.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
 import org.quartz.spi.TriggerFiredBundle;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/Conf.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/Conf.java b/service/src/main/java/org/apache/griffin/core/schedule/Conf.java
index 4ccd6fd..3f30892 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/Conf.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/Conf.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/Repo/ScheduleStateRepo.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/Repo/ScheduleStateRepo.java b/service/src/main/java/org/apache/griffin/core/schedule/Repo/ScheduleStateRepo.java
new file mode 100644
index 0000000..a043353
--- /dev/null
+++ b/service/src/main/java/org/apache/griffin/core/schedule/Repo/ScheduleStateRepo.java
@@ -0,0 +1,20 @@
+package org.apache.griffin.core.schedule.Repo;
+
+import org.apache.griffin.core.schedule.ScheduleState;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * Created by xiangrchen on 5/31/17.
+ */
+@Repository
+public interface ScheduleStateRepo extends CrudRepository<ScheduleState,Long>{
+    @Query("select s from ScheduleState s " +
+            "where s.groupName= ?1 and s.jobName=?2 "/*+
+            "order by s.timestamp desc"*/)
+    List<ScheduleState> findByGroupNameAndJobName(String group, String name, Pageable pageable);
+}

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/ScheduleResult.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/ScheduleResult.java b/service/src/main/java/org/apache/griffin/core/schedule/ScheduleResult.java
new file mode 100644
index 0000000..d8622d6
--- /dev/null
+++ b/service/src/main/java/org/apache/griffin/core/schedule/ScheduleResult.java
@@ -0,0 +1,84 @@
+/*-
+ * Licensed 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.
+
+ */
+
+
+
+package org.apache.griffin.core.schedule;
+
+import com.google.gson.JsonObject;
+
+import java.util.ArrayList;
+
+/**
+ * Created by xiangrchen on 5/31/17.
+ */
+public class ScheduleResult {
+    long id;
+    String state;
+    String appId;
+    JsonObject appInfo;
+    ArrayList<JsonObject> log;
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public JsonObject getAppInfo() {
+        return appInfo;
+    }
+
+    public void setAppInfo(JsonObject appInfo) {
+        this.appInfo = appInfo;
+    }
+
+    public ArrayList<JsonObject> getLog() {
+        return log;
+    }
+
+    public void setLog(ArrayList<JsonObject> log) {
+        this.log = log;
+    }
+
+    public ScheduleResult() {
+    }
+
+    public ScheduleResult(long id, String state, String appId, JsonObject appInfo, ArrayList<JsonObject> log) {
+        this.id = id;
+        this.state = state;
+        this.appId = appId;
+        this.appInfo = appInfo;
+        this.log = log;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/ScheduleState.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/ScheduleState.java b/service/src/main/java/org/apache/griffin/core/schedule/ScheduleState.java
new file mode 100644
index 0000000..8279882
--- /dev/null
+++ b/service/src/main/java/org/apache/griffin/core/schedule/ScheduleState.java
@@ -0,0 +1,97 @@
+/*-
+ * Licensed 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.
+
+ */
+
+
+package org.apache.griffin.core.schedule;
+
+import org.apache.griffin.core.measure.AuditableEntity;
+
+import javax.persistence.Entity;
+
+/**
+ * Created by xiangrchen on 5/31/17.
+ */
+@Entity
+public class ScheduleState extends AuditableEntity {
+
+    private static final long serialVersionUID = -4748881017029815874L;
+
+    String groupName;
+    String jobName;
+    long scheduleid;
+    String state;
+    String appId;
+    long timestamp;
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public String getJobName() {
+        return jobName;
+    }
+
+    public void setJobName(String jobName) {
+        this.jobName = jobName;
+    }
+
+    public long getScheduleid() {
+        return scheduleid;
+    }
+
+    public void setScheduleid(long scheduleid) {
+        this.scheduleid = scheduleid;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getAppId() {
+        return appId;
+    }
+
+    public void setAppId(String appId) {
+        this.appId = appId;
+    }
+
+    public long getTimestamp() {
+        return timestamp;
+    }
+
+    public void setTimestamp(long timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    public ScheduleState() {
+    }
+
+    public ScheduleState(String groupName, String jobName, long scheduleid, String state, String appId, long timestamp) {
+        this.groupName = groupName;
+        this.jobName = jobName;
+        this.scheduleid = scheduleid;
+        this.state = state;
+        this.appId = appId;
+        this.timestamp = timestamp;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/SchedulerConfig.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerConfig.java b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerConfig.java
index 916b104..1132254 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerConfig.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerConfig.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
 import org.quartz.spi.JobFactory;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/SchedulerController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerController.java b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerController.java
index 84b1da0..9a67a27 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerController.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerController.java
@@ -1,10 +1,29 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
+import org.apache.griffin.core.schedule.Repo.ScheduleStateRepo;
 import org.quartz.*;
 import org.quartz.impl.matchers.GroupMatcher;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
 import org.springframework.scheduling.quartz.SchedulerFactoryBean;
 import org.springframework.web.bind.annotation.*;
 
@@ -27,7 +46,8 @@ public class SchedulerController {
 
     @Autowired
     private SchedulerFactoryBean factory;
-
+    @Autowired
+    private ScheduleStateRepo scheduleStateRepo;
 
     public static final String ACCURACY_BATCH_GROUP = "BA";
 
@@ -52,12 +72,24 @@ public class SchedulerController {
                 if (triggers.size() > 0) {
                     //always get next run
                     Date nextFireTime = triggers.get(0).getNextFireTime();
+                    Date previousFireTime=triggers.get(0).getPreviousFireTime();
+//                    triggers.get(0).getScheduleBuilder()
+
+                    Trigger.TriggerState triggerState=scheduler.getTriggerState(triggers.get(0).getKey());
 
                     map.put("jobName", jobName);
                     map.put("groupName", jobGroup);
-                    map.put("nextFireTime", nextFireTime.toString());
+                    map.put("nextFireTime", nextFireTime.getTime());
+                    map.put("previousFireTime",previousFireTime.getTime());
+                    map.put("triggerState",triggerState);
 
                     map.put("measure", (String) jd.getJobDataMap().get("measure"));
+                    map.put("sourcePat",jd.getJobDataMap().getString("sourcePat"));
+                    map.put("targetPat",jd.getJobDataMap().getString("targetPat"));
+
+                    map.put("dataStartTimestamp",Long.parseLong(jd.getJobDataMap().getString("dataStartTimestamp")));
+                    map.put("jobStartTime",jd.getJobDataMap().getString("jobStartTime"));
+                    map.put("periodTime",jd.getJobDataMap().getString("periodTime"));
                     list.add(map);
                 }
 
@@ -112,6 +144,8 @@ public class SchedulerController {
                 jobDetail.getJobDataMap().put("jobStartTime", schedulerRequestBody.getJobStartTime());
                 jobDetail.getJobDataMap().put("periodTime", schedulerRequestBody.getPeriodTime());
                 jobDetail.getJobDataMap().put("lastTime", "");
+                jobDetail.getJobDataMap().put("groupName",groupName);
+                jobDetail.getJobDataMap().put("jobName",jobName);
 
                 jobStartTime = Integer.parseInt(schedulerRequestBody.getJobStartTime());
                 periodTime = Integer.parseInt(schedulerRequestBody.getPeriodTime());
@@ -151,6 +185,12 @@ public class SchedulerController {
             return false;
         }
     }
+
+    @RequestMapping("/instances/groups/{group}/jobs/{name}/{page}/{size}")
+    public List<ScheduleState> findInstancesOfJob(@PathVariable String group,@PathVariable String name,@PathVariable int page,@PathVariable int size){
+        Pageable pageRequest=new PageRequest(page,size, Sort.Direction.DESC,"timestamp");
+        return scheduleStateRepo.findByGroupNameAndJobName(group,name,pageRequest);
+    }
 }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/SchedulerRequestBody.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerRequestBody.java b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerRequestBody.java
index 354bf08..d33472f 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/SchedulerRequestBody.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/SchedulerRequestBody.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/SparkJobDO.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/SparkJobDO.java b/service/src/main/java/org/apache/griffin/core/schedule/SparkJobDO.java
index 65f7f41..a06d70b 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/SparkJobDO.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/SparkJobDO.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
 import java.io.Serializable;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/schedule/SparkSubmitJob.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/schedule/SparkSubmitJob.java b/service/src/main/java/org/apache/griffin/core/schedule/SparkSubmitJob.java
index 9ce3de7..bac661d 100644
--- a/service/src/main/java/org/apache/griffin/core/schedule/SparkSubmitJob.java
+++ b/service/src/main/java/org/apache/griffin/core/schedule/SparkSubmitJob.java
@@ -1,11 +1,28 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectWriter;
+import com.google.gson.Gson;
 import org.apache.griffin.core.measure.DataConnector;
 import org.apache.griffin.core.measure.Measure;
 import org.apache.griffin.core.measure.repo.MeasureRepo;
+import org.apache.griffin.core.schedule.Repo.ScheduleStateRepo;
 import org.quartz.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -26,6 +43,9 @@ public class SparkSubmitJob implements Job {
     @Autowired
     MeasureRepo measureRepo;
 
+    @Autowired
+    ScheduleStateRepo scheduleStateRepo;
+
     Properties props;
 
     String patItem;
@@ -72,6 +92,8 @@ public class SparkSubmitJob implements Job {
     @Override
     public void execute(JobExecutionContext context) {
         JobDetail jd = context.getJobDetail();
+        String groupName=jd.getJobDataMap().getString("groupName");
+        String jobName=jd.getJobDataMap().getString("jobName");
         String measureName = jd.getJobDataMap().getString("measure");
         measure = measureRepo.findByName(measureName);
         if (measure==null) {
@@ -102,9 +124,18 @@ public class SparkSubmitJob implements Job {
         //final String uri = "http://10.9.246.187:8998/batches";
         RestTemplate restTemplate = new RestTemplate();
         setSparkJobDO();
-
+//        String result = restTemplate.postForObject(uri, sparkJobDO, String.class);
         String result = restTemplate.postForObject(uri, sparkJobDO, String.class);
         logger.info(result);
+        ScheduleResult scheduleResult=new ScheduleResult();
+        Gson gson=new Gson();
+        try {
+            scheduleResult=gson.fromJson(result,ScheduleResult.class);
+        }catch (Exception e){
+            logger.info("scheduleResult covert error!"+e);
+        }
+        ScheduleState scheduleState=new ScheduleState(groupName,jobName,scheduleResult.getId(),scheduleResult.getState(),scheduleResult.getAppId(),System.currentTimeMillis());
+        scheduleStateRepo.save(scheduleState);
         //	{"file": "/exe/griffin-measure-batch-0.0.1-SNAPSHOT.jar", "className": "org.apache.griffin.measure.batch.Application", "args": ["/benchmark/test/env.json", "/benchmark/test/config-rdm.json"], "name": "griffin-livy", "queue": "default", "numExecutors": 2, "executorCores": 4, "driverMemory": "2g", "executorMemory": "2g", "conf": {"spark.jars.packages": "com.databricks:spark-avro_2.10:2.0.1"}, "jars": ["/livy/datanucleus-api-jdo-3.2.6.jar", "/livy/datanucleus-core-3.2.10.jar", "/livy/datanucleus-rdbms-3.2.9.jar"], "files": ["/livy/hive-site.xml"]}' -H "Content-Type: application/json"
     }
 
@@ -196,6 +227,7 @@ public class SparkSubmitJob implements Job {
 
         List<String> files = new ArrayList<>();
 //        files.add(props.getProperty("sparkJob.files_1"));
+
         sparkJobDO.setFiles(files);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/service/GriffinController.java b/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
index d6e4412..f7d291f 100644
--- a/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
+++ b/service/src/main/java/org/apache/griffin/core/service/GriffinController.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.service;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/util/AvroUtil.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/util/AvroUtil.java b/service/src/main/java/org/apache/griffin/core/util/AvroUtil.java
index fb944c5..3717ea7 100644
--- a/service/src/main/java/org/apache/griffin/core/util/AvroUtil.java
+++ b/service/src/main/java/org/apache/griffin/core/util/AvroUtil.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.util;
 
 import org.apache.avro.Schema;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/java/org/apache/griffin/core/util/GriffinOperationMessage.java
----------------------------------------------------------------------
diff --git a/service/src/main/java/org/apache/griffin/core/util/GriffinOperationMessage.java b/service/src/main/java/org/apache/griffin/core/util/GriffinOperationMessage.java
index 61703b0..02759c2 100644
--- a/service/src/main/java/org/apache/griffin/core/util/GriffinOperationMessage.java
+++ b/service/src/main/java/org/apache/griffin/core/util/GriffinOperationMessage.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.util;
 
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/resources/Init_quartz.sql
----------------------------------------------------------------------
diff --git a/service/src/main/resources/Init_quartz.sql b/service/src/main/resources/Init_quartz.sql
index 6f3ee48..2a2d338 100644
--- a/service/src/main/resources/Init_quartz.sql
+++ b/service/src/main/resources/Init_quartz.sql
@@ -176,4 +176,4 @@ CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
 CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
 CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
 
-commit;
+commit;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/main/resources/sparkJob.properties
----------------------------------------------------------------------
diff --git a/service/src/main/resources/sparkJob.properties b/service/src/main/resources/sparkJob.properties
index b6f9932..eba1b70 100644
--- a/service/src/main/resources/sparkJob.properties
+++ b/service/src/main/resources/sparkJob.properties
@@ -13,4 +13,5 @@ sparkJob.jars_1=hdfs:///livy/datanucleus-api-jdo-3.2.6.jar
 sparkJob.jars_2=hdfs:///livy/datanucleus-core-3.2.10.jar
 sparkJob.jars_3=hdfs:///livy/datanucleus-rdbms-3.2.9.jar
 sparkJob.dateAndHour=dt,hour
-sparkJob.uri=http://localhost:8998/batches
\ No newline at end of file
+#sparkJob.uri=http://localhost:8998/batches
+sparkJob.uri=http://10.9.246.187:8998/batches
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureControllerTest.java b/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureControllerTest.java
index 50d2432..b5ca9d0 100644
--- a/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureControllerTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure.repo;
 
 import org.apache.griffin.core.measure.*;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureRepoTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureRepoTest.java b/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureRepoTest.java
index d2f5fc7..ce5ab72 100644
--- a/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureRepoTest.java
+++ b/service/src/test/java/org/apache/griffin/core/measure/repo/MeasureRepoTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.measure.repo;
 
 import com.fasterxml.jackson.core.JsonProcessingException;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreControllerTest.java b/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreControllerTest.java
index 6c2534e..8151a3c 100644
--- a/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreControllerTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 import org.junit.Before;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreServiceTests.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreServiceTests.java b/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreServiceTests.java
index 154fd8f..7444f09 100644
--- a/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreServiceTests.java
+++ b/service/src/test/java/org/apache/griffin/core/metastore/HiveMetastoreServiceTests.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 import org.apache.hadoop.hive.conf.HiveConf;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/metastore/KafkaSchemaControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/metastore/KafkaSchemaControllerTest.java b/service/src/test/java/org/apache/griffin/core/metastore/KafkaSchemaControllerTest.java
index fdc0fba..d50438b 100644
--- a/service/src/test/java/org/apache/griffin/core/metastore/KafkaSchemaControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/metastore/KafkaSchemaControllerTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metastore;
 
 import io.confluent.kafka.schemaregistry.client.rest.entities.SchemaString;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java b/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
index 288b980..cb982c6 100644
--- a/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/metric/MetricControllerTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.metric;
 
 import org.junit.Before;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/schedule/SparkSubmitJobTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/schedule/SparkSubmitJobTest.java b/service/src/test/java/org/apache/griffin/core/schedule/SparkSubmitJobTest.java
index 2d5e61a..43e50ff 100644
--- a/service/src/test/java/org/apache/griffin/core/schedule/SparkSubmitJobTest.java
+++ b/service/src/test/java/org/apache/griffin/core/schedule/SparkSubmitJobTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.schedule;
 
 import com.fasterxml.jackson.core.JsonProcessingException;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java b/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
index d1a039f..8da2017 100644
--- a/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
+++ b/service/src/test/java/org/apache/griffin/core/service/GriffinControllerTest.java
@@ -1,3 +1,18 @@
+/*-
+ * Licensed 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.
+
+ */
+
 package org.apache.griffin.core.service;
 
 import com.fasterxml.jackson.databind.ObjectMapper;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/css/main.css
----------------------------------------------------------------------
diff --git a/ui/css/main.css b/ui/css/main.css
index 745b483..3458335 100644
--- a/ui/css/main.css
+++ b/ui/css/main.css
@@ -1,3 +1,5 @@
+
+
 /*!
  * BLOCKS - Responsive Dashboard Theme
  *
@@ -13,21 +15,20 @@
  * Designed and built based on Twitter Bootstrap.
  */
 
- /*
- 	Copyright (c) 2016 eBay Software Foundation.
- 	Licensed 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
+ /*-
+  * Licensed 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
+      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.
- */
+ 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.
 
+  */
 /* COLOR REFERENCE
 - #1f1f1f (Background Color)
 - #3d3d3d (Dash-unit and half-unit Section)

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/css/sidebar.css
----------------------------------------------------------------------
diff --git a/ui/css/sidebar.css b/ui/css/sidebar.css
index abf44ae..b089ca4 100644
--- a/ui/css/sidebar.css
+++ b/ui/css/sidebar.css
@@ -1,17 +1,17 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
 /*side-bar start*/
 .sidebar-stat-center{
 	padding:10px 0;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/css/treeview-check.css
----------------------------------------------------------------------
diff --git a/ui/css/treeview-check.css b/ui/css/treeview-check.css
index 971b874..86550f9 100644
--- a/ui/css/treeview-check.css
+++ b/ui/css/treeview-check.css
@@ -1,17 +1,17 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
-*/
+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[angular-treeviewcheck] {
   /* prevent user selection */
   -moz-user-select: -moz-none;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/css/treeview.css
----------------------------------------------------------------------
diff --git a/ui/css/treeview.css b/ui/css/treeview.css
index a5e4fbc..ea138f6 100644
--- a/ui/css/treeview.css
+++ b/ui/css/treeview.css
@@ -1,17 +1,17 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
-*/
+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[angular-treeview] {
   /* prevent user selection */
   -moz-user-select: -moz-none;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/index.html
----------------------------------------------------------------------
diff --git a/ui/index.html b/ui/index.html
index 6f79eb1..ef45f07 100644
--- a/ui/index.html
+++ b/ui/index.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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.
+
+-->
 <!DOCTYPE html>
 <html lang="en">
 

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/app.js
----------------------------------------------------------------------
diff --git a/ui/js/app.js b/ui/js/app.js
index e2dc9fe..dae4857 100644
--- a/ui/js/app.js
+++ b/ui/js/app.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define([
     'angular',
     './controllers/index',

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/bs.js
----------------------------------------------------------------------
diff --git a/ui/js/bs.js b/ui/js/bs.js
index f6f67d3..f2fdf7f 100644
--- a/ui/js/bs.js
+++ b/ui/js/bs.js
@@ -1,17 +1,18 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+/*-
+ * Licensed 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
+     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.
+
+ */
 
-	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.
-*/
 define([
     'require',
     'jquery',

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/js/controllers/bigChart-ctrl.js
----------------------------------------------------------------------
diff --git a/ui/js/controllers/bigChart-ctrl.js b/ui/js/controllers/bigChart-ctrl.js
index 5525cd2..3984185 100644
--- a/ui/js/controllers/bigChart-ctrl.js
+++ b/ui/js/controllers/bigChart-ctrl.js
@@ -1,17 +1,17 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
-*/
+/*-
+ * Licensed 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.
+
+ */
 define(['./module'], function(controllers) {
     'use strict';
     controllers.controller('BigChartCtrl', ['$scope', '$http', '$config', '$filter', '$timeout', '$compile', '$routeParams', '$barkChart', '$rootScope', function($scope, $http, $config, $filter, $timeout, $compile, $routeParams, $barkChart, $rootScope) {
@@ -55,4 +55,4 @@ define(['./module'], function(controllers) {
       }
 
     }]);
-});
\ No newline at end of file
+});



[3/7] incubator-griffin git commit: Schedule2

Posted by gu...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/metrics/metrics.css
----------------------------------------------------------------------
diff --git a/ui/pages/metrics/metrics.css b/ui/pages/metrics/metrics.css
index e41cea2..8bd5add 100644
--- a/ui/pages/metrics/metrics.css
+++ b/ui/pages/metrics/metrics.css
@@ -1,17 +1,19 @@
-/*
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+   Licensed 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.
+
+*/
 
-	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.
- */
 .thumb-chart:hover{
     transform: scale(1.05, 1.05);
     box-shadow:  0 1px 2px 2px #ccc;

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/mydashboard/confirmation-subscribe.html
----------------------------------------------------------------------
diff --git a/ui/pages/mydashboard/confirmation-subscribe.html b/ui/pages/mydashboard/confirmation-subscribe.html
index d75d1ac..47c276e 100644
--- a/ui/pages/mydashboard/confirmation-subscribe.html
+++ b/ui/pages/mydashboard/confirmation-subscribe.html
@@ -1,17 +1,18 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
   <div class="row">
     <h5 class="over-title margin-bottom-15">Basic information</h5>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/mydashboard/mydashboard.html
----------------------------------------------------------------------
diff --git a/ui/pages/mydashboard/mydashboard.html b/ui/pages/mydashboard/mydashboard.html
index 4d66914..42f1f7d 100644
--- a/ui/pages/mydashboard/mydashboard.html
+++ b/ui/pages/mydashboard/mydashboard.html
@@ -1,21 +1,22 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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.
- -->
+
+  Licensed 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 id="mydashboard" class="bs-component" >
 	<div  class="container-fluid">
 		<div class="row col-lg-12" style="margin-top: 15px;">
-	        <a class="btn btn-primary btn-o btn-wide" href="#/subscribemodel"><i class="fa fa-plus"></i> Subscribe Models</a>
+	        <!--<a class="btn btn-primary btn-o btn-wide" href="#/subscribemodel"><i class="fa fa-plus"></i> Subscribe Models</a>-->
 	    </div>
 	  	<div ng-repeat="outerItems in dashboard">
 	  		<div class="row" >

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/mydashboard/subscribemodel.html
----------------------------------------------------------------------
diff --git a/ui/pages/mydashboard/subscribemodel.html b/ui/pages/mydashboard/subscribemodel.html
index 1831d8e..5c8e9e6 100644
--- a/ui/pages/mydashboard/subscribemodel.html
+++ b/ui/pages/mydashboard/subscribemodel.html
@@ -1,20 +1,21 @@
 <!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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
+  Licensed 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
 
-	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.
- -->
+     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="container-fluid">
   <div class="row">
-    <h5 class="over-title margin-bottom-15">Subscribe Models</h5>
+    <!--<h5 class="over-title margin-bottom-15">Subscribe Models</h5>-->
   </div><!--//row-->
   <div class="row">
     <form name="Form" id="form" novalidate>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/confirmation-ac.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/confirmation-ac.html b/ui/pages/rules/confirmation-ac.html
deleted file mode 100644
index bc8ec2f..0000000
--- a/ui/pages/rules/confirmation-ac.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Basic information</h5>
-  </div><!--//row-->
-  <div class="row">
-
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-      <div id="viewrule-definition" class="viewrule-content">
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Measure Name:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{basic.name}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Measure Description:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{basic.desc}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Measure Type:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{basic.type|strmap:ruleTypes}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
-            Organization:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-            {{basic.system}}
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            DataAsset:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff"  >{{dataAsset}}
-
-          </div>
-        </div>
-
-        <div class="row">
-          <label class="col-md-4 col-lg-4 col-sm-4">
-            Owner:
-          </label>
-
-          <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-            {{basic.owner}}
-          </div>
-        </div>
-      </div>
-    </div>
-
-
-  </div><!--//row-->
-
-  <br/>
-  <h5 class="row">Mapping rules</h5>
-  <div class="row">
-
-    <p>{{rules}}</p>
-
-    <p>
-      <label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
-    </p>
-
-    <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex;align-items: center">
-
-      <div class="" style="text-align:right;display:block;float:left;width:20%;">
-        Accuracy Rate(%) =
-      </div>
-      <div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
-        <div class="formula-text-up" style="border-bottom:1px solid;">
-          Total Count of Matched records between <span class="badge">{{form.data.mappings.length}}</span><span style="color:green;">{{currentNodeTarget.name}}</span> and <span class="badge">{{form.data.mappings.length}}</span> <span style="color:green;">{{currentNode.name}}</span>  fields
-        </div>
-        <div class="">
-          Total Count of records in <span style="color:green;font-weight:bold;">{{currentNode.parent[0].dbName}}.{{currentNodeTarget.name}}</span>
-        </div>
-      </div>
-      <div class="" style="text-align:left;display:block;float:left;width:10%;">
-        x 100%
-      </div>
-
-    </div>
-  </div>
-
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/confirmation-an.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/confirmation-an.html b/ui/pages/rules/confirmation-an.html
deleted file mode 100644
index 7146b7e..0000000
--- a/ui/pages/rules/confirmation-an.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Basic information</h5>
-  </div><!--//row-->
-  <div class="row">
-
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-        <div id="viewrule-definition" class="viewrule-content">
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Name:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.name}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Definition:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.desc}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.type|strmap:ruleTypes}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
-              Organization:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.system|strmap:ruleSystems}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              DataAsset:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.dataaset}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Threshold:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.threshold}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Schedule Type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.scheduleType|strmap:scheduleTypes}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Notification email:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.email}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Owner:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.owner}}
-            </div>
-        </div>
-      </div>
-    </div>
-
-
-  </div><!--//row-->
-
-  <br/>
-  <h5 class="row">Key information</h5>
-  <div class="row">
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-        <div id="viewrule-definition" class="viewrule-content">
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Detection type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.anType|strmap:anTypes}}
-            </div>
-          </div>
-          <div class="row-fluid">
-            <img ng-if="form.anType == 1" src="/img/yoy.png" style="max-height: 300px;width:100%"/>
-            <img ng-if="form.anType == 2" src="/img/bollinger.png" style="max-height: 400px;width:100%"/>
-          </div>
-
-
-        </div>
-    </div>
-
-  </div>
-
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/confirmation-pu.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/confirmation-pu.html b/ui/pages/rules/confirmation-pu.html
deleted file mode 100644
index e36ec6a..0000000
--- a/ui/pages/rules/confirmation-pu.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Basic information</h5>
-  </div><!--//row-->
-  <div class="row">
-
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-        <div id="viewrule-definition" class="viewrule-content">
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Name:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.name}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Definition:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.desc}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.type|strmap:ruleTypes}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
-              Organization:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.system|strmap:ruleSystems}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              DataAsset:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.dataaset}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Threshold:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.threshold}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Schedule Type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.scheduleType|strmap:scheduleTypes}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Notification email:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.email}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Owner:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.owner}}
-            </div>
-          </div>
-
-
-      </div>
-    </div>
-
-
-  </div><!--//row-->
-
-  <br/>
-  <h5 class="row">Extra information</h5>
-  <div class="row">
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-        <div id="viewrule-definition" class="viewrule-content">
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Publish URL:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.extra.publishUrl}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Publish data format:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              <pre style="background-color:transparent;color:inherit;border:none">Method: POST
-Endpoint: {{form.publishUrl}}
-Body:
-{
-"metricName": "{{form.basic.name}}",
-"timestamp": 1463373496583,
-"value": 99.9
-}</pre>
-            </div>
-          </div>
-        </div>
-    </div>
-
-  </div>
-
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/confirmation-va.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/confirmation-va.html b/ui/pages/rules/confirmation-va.html
deleted file mode 100644
index dc0f479..0000000
--- a/ui/pages/rules/confirmation-va.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid" id="viewruleContent" style="overflow:auto;">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Basic information</h5>
-  </div><!--//row-->
-  <div class="row">
-
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-        <div id="viewrule-definition" class="viewrule-content">
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Name:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.name}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Definition:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.desc}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Model Type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.type|strmap:ruleTypes}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label for="systemSelector" class="col-md-4 col-lg-4 col-sm-4">
-              Organization:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.system|strmap:ruleSystems}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              DataAsset:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.dataaset}}
-            </div>
-          </div>
-
-          <div class="row" ng-show="form.data.extra.vaType=='9'">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Regular Expression:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.regex}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Threshold:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.threshold}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Schedule Type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.data.basic.scheduleType|strmap:scheduleTypes}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Notification email:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.email}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Owner:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8" style="color: #fff">
-              {{form.data.basic.owner}}
-            </div>
-        </div>
-      </div>
-    </div>
-
-
-  </div><!--//row-->
-
-  <br/>
-  <h5 class="row">Key information</h5>
-  <div class="row">
-    <div  class="col-lg-12 col-md-12 col-sm-12">
-        <div id="viewrule-definition" class="viewrule-content">
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Validity type:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{form.vaType|strmap:vaTypes}}
-            </div>
-          </div>
-
-          <div class="row">
-            <label class="col-md-4 col-lg-4 col-sm-4">
-              Selected column:
-            </label>
-
-            <div class="col-md-8 col-lg-8 col-sm-8 " style="color: #fff">
-              {{currentNode.parent.name}}.{{currentNode.name}}.{{form.selection}}
-            </div>
-          </div>
-        </div>
-    </div>
-
-  </div>
-
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/createrule-ac.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/createrule-ac.html b/ui/pages/rules/createrule-ac.html
deleted file mode 100644
index 970963f..0000000
--- a/ui/pages/rules/createrule-ac.html
+++ /dev/null
@@ -1,434 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
-  </div><!--//row-->
-  <div class="row">
-    <form name="Form" id="form" novalidate>
-      <div id="wizard" class="swMain" >
-        <ul>
-          <li ng-click="form.goTo(Form, 1)">
-            <a href="" ng-class="{'selected' : currentStep >= 1, 'done' : currentStep > 1}" class="selected" style="">
-              <div class="stepNumber">
-                1
-              </div>
-              <span class="stepDesc text-small"> Choose Source </span>
-            </a>
-          </li>
-          <li ng-click="form.goTo(Form, 2)">
-            <a href="" ng-class="{'selected' : currentStep >= 2, 'done' : currentStep > 2}" class="" style="">
-              <div class="stepNumber">
-                2
-              </div>
-              <span class="stepDesc text-small"> Choose Target </span>
-            </a>
-          </li>
-          <li ng-click="form.goTo(Form, 3)">
-            <a href="" ng-class="{'selected' : currentStep >= 3, 'done' : currentStep > 3}" class="" style="">
-              <div class="stepNumber">
-                3
-              </div>
-              <span class="stepDesc text-small"> Mapping Source and Target </span>
-            </a>
-          </li>
-          <li ng-click="form.goTo(Form, 4)">
-            <a href="" ng-class="{'selected' : currentStep >= 4, 'done' : currentStep > 4}">
-              <div class="stepNumber">
-                4
-              </div>
-              <span class="stepDesc text-small"> Configuration </span>
-            </a>
-          </li>
-        </ul>
-
-        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
-          <label class="stepDesc">This step let you choose the single source of truth for data quality comparision with target, Apollo datasets are enabled, other platofrms are coming soon. Currently you can only select the attributes from one schema</label>
-          <div class="container-fluid">
-            <!-- select db tree -->
-            <div class="col-md-4 col-lg-4 col-sm-4">
-              <fieldset>
-                <legend>Please select schema</legend>
-                <div class="add-dataset" style="color:#b2c831">
-                  <a class="bark-link" href="#/createdataasset">Cannot find your DataAsset? Click here to add</a>
-                </div>
-                <div angular-treeview="true"
-                     tree-model="dbList"
-                     node-id="id"
-                     node-label="name"
-                     node-children="children"
-                     l1-icon="fa fa-database"
-                     l2-icon="fa fa-table"
-                     class="y-scrollable">
-                </div>
-
-              </fieldset>
-            </div>
-
-            <!-- schema definition list -->
-            <div class="col-md-8 col-lg-8 col-sm-8">
-              <fieldset>
-                <legend>
-                  Select attributes
-                </legend>
-                <div class="y-scrollable">
-                  <div>
-                    <label>View schema:</label> <i ng-show="currentNode.parent" style="color:#fff;font-weight: bold;">{{currentNode.parent.name}}.{{currentNode.name}}</i>
-                  </div>
-                  <div>
-                    <table st-table="schemaCollection" class="table table-striped">
-                      <thead>
-                      <tr style="background-color:#7D95CC">
-                        <th><input type="checkbox" ng-click="toggleAll()" ng-model="selectedAll"/></th>
-                        <th>Column Name</th>
-                        <th>Type</th>
-                        <th>Comment</th>
-                      </tr>
-                      </thead>
-                      <tbody>
-                      <tr ng-if="!schemaCollection || schemaCollection.length == 0">
-                        <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
-                      </tr>
-                      <tr ng-repeat="row in schemaCollection">
-                        <td><input type="checkbox"
-                                   value="{{currentNode.name + '.' + row.name}}"
-                                   ng-checked="selection.indexOf(currentNode.name + '.' + row.name) > -1"
-                                   ng-click="toggleSelection($event)"
-                                   ng-model="row.selected"
-                        />
-                        </td>
-                        <td>{{row.name}}</td>
-                        <td>{{row.type}}</td>
-                        <td>{{row.comment}}</td>
-                        <!--<td class="highlight">{{row.sample}}</td>-->
-                      </tr>
-                      </tbody>
-                    </table>
-                  </div>
-                </div>
-              </fieldset>
-            </div>
-
-            <div class="form-group btn-container">
-              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
-                Next <i class="fa fa-arrow-circle-right"></i>
-              </button>
-            </div>
-
-          </div>
-
-        </div>
-
-
-
-        <div id="step-2" ng-show="currentStep == 2" class="formStep" >
-          <label class="stepDesc">This step let you choose the target for data quality comparision with source, Apollo datasets are enabled, other platforms are coming soon</label>
-          <div class="container-fluid">
-            <!-- select db tree -->
-            <div class="col-md-4 col-lg-4 col-sm-4">
-              <fieldset>
-                <legend>Please select schema</legend>
-                <div angular-treeview="true"
-                     tree-model="dbListTarget"
-                     node-id="id"
-                     node-label="name"
-                     node-children="children"
-                     label-select="selectNodeLabelTarget"
-                     l1-icon="fa fa-database"
-                     l2-icon="fa fa-table"
-                     class="y-scrollable">
-                </div>
-
-              </fieldset>
-            </div>
-
-            <!-- schema definition list -->
-            <div class="col-md-8 col-lg-8 col-sm-8">
-              <fieldset>
-                <legend>
-                  Select attributes
-                </legend>
-                <div class="y-scrollable">
-                  <div>
-                    <label>View schema:</label> <i ng-show="currentNodeTarget.parent" style="color:#fff;font-weight: bold;">{{currentNodeTarget.parent.name}}.{{currentNodeTarget.name}}</i>
-                  </div>
-                  <div>
-                    <table st-table="schemaCollection" class="table table-striped">
-                      <thead>
-                      <tr style="background-color:#7D95CC">
-                        <th><input type="checkbox" ng-click="toggleAllTarget()" ng-model="selectedAllTarget"/></th>
-                        <th>Column Name</th>
-                        <th>Type</th>
-                        <th>Comment</th>
-
-                      </tr>
-                      </thead>
-                      <tbody>
-                      <tr ng-if="!schemaCollectionTarget || schemaCollectionTarget.length == 0">
-                        <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
-                      </tr>
-                      <tr ng-repeat="row in schemaCollectionTarget">
-                        <td><input type="checkbox"
-                                   value="{{currentNodeTarget.name + '.' + row.name}}"
-                                   ng-checked="selectionTarget.indexOf(currentNodeTarget.name + '.' + row.name) > -1"
-                                   ng-click="toggleSelectionTarget($event)"
-                                   ng-model="row.selected"
-                        />
-                        </td>
-                        <td>{{row.name}}</td>
-                        <td>{{row.type}}</td>
-                        <td>{{row.comment}}</td>
-                      </tr>
-                      </tbody>
-                    </table>
-                  </div>
-                </div>
-              </fieldset>
-            </div>
-
-            <div class="form-group btn-container" >
-              <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
-                <i class="fa fa-arrow-circle-left"></i> Back
-              </button>
-              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
-                Next <i class="fa fa-arrow-circle-right"></i>
-              </button>
-            </div>
-          </div>
-        </div>
-
-        <div id="step-3" ng-show="currentStep == 3" class="formStep" >
-          <label class="stepDesc">This step let you map the target data fields to source fields, you can choose the related fields from dropdown list of source</label>
-          <div class="container-fluid">
-
-            <!-- schema definition list -->
-            <div class="col-md-12 col-lg-12 col-sm-12">
-              <fieldset>
-                <legend>
-                  Map the fields
-                </legend>
-
-                <div class="y-scrollable">
-
-                  <div class="container col-md-12 col-lg-12 col-sm-12">
-                    <div style="color:#b2c831">
-                      <i class="fa fa-info-circle"></i> Please make sure to select a primary key in "PK?" column
-                    </div>
-                    <table class="table table-striped">
-                      <thead style="">
-                      <tr style="background-color:#7D95CC;font-size:20px">
-                        <th style="width:40%;">Target Fields</th>
-                        <th style="width:10%;text-align:center">Map To</th>
-                        <th style="width:40%;text-align:center">Source Fields</th>
-                      </tr>
-                      </thead>
-                      <tbody>
-                      <tr ng-repeat="item in selectionTarget" >
-                        <td>{{currentNodeTarget.parent[0].dbName}}.{{item}}</td>
-                        <td style="text-align:center;">
-                          <select ng-model="matches[$index]" class="form-control" ng-init="matches[$index]='=='" style="background:#00FFFF;font-weight:bold" id="mapRule">
-                            <option ng-repeat="func in matchFunctions" value="{{func}}">{{func}}</option>
-                          </select>
-                        </td>
-                        <td>
-                          <select ng-model="mappings[$index]" class="form-control">
-                            <option value="">---Please select---</option>
-                            <option ng-repeat="itemSrc in selection" value="{{itemSrc}}">{{currentNode.parent[0].dbName}}.{{itemSrc}}</option>
-
-                          </select>
-
-                        </td>
-
-                      </tr>
-
-                      </tbody>
-                    </table>
-                    <p>
-                      <label style="color:#B2C831">Accuracy Calculation Formula as Below:</label>
-                    </p>
-
-                    <div class="col-md-12 col-lg-12 col-sm-12" style="color:#fff;font-size:16px;display: flex;align-items: center">
-
-                      <div class="" style="text-align:right;display:block;float:left;width:20%;">
-                        Accuracy Rate(%) =
-                      </div>
-                      <div class="" style="text-align:center;display:block;float:left;margin:0 10px 0 10px">
-                        <div class="formula-text-up" style="border-bottom:1px solid;">
-                          Total Count of Matched records between <span class="badge">{{selectionTarget.length}}</span> <span style="color:green;">{{currentNodeTarget.name}}</span>  and <span class="badge">{{mappings.length}}</span> <span style="color:green;">{{currentNode.name}}</span>  fields
-                        </div>
-                        <div class="">
-                          Total Count of records in <span style="color:green;font-weight:bold;">{{currentNode.parent[0].dbName}}.{{currentNode.name}}</span>
-                        </div>
-                      </div>
-                      <div class="" style="text-align:left;display:block;float:left;width:10%;">
-                        x 100%
-                      </div>
-
-                    </div>
-
-                  </div>
-
-                </div>
-              </fieldset>
-            </div>
-
-            <div class="form-group btn-container" >
-              <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
-                <i class="fa fa-arrow-circle-left"></i> Back
-              </button>
-              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
-                Next <i class="fa fa-arrow-circle-right"></i>
-              </button>
-            </div>
-          </div>
-        </div>
-
-        <div id="step-4" ng-show="currentStep == 4" class="formStep" >
-          <label class="stepDesc">Please setup the model required information</label>
-          <div class="container-fluid">
-
-            <!-- schema definition list -->
-            <div class="col-md-12 col-lg-12 col-sm-12">
-              <fieldset>
-                <legend>
-                  Required Information
-                </legend>
-                <div class="y-scrollable">
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Measure Name<span class="symbol required"></span>:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <input type="text" class="form-control" ng-model="basic.name" name="ruleName" placeholder="Please input the rule name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
-                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
-                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Measure Description:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <input type="text" class="form-control" ng-model="basic.desc" placeholder="Please input detail description of your model">
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Measure Type:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <select id="typeSelector" class="form-control" ng-model="basic.type" ng-init="basic.type='0'" disabled required>
-                          <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
-                        </select>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Organization:
-                      </label>
-
-                      <!--<div class="col-md-10 col-lg-10 col-sm-10 ">-->
-                      <!--<select id="systemSelector" class="form-control" ng-model="form.basic.system">-->
-                      <!--<option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>-->
-                      <!--</select>-->
-
-
-                      <!--</div>-->
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <input type="text" id="systemSelector" class="form-control" ng-model="basic.system"  required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
-
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        DataAsset:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10">
-                        <input type="text" class="form-control" ng-model="dataAsset" disabled>
-                      </div>
-                    </div>
-                  </div>
-
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Owner:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10">
-                        <input type="text"  class="form-control" ng-model="basic.owner" ng-init="basic.owner=ntAccount" disabled>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-
-                <!-- <div style="color:#fff">
-                  <label style="color:#b2c831">Tips: </label>After submitted, please go to "Rule Repository" to check the rule status
-                </div> -->
-
-                <div style="color:#b2c831">
-                  <p>
-                    <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/rules">Models</a>" to check the model status
-                  </p>
-                </div>
-
-              </fieldset>
-            </div>
-
-            <div class="form-group btn-container" >
-              <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
-                <i class="fa fa-arrow-circle-left"></i> Back
-              </button>
-              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
-                <!-- <button class="btn btn-primary btn-o next-step btn-wide pull-right" data-toggle="modal" data-target="#confirm"> -->
-                Submit
-              </button>
-            </div>
-          </div>
-        </div>
-
-        <div class="modal fade" id="confirm" role="dialog">
-          <div class="modal-dialog modal-xg modal-lg">
-            <div class="modal-content">
-              <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-                <h4 class="modal-title">Save the model with the below information?</h4>
-              </div>
-              <div class="modal-body">
-                <ng-include src="'/pages/rules/confirmation-ac.html'"/>
-              </div>
-              <div class="modal-footer">
-                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
-                <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
-              </div>
-            </div>
-          </div>
-        </div>
-    </form>
-  </div><!--//row-->
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/createrule-an.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/createrule-an.html b/ui/pages/rules/createrule-an.html
deleted file mode 100644
index 47a29b3..0000000
--- a/ui/pages/rules/createrule-an.html
+++ /dev/null
@@ -1,406 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
-  </div><!--//row-->
-  <div class="row">
-    <form name="Form" id="form" novalidate>
-      <div id="wizard" class="swMain" >
-        <ul>
-						<li ng-click="form.goTo(Form, 1)">
-							<a href="" ng-class="{'selected' : currentStep >= 1, 'done' : currentStep > 1}" class="selected" style="">
-								<div class="stepNumber">
-									1
-								</div>
-								<span class="stepDesc text-small"> Choose Target </span>
-							</a>
-						</li>
-						<li ng-click="form.goTo(Form, 2)">
-							<a href="" ng-class="{'selected' : currentStep >= 2, 'done' : currentStep > 2}" class="" style="">
-								<div class="stepNumber">
-									2
-								</div>
-								<span class="stepDesc text-small"> Select Models </span>
-							</a>
-						</li>
-						<li ng-click="form.goTo(Form, 3)">
-							<a href="" ng-class="{'selected' : currentStep >= 3, 'done' : currentStep > 3}" class="" style="">
-								<div class="stepNumber">
-									3
-								</div>
-								<span class="stepDesc text-small"> Configuration </span>
-							</a>
-						</li>
-
-					</ul>
-
-        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
-          <label class="stepDesc">This step let you choose the target for data quality model, Apollo datasets are enabled, other platofrms are coming soon. </label>
-
-					<div class="container-fluid">
-            <!-- select db tree -->
-						<div class="col-md-4 col-lg-4 col-sm-4">
-							<fieldset>
-							  <legend>Please select schema</legend>
-                <div class="add-dataset" style="color:#b2c831">
-                    <a class="bark-link" href="#/createdataasset">Cannot find your DataAsset? Click here to add</a>
-                </div>
-
-                <div angular-treeview="true"
-                      tree-model="dbList"
-                      node-id="id"
-                      node-label="name"
-                      node-children="children"
-                      l1-icon="fa fa-database"
-                      l2-icon="fa fa-table"
-                      l3-icon="fa fa-file-text-o"
-                      class="y-scrollable">
-                </div>
-
-              </fieldset>
-						</div>
-
-            <!-- schema definition list -->
-						<div class="col-md-8 col-lg-8 col-sm-8">
-							<fieldset>
-								<legend>
-									<!-- Select one attribute -->
-                  Schema definition
-								</legend>
-
-								<div class="y-scrollable">
-                  <div>
-                   <label>View schema:</label> <i ng-show="currentNode.parent" style="color:#fff;font-weight: bold;">{{currentNode.parent.name}}.{{currentNode.name}}</i>
-                  </div>
-                  <!-- <div>
-                   <label>Selected Column:</label> <i style="color:#fff;font-weight: bold;">{{form.selection}}</i>
-                  </div> -->
-
-                 <div>
-                   <table st-table="schemaCollection" class="table table-striped">
-                   	<thead>
-                     	<tr style="background-color:#7D95CC">
-                        <!-- <th></th> -->
-                     		<th>Column Name</th>
-                     		<th>Description</th>
-                     		<th>Data Type</th>
-                     		<th>Sample Data</th>
-
-                     	</tr>
-                   	</thead>
-                   	<tbody>
-                       <tr ng-if="!schemaCollection || schemaCollection.length == 0">
-                         <td colspan="5" style="text-align:center" ><span class="highlight">Please select a schema from the left tree first</span></td>
-                       </tr>
-                     	<tr ng-repeat="row in schemaCollection">
-                        <!-- <td><input type="radio"
-                              name="selAttr"
-                              value="{{row.name}}"
-                              ng-model="form.selection"
-                            />
-                        </td> -->
-                        <td>{{row.name}}</td>
-                     		<td>{{row.desc}}</td>
-                        <td>{{row.type}}</td>
-                        <td class="highlight">{{row.sample}}</td>
-                     	</tr>
-                   	</tbody>
-                   </table>
-                 </div>
-
-                 <div style="color:#b2c831">
-                   <p ng-show="currentNode.parent">
-                     <i class="fa fa-info-circle"></i> Total Count of this schema will be applied to the machine learning algorithm
-                   </p>
-                 </div>
-                </div>
-              </fieldset>
-            </div>
-
-            <div class="form-group btn-container">
-							<button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
-								Next <i class="fa fa-arrow-circle-right"></i>
-							</button>
-						</div>
-
-          </div>
-
-      </div>
-
-
-
-
-      <div id="step-2" ng-show="currentStep == 2" class="formStep" >
-        <label class="stepDesc">Please choose one of the statistical techniques provided below for automatically detecting anomalies:</label>
-        <div class="container-fluid">
-
-
-          <div class="col-md-12 col-lg-12 col-sm-12">
-            <fieldset>
-              <!-- <legend>
-                Map the fields
-              </legend> -->
-
-              <div class="y-scrollable">
-
-                <div class="container col-md-12 col-lg-12 col-sm-12">
-                  <div class="row">
-
-                    <div class="col-md-6 col-lg-6 col-sm-6">
-
-                      <h5>
-                        <input name="anType" type="radio" ng-model="form.anType" value="1" ng-init="form.anType=1" style="width:1em;height:1em;"/>
-                        <span>History Trend Detection</span>
-                      </h5>
-
-                        <label style="color:#fff;">This is a method of evaluating two or more measured events to comparison the results at one time period with those from another time period (or series of time periods), on an yearly, monthly, weekly, daily or hourly basis. Currently weekly comparision is supported.</label>
-
-                    </div>
-                    <div class="col-md-6 col-lg-6 col-sm-6">
-                      <div class="container-fluid">
-                        <!-- <p>Here's an example for Year over Year difference calculation</p> -->
-                        <img src="/img/yoy.png" style="max-height: 200px;width:100%"/>
-                      </div>
-                    </div>
-
-                  </div>
-                  <br/>
-                  <div class="row">
-
-                    <div class="col-md-6 col-lg-6 col-sm-6">
-                      <h5>
-                        <input name="anType" type="radio" ng-model="form.anType" value="3" style="width:1em;height:1em;"/>
-                        <span>Deviation Detection(Based on MAD)</span>
-                      </h5>
-
-                        <label style="color:#fff;">Deviation detection algorithm usually look at a given time window of a metric time series and establish an upper and lower band for accepted deviations and assume any data point out of those band as a deviation.
-                          <a href="https://en.wikipedia.org/wiki/Median_absolute_deviation" target="_blank">MAD(Median absolute deviation)</a> is a robust measure of the variability of a univariate sample of quantitative data
-                        </label>
-
-                    </div>
-                    <div class="col-md-6 col-lg-6 col-sm-6">
-                      <div class="container-fluid">
-                        <!-- <p>Here's an example for Year over Year difference calculation</p> -->
-                        <img src="/img/mad.png" style="max-height: 200px;width:100%"/>
-                      </div>
-                    </div>
-
-                  </div>
-                  <br/>
-                  <div class="row">
-                    <div class="col-md-6 col-lg-6 col-sm-6">
-                      <h5>
-                        <input name="anType" type="radio" ng-model="form.anType" value="2" style="width:1em;height:1em;"/>
-                        Bollinger Bands Detection
-                      </h5>
-
-                      <label style="color:#fff">
-                        <a href="https://en.wikipedia.org/wiki/Bollinger_Bands" target="_blank">Bollinger Bands</a> are volatility bands placed above and below a moving average. Volatility is based on the standard deviation, which changes as volatility increases and decreases. The bands automatically widen when volatility increases and narrow when volatility decreases.
-                      </label>
-                    </div>
-                    <div class="col-md-6 col-lg-6 col-sm-6">
-                      <div class="container-fluid">
-                        <!-- <p>Here's an example for Bollinger Bands</p> -->
-                        <img src="/img/bollinger.png" style="max-height: 200px;width:100%"/>
-                      </div>
-                    </div>
-
-                  </div>
-
-                </div>
-
-              </div>
-            </fieldset>
-          </div>
-
-          <div class="form-group btn-container" >
-            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
-                <i class="fa fa-arrow-circle-left"></i> Back
-            </button>
-            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.next(Form)">
-                Next <i class="fa fa-arrow-circle-right"></i>
-            </button>
-          </div>
-        </div>
-      </div>
-
-      <div id="step-3" ng-show="currentStep == 3" class="formStep" >
-        <label class="stepDesc">Please setup the model required information</label>
-        <div class="container-fluid">
-
-          <!-- schema definition list -->
-          <div class="col-md-12 col-lg-12 col-sm-12">
-            <fieldset>
-              <legend>
-                Required Information
-              </legend>
-              <div class="y-scrollable">
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Model Name<span class="symbol required"></span>:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <input type="text" class="form-control" ng-model="form.basic.name" name="ruleName" placeholder="Please input the rule name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
-                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
-                      <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Model Definition:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <input type="text" class="form-control" ng-model="form.basic.desc" placeholder="Please input detail description of your model">
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Model Type:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <select id="typeSelector" class="form-control" ng-model="form.basic.type" ng-init="form.basic.type='2'" disabled required>
-                        <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
-                      </select>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Organization:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <select id="systemSelector" class="form-control" ng-model="form.basic.system" required disabled>
-                        <option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>
-                      </select>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      DataAsset:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                      <input type="text" class="form-control" ng-model="currentNode.name" disabled>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group" ng-class="{'has-error':Form.threshold.$invalid}">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Threshold:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                        <input type="number" class="form-control" ng-model="form.basic.threshold" name="threshold">
-                        <span class="error text-small block" ng-if="Form.threshold.$error.number">Only number is allowed</span>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Schedule Type:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10 ">
-                      <select class="form-control" ng-init="form.basic.scheduleType='1'" ng-model="form.basic.scheduleType" ng-init="form.basic.scheduleType='0'">
-                        <option ng-repeat="row in scheduleTypes" value="{{$index}}" >{{row}}</option>
-                      </select>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group" ng-class="{'has-error':Form.email.$dirty&&Form.email.$invalid, 'has-success':Form.email.$valid}">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Notification email<span class="symbol required"></span>:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                      <input type="email"  class="form-control" ng-model="form.basic.email" name="email" ng-required="currentStep==3" placeholder="Please input valid email address" ng-pattern="'^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'">
-                      <span class="error text-small block" ng-if="Form.email.$dirty&&Form.email.$invalid">Please, enter a valid email address.</span>
-                    </div>
-                  </div>
-                </div>
-                <div class="col-md-12 col-lg-12 col-sm-12">
-                  <div class="form-group">
-                    <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                      Owner:
-                    </label>
-
-                    <div class="col-md-10 col-lg-10 col-sm-10">
-                      <input type="text"  class="form-control" ng-model="form.basic.owner" ng-init="form.basic.owner=ntAccount" disabled>
-                    </div>
-                  </div>
-                </div>
-              </div>
-
-              <!-- <div style="color:#fff">
-                <label style="color:#b2c831">Tips: </label>After submitted, please go to "Rule Repository" to check the rule status
-              </div> -->
-
-              <div style="color:#b2c831">
-                <p>
-                  <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href="#/rules">Models</a>" to check the model status
-                </p>
-              </div>
-
-            </fieldset>
-          </div>
-
-          <div class="form-group btn-container" >
-            <button class="btn btn-primary btn-o back-step btn-wide pull-left" ng-click="form.prev(Form)">
-                <i class="fa fa-arrow-circle-left"></i> Back
-            </button>
-            <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
-            <!-- <button class="btn btn-primary btn-o next-step btn-wide pull-right" data-toggle="modal" data-target="#confirm"> -->
-                Submit
-            </button>
-          </div>
-        </div>
-      </div>
-
-      <div class="modal fade" id="confirm-an" role="dialog">
-        <div class="modal-dialog modal-xg modal-lg">
-          <div class="modal-content">
-            <div class="modal-header">
-              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-              <h4 class="modal-title">Save the model with the below information?</h4>
-            </div>
-            <div class="modal-body">
-              <ng-include src="'/pages/rules/confirmation-an.html'"/>
-            </div>
-            <div class="modal-footer">
-              <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
-              <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
-            </div>
-          </div>
-        </div>
-      </div>
-    </form>
-  </div><!--//row-->
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/1fa4f243/ui/pages/rules/createrule-pu.html
----------------------------------------------------------------------
diff --git a/ui/pages/rules/createrule-pu.html b/ui/pages/rules/createrule-pu.html
deleted file mode 100644
index 2d767f4..0000000
--- a/ui/pages/rules/createrule-pu.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<!--
-	Copyright (c) 2016 eBay Software Foundation.
-	Licensed 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="container-fluid">
-  <div class="row">
-    <h5 class="over-title margin-bottom-15">Create DQ Model</h5>
-  </div><!--//row-->
-  <div class="row">
-    <form name="Form" id="form" novalidate>
-      <div id="wizard" class="swMain" >
-        <ul>
-						<li>
-							<a href="" class="onlyone selected" >
-								<div class="stepNumber">
-									1
-								</div>
-								<span class="stepDesc text-small"> Configuration </span>
-							</a>
-        </ul>
-
-        <div id="step-1" ng-show="currentStep == 1" class="formStep" >
-          <label class="stepDesc">Please setup the model required information</label>
-          <div class="container-fluid">
-
-            <!-- schema definition list -->
-            <div class="col-md-12 col-lg-12 col-sm-12">
-              <fieldset>
-                <legend>
-                  Required Information
-                </legend>
-                <div class="y-scrollable">
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group" ng-class="{'has-error':Form.ruleName.$dirty&&Form.ruleName.$invalid, 'has-success':Form.ruleName.$valid}">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Model Name<span class="symbol required"></span>:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <input type="text" class="form-control" ng-model="form.basic.name" name="ruleName" placeholder="Please input the rule name" required ng-pattern="'([0-9a-zA-Z\\_\\-])+'">
-                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.required">Model Name is required</span>
-                        <span class="error text-small block " ng-if="Form.ruleName.$dirty && Form.ruleName.$error.pattern">Only letter, number, "-" and "_" are allowed</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Model Definition:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <input type="text" class="form-control" ng-model="form.basic.desc" placeholder="Please input detail description of your model">
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label for="typeSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Model Type:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <select id="typeSelector" class="form-control" ng-model="form.basic.type" ng-init="form.basic.type='3'" disabled required>
-                          <option ng-repeat="row in ruleTypes" value="{{$index}}" >{{row}}</option>
-                        </select>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label for="systemSelector" class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Organization<span class="symbol required"></span>:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <select id="systemSelector" class="form-control" ng-model="form.basic.system" ng-init="form.basic.system='-1'" ng-change="sysChange()" required>
-                          <option value="-1">Please select...</option>
-                          <option ng-repeat="row in ruleSystems" value="{{$index}}" >{{row}}</option>
-                        </select>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        DataAsset:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10">
-                        <!-- <input type="text" class="form-control" ng-model="form.basic.dataaset"> -->
-                        <select id="assetSelector" class="form-control" ng-model="form.basic.dataaset">
-                          <option value="">Please select...(optional)</option>
-                          <option ng-repeat="row in assets" value="{{row.name}}" >{{row.name}}</option>
-                        </select>
-                     </div>
-
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group" ng-class="{'has-error':Form.threshold.$invalid}">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Threshold:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10">
-                          <input type="number" class="form-control" ng-model="form.basic.threshold" name="threshold">
-                          <span class="error text-small block" ng-if="Form.threshold.$error.number">Only number is allowed</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Schedule Type:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <select class="form-control" ng-init="form.basic.scheduleType='1'" ng-model="form.basic.scheduleType" ng-init="form.basic.scheduleType='0'">
-                          <option ng-repeat="row in scheduleTypes" value="{{$index}}" >{{row}}</option>
-                        </select>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group" ng-class="{'has-error':Form.email.$dirty&&Form.email.$invalid, 'has-success':Form.email.$valid}">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Notification email<span class="symbol required"></span>:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10">
-                        <input type="email"  class="form-control" ng-model="form.basic.email" name="email" ng-required="currentStep==1" placeholder="Please input valid email address" ng-pattern="'^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$'">
-                        <span class="error text-small block" ng-if="Form.email.$dirty&&Form.email.$invalid">Please, enter a valid email address.</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group">
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Owner:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10">
-                        <input type="text"  class="form-control" ng-model="form.basic.owner" ng-init="form.basic.owner=ntAccount" disabled>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group " >
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Publish URL:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 has-error">
-                        <input type="text"  class="form-control" ng-model="form.publishUrl" ng-init="form.publishUrl='https://bark.vip.ebay.com/api/v1/metrics/&lt;name&gt;'" disabled>
-                        <span class="error text-small block" >Please remember this URL which is used to publish your metrics</span>
-                      </div>
-                    </div>
-                  </div>
-                  <div class="col-md-12 col-lg-12 col-sm-12">
-                    <div class="form-group " >
-                      <label class="col-md-2 col-lg-2 col-sm-2 control-label">
-                        Publish data format:
-                      </label>
-
-                      <div class="col-md-10 col-lg-10 col-sm-10 ">
-                        <pre style="background-color:transparent;color:inherit;border:none">Method: POST
-  Endpoint: {{form.publishUrl}}
-  Body:
-  {
-    "metricName": "{{form.basic.name}}",
-    "timestamp": 1463373496583,
-    "value": 99.9
-  }</pre>
-
-                      </div>
-                    </div>
-                  </div>
-
-
-                </div>
-
-                <div class="createrule-hint">
-                  <p>
-                    <i class="fa fa-info-circle"></i> After submitted, please go to "<a class="bark-link" href='#/rules'>Models</a>" to check the model status
-                  </p>
-                </div>
-
-
-              </fieldset>
-
-            </div>
-
-            <div class="form-group btn-container" >
-              <button class="btn btn-primary btn-o next-step btn-wide pull-right" ng-click="form.submit(Form)">
-                  Submit
-              </button>
-            </div>
-          </div>
-        </div>
-
-        <div class="modal fade" id="confirm-pu" role="dialog">
-          <div class="modal-dialog modal-xg modal-lg">
-            <div class="modal-content">
-              <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
-                <h4 class="modal-title">Save the model with the below information?</h4>
-              </div>
-              <div class="modal-body">
-                <ng-include src="'/pages/rules/confirmation-pu.html'"/>
-              </div>
-              <div class="modal-footer">
-                <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
-                <button type="button" class="btn btn-primary" ng-click="form.save()">Save</button>
-              </div>
-            </div>
-          </div>
-        </div>
-      </div>
-    </form>
-  </div><!--//row-->
-</div>