blob: cc218542dd2419f65c1bb894ff8f27e3c5a05a0c [file] [log] [blame]
<!--
/**
* 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>