| <!-- |
| /** |
| * 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 name="processForm" class="mt10" novalidate id="processFormGeneralStep"> |
| |
| <div class="col-xs-24"> |
| <label class="light">Name</label> |
| <input type="text" class="form-control" ng-keydown="validations.acceptNoSpaces($event)" |
| check-name="{type:'process', check:cloningMode}" ng-class="{fakeInvalid:!validations.nameAvailable}" |
| ng-disabled="!cloningMode" id="entityNameField" ng-model="process.name" |
| ng-required="true" ng-maxlength="100" ng-pattern="validations.patterns.name"/> |
| </div> |
| |
| <div class="col-xs-24"> |
| <label class="light">Tags</label> |
| </div> |
| |
| <div id="tagsSection" class="col-xs-24"> |
| <div ng-repeat="tag in process.tags"> |
| <div class="row dynamic-table-spacer"> |
| <div class="col-xs-10"> |
| <input type="text" class="form-control" ng-model="tag.key" placeholder="key" |
| validation-optional-message="{{validations.messages.key}}" |
| ng-pattern="validations.patterns.alpha" ng-required="tag.value"/> |
| </div> |
| <div class="col-xs-11"> |
| <input type="text" class="form-control" placeholder="value" |
| validation-optional-message="{{validations.messages.value}}" |
| ng-model="tag.value" ng-pattern="validations.patterns.alpha" ng-required="tag.key"/> |
| </div> |
| <div class="col-xs-3"> |
| <button type="button" class="btn btn-default btn-xs" ng-click="removeTag($index)" ng-if="$index>0"> |
| <span class="entypo minus"></span> delete |
| </button> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="col-xs-24 mt10 mb10"> |
| <button type="button" class="btn btn-default btn-xs" ng-click="addTag()"> |
| <span class="entypo plus"></span> add tag |
| </button> |
| </div> |
| |
| <h4 class="col-xs-24">Workflow</h4> |
| |
| <div class="col-xs-24"> |
| <div class="light">Name</div> |
| <input type="text" class="form-control" validation-optional-message="{{validations.messages.name}}" |
| id="workflowNameField" |
| ng-model="process.workflow.name" |
| ng-maxlength="100" |
| ng-pattern="validations.patterns.name"/> |
| </div> |
| |
| <div id="engineSection" class="col-xs-24"> |
| <label class="light">Engine</label> |
| <div class="row"> |
| <div class="col-xs-4"> |
| <input |
| type="radio" id="oozieEngineRadio" |
| ng-change="selectWorkflow()" |
| ng-model="process.workflow.engine" |
| value="oozie" /> Oozie |
| </div> |
| <div class="col-xs-4"> |
| <input type="radio" id="pigEngineRadio" |
| ng-change="selectWorkflow()" |
| ng-model="process.workflow.engine" |
| value="pig" /> Pig |
| </div> |
| <div class="col-xs-4"> |
| <input type="radio" id="hiveEngineRadio" |
| ng-change="selectWorkflow()" |
| ng-model="process.workflow.engine" |
| value="hive" /> Hive |
| </div> |
| |
| <select id="engineVersionField" |
| ng-model="process.workflow.version" |
| ng-show="process.workflow.engine"> |
| |
| <option value="" disabled selected style='display:none;'>-Select {{process.workflow.engine}} version-</option> |
| |
| <option ng-repeat="version in versions" |
| id="{{process.workflow.engine}}Version{{$index}}" |
| value="{{version}}" |
| ng-selected="process.workflow.version === version"> |
| {{version}} |
| </option> |
| </select> |
| |
| </div> |
| </div> |
| <div class="col-xs-24"> |
| <label class="light">Path</label> |
| <input type="text" class="form-control" |
| id="pathField" |
| ng-model="process.workflow.path" |
| ng-required="true" |
| ng-maxlength="200" |
| validation-optional-message="{{validations.messages.path}}" |
| ng-pattern="validations.patterns.osPath"/> |
| </div> |
| |
| <div class="aclBox col-xs-24"> |
| <h4>Access Control List</h4> |
| <div> |
| <label>Owner |
| <input type="text" |
| name="aclOwnerInput" |
| ng-model="process.ACL.owner" |
| ng-pattern="validations.patterns.unixId" |
| ng-required="true" |
| class="form-control" |
| validation-message="{{validations.messages.acl.owner}}"/> |
| </label> |
| </div> |
| <div> |
| <label>Group |
| <input type="text" |
| name="aclGroupInput" |
| ng-model="process.ACL.group" |
| ng-pattern="validations.patterns.unixId" |
| ng-required="true" |
| class="form-control" |
| validation-message="{{validations.messages.acl.group}}" /> |
| </label> |
| </div> |
| <div> |
| <label>Permissions |
| <input type="text" |
| name="aclPermissionsInput" |
| ng-model="process.ACL.permission" |
| ng-pattern="validations.patterns.unixPermissions" |
| ng-required="true" |
| class="form-control" |
| validation-message="{{validations.messages.acl.permission}}" /> |
| </label> |
| </div> |
| </div> |
| |
| <div class="col-xs-24 mt20"> |
| <button id="nextButton" class="btn nextBtn pull-right" |
| ng-disabled="buttonSpinners.show" |
| ng-click="goNext(processForm.$invalid, 'forms.process.properties')" > |
| Next <img src="css/img/ajax-loader.gif" ng-if="buttonSpinners.show" /> |
| </button> |
| <a class="pull-right" ui-sref="main"> |
| Cancel |
| </a> |
| </div> |
| |
| </form> |