[UI] Improve integeration page

<!--
{% comment %}
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.
{% endcomment %}
-->

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

 - [x] Make sure the PR title is formatted like:
   `[EAGLE-<Jira issue #>] Description of pull request`
 - [x] Make sure tests pass via `mvn clean verify`. (Even better, enable
       Travis-CI on your fork and ensure the whole test matrix passes).
 - [x] Replace `<Jira issue #>` in the title with the actual Jira issue
       number, if there is one.
 - [x] If this contribution is large, please file an Apache
       [Individual Contributor License 
Agreement](https://www.apache.org/licenses/icla.txt).

---

Author: Hao Chen <h...@apache.org>

Closes #524 from haoch/ImproveIntegerationPage.


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

Branch: refs/heads/master
Commit: adc2ba900a2d29352e96489ad48addde17bedccf
Parents: c3bde01
Author: Hao Chen <h...@apache.org>
Authored: Tue Oct 18 19:31:48 2016 +0800
Committer: Hao Chen <h...@apache.org>
Committed: Tue Oct 18 19:31:48 2016 +0800

----------------------------------------------------------------------
 ...e.alert.app.AlertUnitTopologyAppProvider.xml | 83 +++++++++++---------
 eagle-server/pom.xml                            | 10 +++
 .../app/dev/partials/integration/site.html      | 50 ++++++------
 .../app/dev/public/js/ctrls/integrationCtrl.js  |  8 +-
 eagle-server/ui-build.sh                        |  0
 5 files changed, 87 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
 
b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
index b3e777c..6ef96c7 100644
--- 
a/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
+++ 
b/eagle-core/eagle-alert-parent/eagle-alert-app/src/main/resources/META-INF/providers/org.apache.eagle.alert.app.AlertUnitTopologyAppProvider.xml
@@ -20,110 +20,123 @@
     <type>AlertUnitTopologyApp</type>
     <name>Alert Unit Topology Application</name>
     <version>0.5.0-incubating</version>
-    <appClass>org.apache.eagle.alert.app.AlertUnitTopologyApp</appClass>
-    <viewPath>/apps/alert</viewPath>
     <configuration>
        <!-- alert topology sizing parameters -->
         <property>
             <name>workers</name>
-            <displayName>workers</displayName>
+            <displayName>Worker Number</displayName>
             <value>1</value>
-            <description>number of topology workers</description>
+            <description>Storm parallelism worker number</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfSpoutTasks</name>
-            <displayName>topology.numOfSpoutTasks</displayName>
+            <displayName>Source Tasks Number</displayName>
             <value>1</value>
-            <description>number of spout tasks</description>
+            <description>Number of spout tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfRouterBolts</name>
-            <displayName>topology.numOfRouterBolts</displayName>
+            <displayName>Route Tasks Number</displayName>
             <value>4</value>
-            <description>number of router tasks</description>
+            <description>Number of router tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfAlertBolts</name>
-            <displayName>topology.numOfAlertBolts</displayName>
+            <displayName>Evaluator Tasks Number</displayName>
             <value>10</value>
-            <description>number of alert tasks</description>
+            <description>Number of alert tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.numOfPublishTasks</name>
-            <displayName>topology.numOfPublishTasks</displayName>
+            <displayName>Publisher Tasks Number</displayName>
             <value>1</value>
-            <description>number of publish tasks</description>
+            <description>Number of publish tasks</description>
+            <required>false</required>
         </property>
         <property>
             <name>topology.messageTimeoutSecs</name>
-            <displayName>topology.messageTimeoutSecs</displayName>
+            <displayName>Message Timeout Seconds</displayName>
             <value>3600</value>
-            <description>number of tuple timeout in seconds</description>
+            <description>Number of tuple timeout in seconds</description>
+            <required>false</required>
         </property>
 
         <!-- alert spout configuration -->
         <property>
             <name>spout.kafkaBrokerZkQuorum</name>
-            <displayName>spout.kafkaBrokerZkQuorum</displayName>
+            <displayName>Kafka Zookeeper Quorum</displayName>
             <value>localhost:2181</value>
-            <description>zookeeper quorum for spout to consume 
data</description>
+            <description>Zookeeper quorum of kafka broker for spout to consume 
data</description>
+            <required>true</required>
         </property>
         <property>
             <name>spout.kafkaBrokerZkBasePath</name>
-            <displayName>spout.kafkaBrokerZkBasePath</displayName>
+            <displayName>Kafka Zookeeper Root</displayName>
             <value>/brokers</value>
-            <description>zk znode path for kafka brokers</description>
+            <description>Zookeeper znode path for kafka brokers</description>
+            <required>false</required>
         </property>
         <property>
             <name>spout.stormKafkaUseSameZkQuorumWithKafkaBroker</name>
-            
<displayName>spout.stormKafkaUseSameZkQuorumWithKafkaBroker</displayName>
+            <displayName>Reuse Kafka Zookeeper</displayName>
             <value>true</value>
-            <description>same zookeeper for kafka server and kafka 
consumer(Storm-Kafka)</description>
+            <description>Use same zookeeper for kafka server and kafka 
consumer(Storm-Kafka)</description>
+            <required>false</required>
         </property>
         <property>
             <name>spout.stormKafkaTransactionZkPath</name>
-            <displayName>spout.stormKafkaTransactionZkPath</displayName>
+            <displayName>Kafka Transaction ZkPath</displayName>
             <value>/consumers</value>
-            <description>zk path for storm kafka transaction</description>
+            <description>Zookeeper path for storm kafka 
transaction</description>
+            <required>false</required>
         </property>
         <property>
             <name>spout.stormKafkaEagleConsumer</name>
-            <displayName>spout.stormKafkaEagleConsumer</displayName>
+            <displayName>Kafka Consumer ID</displayName>
             <value>eagle_consumer</value>
-            <description>zookeeper quorum for spout to consume 
data</description>
+            <description>Zookeeper quorum for spout to consume 
data</description>
+            <required>true</required>
         </property>
 
         <!-- zk config for alert engine -->
         <property>
             <name>zkConfig.zkQuorum</name>
-            <displayName>zkConfig.zkQuorum</displayName>
+            <displayName>Coordinator Zookeeper Quorum</displayName>
             <value>localhost:2181</value>
-            <description>zk quorum for alert engine</description>
+            <description>Zookeeper quorum for alert engine</description>
+            <required>true</required>
         </property>
         <property>
             <name>zkConfig.zkRoot</name>
-            <displayName>zkConfig.zkRoot</displayName>
+            <displayName>Coordinator Zookeeper Root</displayName>
             <value>/alert</value>
-            <description>zk znode path for alert engine</description>
+            <description>Zookeeper znode path for alert engine</description>
+            <required>false</required>
         </property>
-
         <property>
             <name>metadataService.context</name>
-            <displayName>metadataService.context</displayName>
+            <displayName>Metadata Service Context Path</displayName>
             <value>/rest</value>
-            <description>metadata service context path</description>
+            <description>Metadata service context path</description>
+            <required>false</required>
         </property>
         <property>
             <name>metadataService.host</name>
-            <displayName>metadataService.host</displayName>
+            <displayName>Metadata Service Host</displayName>
             <value>localhost</value>
-            <description>metadata service host</description>
+            <description>Metadata service host</description>
+            <required>true</required>
         </property>
         <property>
             <name>metadataService.port</name>
-            <displayName>metadataService.port</displayName>
+            <displayName>Metadata Service Port</displayName>
             <value>9090</value>
-            <description>metadata service port</description>
+            <description>Metadata service port</description>
+            <required>true</required>
         </property>
     </configuration>
     <docs>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/pom.xml
----------------------------------------------------------------------
diff --git a/eagle-server/pom.xml b/eagle-server/pom.xml
index 37ba4f2..07f02ec 100644
--- a/eagle-server/pom.xml
+++ b/eagle-server/pom.xml
@@ -257,6 +257,16 @@
                     <groupId>org.apache.eagle</groupId>
                     <artifactId>eagle-security-oozie-web</artifactId>
                     <version>${project.version}</version>
+                    <exclusions>
+                        <exclusion>
+                            <groupId>org.slf4j</groupId>
+                            <artifactId>slf4j-simple</artifactId>
+                        </exclusion>
+                        <exclusion>
+                            <groupId>org.slf4j</groupId>
+                            <artifactId>slf4j-log4j12</artifactId>
+                        </exclusion>
+                    </exclusions>
                 </dependency>
 
                 <!-- App: hdfs audit log monitoring -->

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
----------------------------------------------------------------------
diff --git 
a/eagle-server/src/main/webapp/app/dev/partials/integration/site.html 
b/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
index ce0cddd..5844381 100644
--- a/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
+++ b/eagle-server/src/main/webapp/app/dev/partials/integration/site.html
@@ -17,8 +17,6 @@
   -->
 
 <div class="box-body">
-
-
        <div class="form-group">
                <label>Site</label>
                <input type="text" class="form-control" readonly 
ng-model="siteName">
@@ -28,7 +26,7 @@
                <textarea class="form-control" readonly 
ng-model="site.description" rows="2"></textarea>
        </div>
 
-       <label>Application</label>
+       <label>Applications</label>
        <span class="text-danger" ng-if="site.applicationList.length === 0">
                (<span class="fa fa-exclamation-triangle"></span> Site must 
install at least one application to start up.)
        </span>
@@ -84,7 +82,7 @@
                                                </button>
                                        </div>
                                        <div class="btn-group btn-group-xs" 
ng-if="!app.installed">
-                                               <button class="btn btn-primary 
btn-sm" ng-click="installApp(app)">Install Application</button>
+                                               <button class="btn btn-primary 
btn-sm" ng-click="installApp(app)">Install</button>
                                        </div>
                                </td>
                        </tr>
@@ -106,7 +104,7 @@
                        </div>
                        <div class="modal-body">
                                <ul class="nav nav-tabs">
-                                       <li><a href="[data-id='intro']" 
data-toggle="tab" data-id="introTab">Introduction</a></li>
+                                       <li><a href="[data-id='intro']" 
data-toggle="tab" data-id="introTab">Summary</a></li>
                                        <li><a href="[data-id='install']" 
data-toggle="tab">Installation</a></li>
                                        <li><a href="[data-id='uninstall']" 
data-toggle="tab">Uninstallation</a></li>
                                </ul>
@@ -207,7 +205,7 @@
                        <div class="modal-body">
                                <ul class="nav nav-tabs">
                                        <li><a href="[data-id='guide']" 
data-toggle="tab" data-id="guideTab">Installation</a></li>
-                                       <li><a href="[data-id='configuration']" 
data-toggle="tab" data-id="configTab">Setting</a></li>
+                                       <li><a href="[data-id='configuration']" 
data-toggle="tab" data-id="configTab">Settings</a></li>
                                </ul>
 
                                <div class="tab-content">
@@ -231,22 +229,26 @@
 
                                        <div class="tab-pane" 
data-id="configuration">
                                                <!-- Environment -->
-                                               <h3>
+                                               <h5>
                                                        <a class="text-primary" 
data-toggle="collapse" href="[data-id='appEnvironment']" 
ng-click="collapseCheck()">
                                                                <span class="fa 
{{isCollapsed('appEnvironment') ? 'fa-chevron-circle-right' : 
'fa-chevron-circle-down'}}"></span>
                                                                Environment
                                                        </a>
-                                               </h3>
+                                               </h5>
                                                <div data-id="appEnvironment" 
class="collapse in">
                                                        <div class="form-group">
-                                                               
<label>Mode</label>
+                                                               
<label>Execution Mode
+                                                                       <span 
class="fa fa-question-circle" uib-tooltip="Application execution mode: 
LOCAL/CLUSTER"></span>
+                                                               </label>
                                                                <select 
class="form-control" ng-model="tmpApp.mode">
-                                                                       
<option>CLUSTER</option>
-                                                                       
<option>LOCAL</option>
+                                                                       <option 
value="CLUSTER">Submit as Cluster Mode</option>
+                                                                       <option 
VALUE="LOCAL">Submit as Local Mode</option>
                                                                </select>
                                                        </div>
                                                        <div class="form-group">
-                                                               <label>jar 
Path</label>
+                                                               
<label>Execution File
+                                                                       <span 
class="fa fa-question-circle" uib-tooltip="Full path of Application Jar or 
Class file on eagle server host"></span>
+                                                               </label>
                                                                <input 
type="text" class="form-control" ng-model="tmpApp.jarPath" 
ng-change="checkJarPath()" />
                                                        </div>
                                                </div>
@@ -254,48 +256,48 @@
                                                <hr/>
 
                                                <!-- General -->
-                                               <a class="pull-right" 
ng-click="configByJSON()">Config By JSON</a>
-                                               <h3>
+                                               <a class="pull-right" 
ng-click="configByJSON()">Import Configs</a>
+                                               <h5>
                                                        <a class="text-primary" 
data-toggle="collapse" href="[data-id='appGeneral']" ng-click="collapseCheck()">
                                                                <span class="fa 
{{isCollapsed('appGeneral') ? 'fa-chevron-circle-right' : 
'fa-chevron-circle-down'}}"></span>
                                                                General
                                                        </a>
-                                               </h3>
+                                               </h5>
                                                <div data-id="appGeneral" 
class="collapse in">
                                                        <span 
class="text-muted" ng-if="generalFields.length === 0">N/A</span>
                                                        <div class="form-group" 
ng-class="{'has-warning': !tmpApp.configuration[field.name]}" ng-repeat="field 
in generalFields track by $index">
                                                                <label>
                                                                        
{{field.displayName || field.name}}
-                                                                       <span 
class="fa fa-question-circle" ng-if="field.description" uib-tooltip="[ 
{{field.name}} ] {{field.description}}"></span>
+                                                                       <span 
class="fa fa-question-circle" ng-if="field.description" 
uib-tooltip="{{field.description}} ({{field.name}})"></span>
                                                                </label>
                                                                <input 
