ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yus...@apache.org
Subject [07/12] ambari git commit: AMBARI-17213. Create ambari workflow designer contrib view. (Venkat Ranganathan via yusaku)
Date Tue, 09 Aug 2016 20:16:20 GMT
http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-credential-config.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-credential-config.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-credential-config.hbs
new file mode 100644
index 0000000..591e15a
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-credential-config.hbs
@@ -0,0 +1,33 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="panel panel-default">
+  <div class="panel-heading" id="action-cred-accordian" data-toggle="collapse" data-parent="#action-cred-accordian" data-target="#action-cred-collapse">Credentials
+      <i class="indicator glyphicon glyphicon-chevron-down pull-right"></i>
+  </div>
+  <div class="panel-body handlerPanel panel-collapse collapse" id="action-cred-collapse">
+    <div class="">
+      {{#each credentials as |credential|}}
+      <div class="form-group">
+        {{input type="checkbox" class="cbox marginleft20" name=credential.name  click=(action 'onClick' credential.name)}}<span>{{credential.name}}</span><span class="cred-type">({{credential.type}})</span>
+      </div>
+      {{else}}
+        No credentials configured.
+      {{/each}}
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-version-select.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-version-select.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-version-select.hbs
new file mode 100644
index 0000000..cf27c81
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/action-version-select.hbs
@@ -0,0 +1,27 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="form-group">
+  <label class="control-label col-xs-3 padding10">{{actionVersion.name}}</label>
+  <div class="col-xs-7 padding10">
+    <select onchange={{action "versionChanged" value="target.value"}} name="select-version" class="form-control">
+      {{#each actionVersion.supporedVersions as |version index|}}
+        <option value={{version}} selected={{eq version actionVersion.selectedVersion}}>{{version}}</option>
+      {{/each}}
+    </select>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/archive-config.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/archive-config.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/archive-config.hbs
new file mode 100644
index 0000000..166a202
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/archive-config.hbs
@@ -0,0 +1,44 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div id="archiveHolder">
+  {{#each archives as |archive index|}}
+  <div class="form-group">
+    <label class="control-label col-xs-2">Archive</label>
+    <div class=" col-xs-6">
+      <input type="text" class="form-control" value={{archive}} placeholder="Archive">
+    </div>
+    <div class="col-xs-1">
+      <input class="form-control btn btn-danger" type="button" {{action "deleteArchive" index}} value="-">
+    </div>
+  </div>
+  {{/each}}
+  <div class="form-group">
+    <label class="control-label col-xs-2">Archive</label>
+    <div class="col-xs-7">
+      <div class="input-group">
+        {{input type="text" class="form-control" value=archive placeholder="Archive"}}
+        <span class="input-group-btn">
+          <button class="btn btn-primary" type="button" {{action "openFileBrowser" "archive"}}>Browse</button>
+        </span>
+      </div>
+    </div>
+    <div class="col-xs-1">
+      <input class="form-control  btn btn-success" type="button" {{action "addArchive"}} value="+">
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/arg-config.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/arg-config.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/arg-config.hbs
new file mode 100644
index 0000000..bcf393b
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/arg-config.hbs
@@ -0,0 +1,49 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div>
+  {{#each args as |arg index|}}
+    <div class="form-group">
+      {{#if (eq index 0)}}
+        
+        <label class="control-label col-xs-2">{{#unless hideLabel}}{{title}}{{/unless}}</label>
+        
+      {{else}}
+        <label class="control-label col-xs-2"></label>
+      {{/if}}
+      <div class=" col-xs-7">
+        {{input type="text" class="form-control" value=arg.value placeholder=title}}
+      </div>
+      <div class="col-xs-1">
+        <input class="form-control btn btn-danger" type="button" {{action "deleteArg" index}} value="-">
+      </div>
+    </div>
+  {{/each}}
+  <div class="form-group">
+    {{#if args}}
+      <label class="control-label col-xs-2"></label>
+    {{else}}
+      <label class="control-label col-xs-2">{{#unless hideLabel}}{{title}}{{/unless}}</label>
+    {{/if}}
+    <div class=" col-xs-7">
+      {{input type="text" class="form-control" value=arg placeholder=title}}
+    </div>
+    <div class="col-xs-1">
+      <input class="form-control btn btn-success" type="button" value="+" {{action "addArg"}}>
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/bundle-job-details.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/bundle-job-details.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/bundle-job-details.hbs
new file mode 100644
index 0000000..b1f1d7e
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/bundle-job-details.hbs
@@ -0,0 +1,132 @@
+{{!
+* 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.
+}}
+{{yield}}
+<div class="tab-content">
+  <div role="tabpanel" class="tab-pane active" id="jobInfo">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <div class="row">
+          <div class="col-md-12">
+            <div class="col-md-2">Job Id</div>
+            <div class="col-md-10">{{id}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Status</div>
+            <div class="col-md-10">{{model.status}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">User</div>
+            <div class="col-md-10">{{model.user}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Group</div>
+            <div class="col-md-10">{{model.group}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">App Path</div>
+            <div class="col-md-10" id="job-detail-app-path">{{model.bundleJobPath}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Created Time</div>
+            <div class="col-md-10">{{model.createdTime}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">KickOff Time</div>
+            <div class="col-md-10">{{model.kickoffTime}}</div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="coordJobs">
+    <table class="table listing job-listing table-striped table-hover table-bordered">
+      <thead>
+        <tr>
+          <th>Name</th>
+          <th>Type</th>
+          <th>Status</th>
+          <th>User</th>
+          <th>Group</th>
+          <th>Frequency</th>
+          <th>Time Unit</th>
+          <th>Start Time</th>
+          <th>End Time</th>
+        </tr>
+      </thead>
+      <tbody>
+        {{#each model.bundleCoordJobs as |coordJob|}}
+        <tr {{action 'showCoord' coordJob.coordJobId}} class="{{if (eq actionInfo model.actionDetails) "active"}}">
+          <td class="pointer">{{coordJob.coordJobId}}</td>
+          <td>{{coordJob.coordJobName}}</td>
+          <td>{{coordJob.status}}</td>
+          <td>{{coordJob.user}}</td>
+          <td>{{coordJob.group}}</td>
+          <td>{{coordJob.frequency}}</td>
+          <td>{{coordJob.timeUnit}}</td>
+          <td>{{coordJob.startTime}}</td>
+          <td>{{coordJob.endTime}}</td>
+        </tr>
+        {{/each}}
+      </tbody>
+    </table>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobDefinition">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        <pre class="prettyprint">{{model.jobDefinition}}</pre>
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobConfig">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        <pre class="prettyprint">{{model.conf}}</pre>
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobLog">
+    {{#job-log getJobLog="getJobLog" jobType=model.jobType jobLog=model.jobLog error=model.error}}{{/job-log}}
+  </div>
+
+  <div role="tabpanel" class="tab-pane" id="jobErrorLog">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        {{#if model.errorLog}}
+          <pre>{{model.errorLog}}</pre>
+        {{else if model.error}}
+          <pre>{{model.errorLog}}</pre>
+        {{else}}
+          {{spin-spinner lines=8 length=5 width=3 radius=5 top=220}}
+        {{/if}}
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobAuditLog">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        {{#if model.auditLog}}
+          <pre>{{model.auditLog}}</pre>
+        {{else if model.error}}
+          <pre>{{model.auditLog}}</pre>
+        {{else}}
+          {{spin-spinner lines=8 length=5 width=3 radius=5 top=220}}
+        {{/if}}
+      </div>
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/coord-job-details.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/coord-job-details.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/coord-job-details.hbs
new file mode 100644
index 0000000..65aed2d
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/coord-job-details.hbs
@@ -0,0 +1,188 @@
+{{!
+* 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.
+}}
+{{yield}}
+<div class="tab-content">
+  <div role="tabpanel" class="tab-pane active" id="jobInfo">
+    <div class="panel panel-default">
+      <div class="panel-body">
+        <div class="row">
+          <div class="col-md-12">
+            <div class="col-md-2">Job Id</div>
+            <div class="col-md-10">{{id}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Status</div>
+            <div class="col-md-10">{{model.status}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">User</div>
+            <div class="col-md-10">{{model.user}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Group</div>
+            <div class="col-md-10">{{model.group}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">App Path</div>
+            <div class="col-md-10" id="job-detail-app-path">{{model.coordJobPath}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Frequency</div>
+            <div class="col-md-10">{{model.frequency}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Unit</div>
+            <div class="col-md-10">{{model.timeUnit}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Parent Bundle</div>
+            <div class="col-md-10">{{model.bundleId}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Created Time</div>
+            <div class="col-md-10">{{model.createdTime}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Start Time</div>
+            <div class="col-md-10">{{model.startTime}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Next Matd. Time</div>
+            <div class="col-md-10">{{model.nextMaterializedTime}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">End Time</div>
+            <div class="col-md-10">{{model.endTime}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Pause Time</div>
+            <div class="col-md-10">{{model.pauseTime}}</div>
+          </div>
+          <div class="col-md-12">
+            <div class="col-md-2">Concurrency</div>
+            <div class="col-md-10">{{model.concurrency}}</div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobAction">
+    <table id="action-list" class="table listing job-listing table-striped table-hover table-bordered">
+      <thead>
+        <tr>
+          <th>Id</th>
+          <th>Status</th>
+          <th>External Id</th>
+          <th>Error Code</th>
+          <th>Created Time</th>
+          <th>Nominal Time</th>
+          <th>Last Modified Time</th>
+        </tr>
+      </thead>
+      <tbody>
+        {{#each model.actions as |actionInfo|}}
+        <tr {{action 'showWorkflow' actionInfo.externalId}} class="{{if (eq actionInfo model.actionDetails) "active"}}">
+          <td class="pointer">{{actionInfo.id}}</td>
+          <td>{{actionInfo.status}}</td>
+          <td>{{actionInfo.externalId}}</td>
+          <td>{{actionInfo.errorCode}}</td>
+          <td>{{actionInfo.createdTime}}</td>
+          <td>{{actionInfo.nominalTime}}</td>
+          <td>{{actionInfo.lastModifiedTime}}</td>
+        </tr>
+        {{/each}}
+      </tbody>
+    </table>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobDefinition">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        <pre class="prettyprint">{{model.jobDefinition}}</pre>
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobConfig">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        <pre class="prettyprint">{{model.conf}}</pre>
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobLog">
+    {{#job-log getJobLog="getJobLog" jobType=model.jobType jobLog=model.jobLog error=model.error}}{{/job-log}}
+  </div>
+
+  <div role="tabpanel" class="tab-pane" id="jobErrorLog">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        {{#if model.errorLog}}
+          <pre>{{model.errorLog}}</pre>
+        {{else if model.error}}
+          <pre>{{model.errorLog}}</pre>
+        {{else}}
+          {{spin-spinner lines=8 length=5 width=3 radius=5 top=220}}
+        {{/if}}
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="jobAuditLog">
+    <div class="panel panel-default">
+      <div class="panel-body preview">
+        {{#if model.auditLog}}
+          <pre>{{model.auditLog}}</pre>
+        {{else if model.error}}
+          <pre>{{model.auditLog}}</pre>
+        {{else}}
+          {{spin-spinner lines=8 length=5 width=3 radius=5 top=220}}
+        {{/if}}
+      </div>
+    </div>
+  </div>
+  <div role="tabpanel" class="tab-pane" id="coordActionReruns">
+    <div class="panel panel-default">
+      <div class="panel-heading">
+        <div class="form-inline">
+          <label>Action List</label> {{input value=rerunActionList classNames="form-control"}}
+          <button {{action 'getCoordActionReruns'}} type="button" class="btn btn-default">Get Workflows</button>
+        </div>
+      </div>
+      <div class="panel-body">
+        <table class="table listing table-striped table-hover table-bordered">
+          <thead>
+            <tr>
+              <th>Workflow Id</th>
+              <th>Workflow Status</th>
+              <th>Start Time</th>
+              <th>End Time</th>
+            </tr>
+          </thead>
+          <tbody>
+            {{#each model.coordActionReruns as |workflowInfo|}}
+            <tr {{action 'showWorkflow' workflowInfo.id}}>
+              <td>{{workflowInfo.id}}</td>
+              <td>{{workflowInfo.status}}</td>
+              <td>{{workflowInfo.startTime}}</td>
+              <td>{{workflowInfo.endTime}}</td>
+            </tr>
+            {{/each}}
+          </tbody>
+        </table>
+      </div>
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/credentials-config.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/credentials-config.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/credentials-config.hbs
new file mode 100644
index 0000000..129b7df
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/credentials-config.hbs
@@ -0,0 +1,83 @@
+{{!
+* 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.
+}}
+<form class="form-horizontal" id="credentials_config">
+  <div class="panel panel-default">
+    {{#if (eq mode 'edit')}}
+      <div class="panel-heading" id="credential-head" {{action 'togglePanel'}}>
+        <span>{{credential.name}}</span><span class="cred-type">({{credential.type}})</span>
+        {{#if isOpen}}
+          <i class="indicator glyphicon glyphicon-chevron-up pull-right"></i>
+        {{else}}
+          <i class="indicator glyphicon glyphicon-chevron-down pull-right"></i>
+        {{/if}}
+        <span class="col-xs-1 pull-right">
+          <i class="fa fa-trash-o" title="Delete" {{action "delete" credential.name bubbles=false}}></i>
+        </span>
+      </div>
+    {{else if (eq mode 'create')}}
+      <div class="panel-heading" id="credential-head" {{action 'togglePanel'}}>Create New</div>
+    {{/if}}
+    <div class="panel-body handlerPanel collapse panel-collapse">
+      <div class="form-group">
+        <label class="control-label col-xs-2">Name<span class="requiredField">&nbsp;*</span></label>
+        <div class=" col-xs-4">
+          {{input class="form-control" type="text" value=credential.name}}
+          {{field-error error=errors.credential.name}}
+        </div>
+      </div>
+      <div class="form-group">
+        <label class="control-label col-xs-2">Type<span class="requiredField">&nbsp;*</span></label>
+        <div class="col-xs-4">
+          <select class="form-control" name="credential-type" title="Credential Type" onchange={{action (mut credential.type) value="target.value"}}>
+            {{#each credentialType as |type|}}
+              <option value={{type.value}} selected={{eq type.value credential.type}}>{{type.displayName}}</option>
+            {{/each}}
+          </select>
+          {{field-error error=errors.credential.type}}
+        </div>
+      </div>
+      {{#if credential.type}}
+        <div class="panel panel-default">
+          <div class="panel-heading">Properties</div>
+          <div class="panel-body handlerPanel">
+            {{#each staticProps as |property|}}
+              {{#named-properties property=property required=true register="register" labelWidthClass="col-xs-4" inputWidthClass="col-xs-4"}}{{/named-properties}}
+            {{/each}}
+          </div>
+        </div>
+      {{/if}}
+      <div class=" panel panel-default">
+        <div class="panel-heading">Custom Properties</div>
+        <div class="panel-body handlerPanel">
+          <div class="form-group">
+            {{#if (eq mode 'edit')}}
+              <label class="control-label col-xs-4">Name</label>
+              <label class="control-label col-xs-4">Value</label>
+            {{/if}}
+          </div>
+          {{#name-value-config configuration=credential register="register"}}{{/name-value-config}}
+        </div>
+      </div>
+      {{#if (eq mode 'create')}}
+      <div class="col-xs-2 pull-right">
+        <input class="form-control btn btn-success" type="button" {{action "add"}} value="Add">
+      </div>
+      {{/if}}
+    </div>
+  </div>
+</form>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-add-branch.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-add-branch.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-add-branch.hbs
new file mode 100644
index 0000000..19447dd
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-add-branch.hbs
@@ -0,0 +1,64 @@
+{{!
+* 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.
+}}
+<a data-placement="bottom" data-toggle="popover" data-container="body" data-placement="right"
+type="button" data-html="true">
+{{yield}}
+</a>
+
+<div id="selector-content" style="display:none" class="decision-add-branch-popover">
+  <div class="panel panel-default">
+    <div class="panel-heading">Add Decision Branch</div>
+    <div class="panel-body">
+
+      <div class="bs-example">
+        <form class="form-horizontal">
+          <div class="form-group">
+            <label for="inputPassword" class="control-label col-xs-4">Condition<span class="requiredField">&nbsp;*</span></label>
+            <div class="col-xs-7">
+              {{input type="text" class="form-control" value=condition}}
+              {{field-error error=errors.condition}}
+            </div>
+          </div>
+          <div class="form-group">
+            <label for="inputPassword" class="control-label col-xs-4">Select target Node<span class="requiredField">&nbsp;*</span></label>
+            <div class="col-xs-7">
+              <select id="target-node-select" onchange={{action "onTargetNodeChange" value="target.value"}} name="select-node" class="form-control">
+                <option value="">Select</option>
+                {{#each descendantNodes as |node index|}}
+                <option value={{node.id}} selected={{eq node.name currentNode.errorNode.name}}>{{node.name}}</option>
+                {{/each}}
+                {{#each killNodes as |node index|}}
+                <option value={{node.id}} selected={{eq node.name currentNode.errorNode.name}}>{{node.name}}</option>
+                {{/each}}
+              </select>
+              {{field-error error=errors.targetNode}}
+            </div>
+          </div>
+        </form>
+      </div>
+      <hr class="hrClass"/>
+      <div class="form-group">
+        <label for="inputPassword" class="control-label col-xs-3"></label>
+        <div class="col-xs-6 pull-right">
+          <button type="button" {{action "save"}} class="btn btn-primary" data-dismiss="modal">Save</button>
+          <button type="button" {{action "cancel"}} data-dismiss="modal" class="btn btn-default" data-dismiss="modal">Cancel</button>
+        </div>
+      </div>
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-config.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-config.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-config.hbs
new file mode 100644
index 0000000..342653f
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/decision-config.hbs
@@ -0,0 +1,36 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="decisionNodeError">
+  {{#field-error error=errors.actionModel}}{{/field-error}}
+</div>
+<table id="decision-properties-table" class="table decision-properties-table listing table-hover table-bordered" cellspacing="0">
+  <thead>
+    <tr>
+      <th>Condition</th>
+      <th>Node</th>
+    </tr>
+  </thead>
+  <tbody>
+      {{#each actionModel as |flow index|}}
+      <tr class="{{if (eq flow.condition 'default') 'active'}}">
+        <td>{{input type="text" class="form-control" value=flow.condition placeholder="condition"}}</td>
+        <td>{{flow.targetName}}</td>
+      </tr>
+      {{/each}}
+  </tbody>
+</table>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/designer-errors.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/designer-errors.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/designer-errors.hbs
new file mode 100644
index 0000000..8438255
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/designer-errors.hbs
@@ -0,0 +1,37 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div id="designer-errors">
+  {{#if (or (gt errors.length 0) (gt validationErrors.length 0))}}
+    <div id="alert"class="alert alert-danger alert-dismissible fade in workflow-error" role="alert">
+      {{#if (gt errors.length 0)}}
+        {{#each errors as |error|}}
+          {{#if error.node}}
+          <div>{{error.node.name}} : {{error.message}}</div>
+          {{else}}
+          <div>{{error.message}}</div>
+          {{/if}}
+        {{/each}}
+      {{/if}}
+      {{#if (gt validationErrors.length 0)}}
+        {{#each validationErrors as |error|}}
+        <div>{{error.node.name}} : {{error.message}}</div>
+        {{/each}}
+      {{/if}}
+    </div>
+  {{/if}}
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/distcp-action.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/distcp-action.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/distcp-action.hbs
new file mode 100644
index 0000000..28e67da
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/distcp-action.hbs
@@ -0,0 +1,70 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="panel panel-default">
+  <div class="panel-heading">General</div>
+  <div class="panel-body">
+    {{#arg-config args=actionModel.args register="register" title="arg"}}{{/arg-config}}
+    <div class="form-group">
+      <label for="inputPassword" class="control-label col-xs-2">Java opts</label>
+      <div class="col-xs-7">
+        {{input type="text" class="form-control" value=actionModel.javaOpts name="java-opts" placeholder="Java opts"}}
+      </div>
+    </div>
+  </div>
+</div>
+<div class="panel panel-default">
+  <div class="panel-heading">Transition</div>
+  <div class="panel-body handlerPanel">
+    {{#transition-config transition=transition killNodes=killNodes currentNode=currentNode register="register"}}{{/transition-config}}
+  </div>
+</div>
+{{#action-credential-config credentials=credentials actionCredentials=actionModel.credentials}}{{/action-credential-config}}
+<div class="panel panel-default">
+  <div class="panel-heading" id="accordion" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne">
+    Advanced Properties
+    <i class="indicator glyphicon glyphicon-chevron-down pull-right"></i>
+  </div>
+  <div id="collapseOne" class="panel-collapse collapse">
+    <br/>
+    <div class=" panel panel-default">
+      <div class="panel-body handlerPanel">
+        <div class="form-group">
+          <label for="inputEmail" class="control-label col-xs-2">Resource Manager</label>
+          <div class="col-xs-7">
+            {{input type="text" class="form-control" name="job-tracker" value=actionModel.jobTracker placeholder="Resource Manager"}}
+          </div>
+          {{field-error error=errors.actionModel.jobTracker}}
+        </div>
+        <div class="form-group">
+          <label for="inputPassword" class="control-label col-xs-2">Name node</label>
+          <div class="col-xs-7">
+            {{input type="text" class="form-control"  name="name-node" value=actionModel.nameNode validations="required,noWhitespace" placeholder="Name node"}}
+          </div>
+        </div>
+        {{#prepare-config prepare=actionModel.prepare openFileBrowser="openFileBrowser" register="register"}}{{/prepare-config}}
+      </div>
+    </div>
+    <div class=" panel panel-default">
+      <div class="panel-heading">Configuration</div>
+      <div class="panel-body handlerPanel">
+        {{#name-value-config configuration=actionModel.configuration register="register"}}{{/name-value-config}}
+      </div>
+    </div>
+  </div>
+</div>
+{{#sla-info slaInfo=actionModel.slaInfo register="register" slaEnabled=actionModel.slaEnabled register="register"}}{{/sla-info}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/email-action.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/email-action.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/email-action.hbs
new file mode 100644
index 0000000..b9680a1
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/email-action.hbs
@@ -0,0 +1,68 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="panel panel-default">
+  <div class="panel-heading">General</div>
+  <div class="panel-body">
+    <div class="form-group">
+      <label for="inputEmail" class="control-label col-xs-2">To<span class="requiredField">&nbsp;*</span></label>
+      <div class="col-xs-7">
+        {{input type="text" class="form-control" name="to" value=actionModel.to placeholder="Email to" title="list of comma seperated email id's"}}
+        {{field-error error=errors.actionModel.to}}
+      </div>
+    </div>
+    <div class="form-group">
+      <label for="inputEmail" class="control-label col-xs-2">Cc </label>
+      <div class="col-xs-7">
+        {{input type="text" class="form-control" name="cc" value=actionModel.cc placeholder="Cc To" title="list of comma seperated email id's"}}
+        {{field-error error=errors.actionModel.cc}}
+      </div>
+    </div>
+
+    <div class="form-group">
+      <label for="inputEmail" class="control-label col-xs-2">Bcc </label>
+      <div class="col-xs-7">
+        {{input type="text" class="form-control" name="bcc" value=actionModel.bcc placeholder="Bcc To" title="list of comma seperated email id's"}}
+        {{field-error error=errors.actionModel.bcc}}
+      </div>
+    </div>
+
+    <div class="form-group">
+      <label for="inputEmail" class="control-label col-xs-2">Subject<span class="requiredField">&nbsp;*</span></label>
+      <div class="col-xs-7">
+        {{input type="text" class="form-control" name="subject" value=actionModel.subject placeholder="Subject"}}
+        {{field-error error=errors.actionModel.subject}}
+      </div>
+    </div>
+
+    <div class="form-group">
+      <label for="inputEmail" class="control-label col-xs-2">Body<span class="requiredField">&nbsp;*</span></label>
+      <div class="col-xs-7">
+        {{textarea class="form-control" name="body" value=actionModel.body placeholder="Body"}}
+        {{field-error error=errors.actionModel.body}}
+      </div>
+    </div>
+  </div>
+</div>
+
+<div class="panel panel-default">
+  <div class="panel-heading">Transition</div>
+  <div class="panel-body handlerPanel">
+    {{#transition-config transition=transition killNodes=killNodes currentNode=currentNode register="register"}}{{/transition-config}}
+  </div>
+</div>
+{{#action-credential-config credentials=credentials actionCredentials=actionModel.credentials}}{{/action-credential-config}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/field-error.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/field-error.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/field-error.hbs
new file mode 100644
index 0000000..8f4d8dc
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/field-error.hbs
@@ -0,0 +1,21 @@
+{{!
+* 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.
+}}
+{{yield}}
+{{#if errorMessage}}
+  <label class="control-label text-danger">{{errorMessage}}</label>
+{{/if}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-config.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-config.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-config.hbs
new file mode 100644
index 0000000..7111c31
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-config.hbs
@@ -0,0 +1,57 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div id="fileHolder">
+  {{#each files as |file index|}}
+  <div class="form-group">
+    {{#if (eq index 0)}}
+      <label class="control-label col-xs-2">{{title}}</label>
+    {{else}}
+      <label class="control-label col-xs-2"></label>
+    {{/if}}
+    <div class="col-xs-7">
+      <div class="input-group">
+        {{input type="text" class="form-control" value=file.value placeholder=title}}
+        <span class="input-group-btn">
+          <button class="btn btn-primary" type="button" {{action "openFileBrowser" index}}>Browse</button>
+        </span>
+      </div>
+    </div>
+    <div class="col-xs-1">
+      <input class="form-control btn btn-danger" type="button" {{action "deleteFile" index}} value="-">
+    </div>
+  </div>
+  {{/each}}
+  <div class="form-group">
+    {{#if files}}
+      <label class="control-label col-xs-2"></label>
+    {{else}}
+      <label class="control-label col-xs-2">{{title}}</label>
+    {{/if}}
+    <div class="col-xs-7">
+      <div class="input-group">
+        {{input type="text" class="form-control" value=file placeholder=title}}
+        <span class="input-group-btn">
+          <button class="btn btn-primary" type="button" {{action "openFileBrowser"}}>Browse</button>
+        </span>
+      </div>
+    </div>
+    <div class="col-xs-1">
+      <input class="form-control  btn btn-success" type="button" {{action "addFile"}} value="+">
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-upload.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-upload.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-upload.hbs
new file mode 100644
index 0000000..4083ad6
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/file-upload.hbs
@@ -0,0 +1,17 @@
+{{!
+* 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/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/flow-designer.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/flow-designer.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/flow-designer.hbs
new file mode 100644
index 0000000..71eec96
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/flow-designer.hbs
@@ -0,0 +1,245 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="main">
+  <nav class="navbar navbar-default mb0">
+  <div class="container-fluid">
+    <div class="navbar-header">
+      <div class="navbar-brand">
+        <div class="padding0">
+          Workflow Designer
+        </div>
+      </div>
+      <div class="padding0">
+          {{input class="form-control" type="text" id="wf_title" value=workflow.name title="Workflow Name" placeholder="Workflow Name"}}
+      </div>
+      {{#if workflowFilePath}}
+        <div class="wf-path padding20" title={{workflowFilePath}}>
+            Path:{{ workflowFilePath}}
+        </div>
+      {{/if}}
+      <div class="navbar-brand pull-right paddingtop10">
+        <div class="btn-group" role="group" aria-label="...">
+          <button type="button" class="btn btn-default"  data-toggle="modal" data-target="#ConfirmDialog" title="New Workflow" {{action "conirmCreatingNewWorkflow"}}>
+              <i class="fa fa-file"> New</i>
+          </button>
+          <button  type="button" class="btn btn-default" title="Import workflow" {{action "showFileBrowser"}}>
+              <i class="fa fa-download"> Import</i>
+          </button>
+          <button  id="import-workflow-test" type="button" class="btn btn-default hide" title="Import workflow Test" {{action "importWorkflowTest"}}>
+              <i class="fa fa-download"></i>
+          </button>
+          <button type="button" class="btn btn-primary" title="Submit workflow" {{action "submitWorkflow"}}>
+              <i class="fa fa-upload"> Submit</i>
+          </button>
+          {{#link-to 'dashboard' class="backto-dashboard" }}
+          <button type="button" class="btn btn-default" title="Workflow Dashboard">
+              <i class="fa fa-th"> Dashboard</i>
+          </button>
+          {{/link-to}}
+        </div>
+        <div class="btn-group">
+          <div class="dropdown">
+            <button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown">Settings
+            <span class="caret"></span></button>
+            <ul class="dropdown-menu">
+              <li>
+                <a href="javascript:void(0)" title="Global Configurations" {{action "showWorkflowGlobalProps"}}>
+                    Global Configurations
+              </a>
+              </li>
+              <li><a href="javascript:void(0)" title="Workflow Credentials Configuration" {{action "showCredentials" true}}>
+                    Workflow Credentials
+              </a></li>
+              <li><a href="javascript:void(0)" title="SLA for Workflow" {{action "showWorkflowSla" true}}>
+                    SLA for Workflow
+                  </a>
+              </li>
+              <li><a href="javascript:void(0)" title="Workflow Parameters Configuration" {{action "showParameterSettings" true}}>
+                    Workflow Parameters
+              </a></li>
+              <li><a href="javascript:void(0)" title="Workflow and Action Versions" {{action "showVersionSettings" true}}>
+                    Workflow and Action Versions
+                  </a>
+                </li>
+            </ul>
+          </div>
+        </div>
+        <div class="btn-group">
+         <button type="button" class="btn btn-default"  data-toggle="modal" data-target="#kill-node-dialog" title="Create Kill Node" {{action "showCreateKillNode" true}}>
+              <i class="fa fa-ban"></i>
+          </button>
+
+          <button  data-toggle="modal" data-target="#previewModal"  type="button" class="btn btn-default" title="Preview workflow" {{action "previewWorkflow"}}>
+              <i class="fa fa-eye"></i>
+          </button>
+        </div>
+        {{help-icon}}
+      </div>
+    </div>
+  </div>
+  </nav>
+  <div  id="content" class="panel panel-default designer-main-panel col-xs-20">
+    <div class="panel-body designer-panel designer-canvas">
+      {{designer-errors errors=errors validationErrors=validationErrors}}
+
+      {{#if isWorkflowImporting}}
+      <div id="loader">
+          <div id="alert"class="alert alert-info alert-dismissible" role="alert">
+           Importing workflow.Please wait...
+          </div>
+      </div>
+      {{/if}}
+      {{#unless isImportingSuccess}}
+      <div id="loader">
+          <div id="alert"class="alert alert-danger alert-dismissible" role="alert">
+          There is some problem while importing.Please try again.
+          </div>
+      </div>
+      {{/unless}}
+      <div id="flow-designer">
+        {{#each flattenedNodes as |node|}}
+        <div class="node-wrapper">
+          {{#workflow-node node=node deleteNode="deleteNode" openEditor="openEditor" addBranch="addBranch" addDecisionBranch="addDecisionBranch" onNameChange="nameChanged"}}{{/workflow-node}}
+        </div>
+        {{/each}}
+        <div id="killnodes-container">
+          {{#if workflow.killNodes.length}}
+          <div class="">
+            <label id='kill-nodes-title' class='info' for="">Kill Nodes</label>
+          </div>
+          {{/if}}
+          {{#each workflow.killNodes as |node|}}
+            {{#workflow-node positionRelative=1 node=node deleteNode="deleteNode" openEditor="openEditor" addBranch="addBranch" onNameChange="nameChanged" addNode="addNode"}}{{/workflow-node}}
+          {{/each}}
+        </div>
+      </div>
+      <div id="workflow-actions" class="hidden">
+        {{workflow-actions element=popOverElement addNode="addNode"}}
+      </div>
+    </div>
+  </div>
+</div>
+{{#if showActionEditor}}
+  {{workflow-action-editor actionType=currentAction closeActionEditor="closeActionEditor" addKillNode="addKillNode" actionModel=currentNode.domain nodeType=currentNode.type currentNode=currentNode killNodes=workflow.killNodes credentials=workflow.credentials}}
+{{/if}}
+{{#if showingWorkflowConfigProps}}
+  {{workflow-config closeWorkflowSubmitConfigs="closeWorkflowSubmitConfigs" workflowFilePath=workflowFilePath openFileBrowser="openFileBrowser" closeFileBrowser="closeFileBrowser" workflowSubmitConfigs=workflowSubmitConfigs}}
+{{/if}}
+{{#if showGlobalConfig}}
+  {{#global-config closeGlobalConfig="closeWorkflowGlobalProps" saveGlobalConfig="saveGlobalConfig" actionModel=globalConfig}}{{/global-config}}
+{{/if}}
+{{#if showingFileBrowser}}
+  {{hdfs-browser closeFileBrowser="closeFileBrowser" selectFileCallback=selectFileCallback filePath=workflowFilePath}}
+{{/if}}
+{{#if showingPreview}}
+  <div id="previewModal" class="modal fade" role="dialog">
+    <div class="modal-dialog">
+      <div class="modal-content">
+        <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal">&times;</button>
+          <h4 class="modal-title">Workflow Xml Preview</h4>
+        </div>
+        <div class="modal-body">
+
+          <pre class="preview-xml">{{previewXml}}</pre>
+        </div>
+        <div class="modal-footer">
+          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+        </div>
+      </div>
+    </div>
+  </div>
+{{/if}}
+
+{{#if showingConfirmationNewWorkflow}}
+  <div id="ConfirmDialog" class="modal fade" role="dialog">
+    <div class="modal-dialog">
+      <div class="modal-content">
+        <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal">&times;</button>
+          <h4 class="modal-title">Confirm create new workflow</h4>
+        </div>
+        <div class="modal-body">
+        Any unsaved changes may be lost.Do you want to proceed creating new workflow?
+        </div>
+        <div class="modal-footer">
+          <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
+          <button type="button" class="btn btn-primary" {{action "createNewWorkflow"}} data-dismiss="modal">Continue</button>
+        </div>
+      </div>
+    </div>
+  </div>
+{{/if}}
+{{#if showCreateKillNode}}
+  <div id="kill-node-dialog" class="modal fade" role="dialog">
+    <div class="modal-dialog">
+      <div class="modal-content">
+        <div class="modal-header">
+          <button type="button" class="close" data-dismiss="modal">&times;</button>
+          <h4 class="modal-title">Create Kill Node</h4>
+        </div>
+        <div class="modal-body">
+            {{#if createKillnodeError}}
+          <div class="row">
+          <div class="form-group">
+
+              <label class="text-danger control-label col-xs-8">
+              {{createKillnodeError}}
+            </label>
+
+        </div>
+      </div>
+      {{/if}}
+          <div class="row">
+
+            <div class="form-group" id="killNodeName">
+              <label class="control-label col-xs-3"> Kill node name</label>
+              <div class="col-xs-7">
+                {{input class="form-control" type="text" name="kill-node-name" value=killNode.name}}
+              </div>
+            </div>
+          </div>
+          <div class="row padding10">
+            <div class="form-group">
+              <label class="control-label col-xs-3"> Kill message</label>
+              <div class="col-xs-7">
+                {{textarea class="form-control" rows="5" placeholder="kill node message" name="kill-node-message" value=killNode.message}}
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="modal-footer">
+          <button type="button" class="btn btn-primary" {{action "createKillNode" transition.errorNode}}>Save</button>
+          <button type="button" class="btn btn-default" data-dismiss="modal" {{action "showCreateKillNode" false}}>Cancel</button>
+        </div>
+      </div>
+    </div>
+  </div>
+{{/if}}
+{{#if showWorkflowSla}}
+  {{#workflow-sla showWorkflowSla="showWorkflowSla" workflowSla=workflow.sla workflowSlaEnabled=workflow.slaEnabled}}{{/workflow-sla}}
+{{/if}}
+{{#if showVersionSettings}}
+  {{version-settings schemaVersions=workflow.schemaVersions showVersionSettings="showVersionSettings" }}
+{{/if}}
+{{#if showCredentials}}
+  {{#workflow-credentials showCredentials="showCredentials" workflowCredentials=workflow.credentials}}{{/workflow-credentials}}
+{{/if}}
+{{#if showParameterSettings}}
+  {{#workflow-parameters closeWorkFlowParam="closeWorkFlowParam" saveWorkFlowParam="saveWorkFlowParam" parameters=parameters}}{{/workflow-parameters}}
+{{/if}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/fs-action.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/fs-action.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/fs-action.hbs
new file mode 100644
index 0000000..ef86a50
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/fs-action.hbs
@@ -0,0 +1,59 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="panel panel-default">
+  <div class="panel-heading">General</div>
+  <div class="panel-body">
+    {{#field-error error=errors.actionModel}}{{/field-error}}
+
+    {{#prepare-config-fs fsOps=actionModel.fsOps openFileBrowser="openFileBrowser" register="register"}}{{/prepare-config-fs}}
+    {{#jobxml-config jobXml=actionModel.jobXml openFileBrowser="openFileBrowser" register="register"}}{{/jobxml-config}}
+  </div>
+</div>
+<div class="panel panel-default">
+  <div class="panel-heading">Transition</div>
+  <div class="panel-body handlerPanel">
+    {{#transition-config transition=transition killNodes=killNodes currentNode=currentNode register="register"}}{{/transition-config}}
+  </div>
+</div>
+{{#action-credential-config credentials=credentials actionCredentials=actionModel.credentials}}{{/action-credential-config}}
+<div class="panel panel-default">
+  <div class="panel-heading" id="accordion" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne">
+      Advanced Properties
+      <i class="indicator glyphicon glyphicon-chevron-down pull-right"></i>
+    </div>
+    <div id="collapseOne" class="panel-collapse collapse">
+      <br/>
+      <div class=" panel panel-default">
+        <div class="panel-body handlerPanel">
+          <div class="form-group">
+            <label for="inputPassword" class="control-label col-xs-2">Name node</label>
+            <div class="col-xs-7">
+              {{input type="text" class="form-control"  name="name-node" value=actionModel.nameNode validations="required,noWhitespace" placeholder="Name node"}}
+            </div>
+          </div>
+
+        </div>
+      </div>
+         <div class=" panel panel-default">
+        <div class="panel-heading">Configuration</div>
+        <div class="panel-body handlerPanel">
+          {{#name-value-config configuration=actionModel.configuration register="register"}}{{/name-value-config}}
+        </div>
+      </div>
+    </div>
+  </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/global-config.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/global-config.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/global-config.hbs
new file mode 100644
index 0000000..923d89e
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/global-config.hbs
@@ -0,0 +1,68 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="modal fade" id="global_properties_dialog">
+  <div class="modal-dialog" role="document">
+    <div class="modal-content">
+      <div class="modal-header">
+        <button type="button" class="close" data-dismiss="modal" aria-label="Close" {{action 'close'}}>
+          <span aria-hidden="true">&times;</span>
+        </button>
+        <h4 class="modal-title">Global Configuration</h4>
+      </div>
+      <div class="modal-body">
+          <form class="form-horizontal" id="global_properties">
+            <div class="panel panel-default">
+              <div class="panel-heading">General</div>
+              <div class="panel-body">
+                <div class="form-group">
+                  <label for="inputEmail" class="control-label col-xs-2">Resource Manager</label>
+                  <div class="col-xs-7">
+                    {{input type="text" class="form-control" name="job-tracker" value=actionModel.jobTracker placeholder="Resource Manager"}}
+                  </div>
+                </div>
+                <div class="form-group">
+                  <label for="inputPassword" class="control-label col-xs-2">Name node</label>
+                  <div class="col-xs-7">
+                    {{input type="text" class="form-control"  name="name-node" value=actionModel.nameNode validations="required,noWhitespace" placeholder="Name node"}}
+                  </div>
+                </div>
+                <div class="">
+                  <div class="handlerPanel">
+                    {{#jobxml-config jobXml=actionModel.jobXml openFileBrowser="openFileBrowser"}}{{/jobxml-config}}
+                  </div>
+                </div>
+              </div>
+            </div>
+          <div class=" panel panel-default">
+            <div class="panel-heading">Properties</div>
+            <div class="panel-body handlerPanel">
+              {{#name-value-config configuration=actionModel.configuration}}{{/name-value-config}}
+            </div>
+          </div>
+        </form>
+      </div>
+      <div class="modal-footer">
+        <button type="button" class="btn btn-secondary" data-dismiss="modal" {{action 'close'}}>Cancel</button>
+        <button type="button" class="btn btn-primary" {{action 'save'}}>Save</button>
+      </div>
+    </div>
+  </div>
+</div>
+{{#if showingFileBrowser}}
+  {{hdfs-browser closeFileBrowser="closeFileBrowser" selectFileCallback=selectFileCallback filePath=filePath}}
+{{/if}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hdfs-browser.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hdfs-browser.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hdfs-browser.hbs
new file mode 100644
index 0000000..d3233b6
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hdfs-browser.hbs
@@ -0,0 +1,87 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="modal fade" id="filediv" role="dialog">
+  <div class="modal-dialog modal-lg">
+    <div class="modal-content">
+      <div class="modal-header">
+          <div >
+            <button type="button" class="close" data-dismiss="modal">&times;</button>
+            <h4 class="modal-title">File Browser</h4>
+          </div>
+      </div>
+      <div class="panel-default panel-files">
+        <div class="panel-heading">
+          <div class="row">
+             <div class="col-xs-12">
+                <div class="pull-right">
+                  <span class="">
+                      <button type="button" class="btn btn-default" {{action "createFolder"}} disabled={{isFilePathInvalid}}>Create Folder</button>
+                  </span>
+                  {{#unless uploadSelected}}
+                    <span class="hide">
+                      <button type="button" class="btn btn-default" {{action "uploadSelect"}} disabled={{isFilePathInvalid}}>Upload File</button>
+                    </span>
+                  {{/unless}}
+                  {{#if uploadSelected}}
+                  <span class="">
+                      <span class="file-upload-control">
+                        {{file-upload url="/upload" selectedPath=selectedPath uploadFailure="uploadFailure" uploadSuccess="uploadSuccess" uploadValidation="uploadValidation"}}
+                      </span>
+                      <button type="button" class="close-icon" {{action "closeUpload"}}>x</button>
+                  </span>
+                  {{/if}}
+                </div>
+              </div>
+          </div>
+        </div>
+        <div class="panel-body">
+          <div>
+            {{#if alertMessage}}
+              <div class="alert alert-{{alertType}} col-xs-24">
+                {{alertMessage}}-
+                {{alertDetails}}
+              </div>
+
+            {{/if}}
+          <div class="directory-viewer-wrap hdfs-browse">
+            {{directory-viewer
+              config=config
+              errorAction="viewerError"
+              pathSelectAction="viewerSelectedPath"
+            }}
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="modal-footer">
+        <div class="row">
+              <div class="col-xs-2">
+                <label class="control-label">Selected Path</label>
+              </div>
+              <div class="col-xs-6">
+                {{input id="selectedPath" class="form-control" type="text" value=selectedPath}}
+              </div>
+              <div class="col-xs-4">
+                <button type="button" class="btn btn-primary" {{action "selectFile"}}>Select</button>
+                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
+              </div>
+        </div>
+    </div>
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/header-logo-user-bar.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/header-logo-user-bar.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/header-logo-user-bar.hbs
new file mode 100644
index 0000000..f533269
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/header-logo-user-bar.hbs
@@ -0,0 +1,41 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div id="header">
+    <span class="btn-toolbar pull-left whiteLabel" >Workflow Manager</span>
+    <div class="btn-toolbar pull-right" role="toolbar" aria-label="...">
+        <button type="button" class="btn btn-default">
+            <i class="fa fa-bell"></i>
+        </button>
+        <div class="btn-group">
+            <button type="button" class="btn btn-default">
+                <i class="fa fa-user"></i> User Name
+            </button>
+            <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+                <span class="caret"></span>
+            </button>
+            <ul class="dropdown-menu">
+                <li><a href="#">About</a></li>
+                <li><a href="#">Logout</a></li>
+            </ul>
+        </div>
+        <button type="button" class="btn btn-default">
+            <i class="fa fa-cogs"></i>
+        </button>
+    </div>
+    <div class="clearfix"></div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/help-icon.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/help-icon.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/help-icon.hbs
new file mode 100644
index 0000000..a853955
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/help-icon.hbs
@@ -0,0 +1,22 @@
+{{!
+* 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.
+}}
+<a href="https://oozie.apache.org/docs/4.2.0/WorkflowFunctionalSpec.html" target="_blank">
+  <button type="button" class="btn btn-default" title="Help">
+      <i class="fa fa-question-circle"></i>
+  </button>
+</a>

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive-action.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive-action.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive-action.hbs
new file mode 100644
index 0000000..dc94160
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive-action.hbs
@@ -0,0 +1,99 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="panel panel-default">
+  <div class="panel-heading">General</div>
+  <div class="form-group padding10">
+    <label class="control-label col-xs-2">Hive Option</label>
+    <div class="col-xs-2">
+      <input type="radio" name="hiveOption" checked={{if (eq isScript true) 'checked'}}  {{action "onHiveOptionChange" "script" preventDefault=false on="change"}}> Script
+    </div>
+    <div class="col-xs-2">
+      <input type="radio" name="hiveOption" checked={{if (eq isScript false) 'checked'}}  {{action "onHiveOptionChange" "query" preventDefault=false on="change"}}> Query
+    </div>
+  </div>
+  {{#if isScript}}
+    <div class="form-group padding10">
+      <label class="control-label col-xs-2">Script<span class="requiredField">&nbsp;*</span></label>
+      <div class="col-xs-7">
+        <div class="input-group">
+          {{input type="text" class="form-control" name="script" value=actionModel.script placeholder="hive.hql"}}
+          <span class="input-group-btn">
+            <button class="btn btn-primary" type="button" {{action "openFileBrowser" "actionModel.script"}}>Browse</button>
+          </span>
+        </div>
+        {{#field-error error=errors.actionModel.script}}{{/field-error}}
+      </div>
+    </div>
+  {{else}}
+  <div class="form-group padding10">
+    <label class="control-label col-xs-2">Query<span class="requiredField">&nbsp;*</span></label>
+    <div class="col-xs-7">
+      <div class="input-group">
+        {{textarea class="form-control" name="query" class="query-text-area" value=actionModel.query placeholder="hive query"}}
+      </div>
+      {{#field-error error=errors.actionModel.query}}{{/field-error}}
+    </div>
+  </div>
+  {{/if}}
+  {{#jobxml-config jobXml=actionModel.jobXml openFileBrowser="openFileBrowser" register="register"}}{{/jobxml-config}}
+  {{#arg-config args=actionModel.params register="register" title="Param"}}{{/arg-config}}
+</div>
+<div class="panel panel-default">
+  <div class="panel-heading">Transition</div>
+  <div class="panel-body handlerPanel">
+    {{#transition-config transition=transition killNodes=killNodes currentNode=currentNode register="register"}}{{/transition-config}}
+  </div>
+</div>
+{{#action-credential-config credentials=credentials actionCredentials=actionModel.credentials}}{{/action-credential-config}}
+<div class="panel panel-default">
+  <div class="panel-heading" id="accordion" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne">
+      Advanced Properties
+      <i class="indicator glyphicon glyphicon-chevron-down pull-right"></i>
+    </div>
+    <div id="collapseOne" class="panel-collapse collapse">
+      <br/>
+      <div class=" panel panel-default">
+        <div class="panel-body handlerPanel">
+          <div class="form-group">
+            <label for="inputEmail" class="control-label col-xs-2">Resource Manager</label>
+            <div class="col-xs-7">
+              {{input type="text" class="form-control" name="job-tracker" value=actionModel.jobTracker placeholder="Resource Manager"}}
+            </div>
+            {{field-error error=errors.actionModel.jobTracker}}
+          </div>
+          <div class="form-group">
+            <label for="inputPassword" class="control-label col-xs-2">Name node</label>
+            <div class="col-xs-7">
+              {{input type="text" class="form-control"  name="name-node" value=actionModel.nameNode validations="required,noWhitespace" placeholder="Name node"}}
+            </div>
+          </div>
+          {{#file-config files=actionModel.files openFileBrowser="openFileBrowser" register="register" title="File"}}{{/file-config}}
+          {{#file-config files=actionModel.archives openFileBrowser="openFileBrowser" register="register" title="Archive"}}{{/file-config}}
+          {{#prepare-config prepare=actionModel.prepare openFileBrowser="openFileBrowser" register="register"}}{{/prepare-config}}
+          {{#arg-config args=actionModel.args register="register" title="arg"}}{{/arg-config}}
+        </div>
+      </div>
+      <div class=" panel panel-default">
+        <div class="panel-heading">Configuration</div>
+        <div class="panel-body handlerPanel">
+          {{#name-value-config configuration=actionModel.configuration register="register"}}{{/name-value-config}}
+        </div>
+      </div>
+    </div>
+  </div>
+  {{#sla-info slaInfo=actionModel.slaInfo register="register" slaEnabled=actionModel.slaEnabled register="register"}}{{/sla-info}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/f66b4c0b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive2-action.hbs
----------------------------------------------------------------------
diff --git a/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive2-action.hbs b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive2-action.hbs
new file mode 100644
index 0000000..c4bec81
--- /dev/null
+++ b/contrib/views/wfmanager/src/main/resources/ui/app/templates/components/hive2-action.hbs
@@ -0,0 +1,116 @@
+{{!
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+}}
+<div class="panel panel-default">
+  <div class="panel-heading">General</div>
+  <div class="panel-body">
+    <div class="form-group padding10">
+      <label class="control-label col-xs-2">Hive Option</label>
+      <div class="col-xs-2">
+        <input type="radio" name="hiveOption" checked={{if (eq isScript true) 'checked'}}  {{action "onHiveOptionChange" "script" preventDefault=false on="change"}}> Script
+      </div>
+      <div class="col-xs-2">
+        <input type="radio" name="hiveOption" checked={{if (eq isScript false) 'checked'}}  {{action "onHiveOptionChange" "query" preventDefault=false on="change"}}> Query
+      </div>
+    </div>
+    {{#if isScript}}
+    <div class="form-group padding10">
+      <label class="control-label col-xs-2">Script<span class="requiredField">&nbsp;*</span></label>
+      <div class="col-xs-7">
+        <div class="input-group">
+          {{input type="text" class="form-control" name="script" value=actionModel.script placeholder="hive.hql"}}
+          <span class="input-group-btn">
+            <button class="btn btn-primary" type="button" {{action "openFileBrowser" "actionModel.script"}}>Browse</button>
+          </span>
+        </div>
+        {{#field-error error=errors.actionModel.script}}{{/field-error}}
+      </div>
+    </div>
+    {{else}}
+    <div class="form-group padding10">
+      <label class="control-label col-xs-2">Query<span class="requiredField">&nbsp;*</span></label>
+      <div class="col-xs-7">
+        <div class="input-group">
+          {{textarea class="form-control" name="query" class="query-text-area" value=actionModel.query placeholder="hive query"}}
+        </div>
+        {{#field-error error=errors.actionModel.query}}{{/field-error}}
+      </div>
+    </div>
+    {{/if}}
+    <div class="form-group">
+      <label class="control-label col-xs-2">jdbc-url<span class="requiredField">&nbsp;*</span></label>
+      <div class="col-xs-7">
+        {{input type="text" class="form-control" validations="required" name="jdbc-url" value=actionModel.jdbc-url placeholder="jdbc-url"}}
+        {{#field-error error=errors.actionModel.jdbc-url}}{{/field-error}}
+      </div>
+    </div>
+
+    <div class="form-group">
+      <label class="control-label col-xs-2">password</label>
+      <div class="col-xs-7">
+        {{input type="password" class="form-control" validations="required" name="password" value=actionModel.password placeholder="password"}}
+        {{#field-error error=errors.actionModel.password}}{{/field-error}}
+      </div>
+    </div>
+    {{#jobxml-config jobXml=actionModel.jobXml openFileBrowser="openFileBrowser" register="register"}}{{/jobxml-config}}
+    {{#arg-config args=actionModel.params register="register" title="Param"}}{{/arg-config}}
+  </div>
+</div>
+<div class="panel panel-default">
+  <div class="panel-heading">Transition</div>
+  <div class="panel-body handlerPanel">
+    {{#transition-config transition=transition killNodes=killNodes currentNode=currentNode register="register"}}{{/transition-config}}
+  </div>
+</div>
+{{#action-credential-config credentials=credentials actionCredentials=actionModel.credentials}}{{/action-credential-config}}
+<div class="panel panel-default">
+  <div class="panel-heading" id="accordion" data-toggle="collapse" data-parent="#accordion" data-target="#collapseOne">
+      Advanced Properties
+      <i class="indicator glyphicon glyphicon-chevron-down pull-right"></i>
+    </div>
+    <div id="collapseOne" class="panel-collapse collapse">
+      <br/>
+      <div class=" panel panel-default">
+        <div class="panel-body handlerPanel">
+          <div class="form-group">
+            <label for="inputEmail" class="control-label col-xs-2">Resource Manager</label>
+            <div class="col-xs-7">
+              {{input type="text" class="form-control" name="job-tracker" value=actionModel.jobTracker placeholder="Resource Manager"}}
+            </div>
+            {{field-error error=errors.actionModel.jobTracker}}
+          </div>
+          <div class="form-group">
+            <label for="inputPassword" class="control-label col-xs-2">Name node</label>
+            <div class="col-xs-7">
+              {{input type="text" class="form-control"  name="name-node" value=actionModel.nameNode validations="required,noWhitespace" placeholder="Name node"}}
+            </div>
+          </div>
+          {{#file-config files=actionModel.files openFileBrowser="openFileBrowser" register="register" title="File"}}{{/file-config}}
+          {{#file-config files=actionModel.archives openFileBrowser="openFileBrowser" register="register" title="Archive"}}{{/file-config}}
+          {{#prepare-config prepare=actionModel.prepare openFileBrowser="openFileBrowser" register="register"}}{{/prepare-config}}
+          {{#arg-config args=actionModel.args register="register" title="arg"}}{{/arg-config}}
+        </div>
+      </div>
+      <div class=" panel panel-default">
+        <div class="panel-heading">Configuration</div>
+        <div class="panel-body handlerPanel">
+          {{#name-value-config configuration=actionModel.configuration register="register"}}{{/name-value-config}}
+        </div>
+      </div>
+    </div>
+  </div>
+  {{#sla-info slaInfo=actionModel.slaInfo register="register" slaEnabled=actionModel.slaEnabled register="register"}}{{/sla-info}}


Mime
View raw message