#*
 * Copyright 2012 LinkedIn Corp.
 *
 * Licensed 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 modal-wide" id="execute-flow-panel">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title" id="execute-flow-panel-title"></h4>
      </div><!-- /modal-header -->
      <div class="modal-body row">
        <div class="col-xs-4">
          <ul class="nav nav-pills nav-stacked" id="graph-options">
            <li id="flow-option" viewpanel="svg-div-custom">
              <a href="#">Flow View</a>
              <div class="menu-caption">Right click on the jobs to disable and enable jobs in the
                flow.
              </div>
            </li>
            <li viewpanel="notification-panel">
              <a href="#">Notification</a>
              <div class="menu-caption">Change the address where success and failure emails will be
                sent.
              </div>
            </li>
            <li viewpanel="failure-options">
              <a href="#">Failure Options</a>
              <div class="menu-caption">Select flow behavior when a failure is detected.</div>
            </li>
            <li viewpanel="concurrent-panel">
              <a href="#">Concurrent</a>
              <div class="menu-caption">Change the behavior of the flow if it is already running.
              </div>
            </li>
            <li viewpanel="flow-parameters-panel">
              <a href="#">Flow Parameters</a>
              <div class="menu-caption">Add temporary flow parameters that are used to override
                global settings for each job.
              </div>
            </li>
          </ul>
        </div><!-- /col-xs-4 -->
        <div class="col-xs-8">
          <div id="execution-graph-options-panel">

          ## SVG graph panel.

            <div id="svg-div-custom" class="side-panel">
              <svg id="flow-executing-graph" xmlns="http://www.w3.org/2000/svg" version="1.1"
                   shape-rendering="optimize-speed" text-rendering="optimize-speed">
              </svg>
            </div>

          ## Notification panel.

            <div id="notification-panel" class="side-panel">
              <h4>Notify on failure</h4>
              <p>On a job failure, notify on either the first failure, and/or when the failed flow
                finishes.</p>
              <hr>
              <div class="btn-group" data-toggle="buttons">
                <label class="btn btn-default">
                  <input id="notify-failure-first" type="radio" name="notify" value="first">First
                  failure
                </label>
                <label class="btn btn-default">
                  <input id="notify-failure-last" type="radio" name="notify" value="last">Flow
                  finished
                </label>
              </div>

              <h4>Failure Emails</h4>
              <div class="checkbox">
                <label>
                  <input type="checkbox" id="override-failure-emails" name="overrideFailureEmails"
                         value="overrideFailureEmails">
                  Override flow email settings.
                </label>
              </div>
              <label>Notify these addresses on failure. Comma, space, or semi-colon delimited
                list.</label>
              <textarea class="form-control" rows="3" id="failure-emails"></textarea>

              <h4>Success Emails</h4>
              <div class="checkbox">
                <label>
                  <input type="checkbox" id="override-success-emails" name="overrideSuccessEmails"
                         value="overrideSuccessEmails">
                  Override flow email settings.
                </label>
              </div>
              <label>Notify when the flow finishes successfully. Comma, space, or semi-colon
                delimited list.</label>
              <textarea class="form-control" rows="3" id="success-emails"></textarea>
            </div>

          ## Failure options panel.

            <div id="failure-options" class="side-panel">
              <h4>Failure Options</h4>
              <p>When a failure first occurs in the flow, select the execution behavior.</p>
              <hr>
              <ul>
                <li><strong>Finish Current Running</strong> finishes only the currently running job.
                  It will not start any new jobs.
                </li>
                <li><strong>Cancel All</strong> immediately kills all jobs and fails the flow.</li>
                <li><strong>Finish All Possible</strong> will keep executing jobs as long as its
                  dependencies are met.
                </li>
              </ul>
              <select id="failure-action" name="failureAction"
                      class="form-control form-control-auto">
                <option value="finishCurrent">Finish Current Running</option>
                <option value="cancelImmediately">Cancel All</option>
                <option value="finishPossible">Finish All Possible</option>
              </select>
            </div>

          ## Concurrent execution options panel.

            <div id="concurrent-panel" class="side-panel">
              <h4>Concurrent Execution Options</h4>
              <p>If the flow is currently running, these are the options that can be set.</p>
              <hr>
              <div class="radio">
                <label>
                  <input type="radio" id="skip" name="concurrent" value="skip" checked="checked">
                  Skip Execution
                </label>
                <span class="help-block">Do not run flow if it is already running.</span>
              </div>

              <div class="radio">
                <label>
                  <input type="radio" id="ignore" name="concurrent" value="ignore">
                  Run Concurrently
                </label>
                <span
                    class="help-block">Run the flow anyway. Previous execution is unaffected.</span>
              </div>

              <div class="radio">
                <label>
                  <input type="radio" id="pipeline" name="concurrent" value="pipeline">
                  Pipeline
                </label>
                <select id="pipeline-level" name="pipelineLevel"
                        class="form-control form-control-auto input-sm">
                  <option value="1">Level 1</option>
                  <option value="2">Level 2</option>
                </select>
                <span class="help-block">
                        Pipeline the flow, so the current execution will not be overrun.
                        <ul>
                          <li>Level 1: block job A until the previous flow job A has completed.</li>
                          <li>Level 2: block job A until the previous flow job A's children have completed.</li>
                          </li>
                      </span>
              </div>
            </div>

          ## Flow parameters panel

            <div id="flow-parameters-panel" class="side-panel">
              <h4>Flow Property Override</h4>
              <hr>
              <div id="editTable">
                <table class="table table-striped">
                  <thead>
                  <tr>
                    <th class="property-key">Name</th>
                    <th>Value</th>
                  </tr>
                  </thead>
                  <tbody>
                  <tr id="addRow" class="addRow">
                    <td id="addRow-col" colspan="2">
                      <button type="button" class="btn btn-success btn-xs" id="add-btn">Add Row
                      </button>
                    </td>
                  </tr>
                  </tbody>
                </table>
              </div>
            </div>

          </div><!-- /execution-graph-options-panel -->
        </div><!-- /col-xs-8 -->
      </div><!-- /modal-body -->

      <div class="modal-footer">
        #if (!$show_schedule || $show_schedule == 'true')
          <div class="pull-left">
            <button type="button" class="btn btn-success" id="schedule-btn">Schedule</button>
          </div>
        #end

      #*
      #if ($triggerPlugins.size() > 0)
        #foreach ($triggerPlugin in $triggerPlugins)
                    <button type="button" class="btn btn-default" id=set-$triggerPlugin.pluginName>$triggerPlugin.pluginName</button>
        #end
      #end
      *#
        <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
        <button type="button" class="btn btn-primary" id="execute-btn">Execute</button>
      </div><!-- /modal-footer -->
    </div><!-- /modal-content -->
  </div><!-- /modal-dialog -->
</div><!-- /modal -->

#if (!$show_schedule || $show_schedule == 'true')
  #parse ("azkaban/webapp/servlet/velocity/schedulepanel.vm")
#end

#*
#if ($triggerPlugins.size() > 0)
  #foreach ($triggerPlugin in $triggerPlugins)
    #set ($prefix = $triggerPlugin.pluginName)
    #set ($webpath = $triggerPlugin.pluginPath)
    #parse ($triggerPlugin.inputPanelVM)
  #end
#end
*#

<div id="contextMenu"></div>