type="text" class="form-control" placeholder="{{field.description}}" 
ng-model="tmpApp.configuration[field.name]" />
                                                        </div>
                                                </div>
 
                                                <!-- Advanced -->
-                                               <h3>
+                                               <h5>
                                                        <a class="text-primary" 
data-toggle="collapse" href="[data-id='appAdvanced']" 
ng-click="collapseCheck()">
                                                                <span class="fa 
{{isCollapsed('appAdvanced') ? 'fa-chevron-circle-right' : 
'fa-chevron-circle-down'}}"></span>
                                                                Advanced
                                                        </a>
-                                               </h3>
+                                               </h5>
                                                <div data-id="appAdvanced" 
class="collapse in">
                                                        <span 
class="text-muted" ng-if="advancedFields.length === 0">N/A</span>
                                                        <div class="form-group" 
ng-repeat="field in advancedFields track by $index">
                                                                <label>
                                                                        
{{field.displayName || field.name}}
-                                                                       <span 
class="fa fa-question-circle" ng-if="field.description" uib-tooltip="[ 
{{field.name}} ] {{field.description}}"></span>
+                                                                       <span 
class="fa fa-question-circle" ng-if="field.description" 
uib-tooltip="{{field.description}} ({{field.name}})"></span>
                                                                </label>
                                                                <input 
