<!--
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 ng-controller="WorkflowMonitoring">
  <form role="form" name="notificationConfigurationForm" style="padding:10px;" ng-submit="configureNotification();">
    <legend>Notification Configuration</legend>
    <div class="form-group">
      <label for="inputBrokerURL">Broker URL</label>
      <input class="form-control" style="width: 50%;" type="url" id="inputBrokerURL" name="Broker URL" placeholder="brokerURL" ng-model="notification.brokerURL" required>
    </div>
    <div class="form-group">
      <label for="inputTopic">Topic</label>
      <input class="form-control" style="width: 50%;" type="text" id="inputTopic" name="Topic" placeholder="Topic" ng-model="notification.topic" required>
      <div class="checkbox"><label>
        <input type="checkbox" ng-model="notification.pullMode"> Pull Mode
      </label></div>
    </div>
    <div class="form-group">
      <label for="inputMessageBoxURL">MessageBoxURL</label>
      <input class="form-control" style="width: 50%;" type="url" id="inputMessageBoxURL" name="messageBoxURL" placeholder="MessageBoxURL" ng-model="notification.messageBoxURL" required>
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
    <a class="btn btn-default" href="#/exec">Cancel</a>
  </form>
</div>
