You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@eagle.apache.org by ha...@apache.org on 2015/11/30 03:50:36 UTC

[02/44] incubator-eagle git commit: update pom using npm to install web deps

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/css/alerts/policy.css
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/css/alerts/policy.css b/eagle-webservice/src/main/webapp/public/css/alerts/policy.css
deleted file mode 100755
index 80c72e6..0000000
--- a/eagle-webservice/src/main/webapp/public/css/alerts/policy.css
+++ /dev/null
@@ -1,61 +0,0 @@
-@CHARSET "UTF-8";
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#advanced {
-	padding: 0;
-	margin: 0;
-	vertical-align: baseline;
-}
-
-#metaConfig .metaList p.text-muted {
-	padding-left: 15px;
-}
-
-#metaConfig a[data-toggle="collapse"] {
-	display: block;
-	border-radius: 0;
-	text-align: left;
-}
-
-#metaConfig .conditionDesc {
-	padding-left: 5px;
-	padding-right: 5px;
-}
-
-#metaConfig .conditionItemCntr .collapse-cntr {
-	border: 1px solid #DDD;
-	border-top: none;
-}
-
-#metaConfig .conditionItemCntr:not(:last-child) .collapse-cntr {
-	border-bottom: none;
-}
-
-#metaConfig .collapse-content {
-	padding: 10px;
-}
-
-
-#metaConfig .collapse-content .dropdown-menu {
-	min-width: initial;
-}
-
-#dedupAlertContent label:not(:first-child) {
-	margin-left: 15px;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/css/alerts/policylist.css
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/css/alerts/policylist.css b/eagle-webservice/src/main/webapp/public/css/alerts/policylist.css
deleted file mode 100755
index 4140194..0000000
--- a/eagle-webservice/src/main/webapp/public/css/alerts/policylist.css
+++ /dev/null
@@ -1,22 +0,0 @@
-@CHARSET "UTF-8";
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#newPolicy {
-	position: absolute;
-	right: 10px;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/css/alerts/policyview.css
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/css/alerts/policyview.css b/eagle-webservice/src/main/webapp/public/css/alerts/policyview.css
deleted file mode 100755
index 092fb38..0000000
--- a/eagle-webservice/src/main/webapp/public/css/alerts/policyview.css
+++ /dev/null
@@ -1,30 +0,0 @@
-@CHARSET "UTF-8";
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-.small-box > a.inner {
-	color: #FFF;
-	display: block;
-}
-
-.small-box > a.inner h3 {
-	overflow: hidden;
-	white-space: nowrap;
-	text-overflow: ellipsis;
-	font-size: 32px;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/css/alerts/streamlist.css
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/css/alerts/streamlist.css b/eagle-webservice/src/main/webapp/public/css/alerts/streamlist.css
deleted file mode 100755
index 69db0e8..0000000
--- a/eagle-webservice/src/main/webapp/public/css/alerts/streamlist.css
+++ /dev/null
@@ -1,23 +0,0 @@
-@CHARSET "UTF-8";
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#streamList ul li .label {
-	width: 55px;
-	display: inline-block;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/css/dashboards/adhoc.css
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/css/dashboards/adhoc.css b/eagle-webservice/src/main/webapp/public/css/dashboards/adhoc.css
deleted file mode 100755
index d0c29a7..0000000
--- a/eagle-webservice/src/main/webapp/public/css/dashboards/adhoc.css
+++ /dev/null
@@ -1,58 +0,0 @@
-@CHARSET "UTF-8";
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#chartList .box-footer {
-	display: block!important;
-}
-
-#chartList .box-footer .grpBy {
-	width: 220px;
-	text-align: right;
-}
-
-#chartList .box-footer .grpBy select {
-	padding: 1px 3px;
-	height: auto;
-	max-width: 150px;
-	display: inline-block;
-}
-
-
-#chartList .box-footer .chart-entity-drillDownPath {
-	display: none;
-}
-
-#chartList .chartOperation {
-	display: inline;
-}
-
-#chartList .chartTypeGrp {
-	margin-left: 10px;
-	padding-left: 10px;
-	border-left: 1px solid #DDDDDD;
-}
-
-#chartList .stack {
-	display: inline-block;
-	margin: 0 0 0 10px;
-}
-
-#chartList .viewQuery {
-	cursor: pointer;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/css/dashboards/view.css
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/css/dashboards/view.css b/eagle-webservice/src/main/webapp/public/css/dashboards/view.css
deleted file mode 100755
index 4aacfe1..0000000
--- a/eagle-webservice/src/main/webapp/public/css/dashboards/view.css
+++ /dev/null
@@ -1,18 +0,0 @@
-@CHARSET "UTF-8";
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/css/main.css
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/css/main.css b/eagle-webservice/src/main/webapp/public/css/main.css
deleted file mode 100755
index a82f336..0000000
--- a/eagle-webservice/src/main/webapp/public/css/main.css
+++ /dev/null
@@ -1,553 +0,0 @@
-@CHARSET "UTF-8";
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* Frame */
-body.no-sidebar .content-wrapper {
-	margin-left: 0;
-
-	-webkit-transition: none;
-	-moz-transition: none;
-	-o-transition: none;
-	transition: none;
-}
-
-/* Navigation */
-.navbar-nav > .user-menu > .dropdown-menu > li.user-header .img-circle {
-	display: inline-block;
-	border: 3px solid;
-	border-color: rgba(255,255,255,0.2);
-	width: 90px;
-	height: 90px;
-	margin-top: 10px;
-}
-
-.navbar-nav > .user-menu > .dropdown-menu > li.user-header .fa {
-	font-size: 60px;
-	color: rgba(255,255,255,0.8);
-	margin-top: 10px;
-}
-
-/* Common */
-a {
-	cursor: pointer;
-}
-
-.table.table-sm>tbody>tr>td,
-.table.table-sm>tbody>tr>th,
-.table.table-sm>tfoot>tr>td,
-.table.table-sm>tfoot>tr>th,
-.table.table-sm>thead>tr>td,
-.table.table-sm>thead>tr>th{
-	padding: 3px 8px;
-}
-
-.table thead th .fa.fa-sort,
-.table thead th .fa.fa-sort-asc,
-.table thead th .fa.fa-sort-desc {
-	margin-top: 5px;
-	opacity: 0.3;
-	float: right;
-}
-.table thead th:hover .fa.fa-sort,
-.table thead th:hover .fa.fa-sort-asc,
-.table thead th:hover .fa.fa-sort-desc {
-	opacity: 0.8;
-}
-
-.table tr th,
-.table tr td {
-	-webkit-transition: background .5s linear;
-	-o-transition: background .5s linear;
-	transition: background .5s linear;
-}
-
-.sortTable-cntr .pagination {
-	margin-top: 0;
-}
-
-.table th.input-field,
-.table td.input-field {
-	padding: 0;
-	vertical-align: middle;
-}
-
-.table th.input-field > input,
-.table td.input-field > input,
-.table th.input-field > select,
-.table td.input-field > select {
-	border: none;
-	transition: border-color 0s;
-}
-
-.table th.input-field > input:focus,
-.table td.input-field > input:focus,
-.table th.input-field > select:focus,
-.table td.input-field > select:focus {
-	box-shadow: inset 1px 1px 0px #3c8dbc, inset -1px -1px 0px #3c8dbc;
-}
-
-.table th.input-field > input.has-warning,
-.table td.input-field > input.has-warning {
-	box-shadow: inset 1px 1px 0px #f39c12, inset -1px -1px 0px #f39c12;
-}
-
-/* Box */
-.small-box > a.inner {
-	color: #FFF;
-	display: block;
-}
-
-.small-box > a.inner h3 {
-	overflow: hidden;
-	white-space: nowrap;
-	text-overflow: ellipsis;
-	font-size: 32px;
-}
-
-.info-box.bg-gray,
-.info-box a {
-	color: #FFFFFF;
-}
-.info-box a:hover {
-	color: #FFFFFF;
-	text-decoration: underline;
-}
-
-.info-box-content a.config {
-	color: rgba(255,255,255,0.8);
-}
-.info-box-content a.config:hover {
-	color: #FFFFFF;
-}
-
-.info-box-content.box-clickable {
-	box-shadow: 0 0 3px;
-}
-.box-clickable {
-	cursor: pointer;
-}
-
-.info-box-content .info-box-text.text-large {
-	font-size: 26px;
-	margin: 5px 0 10px 0;
-}
-
-
-body .tooltip-inner {
-	max-width: 500px;
-}
-
-.text-nowrap {
-	white-space: nowrap;
-}
-
-.text-ellipsis,
-.label.text-ellipsis {
-	overflow:hidden;
-	text-overflow:ellipsis;
-	display: inline-block;
-	white-space: nowrap;
-	max-width: 100%;
-}
-td.text-ellipsis {
-	display: table-cell;
-}
-
-.btn.btn-xs.sm {
-	font-size: 12px;
-	padding: 2px 6px;
-}
-
-.noSelect {
-	-khtml-user-select: none;
-	-moz-user-select: none;
-	-ms-user-select: none;
-	user-select: none;
-	-webkit-touch-callout: none;
-	-webkit-user-select: none;
-}
-
-.inline-group dl,
-.inline-group dl dt,
-.inline-group dl dd {
-	display: inline-block;
-}
-
-.inline-group dl {
-	margin-right: 35px;
-}
-.inline-group dl dt {
-	margin-right: 20px;
-}
-
-.inline-group.form-inline {
-	margin-top: 5px;
-}
-.inline-group dl {
-	margin-right: 25px;
-}
-.inline-group dl dt {
-	margin-right: 5px;
-}
-
-.search-box {
-	position: relative;
-	margin-bottom: 15px;
-}
-.search-box input[type="search"] {
-	padding-left: 26px;
-}
-.search-box .fa.fa-search {
-	position: absolute;
-	top: 8px;
-	left: 8px;
-	z-index: 2;
-	pointer-events: none;
-	color: #999;
-}
-
-/* Navigation Tab */
-.modal-body ul.nav.nav-tabs {
-	border-bottom-color: #F4F4F4;
-	margin-bottom: 15px;
-}
-
-.modal-body ul.nav.nav-tabs li {
-	border-top: 3px solid #FFFFFF;
-	margin-right: 3px;
-}
-.modal-body ul.nav.nav-tabs li.active {
-	border-top-color: #3c8dbc;
-}
-
-.modal-body ul.nav.nav-tabs li > a,
-.modal-body ul.nav.nav-tabs li > a:active,
-.modal-body ul.nav.nav-tabs li > a:hover {
-	border: none;
-	border-radius: 0;
-	margin: 0;
-	padding: 6px 15px 8px 15px;
-	color: #444;
-}
-.modal-body ul.nav.nav-tabs li:not(.active) > a:hover {
-	background: rgba(0,0,0,0);
-	color: #999;
-}
-.modal-body ul.nav.nav-tabs li.active > a {
-	border-left: 1px solid #F4F4F4;
-	border-right: 1px solid #F4F4F4;
-}
-
-/* Step Navigation */
-.step-cntr .step {
-	background: #3c8dbc;
-	margin: 0 0 20px 0;
-	color: #FFF;
-	height: 60px;
-	border-radius: 3px;
-	box-shadow: 0 1px 1px rgba(0,0,0,0.1);
-	display: block;
-
-	-webkit-transition: background .15s linear;
-	-o-transition: background .15s linear;
-	transition: background .15s linear;
-}
-.step-cntr .step.active {
-	background: #f39c12;
-}
-
-.step-cntr .step h1,
-.step-cntr .step h2,
-.step-cntr .step p {
-	margin: 0;
-	padding: 0;
-	overflow: hidden;
-	white-space: nowrap;
-	text-overflow: ellipsis;
-}
-
-.step-cntr .step h1 {
-	display: inline-block;
-	font-size: 30px;
-	float: left;
-	border-right: 2px solid rgba(255,255,255,0.2);
-	width: 60px;
-	height: 60px;
-	text-align: center;
-	padding-top: 12px;
-	margin-right: 10px;
-}
-.step-cntr .step h2 {
-	font-size: 18px;
-	padding: 8px 0 5px 0;
-}
-
-/* Panel */
-.panel-group.panel-group-sm .panel .panel-heading {
-	padding: 5px 6px 5px 10px;
-}
-.panel-group.panel-group-sm .panel .panel-heading h4 {
-	font-size: 14px;
-}
-.panel-group.panel-group-sm .panel .panel-heading h4 a {
-	display: block;
-}
-.panel-group.panel-group-sm .panel .panel-heading .pull-right {
-	padding-left: 5px;
-	padding-right: 5px;
-	border-radius: 3px;
-}
-
-/* Drop Down */
-.dropdown-menu > li.danger > a {
-	color: #dd4b39;
-}
-.dropdown-menu > li.danger > a:hover {
-	color: #FFFFFF;
-	background: #dd4b39;
-}
-
-/* Input Group */
-.input-group .input-group-btn select {
-	width: auto;
-}
-
-/* Form group */
-.form-group .checkbox {
-	display: inline;
-	margin-right: 10px;
-}
-
-.form-group select.has-warning,
-.form-group input.has-warning {
-	border-color: #f39c12;
-	box-shadow: none;
-}
-
-/* UL */
-ul.path {
-	margin-left: 0;
-}
-
-ul.path li {
-	padding: 0;
-	margin-right: 5px;
-}
-ul.path li a {
-	color: #FFFFFF;
-}
-
-ul.tree {
-	padding: 0 0 0 5px;
-}
-
-ul.tree > li,
-ul.tree > li > ul > li {
-	list-style-type: none;
-}
-
-ul.tree .tree-item .hover {
-	display: none;
-}
-ul.tree .tree-item:hover .hover {
-	display: inline-block;
-}
-
-ul.tree > li > ul {
-	padding: 0 0 0 25px;
-}
-
-ul.tree > li > ul > li.active {
-	background: #F4F4F4;
-}
-
-ul.tree.tree-bordered {
-	border: 1px solid #f4f4f4;
-}
-ul.tree.tree-bordered,
-ul.tree.tree-bordered > li > ul {
-	padding: 0;
-}
-ul.tree.tree-bordered > li:not(:last-child) {
-	border-bottom: 1px solid #f4f4f4;
-}
-ul.tree.tree-bordered > li > ul > li {
-	border-top: 1px solid #f4f4f4;
-}
-ul.tree.tree-bordered > li > span,
-ul.tree.tree-bordered > li > a {
-	display: block;
-	padding: 8px;
-}
-ul.tree.tree-bordered > li > ul > li > span,
-ul.tree.tree-bordered > li > ul > li > a {
-	display: block;
-	padding: 8px 8px 8px 30px;
-}
-
-/* Label */
-.label.label-default {
-	color: #FFFFFF;
-}
-
-/* Chart */
-.chart .chart-header h3 {
-	text-align: center;
-	margin: 10px 0 5px 0;
-}
-.chart .chart-body {
-	height: 200px;
-}
-
-.chart .chart-body .axis path, .axis line {
-	fill: none;
-	stroke: #000;
-	shape-rendering: crispEdges;
-}
-
-.chart .chart-body .bar {
-	fill: steelblue;
-}
-
-/* Tab */
-body .tab-content>.tab-pane {
-	display: block;
-	height: 0px;
-	overflow: hidden;
-	position: relative;
-}
-body .tab-content>.tab-pane.active {
-	height: auto;
-	overflow-y: auto;
-}
-
-/* Customize */
-#content {
-	position: relative;
-}
-
-.page-fixed {
-	position: absolute;
-	top: -45px;
-	right: 0;
-}
-
-@media (max-width:991px) {
-	.page-fixed {
-		top: -70px;
-	}
-}
-
-.fixed-right {
-	position: absolute;
-	right: 0;
-	z-index: 3;
-}
-
-.main-header .logo .logo-lg small {
-	font-size: 12px;
-}
-
-#timeRangePickerCntr .navbar-form {
-	display: inline-block;
-	padding-right: 0;
-}
-
-#timeRangePickerCntr #timeRangePicker {
-	min-width: 300px;
-}
-
-body .login-box, body .register-box {
-	margin: 3% auto;
-}
-
-.content-header > .breadcrumb > li {
-	font-size: 14px;
-}
-
-.daterangepicker .ranges {
-  width: 110px!important;
-}
-.daterangepicker .daterangepicker_start_input,
-.daterangepicker .daterangepicker_end_input {
-	display: block!important;
-	padding: 0!important;
-	float: none!important;
-}
-.daterangepicker .daterangepicker_start_input .input-mini,
-.daterangepicker .daterangepicker_end_input .input-mini {
-	width: 110px!important;
-}
-
-.form-group.inner-icon {
-	position: relative;
-}
-.form-group.inner-icon .fa {
-	position: absolute;
-	left: 10px;
-	top: 10px;
-}
-.form-group.inner-icon input {
-	padding-left: 35px;
-}
-
-#autoRefreshCntr > a {
-	border: none;
-	opacity: 0.3;
-}
-#autoRefreshCntr.autoRefresh > a {
-	opacity: 1;
-}
-
-.table-responsive .row {
-	margin: 0;
-}
-
-
-.content .miao-chart {
-	border: none;
-	margin: 0;
-}
-
-.content .miao-chart .box .chart-entity-title {
-	height: auto;
-	margin: 0;
-}
-
-.content .miao-chart .chart-entity-menu {
-	display: block;
-	top: 5px;
-	right: 25px;
-}
-
-.content .miao-chart .box .chart-entity-menu {
-	display: block;
-	top: 5px;
-	right: 25px;
-	padding-right: 10px;
-	border-right: 1px solid #f4f4f4;
-}
-
-.content .miao-chart .box .chart-entity-drillDownPath .drillDownPath {
-	position: static;
-}
-
-.content .miao-chart[data-miao-drilldown-depth='0'] .box .box-footer {
-	display: none;
-}

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/images/favicon.png
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/images/favicon.png b/eagle-webservice/src/main/webapp/public/images/favicon.png
deleted file mode 100755
index 3bede2a..0000000
Binary files a/eagle-webservice/src/main/webapp/public/images/favicon.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/app.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/app.js b/eagle-webservice/src/main/webapp/public/js/app.js
deleted file mode 100755
index 5f1811b..0000000
--- a/eagle-webservice/src/main/webapp/public/js/app.js
+++ /dev/null
@@ -1,682 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-/* App Module */
-var eagleApp = angular.module('eagleApp', ['ngRoute', 'ngCookies', 'damControllers']);
-
-eagleApp.config(function($routeProvider) {
-	$routeProvider.when('/dam/summary', {
-		templateUrl : 'partials/dam/summary.html',
-		controller : 'summaryCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-
-	// Authorization
-	}).when('/dam/login', {
-		templateUrl : 'partials/dam/login.html',
-		controller : 'authLoginCtrl',
-		access: {skipCheck: true},
-
-	// Policy
-	}).when('/dam/policyList', {
-		templateUrl : 'partials/dam/policyList.html',
-		controller : 'policyListCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/policyList/:dataSource', {
-		templateUrl : 'partials/dam/policyList.html',
-		controller : 'policyListCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/policyDetail/', {
-		templateUrl : 'partials/dam/policyDetail.html',
-		controller : 'policyDetailCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/policyDetail/:encodedRowkey', {
-		templateUrl : 'partials/dam/policyDetail.html',
-		controller : 'policyDetailCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/policyEdit/:encodedRowkey', {
-		templateUrl : 'partials/dam/policyEdit.html',
-		controller : 'policyEditCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/policyCreate/', {
-		templateUrl : 'partials/dam/policyEdit.html',
-		controller : 'policyCreateCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-
-	// Alert
-	}).when('/dam/alertList', {
-		templateUrl : 'partials/dam/alertList.html',
-		controller : 'alertListCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/alertList/:dataSource', {
-		templateUrl : 'partials/dam/alertList.html',
-		controller : 'alertListCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/alertDetail/:encodedRowkey', {
-		templateUrl : 'partials/dam/alertDetail.html',
-		controller : 'alertDetailCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-
-	// Stream
-	}).when('/dam/streamList', {
-		templateUrl : 'partials/dam/streamList.html',
-		controller : 'streamListCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-
-	// Site
-	}).when('/dam/siteList', {
-		templateUrl : 'partials/dam/siteList.html',
-		controller : 'siteListCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-		access: {roles: ["ROLE_ADMIN"]},
-
-	// Sensitivity
-	}).when('/dam/sensitivitySummary', {
-		templateUrl : 'partials/dam/sensitivitySummary.html',
-		controller : 'sensitivitySummaryCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/sensitivity', {
-		templateUrl : 'partials/dam/sensitivity.html',
-		controller : 'sensitivityCtrl',
-		reloadOnSearch: false,
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-
-	// User Profile
-	}).when('/dam/userProfileList', {
-		templateUrl : 'partials/dam/userProfileList.html',
-		controller : 'userProfileListCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-	}).when('/dam/userProfileDetail/:user', {
-		templateUrl : 'partials/dam/userProfileDetail.html',
-		controller : 'userProfileDetailCtrl',
-		resolve: {
-			site: function(Site) {return Site._promise();},
-			auth: function(Authorization) {return Authorization._promise();},
-		},
-
-	}).otherwise({
-		redirectTo : '/dam/summary'
-	});
-});
-
-eagleApp.service('globalContent', function(Entities, $rootScope, $route, $location) {
-	var content = {
-		pageTitle: "",
-		pageSubTitle: "",
-		pageList: [],
-		navPath: [],
-		navMapping: {},
-
-		hideSite: false,
-		lockSite: false,
-
-		dataSrcList: [],
-
-		setConfig: function(config) {
-			// Clean up
-			content.navPath = [];
-
-			// Fill configuration
-			$.extend(content, config);
-		},
-	};
-
-	return content;
-});
-
-// Site
-eagleApp.service('Site', function(Authorization, Entities, $rootScope, $route, $location, $q) {
-	var _currentSite;
-	var content = {};
-
-	content.list = [];
-	content.list.set = {};
-	content.dataSrcList = [];
-
-	content.current = function(site) {
-		if(site) {
-			var _prev = _currentSite;
-			_currentSite = site;
-
-			// Broadcast if site update
-			if(!_prev || _prev.name !== _currentSite.name) {
-				if(sessionStorage) {
-					sessionStorage.setItem("site", _currentSite.name);
-				}
-
-				if(!content.hideSite) $route.reload();
-			}
-		}
-		return _currentSite;
-	};
-	content.find = function(siteName) {
-		return common.array.find(siteName, content.list, "name");
-	};
-	content.url = function(site, url) {
-		if(arguments.length == 1) {
-			url = site;
-		} else {
-			content.current(site);
-		}
-		$location.url(url);
-
-		if ($rootScope.$$phase != '$apply' && $rootScope.$$phase != '$digest') {
-			$rootScope.$apply();
-		}
-	};
-
-	var _promise;
-	content.refresh = function() {
-		content.list = [];
-		content.list.set = {};
-
-		content.dataSrcList = Entities.queryEntities("AlertDataSourceService", '');
-		content.dataSrcList._promise.success(function() {
-			$.each(content.dataSrcList, function(i, dataSrc) {
-				var _site = content.list.set[dataSrc.tags.site];
-				if(!_site) {
-					_site = content.list.set[dataSrc.tags.site] = {
-						name: dataSrc.tags.site,
-						dataSrcList: []
-					};
-					_site.dataSrcList.find = function(dataSrcName) {
-						return common.array.find(dataSrcName, _site.dataSrcList, "tags.dataSource");
-					};
-					content.list.push(_site);
-				}
-				_site.dataSrcList.push(dataSrc);
-
-				// UI visible check
-				if($.inArray(dataSrc.tags.dataSource, app.config.dataSource.uiInvisibleList) !== -1) {
-					dataSrc.hide = true;
-				}
-			});
-
-			if(sessionStorage && content.find(sessionStorage.getItem("site"))) {
-				content.current(content.find(sessionStorage.getItem("site")));
-			} else {
-				content.current(content.list[0]);
-			}
-		});
-
-		_promise = content.dataSrcList._promise;
-		return _promise;
-	};
-
-	content._promise = function() {
-		if(!_promise) {
-			content.refresh();
-		}
-		return _promise;
-	};
-
-	return content;
-});
-
-// Authorization
-eagleApp.service('Authorization', function($http, $location, $cookies) {
-	$http.defaults.withCredentials = true;
-
-	var _path = "";
-	var _userProfile = null;
-
-	var content = {
-		isLogin: true,	// Status mark. Work for UI status check, changed when eagle api return 403 authorization failure.
-		login: function(username, password) {
-			var _hash = btoa(username + ':' + password);
-			return $http({
-				url : app.getURL('userProfile'),
-				method : "GET",
-				headers: {
-					'Authorization': "Basic " + _hash
-				}
-			}).then(function() {
-				content.isLogin = true;
-				return true;
-			}, function() {
-				return false;
-			});
-		},
-		logout: function() {
-			$http({
-				url : app.getURL('logout'),
-				method : "GET",
-			});
-		},
-		path: function(path) {
-			if(typeof path === "string") {
-				_path = path;
-			} else if(path === true) {
-				$location.path(_path || "");
-				_path = "";
-			}
-		},
-	};
-
-	var _promise;
-	content.userProfile = {};
-	content.isRole = function(role) {
-		if(!content.userProfile.roles) return null;
-
-		return content.userProfile.roles[role] === true;
-	};
-
-	content.refresh = function() {
-		_promise = $http({
-			url : app.getURL('userProfile'),
-			method : "GET",
-		}).then(function(data) {
-			content.userProfile = data.data;
-
-			// Role
-			content.userProfile.roles = {};
-			$.each(content.userProfile.authorities, function(i, role) {
-				content.userProfile.roles[role.authority] = true;
-			});
-		});
-		return _promise;
-	};
-
-	content._promise = function() {
-		if(!_promise) {
-			content.refresh();
-		}
-		return _promise;
-	};
-
-	return content;
-});
-
-eagleApp.service('Entities', function($http, $q, $rootScope, $location, Authorization) {
-	// Query
-	function _query(name, kvs) {
-		kvs = kvs || {};
-		var _list = [];
-		var _condition = kvs._condition || {};
-		var _addtionalCondition = _condition.additionalCondition || {};
-
-		// Initial
-		// > Condition
-		delete kvs._condition;
-		if(_condition) {
-			kvs.condition = _condition.condition;
-		}
-
-		// > Values
-		if(!kvs.values) {
-			kvs.values = "*";
-		} else if($.isArray(kvs.values)) {
-			kvs.values = $.map(kvs.values, function(field) {
-				return (field[0] === "@" ? '' : '@') + field;
-			}).join(",");
-		}
-
-		var _url = app.getURL(name, kvs);
-
-		// Fill special parameters
-		// > Query by time duration
-		if(_addtionalCondition._duration) {
-			var _endTime = app.time.now();
-			var _startTime = _endTime.clone().subtract(_addtionalCondition._duration, "ms");
-
-			// Debug usage. Extend more time duration for end time
-			if(_addtionalCondition.__ETD) {
-				_endTime.add(_addtionalCondition.__ETD, "ms");
-			}
-
-			_addtionalCondition._startTime = _startTime;
-			_addtionalCondition._endTime = _endTime;
-
-			var _startTimeStr = _startTime.format("YYYY-MM-DD HH:mm:ss");
-			var _endTimeStr = _endTime.clone().add(1, "s").format("YYYY-MM-DD HH:mm:ss");
-
-			_url += "&startTime=" + _startTimeStr + "&endTime=" + _endTimeStr;
-		} else if(_addtionalCondition._startTime && _addtionalCondition._endTime) {
-			var _startTimeStr = _addtionalCondition._startTime.format("YYYY-MM-DD HH:mm:ss");
-			var _endTimeStr = _addtionalCondition._endTime.clone().add(1, "s").format("YYYY-MM-DD HH:mm:ss");
-
-			_url += "&startTime=" + _startTimeStr + "&endTime=" + _endTimeStr;
-		}
-
-		// > Query contains metric name
-		if(_addtionalCondition._metricName) {
-			_url += "&metricName=" + _addtionalCondition._metricName;
-		}
-
-		// > Customize page size
-		if(_addtionalCondition._pageSize) {
-			_url = _url.replace(/pageSize=\d+/, "pageSize=" + _addtionalCondition._pageSize);
-		}
-
-		// AJAX
-		var canceler = $q.defer();
-		_list._promise = $http.get(_url, {timeout: canceler.promise}).success(function(data) {
-			_list.push.apply(_list, data.obj);
-		});
-		_list._promise.abort = function() {
-			canceler.resolve();
-		};
-
-		_list._promise.then(function() {}, function(data) {
-			if(data.status === 403) {
-				Authorization.isLogin = false;
-				$location.path("/dam/login");
-			}
-		});
-
-		return _list;
-	}
-	function _post(url, entities) {
-		var _list = [];
-		_list._promise = $http({
-			method: 'POST',
-			url: url,
-			headers: {
-				"Content-Type": "application/json"
-			},
-			data: entities
-		}).success(function(data) {
-			_list.push.apply(_list, data.obj);
-		});
-		return _list;
-	}
-	function _delete(url) {
-		var _list = [];
-		_list._promise = $http({
-			method: 'DELETE',
-			url: url,
-			headers: {
-				"Content-Type": "application/json"
-			},
-		}).success(function(data) {
-			_list.push.apply(_list, data.obj);
-		});
-		return _list;
-	}
-	function _parseCondition(condition) {
-		var _this = this;
-		_this.condition = "";
-		_this.additionalCondition = {};
-
-		if(typeof condition === "string") {
-			_this.condition = condition;
-		} else {
-			_this.condition = $.map(condition, function(value, key) {
-				if(!key.match(/^_/)) {
-					if(value === undefined || value === null) {
-						return '@' + key + '=~".*"';
-					} else {
-						return '@' + key + '="' + value + '"';
-					}
-				} else {
-					_this.additionalCondition[key] = value;
-					return null;
-				}
-			}).join(" AND ");
-		}
-		return _this;
-	}
-
-	var pkg = {
-		_query: _query,
-		_post: _post,
-
-		updateEntity: function(serviceName, entities, config) {
-			config = config || {};
-			if(!$.isArray(entities)) entities = [entities];
-
-			// Post clone entities
-			var _entities = $.map(entities, function(entity) {
-				var _entity = {};
-
-				// Clone variables
-				$.each(entity, function(key, value) {
-					// Skip inner variables
-					if(!key.match(/^__/)) {
-						_entity[key] = entity[key];
-					}
-				});
-
-				// Add timestamp
-				if(config.timestamp !== false) {
-					if(config.createTime !== false && !_entity.createdTime) {
-						_entity.createdTime = new moment().valueOf();
-					}
-					if(config.lastModifiedDate !== false) {
-						_entity.lastModifiedDate = new moment().valueOf();
-					}
-				}
-
-				return _entity;
-			});
-
-			return _post(app.getURL("updateEntity", {serviceName: serviceName}), _entities);
-		},
-
-		deleteEntity: function(serviceName, entities) {
-			if(!$.isArray(entities)) entities = [entities];
-
-			var _entities = $.map(entities, function(entity) {
-				return typeof entity === "object" ? entity.encodedRowkey : entity;
-			});
-			return _post(app.getURL("deleteEntity", {serviceName: serviceName}), _entities);
-		},
-		deleteEntities: function(serviceName, condition) {
-			return _delete(app.getURL("deleteEntities", {serviceName: serviceName, condition: new _parseCondition(condition).condition}));
-		},
-
-		queryEntity: function(serviceName, encodedRowkey) {
-			return _query("queryEntity", {serviceName: serviceName, encodedRowkey: encodedRowkey});
-		},
-		queryEntities: function(serviceName, condition, fields) {
-			return _query("queryEntities", {serviceName: serviceName, _condition: new _parseCondition(condition), values: fields});
-		},
-		queryGroup: function(serviceName, condition, groupBy, fields) {
-			return _query("queryGroup", {serviceName: serviceName, _condition: new _parseCondition(condition), groupBy: groupBy, values: fields});
-		},
-		querySeries: function(serviceName, condition, groupBy, fields, intervalmin) {
-			var _cond = new _parseCondition(condition);
-			var _list = _query("querySeries", {serviceName: serviceName, _condition: _cond, groupBy: groupBy, values: fields, intervalmin: intervalmin});
-			_list._promise.success(function() {
-				if(_list.length === 0) {
-					_list._empty = true;
-					_list._convert = true;
-
-					for(var i = 0; i <= (_cond.additionalCondition._endTime.valueOf() - _cond.additionalCondition._startTime.valueOf()) / (1000 * 60 * intervalmin); i += 1) {
-						_list.push(0);
-					}
-				} else if(_list.length === 1) {
-					_list._convert = true;
-					var _unit = _list.pop();
-					_list.push.apply(_list, _unit.value[0]);
-				}
-
-				if(_list._convert) {
-					var _current = _cond.additionalCondition._startTime.clone();
-					$.each(_list, function(i, value) {
-						_list[i] = [_current.valueOf(), value];
-						_current.add(intervalmin, "m");
-					});
-				}
-			});
-			return _list;
-		},
-
-		query: function(path, params) {
-			var _list = [];
-			_list._promise = $http({
-				method: 'GET',
-				url: app.getURL("query") + path,
-				params: params
-			}).success(function(data) {
-				_list.push.apply(_list, data.obj);
-			});
-			return _list;
-		},
-
-		dialog: function(data, callback) {
-			if(data.success === false || (data.exception || "").trim()) {
-				return $.dialog({
-					title: "OPS",
-					content: $("<pre>").html(data.exception)
-				}, callback);
-			}
-			return false;
-		},
-	};
-	return pkg;
-});
-
-eagleApp.filter('parseJSON', function() {
-	return function(input, defaultVal) {
-		return common.parseJSON(input, defaultVal);
-	};
-});
-
-eagleApp.filter('split', function() {
-	return function(input, regex) {
-		return input.split(regex);
-	};
-});
-
-eagleApp.filter('reverse', function() {
-	return function(items) {
-		return items.slice().reverse();
-	};
-});
-
-eagleApp.controller('MainCtrl', function($scope, $location, $http, globalContent, Site, Authorization, Entities) {
-	window.globalContent = $scope.globalContent = globalContent;
-	window.site = $scope.site = Site;
-	window.auth = $scope.auth = Authorization;
-	window.entities = $scope.entities = Entities;
-	$scope.app = app;
-
-	// Clean up
-	$scope.$on('$routeChangeStart', function(event, next, current) {
-		// Page initialization
-		globalContent.pageTitle = "";
-		globalContent.pageSubTitle = "";
-		globalContent.hideSite = false;
-		globalContent.lockSite = false;
-		globalContent.hideSidebar = false;
-		globalContent.hideUser = false;
-
-		// Authorization
-		// > Login check
-		if(!common.getValueByPath(next, "access.skipCheck", false)) {
-			if(!Authorization.isLogin) {
-				$location.path("/dam/login");
-			}
-		}
-
-		// > Role control
-		var _roles = common.getValueByPath(next, "access.roles", []);
-		if(_roles.length && Authorization.userProfile.roles) {
-			var _roleMatch = false;
-			$.each(_roles, function(i, roleName) {
-				if(Authorization.isRole(roleName)) {
-					_roleMatch = true;
-					return false;
-				}
-			});
-
-			if(!_roleMatch) {
-				$location.path("/dam");
-			}
-		}
-	});
-
-	// Get side bar navigation item class
-	$scope.getNavClass = function(page) {
-		var path = page.url.replace(/^#/, '');
-
-		if ($location.path() == path) {
-			globalContent.pageTitle = globalContent.pageTitle || page.title;
-			return "active";
-		} else {
-			return "";
-		}
-	};
-
-	// Get side bar navigation item class visible
-	$scope.getNavVisible = function(page) {
-		if(!page.roles) return true;
-
-		for(var i = 0 ; i < page.roles.length ; i += 1) {
-			var roleName = page.roles[i];
-			if(Authorization.isRole(roleName)) {
-				return true;
-			}
-		}
-
-		return false;
-	};
-
-	// Authorization
-	$scope.logout = function() {
-		Authorization.logout();
-		$location.path("/dam/login");
-	};
-});

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/app.time.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/app.time.js b/eagle-webservice/src/main/webapp/public/js/app.time.js
deleted file mode 100755
index c6fb03c..0000000
--- a/eagle-webservice/src/main/webapp/public/js/app.time.js
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-"use strict";
-
-// Time Zone
-(function() {
-	app.time = {
-		UTC_OFFSET: 0,
-		now: function() {
-			return app.time.offset();
-		},
-		offset: function(time) {
-			// Parse string number
-			if(typeof time === "string" && !isNaN(+time)) {
-				time = +time;
-			}
-
-			var _mom = new moment(time);
-			_mom.utcOffset(app.time.UTC_OFFSET);
-			return _mom;
-		},
-		/*
-		 * Return the moment object which use server time zone and keep the time.
-		 */
-		srvZone: function(time) {
-			var _timezone = time._isAMomentObject ? time.utcOffset() : new moment().utcOffset();
-			var _mom = app.time.offset(time);
-			_mom.subtract(app.time.UTC_OFFSET, "m").add(_timezone, "m");
-			return _mom;
-		},
-
-		refreshInterval: 1000 * 10
-	};
-
-	// Moment update
-	moment.fn.toISO = function() {
-		return this.format("YYYY-MM-DDTHH:mm:ss.000Z");
-	};
-})();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/app.ui.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/app.ui.js b/eagle-webservice/src/main/webapp/public/js/app.ui.js
deleted file mode 100755
index 4e0ee6e..0000000
--- a/eagle-webservice/src/main/webapp/public/js/app.ui.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-(function() {
-	// ================== AdminLTE Update ==================
-	var _boxSelect = $.AdminLTE.options.boxWidgetOptions.boxWidgetSelectors;
-
-	// Box collapse
-	$(document).on("click", _boxSelect.collapse, function(e) {
-		if(common.getValueByPath($._data(this), "events.click")) return;
-
-		e.preventDefault();
-		$.AdminLTE.boxWidget.collapse($(this));
-	});
-
-	// Box remove
-	$(document).on("click", _boxSelect.remove, function(e) {
-		if(common.getValueByPath($._data(this), "events.click")) return;
-
-		e.preventDefault();
-		$.AdminLTE.boxWidget.remove($(this));
-	});
-
-	// =================== jQuery Update ===================
-	// Slide Toggle
-	var _slideToggle = $.fn.slideToggle;
-	$.fn.slideToggle = function(showOrHide) {
-		if(arguments.length === 1 && typeof showOrHide === "boolean") {
-			if(showOrHide) {
-				this.slideDown();
-			} else {
-				this.slideUp();
-			}
-		} else {
-			_slideToggle.apply(this, arguments);
-		}
-	};
-
-	// Fade Toggle
-	var _fadeToggle = $.fn.fadeToggle;
-	$.fn.fadeToggle = function(showOrHide) {
-		if(arguments.length === 1 && typeof showOrHide === "boolean") {
-			if(showOrHide) {
-				this.fadeIn();
-			} else {
-				this.fadeOut();
-			}
-		} else {
-			_fadeToggle.apply(this, arguments);
-		}
-	};
-})();
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/common.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/common.js b/eagle-webservice/src/main/webapp/public/js/common.js
deleted file mode 100755
index f64f051..0000000
--- a/eagle-webservice/src/main/webapp/public/js/common.js
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-var common = {};
-
-common.template = function (str, list) {
-	$.each(list, function(key, value) {
-		var _regex = new RegExp("\\$\\{" + key + "\\}", "g");
-		str = str.replace(_regex, value);
-	});
-	return str;
-};
-
-common.getValueByPath = function (unit, path, defaultValue) {
-	if(unit === null || unit === undefined) throw "Unit or path can't be empty!";
-	if(path === "" || path === null || path === undefined) return unit;
-
-	path = path.replace(/\[(\d+)\]/g, ".$1").replace(/^\./, "").split(/\./);
-	$.each(path, function(i, path) {
-		unit = unit[path];
-		if(unit === null || unit === undefined) {
-			unit = null;
-			return false;
-		}
-	});
-	if(unit === null && defaultValue !== undefined) {
-		unit = defaultValue;
-	}
-	return unit;
-};
-
-common.setValueByPath = function(unit, path, value) {
-	if(!unit || path == null || path === "") throw "Unit or path can't be empty!";
-
-	var _inArray = false;
-	var _end = 0;
-	var _start = 0;
-	var _unit = unit;
-
-	function _nextPath(array) {
-		var _key = path.slice(_start, _end);
-		if(_inArray) {
-			_key = _key.slice(0, -1);
-		}
-		if(!_unit[_key]) {
-			if(array) {
-				_unit[_key] = [];
-			} else {
-				_unit[_key] = {};
-			}
-		}
-		_unit = _unit[_key];
-	}
-
-	for(; _end < path.length ; _end += 1) {
-		if(path[_end] === ".") {
-			_nextPath(false);
-			_start = _end + 1;
-			_inArray = false;
-		} else if(path[_end] === "[") {
-			_nextPath(true);
-			_start = _end + 1;
-			_inArray = true;
-		}
-	}
-
-	_unit[path.slice(_start, _inArray ? -1 : _end)] = value;
-
-	return unit;
-};
-
-common.parseJSON = function (str, defaultVal) {
-	try {
-		return JSON.parse(str);
-	} catch(err) {
-		if(defaultVal === undefined) {
-			console.warn("Can't parse JSON: " + str);
-		}
-	}
-	return defaultVal === undefined ? null : defaultVal;
-};
-
-common.isEmpty = function(val) {
-	if($.isArray(val)) {
-		return val.length === 0;
-	} else {
-		return val === null || val === undefined;
-	}
-};
-
-// ====================== Format ======================
-common.format = {};
-
-/*
- * Format date to string. Support number, string, Date instance. Will auto convert time zone offset(Moment instance will keep time zone).
- */
-common.format.date = function(val, type) {
-	if(val === undefined || val === null) return "";
-
-	if(typeof val === "number" || typeof val === "string" || val instanceof Date) {
-		val = app.time.offset(val);
-	}
-	switch(type) {
-	default:
-		return val.format("YYYY-MM-DD HH:mm:ss") + (val.utcOffset() === 0 ? '[UTC]' : '');
-	}
-};
-
-// ====================== Array =======================
-common.array = {};
-
-common.array.sum = function(list, path) {
-	var _sum = 0;
-	if(list) {
-		$.each(list, function(i, unit) {
-			var _val = common.getValueByPath(unit, path);
-			if(typeof _val === "number") {
-				_sum += _val;
-			}
-		});
-	}
-	return _sum;
-};
-
-common.array.max = function(list, path) {
-	var _max = null;
-	if(list) {
-		$.each(list, function(i, unit) {
-			var _val = common.getValueByPath(unit, path);
-			if(typeof _val === "number" && (_max === null || _max < _val)) {
-				_max = _val;
-			}
-		});
-	}
-	return _max;
-};
-
-common.array.bottom = function(list, path, count) {
-	var _list = list.slice();
-
-	_list.sort(function(a, b) {
-		var _a = common.getValueByPath(a, path, null);
-		var _b = common.getValueByPath(b, path, null);
-
-		if(_a === _b) return 0;
-		if(_a < _b || _a === null) {
-			return -1;
-		} else {
-			return 1;
-		}
-	});
-	return !count ? _list : _list.slice(0, count);
-};
-common.array.top = function(list, path, count) {
-	var _list = common.array.bottom(list, path);
-	_list.reverse();
-	return !count ? _list : _list.slice(0, count);
-};
-
-common.array.find = function(val, list, path, findAll) {
-	path = path || "";
-	var _list = $.grep(list, function(unit) {
-		return val === common.getValueByPath(unit, path);
-	});
-	return findAll ? _list : (_list.length === 0 ? null : _list[0]);
-};
-
-common.array.filter = function(val, list, path) {
-	return common.array.find(val, list, path, true);
-};
-
-common.array.count = function(list, val, path) {
-	if(arguments.length === 1) {
-		return list.length;
-	} else {
-		return common.array.find(val, list, path, true).length;
-	}
-};
-
-common.array.remove = function(val, list) {
-	for(var i = 0 ; i < list.length ; i += 1) {
-		if(list[i] === val) {
-			list.splice(i, 1);
-			i -= 1;
-		}
-	}
-};
-
-// ======================= Map ========================
-common.map = {};
-
-common.map.toArray = function(map) {
-	return $.map(map, function(unit) {
-		return unit;
-	});
-};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/components/charts.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/components/charts.js b/eagle-webservice/src/main/webapp/public/js/components/charts.js
deleted file mode 100755
index 8b3d8d2..0000000
--- a/eagle-webservice/src/main/webapp/public/js/components/charts.js
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-eagleComponents.directive('chart', function($compile) {
-	return {
-		restrict : 'E',
-		scope: {
-			title: "@",
-			data: "=",
-		},
-		controller: function(charts, $scope, $element) {
-			var _charts = charts($scope);
-
-			_charts.gen($element.find(".chart-body"), [{
-				data: "data",
-			}]);
-		},
-		template :	'<div class="chart">' +
-						'<div class="chart-header">' +
-							'<h3>{{title}}</h3>' +
-						'</div>' +
-						'<div class="chart-body">' +
-						'</div>' +
-					'</div>',
-		replace: true
-	};
-});
-
-/*
- * config:
- * 		type:	"line"(default), "area". Chart type is the default type of all series. Will be replaced by each series configure.
- */
-eagleComponents.service('charts', function() {
-	/*
-	 * Destroy chart
-	 */
-	function _destroy(ele) {
-		$(ele).each(function() {
-			var _plot = $(this).data("plot");
-			_plot.shutdown();
-			_plot.destroy();
-		});
-	};
-
-	var charts = function($scope) {
-		var _id = 0;
-
-		return {
-			/*
-			 * Generate chart
-			 */
-			gen: function(ele, series, config) {
-				// Initialization
-				ele = $(ele);
-
-				series = series || [];
-				config = config || {};
-
-				var _listenList = [];
-
-				var _config = {
-					grid: {
-						hoverable: true,
-						clickable: true,
-						borderWidth: 0,
-					},
-					type: "line",
-					colors: [
-						"#7cb5ec", "#f7a35c", "#90ee7e", "#7798BF", "#aaeeee",
-					],
-					series: {
-						shadowSize: 0,
-					},
-					crosshair: {
-						color: "#3c8dbc"
-					},
-					tooltip: {
-						id: "chartTooltip",
-					},
-					xaxis: {
-						mode: "time",
-					},
-					yaxis: {
-						min: 0,
-					},
-					legend: {},
-				};
-
-				$.extend(_config, config);
-
-				// Series process
-				// > Series type
-				$.each(series, function(i, _series) {
-					// Data source
-					if(typeof _series.data === "string") {
-						_listenList.push(_series.data);
-						_series._key = _series.data;
-						_series.data = [];
-					}
-
-					// Chart type
-					switch((_series.type || _config.type || "").toLowerCase()) {
-					case "area":
-						common.setValueByPath(_series, "lines.show", true);
-						common.setValueByPath(_series, "lines.fill", true);
-					default:
-						common.setValueByPath(_series, "lines.show", true);
-					}
-
-					if(_config.xaxis.mode === "time" && $.isArray(_series.data)) {
-						$.each(_series.data, function(i, unit) {
-							unit[0] += app.time.UTC_OFFSET * 1000 * 60;
-						});
-					}
-				});
-
-				// > Data source
-				function _updateSeriesSource() {
-					$.each(series, function(i, _series) {
-						if(typeof _series._key === "string" && $scope[_series._key]) {
-							_series.data = $scope[_series._key];
-							delete _series._key;
-						}
-					});
-				}
-
-				// Chart process
-				_config.type = _config.type.toLowerCase();
-				if(_config.type === "line" || _config.type === "area") {
-					common.setValueByPath(_config, "crosshair.mode", "x");
-				}
-
-				// Draw charts
-				function _drawChart() {
-					_updateSeriesSource();
-
-					ele.each(function() {
-						var _my = $(this);
-						var _plot = _my.data("plot");
-						if(!_plot) {
-							var _plot = $.plot(this, series, _config);
-							_plot._id = ++_id;
-							_my.data("plot", _plot);
-						} else {
-							_plot.setData(series);
-							_plot.setupGrid();
-							_plot.draw();
-						}
-					});
-				}
-
-				// Watch
-				$.each(_listenList, function(i, item) {
-					$scope.$watchCollection(item, function() {
-						_drawChart();
-					});
-				});
-
-				// Destroy
-				$scope.$on('$destroy', function() {
-					_destroy(ele);
-				});
-			},
-
-			destroy: _destroy,
-		};
-	};
-
-	charts.destroy = _destroy;
-
-	return charts;
-});

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/components/charts/bar.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/components/charts/bar.js b/eagle-webservice/src/main/webapp/public/js/components/charts/bar.js
deleted file mode 100755
index 8090774..0000000
--- a/eagle-webservice/src/main/webapp/public/js/components/charts/bar.js
+++ /dev/null
@@ -1,290 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-eagleComponents.directive('barChart', function($compile) {
-	return {
-		restrict : 'AE',
-		scope : {
-			title : "@",
-			data : "=",
-
-			height : "=?height"
-		},
-		controller : function(barCharts, $scope, $element, $attrs) {
-			$scope.height = $scope.height || 200;
-
-			var _chart = barCharts($scope);
-
-			var _chartBody = $element.find(".chart-body");
-			_chartBody.height($scope.height);
-
-			_chart.gen($element.find(".chart-body"), $attrs.data, {
-				height : $scope.height,
-			});
-		},
-		template : '<div class="chart">' + '<div class="chart-header">' + '<h3>{{title}}</h3>' + '</div>' + '<div class="chart-body">' + '</div>' + '</div>',
-		replace : true
-	};
-});
-
-eagleComponents.service('barCharts', function() {
-	/*$(window).resize(function() {
-	 });
-	 $("body").on("collapsed.pushMenu", function() {
-	 });
-	 $("body").on("expanded.pushMenu", function() {
-	 });*/
-
-	var charts = function($scope) {
-		return {
-			gen : function(ele, series, config) {
-				// ======================= Initialization =======================
-				ele = $(ele);
-
-				series = series || [];
-				config = config || {};
-
-				// ========================== ToolTips ==========================
-				var $tooltip = $("<div>").css({
-					display: "inline-block",
-					background: "rgba(0,0,0,0.7)",
-					padding: "3px 5px",
-					color: "#FFFFFF",
-					position: "fixed",
-					"z-index": 3,
-					"border-radius": "3px",
-					"font-size": "12px",
-				}).appendTo("body");
-
-				// ======================= Set Up D3 View =======================
-				var margin = {
-					top : 20,
-					right : 20,
-					bottom : 50,
-					left : 40
-				}, width = ele.innerWidth() - margin.left - margin.right, height = config.height - margin.top - margin.bottom;
-
-				var x0 = d3.scale.ordinal().rangeRoundBands([0, width], .1);
-				var x1 = d3.scale.ordinal();
-				var y = d3.scale.linear().range([height, 0]);
-
-				var color = d3.scale.ordinal().range(["#7cb5ec", "#f7a35c", "#90ee7e", "#7798BF", "#aaeeee"]);
-
-				var xAxis = d3.svg.axis().scale(x0).orient("bottom");
-				var yAxis = d3.svg.axis().scale(y).orient("left").tickFormat(d3.format("0.2f"));
-
-				var cntr = d3.select(ele[0]).append("svg").attr("width", width + margin.left + margin.right).attr("height", height + margin.top + margin.bottom);
-				var svg = cntr.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
-
-				// =========================== Render ===========================
-				function _render() {
-					// ======== Parse Data ========
-					var _series = typeof series === "string" ? $scope.data : series;
-					if(!_series) return;
-
-					var _data = [];
-					// > Detect category
-					var _categoryList = [];
-					_series = $.grep(_series, function(unit) {
-						if(unit.type === "category") _categoryList = unit.data;
-						return !unit.type;
-					});
-
-					// > Keys
-					var _keys = $.map(_series, function(unit) {
-						return unit.name;
-					});
-
-					// > Merge values
-					var _maxLen = 0;
-					$.each(_series, function(i, unit) {
-						_maxLen = Math.max(_maxLen, unit.data.length);
-					});
-					for(var i = 0 ; i < _maxLen ; i += 1) {
-						_data[i] = {};
-
-						// Category
-						if(_categoryList[i]) {
-							_data[i]._category = _categoryList[i];
-						} else {
-							_data[i]._category = "CAT" + i;
-						}
-
-						// Value
-						$.each(_keys, function(j, key) {
-							_data[i][key] = _series[j].data[i] || 0;
-						});
-					}
-
-					// ====== Convert Format ======
-					var ageNames = d3.keys(_data[0]).filter(function(key) {
-						return key !== "_category";
-					});
-
-					_data.forEach(function(d) {
-						d.items = ageNames.map(function(name) {
-							return {
-								name : name,
-								value : +d[name]
-							};
-						});
-					});
-
-					x0.domain(_data.map(function(d) {
-						return d._category;
-					}));
-					x1.domain(ageNames).rangeRoundBands([0, x0.rangeBand()]);
-					y.domain([0, d3.max(_data, function(d) {
-						return d3.max(d.items, function(d) {
-							return d.value;
-						});
-					})]);
-
-					// Axis
-					svg.append("g").attr("class", "y axis").call(yAxis).append("text").attr("transform", "rotate(-90)").attr("y", 6).attr("dy", ".71em").style("text-anchor", "end");
-					svg.append("g").attr("class", "x axis").attr("transform", "translate(0," + height + ")").call(xAxis)
-					.selectAll("text")
-						.attr("transform", "rotate(15)")
-						.attr("x", -x1.rangeBand() * 0.3)
-						.style("text-anchor", "start");
-
-					// Bar
-					var barGroup = svg.selectAll(".barGroup").data(_data).enter().append("g").attr("class", "g").attr("transform", function(d) {
-						return "translate(" + x0(d._category) + ",0)";
-					});
-
-					barGroup.selectAll("rect").data(function(d) {
-						return d.items;
-					}).enter().append("rect").attr("width", x1.rangeBand()).attr("x", function(d) {
-						return x1(d.name);
-					}).attr("y", function(d) {
-						return y(d.value);
-					}).attr("height", function(d) {
-						return height - y(d.value);
-					}).style("fill", function(d) {
-						return color(d.name);
-					});
-
-					// Legend
-					var legend = svg.selectAll(".legend").data(ageNames.slice().reverse()).enter().append("g").attr("class", "legend").attr("transform", function(d, i) {
-						return "translate(0," + (30 + i * 20) + ")";
-					});
-
-					legend.append("rect").attr("x", width - 18).attr("width", 18).attr("height", 18).style("fill", color);
-					legend.append("text").attr("x", width - 24).attr("y", 9).attr("dy", ".35em").style("text-anchor", "end").text(function(d) {
-						return d;
-					});
-
-					// Tool tip
-					var OFFSET_X = 15;
-					var OFFSET_Y = 20;
-					var OFFSET_DES = 20;
-
-					var _tooltipId;
-					var _tooltipPrev;
-					var _xCells = $.map(_data, function(d) {
-						return [[x0(d._category), x0(d._category) + x0.rangeBand(), d]];
-					});
-
-					cntr.on("mousemove", function () {
-						var mouseX = d3.mouse(this.parentNode)[0] - margin.left;
-						var d;
-						for(var i = 0 ; i < _xCells.length ; i += 1) {
-							if(_xCells[i][0] <= mouseX && mouseX <= _xCells[i][1]) {
-								d= _xCells[i][2];
-								break;
-							}
-						}
-
-						if(!d && _tooltipPrev) {
-							_tooltipId = setTimeout(function() {
-								$tooltip.fadeOut('fast');
-							}, _xCells[0] && mouseX < _xCells[0][0] ? 100 : 500);
-						} else if(d) {
-							if(_tooltipPrev !== d) {
-								clearTimeout(_tooltipId);
-
-								$tooltip.empty()
-								.stop().fadeIn('fast');
-
-								var $cntr = $("<div>").appendTo($tooltip);
-								$("<span>").css("display", "block").text(d._category)
-								.appendTo($cntr);
-								$.each(d.items, function(i, item) {
-									$("<span>").css("display", "block")
-									.append($("<span>").html("\u25CF").css("color", color(item.name))).append(" ")
-									.append(item.name)
-									.append(": ")
-									.append($("<b>").text(item.value))
-									.appendTo($cntr);
-								});
-							}
-
-							// Position
-							var _x = event.pageX + OFFSET_X;
-							var _y = event.pageY + OFFSET_Y;
-							var _width = $tooltip.outerWidth();
-							var _height = $tooltip.outerHeight();
-							var _winWidth = $(window).width();
-							var _winHeight = $(window).height();
-							var _winLeft = $(window).scrollLeft();
-							var _winTop = $(window).scrollTop();
-
-							if(_x + _width + OFFSET_DES - _winLeft > _winWidth) {
-								_x = event.pageX - _width - OFFSET_X;
-							}
-							if(_y + _height + OFFSET_DES - _winTop > _winHeight) {
-								_y = event.pageY - _height - OFFSET_Y;
-							}
-
-							$tooltip.offset({
-								left: _x,
-								top: _y
-							});
-						}
-						_tooltipPrev = d;
-					});
-					cntr.on("mouseleave", function () {
-						_tooltipId = setTimeout(function() {
-							$tooltip.fadeOut('fast');
-						}, 100);
-					});
-				}
-
-				// ======================= Dynamic Detect =======================
-				if(typeof series === "string") {
-					$scope.$parent.$watch(series, function() {
-						_render();
-					}, true);
-				} else {
-					_render();
-				}
-
-
-				// ========================== Clean Up ==========================
-				$scope.$on('$destroy', function() {
-					cntr.remove();
-					$tooltip.remove();
-				});
-			},
-		};
-	};
-
-	return charts;
-});

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/components/charts/line3d.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/components/charts/line3d.js b/eagle-webservice/src/main/webapp/public/js/components/charts/line3d.js
deleted file mode 100755
index 8d89ba2..0000000
--- a/eagle-webservice/src/main/webapp/public/js/components/charts/line3d.js
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-'use strict';
-
-eagleComponents.directive('line3dChart', function($compile) {
-	return {
-		restrict : 'AE',
-		scope : {
-			title : "@",
-			data : "=",
-
-			height : "=?height"
-		},
-		controller : function(line3dCharts, $scope, $element, $attrs) {
-			$scope.height = $scope.height || 200;
-
-			var _chart = line3dCharts($scope);
-
-			var _chartBody = $element.find(".chart-body");
-			_chartBody.height($scope.height);
-
-			_chart.gen($element.find(".chart-body"), $attrs.data, {
-				height : $scope.height,
-			});
-		},
-		template : '<div class="chart">' + '<div class="chart-header">' + '<h3>{{title}}</h3>' + '</div>' + '<div class="chart-body">' + '</div>' + '</div>',
-		replace : true
-	};
-});
-
-eagleComponents.service('line3dCharts', function() {
-	var charts = function($scope) {
-		return {
-			gen : function(ele, series, config) {
-				// ======================= Initialization =======================
-				ele = $(ele);
-
-				series = series || [];
-				config = config || {};
-
-				var _bounds = [{min:-10, max: 10},{min:-10, max: 10},{min:-10, max: 10}];
-				var _scale = 1;
-
-				// ======================= Set Up D3 View =======================
-				var width = ele.innerWidth(), height = config.height;
-
-				var color = ["#7cb5ec", "#f7a35c", "#90ee7e", "#7798BF", "#aaeeee"];
-
-				var svg = d3.select(ele[0]).append("svg").attr("width", width).attr("height", height);
-
-				// ========================== Function ==========================
-				var yaw=0.5,pitch=0.5,drag;
-				var transformPrecalc = [];
-
-				var offsetPoint = function(point) {
-					var _point = [
-						+point[0] - (_bounds[0].max + _bounds[0].min) / 2,
-						-point[1] + (_bounds[1].max + _bounds[1].min) / 2,
-						-point[2] + (_bounds[2].max + _bounds[2].min) / 2
-					];
-					return [_point[0] * _scale, _point[1] * _scale, _point[2] * _scale];
-				};
-
-				var transfromPointX = function(point) {
-					point = offsetPoint(point);
-					return transformPrecalc[0] * point[0] + transformPrecalc[1] * point[1] + transformPrecalc[2] * point[2] + width / 2;
-				};
-				var transfromPointY = function(point) {
-					point = offsetPoint(point);
-					return transformPrecalc[3] * point[0] + transformPrecalc[4] * point[1] + transformPrecalc[5] * point[2] + height / 2;
-				};
-				var transfromPointZ = function(point) {
-					point = offsetPoint(point);
-					return transformPrecalc[6] * point[0] + transformPrecalc[7] * point[1] + transformPrecalc[8] * point[2];
-				};
-				var transformPoint2D = function(point) {
-					var _point = [point[0], point[1], point[2]];
-					return transfromPointX(_point).toFixed(10) + "," + transfromPointY(_point).toFixed(10);
-				};
-
-				var setTurtable = function(yaw, pitch, update) {
-					var cosA = Math.cos(pitch);
-					var sinA = Math.sin(pitch);
-					var cosB = Math.cos(yaw);
-					var sinB = Math.sin(yaw);
-					transformPrecalc[0] = cosB;
-					transformPrecalc[1] = 0;
-					transformPrecalc[2] = sinB;
-					transformPrecalc[3] = sinA * sinB;
-					transformPrecalc[4] = cosA;
-					transformPrecalc[5] = -sinA * cosB;
-					transformPrecalc[6] = -sinB * cosA;
-					transformPrecalc[7] = sinA;
-					transformPrecalc[8] = cosA * cosB;
-
-					if(update) _update();
-				};
-				setTurtable(0.4,0.4);
-
-				// =========================== Redraw ===========================
-				var _coordinateList = [];
-				var _axisText = [];
-				var coordinate = svg.selectAll(".axis");
-				var axisText = svg.selectAll(".axis-text");
-				var lineList = svg.selectAll(".line");
-
-				function _redraw(series) {
-					var _desX, _desY, _desZ, _step;
-
-					// Bounds
-					if(series) {
-						_bounds = [{},{},{}];
-						$.each(series, function(j, series) {
-							// Points
-							$.each(series.data, function(k, point) {
-								for(var i = 0 ; i < 3 ; i += 1) {
-									// Minimum
-									if(_bounds[i].min === undefined || point[i] < _bounds[i].min) {
-										_bounds[i].min = point[i];
-									}
-									// Maximum
-									if(_bounds[i].max === undefined || _bounds[i].max < point[i]) {
-										_bounds[i].max = point[i];
-									}
-								}
-							});
-						});
-					}
-
-					_desX = _bounds[0].max - _bounds[0].min;
-					_desY = _bounds[1].max - _bounds[1].min;
-					_desZ = _bounds[2].max - _bounds[2].min;
-
-					// Step
-					(function() {
-						var _stepX = _desX / 10;
-						var _stepY = _desY / 10;
-						var _stepZ = _desZ / 10;
-
-						_step = Math.min(_stepX, _stepY, _stepZ);
-						_step = Math.max(_step, 0.5);
-						_step = 0.5;
-					})();
-
-					// Scale
-					(function() {
-						var _scaleX = width / _desX;
-						var _scaleY = height / _desY / 2;
-						var _scaleZ = width / _desZ;
-						_scale = Math.min(_scaleX, _scaleY, _scaleZ) / 2;
-					})();
-
-					// Coordinate
-					// > Basic
-					_coordinateList = [
-						{color: "rgba(0,0,0,0.1)", data: [[0,0,-100],[0,0,100]]},
-						{color: "rgba(0,0,0,0.1)", data: [[0,-100,0],[0,100,0]]},
-						{color: "rgba(0,0,0,0.1)", data: [[-100,0,0],[100,0,0]]},
-
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].min,_bounds[1].min,_bounds[2].min],[_bounds[0].max,_bounds[1].min,_bounds[2].min]]},
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].min,_bounds[1].min,_bounds[2].min],[_bounds[0].min,_bounds[1].min,_bounds[2].max]]},
-
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].min,_bounds[1].min,_bounds[2].max],[_bounds[0].max,_bounds[1].min,_bounds[2].max]]},
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].max,_bounds[1].min,_bounds[2].min],[_bounds[0].max,_bounds[1].min,_bounds[2].max]]},
-
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].min,_bounds[1].max,_bounds[2].min],[_bounds[0].max,_bounds[1].max,_bounds[2].min]]},
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].min,_bounds[1].max,_bounds[2].min],[_bounds[0].min,_bounds[1].max,_bounds[2].max]]},
-
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].min,_bounds[1].min,_bounds[2].min],[_bounds[0].min,_bounds[1].max,_bounds[2].min]]},
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].max,_bounds[1].min,_bounds[2].min],[_bounds[0].max,_bounds[1].max,_bounds[2].min]]},
-						{color: "rgba(0,0,255,0.3)", data: [[_bounds[0].min,_bounds[1].min,_bounds[2].max],[_bounds[0].min,_bounds[1].max,_bounds[2].max]]},
-					];
-
-					_axisText = [];
-					function _axisPoint(point, dimension, number) {
-						// Coordinate
-						if(dimension === 1) {
-							_coordinateList.push({
-								color: "rgba(0,0,0,0.2)",
-								data:[[_step/5,point[1],0],[0,point[1],0],[0,point[1],_step/5]]
-							});
-						} else {
-							_coordinateList.push({
-								color: "rgba(0,0,0,0.2)",
-								data:[[point[0],-_step/8,point[2]], [point[0],_step/8,point[2]]]
-							});
-						}
-
-						// Axis Text
-						if(number.toFixed(0) == number + "") {
-							point.text = number;
-							point.dimension = dimension;
-							_axisText.push(point);
-						}
-					}
-					function _axisPoints(dimension, bound) {
-						for(var i = _step ; i < bound.max + _step ; i += _step) {
-							var _unit = [0,0,0];
-							_unit[dimension] = i;
-							_axisPoint(_unit, dimension, i);
-						}
-						for(var i = -_step ; i > bound.min - _step ; i -= _step) {
-							var _unit = [0,0,0];
-							_unit[dimension] = i;
-							_axisPoint(_unit, dimension, i);
-						}
-					}
-					// > Steps
-					_axisPoint([0,0,0],1,0);
-					_axisPoints(0, _bounds[0]);
-					_axisPoints(1, _bounds[1]);
-					_axisPoints(2, _bounds[2]);
-
-					// > Draw
-					coordinate = coordinate.data(_coordinateList);
-					coordinate.enter()
-					.append("path")
-						.attr("fill", "none")
-						.attr("stroke", function(d) {return d.color;});
-					coordinate.exit().remove();
-
-					// Axis Text
-					axisText = axisText.data(_axisText);
-					axisText.enter()
-						.append("text")
-						.classed("noSelect", true)
-						.attr("fill", "rgba(0,0,0,0.5)")
-						.attr("text-anchor", function(d) {return d.dimension === 1 ? "start" : "middle";})
-						.text(function(d) {return d.text;});
-					axisText.transition()
-						.attr("text-anchor", function(d) {return d.dimension === 1 ? "end" : "middle";})
-						.text(function(d) {return d.text;});
-					axisText.exit().remove();
-
-					// Lines
-					lineList = lineList.data(series || []);
-					lineList.enter()
-						.append("path")
-							.attr("fill", "none")
-							.attr("stroke", function(d) {return d.color;});
-					lineList.exit().remove();
-
-					_update();
-				}
-
-				function _update() {
-					coordinate
-						.attr("d", function(d) {
-						var path = "";
-						$.each(d.data, function(i, point) {
-							path += (i === 0 ? "M" : "L") + transformPoint2D(point);
-						});
-						return path;
-						});
-
-					axisText
-						.attr("x", function(d) {return transfromPointX(d) + (d.dimension === 1 ? -3 : 0);})
-						.attr("y", function(d) {return transfromPointY(d) + (d.dimension === 1 ? 0 : -5);});
-
-					lineList
-						.attr("d", function(d, index) {
-							var path = "";
-							$.each(d.data, function(i, point) {
-								path += (i === 0 ? "M" : "L") + transformPoint2D(point);
-							});
-							return path;
-						});
-				}
-
-
-				svg.on("mousedown", function() {
-					drag = [d3.mouse(this), yaw, pitch];
-				}).on("mouseup", function() {
-					drag = false;
-				}).on("mousemove", function() {
-					if (drag) {
-						var mouse = d3.mouse(this);
-						yaw = drag[1] - (mouse[0] - drag[0][0]) / 50;
-						pitch = drag[2] + (mouse[1] - drag[0][1]) / 50;
-						pitch = Math.max(-Math.PI / 2, Math.min(Math.PI / 2, pitch));
-						setTurtable(yaw, pitch, true);
-					}
-				});
-
-				// =========================== Render ===========================
-				_redraw();
-
-				function _render() {
-					// ======== Parse Data ========
-					var _series = typeof series === "string" ? $scope.data : series;
-					if(!_series) return;
-
-					// Clone
-					_series = $.map(_series, function(series) {
-						return {
-							name: series.name,
-							color: series.color,
-							data: series.data
-						};
-					});
-
-					// Colors
-					$.each(_series, function(i, series) {
-						series.color = series.color || color[i % color.length];
-					});
-
-					// Render
-					_redraw(_series);
-				}
-
-				// ======================= Dynamic Detect =======================
-				if(typeof series === "string") {
-					$scope.$parent.$watch(series, function() {
-						_render();
-					}, true);
-				} else {
-					_render();
-				}
-
-
-				// ========================== Clean Up ==========================
-				$scope.$on('$destroy', function() {
-					svg.remove();
-				});
-			},
-		};
-	};
-	return charts;
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/components/file.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/components/file.js b/eagle-webservice/src/main/webapp/public/js/components/file.js
deleted file mode 100755
index b63c320..0000000
--- a/eagle-webservice/src/main/webapp/public/js/components/file.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-eagleComponents.directive('file', function($compile) {
-	return {
-		restrict : 'A',
-		scope: {
-			filepath: "=?filepath",
-		},
-		controller: function($scope, $element, $attrs) {
-			// Watch change(Only support clean the data)
-			if($attrs.filepath) {
-				$scope.$parent.$watch($attrs.filepath, function(value) {
-					if(!value) $element.val(value);
-				});
-			}
-
-			// Bind changed value
-			$element.on("change", function() {
-				var _path = $(this).val();
-				if($attrs.filepath) {
-					common.setValueByPath($scope.$parent, $attrs.filepath, _path);
-					$scope.$parent.$apply();
-				}
-			});
-
-			$scope.$on('$destroy',function(){
-				$element.off("change");
-			});
-		},
-		replace: false
-	};
-});

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/components/main.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/components/main.js b/eagle-webservice/src/main/webapp/public/js/components/main.js
deleted file mode 100755
index b3528a1..0000000
--- a/eagle-webservice/src/main/webapp/public/js/components/main.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-var eagleComponents = angular.module('eagle.components', []);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/components/sortTable.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/components/sortTable.js b/eagle-webservice/src/main/webapp/public/js/components/sortTable.js
deleted file mode 100755
index 74cbb05..0000000
--- a/eagle-webservice/src/main/webapp/public/js/components/sortTable.js
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-eagleComponents.directive('sorttable', function($compile) {
-	return {
-		restrict : 'AE',
-		scope: {
-			source: '=',
-			search: '=?search',
-			searchfunc: "=?searchfunc",
-
-			orderKey: "@?sort",
-
-			maxSize: "=?maxSize",
-		},
-		controller: function($scope, $element, $attrs) {
-			// Initialization
-			$scope.app = app;
-			$scope.common = common;
-			$scope._parent = $scope.$parent;
-
-			$scope.pageNumber = $scope.pageNumber || 1;
-			$scope.pageSize = $scope.pageSize || 10;
-
-			$scope.maxSize = $scope.maxSize || 10;
-
-			// Search box
-			if($scope.search !== false) {
-				var $search = $(
-					'<div style="overflow:hidden;">' +
-						'<div class="row">' +
-							'<div class="col-xs-4">' +
-								'<div class="search-box">' +
-									'<input type="search" class="form-control input-sm" placeholder="Search" ng-model="search" />' +
-									'<span class="fa fa-search"></span>' +
-								'</div>' +
-							'</div>' +
-						'</div>' +
-					'</div>'
-				).prependTo($element);
-				$compile($search)($scope);
-			}
-
-			// List head
-			$scope.doSort = function(path) {
-				if($scope.orderKey === path) {
-					$scope.orderKey = "-" + path;
-				} else {
-					$scope.orderKey = path;
-				}
-			};
-			$scope.checkSortClass = function(key) {
-				if($scope.orderKey === key) {
-					return "fa fa-sort-asc";
-				} else if($scope.orderKey === "-" + key) {
-					return "fa fa-sort-desc";
-				}
-				return "fa fa-sort";
-			};
-
-			var $listHead = $element.find("thead > tr");
-			$listHead.find("> th").each(function() {
-				var $th = $(this);
-				$th.addClass("noSelect");
-
-				var _sortpath = $th.attr("sortpath");
-				if(_sortpath) {
-					$th.attr("ng-click", "doSort('" + _sortpath + "')");
-					$th.prepend('<span ng-class="checkSortClass(\'' + _sortpath + '\')"></span>');
-				}
-			});
-			$compile($listHead)($scope);
-
-			// List body
-			var $listBody = $element.find("tbody > tr");
-			$listBody.attr("ng-repeat", 'item in (filteredList = (source | filter: ' + ($scope.searchfunc ? 'searchfunc' : 'search') + ' | orderBy: orderKey)).slice((pageNumber - 1) * pageSize, pageNumber * pageSize)');
-			$compile($listBody)($scope);
-
-			// Navigation
-			var $navigation = $(
-				'<div style="overflow:hidden;">' +
-					'<div class="row">' +
-						'<div class="col-xs-5">' +
-							'show {{(pageNumber - 1) * pageSize + 1}} to {{pageNumber * pageSize}} of {{filteredList.length}} items' +
-						'</div>' +
-						'<div class="col-xs-7 text-right">' +
-							'<pagination total-items="filteredList.length" ng-model="pageNumber" boundary-links="true" items-per-page="pageSize" num-pages="numPages" max-size="maxSize"></pagination>' +
-						'</div>' +
-					'</div>' +
-				'</div>'
-			).appendTo($element);
-			$compile($navigation)($scope);
-		},
-		replace: false
-	};
-});

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/2c3005c9/eagle-webservice/src/main/webapp/public/js/components/tabs.js
----------------------------------------------------------------------
diff --git a/eagle-webservice/src/main/webapp/public/js/components/tabs.js b/eagle-webservice/src/main/webapp/public/js/components/tabs.js
deleted file mode 100755
index 47d0f71..0000000
--- a/eagle-webservice/src/main/webapp/public/js/components/tabs.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-'use strict';
-
-eagleComponents.directive('tabs', function() {
-	return {
-		restrict : 'AE',
-		transclude : true,
-		scope : {
-			title: "@",
-			icon: "@",
-			selected: "@?selected",
-
-			inner: "=?inner"
-		},
-		controller: function($scope, $element, $attrs, $timeout) {
-			var _selected = null;
-
-			var panes = $scope.panes = [];
-
-			$scope.getList = function() {
-				if($scope.inner) {
-					return $scope.panes;
-				} else {
-					return $scope.panes.slice().reverse();
-				}
-			};
-
-			$scope.select = function(pane, updateBind) {
-				angular.forEach(panes, function(pane) {
-					pane.selected = false;
-				});
-				pane.selected = true;
-				_selected = pane;
-
-				if(updateBind !== false && $attrs.selected) {
-					$scope.$parent[$attrs.selected] = _selected.title;
-				}
-			};
-
-			this.addPane = function(pane) {
-				if (panes.length == 0 || ($attrs.selected && $scope.$parent[$attrs.selected] === pane.title)) {
-					$scope.select(pane, false);
-				}
-				panes.push(pane);
-			};
-
-			// Listen tab selected change
-			if($attrs.selected) {
-				$scope.$parent.$watch($attrs.selected, function(value) {
-					$.each(panes, function(i, pane) {
-						if(value === pane.title) {
-							$scope.select(pane, false);
-							return false;
-						}
-					});
-				});
-			}
-		},
-		template : '<div ng-class="inner ? \'\' : \'nav-tabs-custom\'">' +
-			'<ul class="nav nav-tabs ui-sortable-handle" ng-class="inner ? \'\' : \'pull-right\'">' +
-				'<li ng-repeat="pane in getList()" ng-class="{active:pane.selected}">' +
-					'<a href="" ng-click="select(pane)">{{pane.title}}</a>' +
-				'</li>' +
-				'<li class="pull-left header"><i class="fa fa-{{icon}}"></i> {{title}}</li>' +
-			'</ul>' +
-			'<div class="tab-content" ng-transclude></div>' +
-		'</div>',
-		replace : true
-	};
-}).directive('pane', function() {
-	return {
-		require : '^tabs',
-		restrict : 'AE',
-		transclude : true,
-		scope : {
-			title : '@'
-		},
-		controller: function($scope, $element, $timeout) {
-			// Initialization
-			var $innerScope = angular.element($element).scope();
-			$innerScope.app = app;
-			$innerScope.common = common;
-			$innerScope._parent = $scope.$parent.$parent.$parent;
-		},
-		link : function(scope, element, attrs, tabsController) {
-			tabsController.addPane(scope);
-		},
-		template : '<div class="tab-pane" ng-class="{active: selected}" ng-transclude="parent">' + '</div>',
-		replace : true
-	};
-});
\ No newline at end of file