<!--
/**
 * 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 id="formGeneralBox"
      name="datasetForm"
      novalidate>

  <div class="col-xs-8">
    <label class="light" tooltip="dataset.name">Mirror Name<mandatory-field></mandatory-field></label>
    <input type="text"
           name="nameInput"
           class="form-control"
           ng-model="UIModel.name"
           placeholder=""
           ng-disabled="editingMode"
           ng-pattern="validations.patterns.name"
           ng-required="true"
           check-name="{type:'process', check:!editingMode}"/>
    </label>
  </div>

  <div class="col-xs-24 tagsBox plr0px">
    <label class="col-xs-24 light">Tags</label>
    <div class="col-xs-12">
      <div ng-repeat="tag in UIModel.tags">
        <div class="row dynamic-table-spacer">
          <div class="col-xs-8">
            <input type="text" class="form-control" ng-model="tag.key"
              validation-optional-message="{{validations.messages.key}}"
                ng-pattern="validations.patterns.alpha" ng-required="tag.value" placeholder="key"/>
          </div>
          <div class="col-xs-8">
            <input type="text" class="form-control" validation-optional-message="{{validations.messages.value}}"
                ng-model="tag.value" ng-pattern="validations.patterns.alpha"
                ng-required="tag.key" placeholder="value"/>
          </div>
          <div class="col-xs-8">
            <button type="button" class="btn btn-default btn-xs" ng-click="removeTag($index)" ng-if="!$first || !$last">
              <span class="entypo minus"></span> delete
            </button>
            <button type="button" class="btn btn-default btn-xs" ng-click="addTag()" ng-if="$last">
              <span class="entypo plus"></span> add tag
            </button>
          </div>
        </div>
      </div>
    </div>
  </div>

  <div class="col-xs-24 plr0px">
    <div class="col-xs-12 plr0px">
      <div class="col-xs-24 clusterBox plr0px">
        <h3>Source</h3>
        <div class="runJobOnBox">
          <input type="radio"
                 id="runJobOnSourceRadio"
                 ng-model="UIModel.runOn"
                 value="source"
                 ng-required="true"
                 ng-disabled="UIModel.source.location !== 'HDFS'"/>
          Run job here
        </div>

        <div class="locationBox" ng-if="UIModel.type === 'HDFS'">
          <div class="col-xs-5"><label class="light">Location</label></div>
          <div class="col-xs-3"><label class="mt15 radio-inline">
              <input type="radio"
                     ng-change="checkFromSource()"
                     id="sourceHDFSRadio"
                     ng-model="UIModel.source.location"
                     value="HDFS"
                     ng-required="!UIModel.source.location"/> HDFS
              </label>
          </div>
          <div class="col-xs-3"><label class="mt15 radio-inline">
              <input type="radio"
                     ng-change="checkFromSource()"
                     id="sourceAzureRadio"
                     ng-model="UIModel.source.location"
                     value="azure"
                     ng-required="!UIModel.source.location"/> Azure
              </label>
          </div>
          <div class="col-xs-1"><label class="mt15 radio-inline">
              <input type="radio"
                     ng-change="checkFromSource()"
                     id="sourceS3Radio"
                     ng-model="UIModel.source.location"
                     value="s3"
                     ng-required="!UIModel.source.location"/> S3
              </label>
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.source.location === 'HDFS' || UIModel.type === 'HIVE'">
          <div class="col-xs-5 p0"><label class="light">Cluster<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
              <select ng-model="UIModel.source.cluster"
                  name="sourceClusterSelect"
                  ng-change="getSourceDefinition()"
                  ng-required="UIModel.source.location === 'HDFS' || UIModel.type === 'HIVE'"
                  class="form-control padding0"
                  id="sourceClusterSelect">

                <option value="" disabled style='display:none;'>-Select cluster-</option>
                <option ng-selected="UIModel.source.cluster === cluster.name"
                        ng-repeat="cluster in clustersList"
                        value="{{cluster.name}}">
                  {{cluster.name}}
                </option>
              </select>
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.source.location === 'azure' && UIModel.type === 'HDFS'">
          <div class="col-xs-5 p0"><label class="light">Base URL<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="sourceClusterUrlInput"
                   class="form-control"
                   ng-model="UIModel.source.url"
                   placeholder="URL"
                   ng-pattern="validations.patterns.azure"
                   ng-required="UIModel.source.location === 'azure'"
                   validation-message="{{validations.messages.azure}}" />
          </div>
        </div>
        <div class="col-xs-24" ng-if="UIModel.source.location === 's3' && UIModel.type === 'HDFS'">
          <div class="col-xs-5 p0"><label class="light">Base URL<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="sourceClusterUrlInput"
                   class="form-control"
                   ng-model="UIModel.source.url"
                   placeholder="URL"
                   ng-pattern="validations.patterns.s3"
                   ng-required="UIModel.source.location === 's3'"
                   validation-message="{{validations.messages.s3}}" />
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.type === 'HDFS'">
          <div class="col-xs-5 p0"><label class="light">Path<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="sourceClusterPathInput"
                   class="form-control"
                   ng-model="UIModel.source.path"
                   placeholder="Path"
                   ng-pattern="validations.patterns.osPath"
                   ng-required="UIModel.source.location === 'HDFS' || UIModel.type === 'HIVE'"
                   validation-message="{{validations.messages.path}}"/>
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE'">
          <div class="col-xs-5 p0">
            <label class="light" tooltip="dataset.sourceHiveServer2Uri">HiveServer2 endpoint</label>
          </div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="sourceHiveServerInput"
                   ng-model="UIModel.hiveOptions.source.hiveServerToEndpoint"
                   class="form-control"
                   validation-optional-message="{{validations.messages.path}}" />
          </div>
        </div>

        <div class="col-xs-24 mt5" ng-if="UIModel.type === 'HIVE'">
          <div class="col-xs-5 p0">
            <label class="light">I want to copy<mandatory-field></mandatory-field></label>
          </div>
          <div class="col-xs-4"><label class="mt15 radio-inline">
              <input type="radio"
                   id="targetHIVEDatabaseRadio"
                   ng-model="UIModel.source.hiveDatabaseType"
                   value="databases"
                   ng-required="!UIModel.source.location"/>Entire databases
            </label>
          </div>
          <div><label class="mt15 radio-inline">
              <input type="radio"
                   id="targetHIVETablesRadio"
                   ng-model="UIModel.source.hiveDatabaseType"
                   value="tables"
                   ng-required="!UIModel.source.hiveDatabaseType"/>
              Tables in a single database
            </label>
          </div>

          <div class="col-xs-24 mt5 plr0px">
              <div class="col-xs-13 col-xs-offset-5" ng-if="UIModel.source.hiveDatabaseType === 'databases'">
                <label class="col-xs-24 p0 light" tooltip="dataset.sourceDatabases">Databases (comma separated)<mandatory-field></mandatory-field></label>
                <textarea name="sourceDatabasesInput"
                          class="form-control databasesTextArea"
                          ng-model="UIModel.source.hiveDatabases"
                          ng-pattern="validations.patterns.hiveDatabases"
                          ng-required="UIModel.target.location === 'HDFS'"
                          validation-message="{{validations.messages.databases}}"
                          ng-keydown="validations.acceptNoSpaces($event)">
                </textarea>
              </div>
              <div class="col-xs-13 col-xs-offset-5" ng-if="UIModel.source.hiveDatabaseType === 'tables'">
                <label class="col-xs-24 p0 light">Database<mandatory-field></mandatory-field></label>
                <input type="text"
                       name="sourceDatabaseInput"
                       class="form-control"
                       ng-model="UIModel.source.hiveDatabases"
                       ng-pattern="validations.patterns.hiveDatabase"
                       ng-required="UIModel.target.location === 'HDFS'"
                       validation-message="{{validations.messages.database}}"
                       ng-keydown="validations.acceptNoSpaces($event)"/>
                <label class="col-xs-24 p0 light" tooltip="dataset.sourceTables">Tables (comma separated)<mandatory-field></mandatory-field></label>
                <textarea name="sourceTablesInput"
                          class="form-control tablesTextArea"
                          ng-model="UIModel.source.hiveTables"
                          ng-pattern="validations.patterns.hiveTables"
                          ng-required="UIModel.target.location === 'HDFS'"
                          validation-message="{{validations.messages.tables}}"
                          ng-keydown="validations.acceptNoSpaces($event)">
                  </textarea>
              </div>
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE' && secureMode === true">
          <div class="col-xs-5 p0">
            <label class="light" tooltip="dataset.sourceHive2KerberosPrincipal">Hive2 Kerberos Principal<mandatory-field></mandatory-field></label>
          </div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="sourceHive2KerberosPrincipal"
                   class="form-control"
                   ng-model="UIModel.source.hive2KerberosPrincipal"
                   placeholder="Source Metastore URI"
                   ng-pattern="validations.patterns.kerberosPrincipal"
                   ng-required="UIModel.type === 'HIVE'"
                   validation-message="{{validations.messages.kerberosPrincipal}}" />
          </div>
        </div>
        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE' && secureMode === true">
          <div class="col-xs-5 p0">
            <label class="light">Meta Store URI<mandatory-field></mandatory-field></label>
          </div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="sourceMetastoreUri"
                   class="form-control"
                   ng-model="UIModel.source.hiveMetastoreUri"
                   placeholder="Source Metastore URI"
                   ng-pattern="validations.patterns.metastoreUri"
                   ng-required="UIModel.type === 'HIVE'"
                   validation-message="{{validations.messages.metastoreUri}}" />
          </div>
        </div>
        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE' && secureMode === true">
          <div class="col-xs-5 p0">
            <label class="light">Kerberos Principal<mandatory-field></mandatory-field></label>
          </div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="sourceMetastoreKerberosPrincipal"
                   class="form-control"
                   ng-model="UIModel.source.hiveMetastoreKerberosPrincipal"
                   placeholder="Kerberos Principal"
                   ng-pattern="validations.patterns.kerberosPrincipal"
                   ng-required="UIModel.type === 'HIVE'"
                   validation-message="{{validations.messages.kerberosPrincipal}}" />
          </div>
        </div>

      </div>
    </div>

    <div class="col-xs-12 plr0px pl5">
      <div class="col-xs-24 plr0px clusterBox">
        <h3>Target</h3>
        <div class="runJobOnBox">
          <input type="radio"
                 id="runJobOnTargetRadio"
                 ng-model="UIModel.runOn"
                 value="target"
                 ng-required="true"
                 ng-disabled="UIModel.target.location !== 'HDFS'"/>
          Run job here
        </div>
        <div class="locationBox" ng-if="UIModel.type === 'HDFS'">
          <div class="col-xs-5"><label class="light">Location</label></div>
          <div class="col-xs-3"><label class="mt15 radio-inline">
              <input type="radio"
                     ng-change="checkFromTarget()"
                     id="targetHDFSRadio"
                     ng-model="UIModel.target.location"
                     value="HDFS"
                     ng-required="!UIModel.target.location"/> HDFS
                </label>
          </div>
          <div class="col-xs-3"><label class="mt15 radio-inline">
              <input type="radio"
                     ng-change="checkFromTarget()"
                     id="targetAzureRadio"
                     ng-model="UIModel.target.location"
                     value="azure"
                     ng-required="!UIModel.target.location"/> Azure
                </label>
          </div>
          <div class="col-xs-1"><label class="mt15 radio-inline">
              <input type="radio"
                     ng-change="checkFromTarget()"
                     id="targetS3Radio"
                     ng-model="UIModel.target.location"
                     value="S3"
                     ng-required="!UIModel.target.location"/> S3
                </label>
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.target.location === 'HDFS' || UIModel.type === 'HIVE'">
          <div class="col-xs-5 p0">
            <label class="light">Cluster<mandatory-field></mandatory-field></label>
          </div>
          <div class="col-xs-13 mt10">
              <select ng-model="UIModel.target.cluster"
                  ng-change="getTargetDefinition()"
                  name="targetClusterSelect"
                  ng-required="UIModel.target.location === 'HDFS' || UIModel.type === 'HIVE'"
                  class="col-xs-24 form-control padding0"
                  id="targetClusterSelect">
                <option value="" disabled selected style='display:none;'>-Select cluster-</option>
                <option ng-selected="UIModel.target.cluster === clusterItem.name"
                        ng-repeat="clusterItem in clustersList"
                        value="{{clusterItem.name}}">
                  {{clusterItem.name}}
                </option>
              </select>
              <div class="custom-danger" ng-show="clusterErrorMessage != ''">
                {{clusterErrorMessage}}
              </div>
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE'">
          <div class="col-xs-5 p0">
            <label class="light" tooltip="dataset.targetHiveServer2Uri">HiveServer2 endpoint</label>
          </div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="targetHiveServerInput"
                   ng-model="UIModel.hiveOptions.target.hiveServerToEndpoint"
                   class="form-control"
                   validation-optional-message="{{validations.messages.path}}" />
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE'&& secureMode === true">
          <div class="col-xs-5 p0">
            <label class="light" tooltip="dataset.targetHive2KerberosPrincipal">Hive2 Kerberos Principal<mandatory-field></mandatory-field></label>
          </div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="targetHive2KerberosPrincipal"
                   class="form-control"
                   ng-model="UIModel.target.hive2KerberosPrincipal"
                   placeholder="Hive2 Kerberos Principal"
                   ng-pattern="validations.patterns.kerberosPrincipal"
                   ng-required="UIModel.type === 'HIVE'"
                   validation-message="{{validations.messages.kerberosPrincipal}}" />
          </div>
        </div>
        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE'&& secureMode === true">
          <div class="col-xs-5 p0"><label class="light">Meta Store URI<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="targetMetastoreUri"
                   class="form-control"
                   ng-model="UIModel.target.hiveMetastoreUri"
                   placeholder="Target Metastore URI"
                   ng-pattern="validations.patterns.metastoreUri"
                   ng-required="UIModel.type === 'HIVE'"
                   validation-message="{{validations.messages.metastoreUri}}" />
          </div>
        </div>
        <div class="col-xs-24" ng-if="UIModel.type === 'HIVE' && secureMode === true">
          <div class="col-xs-5 p0">
            <label class="light">Kerberos Principal<mandatory-field></mandatory-field></label>
          </div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="targetMetastoreKerberosPrincipal"
                   class="form-control"
                   ng-model="UIModel.target.hiveMetastoreKerberosPrincipal"
                   placeholder="Kerberos Principal"
                   ng-pattern="validations.patterns.kerberosPrincipal"
                   ng-required="UIModel.type === 'HIVE'"
                   validation-message="{{validations.messages.kerberosPrincipal}}" />
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.target.location === 'azure' && UIModel.type === 'HDFS'">
          <div class="col-xs-5 p0"><label class="light">Base URL<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="targetClusterUrlInput"
                   class="form-control"
                   ng-model="UIModel.target.url"
                   placeholder="URL"
                   ng-pattern="validations.patterns.azure"
                   ng-required="UIModel.target.location === 'azure'"
                   validation-message="{{validations.messages.azure}}"/>
          </div>
        </div>
        <div class="col-xs-24" ng-if="UIModel.target.location === 'S3' && UIModel.type === 'HDFS'">
          <div class="col-xs-5 p0"><label class="light">Base URL<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="targetClusterUrlInput"
                   class="form-control"
                   ng-model="UIModel.target.url"
                   placeholder="URL"
                   ng-pattern="validations.patterns.s3"
                   ng-required="UIModel.target.location === 'S3'"
                   validation-message="{{validations.messages.s3}}"/>
          </div>
        </div>

        <div class="col-xs-24" ng-if="UIModel.type === 'HDFS'">
          <div class="col-xs-5 p0"><label class="light">Path<mandatory-field></mandatory-field></label></div>
          <div class="col-xs-13 mt10">
            <input type="text"
                   name="targetClusterPathInput"
                   class="form-control"
                   ng-model="UIModel.target.path"
                   placeholder="Path"
                   ng-pattern="validations.patterns.osPath"
                   ng-required="UIModel.target.location === 'HDFS'"
                   validation-message="{{validations.messages.path}}"/>
          </div>
        </div>
      </div>
    </div>
  </div>

  <div class="col-xs-24 plr0px">
    <div class="col-xs-12 plr0px clusterBoxEndLine">
    </div>
    <div class="col-xs-12 plr0px pl5">
      <div class="col-xs-24 plr0px clusterBoxEndLine">
      </div>
    </div>
  </div>

    <div class="col-xs-24"><label class="mt15">Validity</label></div>
    <div class="col-xs-24 validityBox plr0px">
      <div class="col-xs-24 plr0px">
        <div class="startDateBox col-xs-4">
          <label class="light">Start<mandatory-field></mandatory-field></label>
          <input type="text"
            name="startDateInput"
            class="form-control dateInput"
            placeholder="{{dateFormat | lowercase}}"
            ng-model="UIModel.validity.start.date"
            ng-required="true"
            simple-date-picker />
        </div>
        <div class="startTimeBox col-xs-4">
          <label class="light">Begin Time<mandatory-field></mandatory-field></label>
          <timepicker ng-change="constructDate()"
                      ng-model="UIModel.validity.start.time"
                      ng-required="true"
                      hour-step="1"
                      minute-step="1"
                      show-meridian="true">
          </timepicker>
        </div>
      </div>
      <div class="col-xs-24 plr0px">
        <div class="endDateBox col-xs-4">
          <label class="light">End<mandatory-field></mandatory-field></label>
          <input type="text"
            name="startDateInput"
            class="form-control dateInput"
            placeholder="{{dateFormat | lowercase}}"
            ng-model="UIModel.validity.end.date"
            ng-required="true"
            simple-date-picker />
        </div>
        <div class="endTimeBox col-xs-4">
          <label class="light">End Time<mandatory-field></mandatory-field></label>
          <timepicker ng-change="constructDate()"
                      ng-model="UIModel.validity.end.time"
                      ng-required="true"
                      hour-step="1"
                      minute-step="1"
                      show-meridian="true">
          </timepicker>
        </div>
      </div>
    </div>

    <div class="frequencyBox">
      <div class="col-xs-24">
        <label>Frequency</label>
      </div>
      <div class="col-xs-24 plr0px">
        <div class="col-xs-24">
          <label class="light">Repeat Every</label>
        </div>
        <div class="col-xs-2">
          <input type="text"
                 name="frequencyQuantity"
                 ng-model="UIModel.frequency.quantity"
                 ng-pattern="validations.patterns.twoDigits"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 ng-keyup="checkMininumFrequency(UIModel.frequency.quantity, UIModel.frequency.unit, datasetForm.frequencyQuantity)"
                 class="form-control"
                 ng-required="true"
                 validation-optional-message="{{validations.messages.number}}" />
        </div>
        <div class="col-xs-6">
          <select ng-model="UIModel.frequency.unit" class="form-control padding0" ng-required="true"
            ng-change="checkMininumFrequency(UIModel.frequency.quantity, UIModel.frequency.unit, datasetForm.frequencyQuantity)">
            <option selected value="minutes">minutes</option>
            <option value="hours">hours</option>
            <option value="days">days</option>
            <option value="months">months</option>
          </select>
        </div>
        <div class="col-xs-24 custom-danger" ng-if="!isFrequencyValid">{{validations.messages.frequency.minimum}}</div>
      </div>
    </div>

    <div class="tzBox col-xs-8">
      <label class="light">Timezone<mandatory-field></mandatory-field></label>
      <time-zone-select ng-model="UIModel.validity.timezone"></time-zone-select>
    </div>

    <div class="col-xs-24">
      <label class="light" tooltip="dataset.jobNotificationReceivers">Send alerts to</label>
    </div>
    <div class="col-xs-24 alertsBox plr0px">
      <div class="emailBox">
        <div class="col-xs-8">
          <input class="form-control"
                 name="emailAlertInput"
                 ng-model="UIModel.alert.email"
                 type="text"
                 placeholder="Email"
                 ng-pattern="validations.patterns.email"
                 validation-message="{{validations.messages.email}}">
        </div>
      </div>
      <div class="addAlertBox col-xs-3">
        <button class="btn btn-default btn-xs"
                ng-disabled="!UIModel.alert.email"
                type="button"
                ng-click="addAlert()">
          <span class="glyphicon glyphicon-plus"></span>add alert
        </button>
      </div>
  </div>

  <div class="col-xs-24 emailArrayRow mt10 plr0px" ng-repeat="email in UIModel.alerts">
    <span class="col-xs-8">{{email}}</span>
    <div class="col-xs-3"><button class="btn btn-default btn-xs"
            type="button"
            ng-click="removeAlert()">
      <span class="glyphicon glyphicon-minus"></span> delete
    </button></div>
  </div>

  <div class="col-xs-24 advancedOption" ng-click="expandOptions = !expandOptions">
    <label class="pointer blink-success">Advanced Options</label>
    <i class="glyphicon glyphicon-chevron-down mt15" ng-if="!expandOptions"></i>
    <i class="glyphicon glyphicon-chevron-up mt15" ng-if="expandOptions"></i>
  </div>

  <div id="advancedOptionsBox" class="col-xs-24 plr0px" ng-class="{expanded:expandOptions}">
    <div class="col-xs-24" ng-if="UIModel.type === 'HIVE'">
		<label tooltip="dataset.tdeEncryptionEnabled">TDE Encryption</label>
		<input type="checkbox" ng-model="UIModel.tdeEncryptionEnabled" ng-checked="UIModel.tdeEncryptionEnabled"/>
	</div>

    <div class="allocationBox">
      <div class="col-xs-24">
        <label>Allocation</label>
      </div>
      <div class="col-xs-24 plr0px" ng-if="UIModel.type === 'HDFS'">
        <div class="col-xs-6">
          <label class="light" tooltip="dataset.distcpMaxMaps">Max Maps for Distcp</label>
          <input type="text"
                 name="maxMapsInput"
                 ng-model="UIModel.allocation.hdfs.distcpMaxMaps"
                 ng-pattern="validations.patterns.number"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 class="form-control"
                 validation-optional-message="{{validations.messages.allocationNumber}}"/>
        </div>
        <div class="col-xs-6">
          <label class="light" tooltip="dataset.distcpMapBandwidth">Max bandwidth (MB)</label>
          <input type="text"
                 name="maxBandwidthInput"
                 ng-model="UIModel.allocation.hdfs.distcpMapBandwidth"
                 ng-pattern="validations.patterns.number"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 class="form-control"
                 validation-optional-message="{{validations.messages.allocationNumber}}" />
        </div>
      </div>

      <div class="col-xs-24 plr0px" ng-if="UIModel.type === 'HIVE'">
        <div class="col-xs-6">
          <label class="light" tooltip="dataset.distcpMaxMaps">Max Maps for Distcp</label>
          <input type="text"
                 name="hiveMaxMapsInput"
                 ng-model="UIModel.allocation.hive.distcpMaxMaps"
                 ng-pattern="validations.patterns.number"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 class="form-control"
                 validation-optional-message="{{validations.messages.allocationNumber}}"/>
        </div>
        <div class="col-xs-6">
          <label class="light" tooltip="dataset.replicationMaxMaps">Max Maps for Mirror</label>
          <input type="text"
                 name="maxMapsInput"
                 ng-model="UIModel.allocation.hive.replicationMaxMaps"
                 ng-pattern="validations.patterns.number"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 class="form-control"
                 validation-optional-message="{{validations.messages.allocationNumber}}" />
        </div>
        <div class="col-xs-6">
          <label class="light" tooltip="dataset.maxEvents">Max Events</label>
          <input type="text"
                 name="maxEventsInput"
                 ng-model="UIModel.allocation.hive.maxEvents"
                 ng-pattern="validations.patterns.number"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 class="form-control"
                 validation-optional-message="{{validations.messages.allocationNumber}}" />
        </div>
        <div class="col-xs-6">
          <label class="light" tooltip="dataset.distcpMapBandwidth">Max bandwidth (MB)</label>
          <input type="text"
                 name="maxBandwidthInput"
                 ng-model="UIModel.allocation.hive.distcpMapBandwidth"
                 ng-pattern="validations.patterns.number"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 class="form-control"
                 validation-optional-message="{{validations.messages.allocationNumber}}" />
        </div>
      </div>
    </div>

    <div class="hiveOptBox mt10 col-xs-24 plr0px" ng-if="UIModel.type === 'HIVE'">
      <label class="col-xs-24">Source</label>

      <label class="col-xs-24 light mt10">Staging path</label>
      <div class="col-xs-8">
        <input type="text"
               name="sourceStagingPathInput"
               ng-model="UIModel.hiveOptions.source.stagingPath"
               ng-pattern="validations.patterns.path"
               class="form-control"
               validation-optional-message="{{validations.messages.path}}" />
      </div>

      <label class="col-xs-24 mt15">Target</label>

      <label class="col-xs-24 light mt10">Staging path</label>
      <div class="col-xs-8">
        <input type="text"
               name="targetStagingPathInput"
               ng-model="UIModel.hiveOptions.target.stagingPath"
               ng-pattern="validations.patterns.path"
               class="form-control"
               validation-optional-message="{{validations.messages.path}}" />
      </div>
    </div>

    <div class="col-xs-24 plr0px retryBox">
      <label class="col-xs-24">Retry</label>

      <div class="col-xs-6 policyBox pt5px mt5">
        <label class="light">Policy</label>
        <select ng-model="UIModel.retry.policy" ng-required="true"
                class="form-control padding0" ng-change="policyChange()">
              <option selected value="periodic">PERIODIC</option>
              <option value="exp-backoff">EXPONENTIAL_BACKOFF</option>
              <option value="final">FINAL</option>
        </select>
      </div>

      <div class="col-xs-6 pt5px mt8">
        <label class="col-xs-6 light plr0px">Delay</label>
        <div class="col-xs-8 plr0px">
          <input type="text"
                 name="frequencyEveryInput"
                 ng-model="UIModel.retry.delay.quantity"
                 ng-pattern="validations.patterns.twoDigits"
                 ng-keydown="validations.acceptOnlyNumber($event)"
                 class="form-control"
                 ng-disabled = "UIModel.retry.policy === 'final'"
                 validation-optional-message="{{validations.messages.number}}" />
        </div>
        <div class="col-xs-16">
          <select ng-model="UIModel.retry.delay.unit"
                  class="form-control padding0" ng-disabled = "UIModel.retry.policy === 'final'">
            <option selected value="minutes">minutes</option>
            <option value="hours">hours</option>
            <option value="days">days</option>
            <option value="months">months</option>
          </select>
        </div>
      </div>

      <div class="col-xs-6 pt5px mt5">
        <label class="light">Attempts</label>
        <input type="text"
           name="frequencyEveryInput"
           ng-model="UIModel.retry.attempts"
           ng-pattern="validations.patterns.twoDigits"
           ng-keydown="validations.acceptOnlyNumber($event)"
           class="form-control"
           ng-disabled = "UIModel.retry.policy === 'final'"
           validation-optional-message="{{validations.messages.number}}" />
      </div>
    </div>

    <div class="col-xs-24 plr0px">
      <label class="col-xs-24">Access Control List</label>
      <div class="col-xs-24 plr0px">
        <div class="col-xs-8">
          <label class="light">Owner<mandatory-field></mandatory-field></label>
          <input type="text"
                 name="aclOwnerInput"
                 ng-model="UIModel.ACL.owner"
                 ng-pattern="validations.patterns.unixId"
                 class="form-control"
                 ng-required="true"
                 validation-message="{{validations.messages.acl.owner}}"/>
        </div>
        <div class="col-xs-8 pl0px">
          <label class="light">Group<mandatory-field></mandatory-field></label>
          <input type="text"
                 name="aclGroupInput"
                 ng-model="UIModel.ACL.group"
                 ng-pattern="validations.patterns.unixId"
                 class="form-control"
                 ng-required="true"
                 validation-message="{{validations.messages.acl.group}}" />
        </div>
      </div>
      <div class="col-xs-24">
        <div class="col-xs-8 plr0px">
          <label class="light">Permissions<mandatory-field></mandatory-field></label>
          <acl-permissions acl-model="UIModel.ACL.permission"></acl-permissions>
        </div>
      </div>
    </div>

  </div>

  <div class="col-xs-24 pb15px mt35">
    <div class="pull-right">
      <a class="btn cnclBtn" ui-sref="main">
        CANCEL
      </a>
      <button class="btn nextBtn"
            ng-disabled="buttonSpinners.show"
            ng-click="goNext(datasetForm.$invalid)" scroll-to-error>
      NEXT <img src="css/img/ajax-loader.gif" ng-if="buttonSpinners.show" />
      </button>
    </div>
  </div>

</form>