type="text" class="form-control" placeholder="{{field.description}}" 
ng-model="tmpApp.configuration[field.name]" />
                                                        </div>
                                                </div>
 
-                                               <h3>
+                                               <h5>
                                                        <a class="text-primary" 
data-toggle="collapse" href="[data-id='appCustomize']" 
ng-click="collapseCheck()">
                                                                <span class="fa 
{{isCollapsed('appCustomize') ? 'fa-chevron-circle-right' : 
'fa-chevron-circle-down'}}"></span>
-                                                               Customize
+                                                               Custom
                                                        </a>
-                                               </h3>
+                                               </h5>
                                                <div data-id="appCustomize" 
class="collapse in">
                                                        <div class="form-group" 
ng-class="{'has-warning': !tmpApp.configuration[field.name]}" ng-repeat="field 
in customizeFields track by $index">
                                                                <label>
@@ -304,10 +306,8 @@
                                                                </label>
                                                                <input 
type="text" class="form-control" placeholder="{{field.description}}" 
ng-model="tmpApp.configuration[field.name]" />
                                                        </div>
-                                                       <a 
ng-click="newField()">+ New Field</a>
+                                                       <a 
ng-click="newField()">+ Add Property</a>
                                                </div>
-
-
                                        </div>
                                </div>
                        </div>

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
----------------------------------------------------------------------
diff --git 
a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js 
b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
index a26810c..988064c 100644
--- a/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
+++ b/eagle-server/src/main/webapp/app/dev/public/js/ctrls/integrationCtrl.js
@@ -150,20 +150,20 @@
                // =================== Fields ===================
                $scope.newField = function () {
                        UI.fieldConfirm({
-                               title: "New Field"
+                               title: "New Property"
                        }, null, [{
                                field: "name",
-                               name: "Field Name"
+                               name: "Property Name"
                        }, {
                                field: "value",
-                               name: "Field Value",
+                               name: "Property Value",
                                optional: true
                        }])(function (entity, closeFunc, unlock) {
                                var fullList = 
$scope.generalFields.concat($scope.advancedFields).concat($scope.customizeFields);
                                if(common.array.find(entity.name, fullList, 
"field")) {
                                        $.dialog({
                                                title: "OPS",
-                                               content: "Field already exist!"
+                                               content: "Property already 
exist!"
                                        });
 
                                        unlock();

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/adc2ba90/eagle-server/ui-build.sh
----------------------------------------------------------------------
diff --git a/eagle-server/ui-build.sh b/eagle-server/ui-build.sh
old mode 100644
new mode 100755

Reply via email to