<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form" xmlns:i="jelly:fmt">

  <!-- BEGIN cut'n'paste from https://github.com/jenkinsci/jenkins/blob/jenkins-1.532/core/src/main/resources/hudson/model/ListView/configure-entries.jelly -->

  <f:section title="${%Job Filters}">

  <f:entry title="${%Status Filter}" help="/help/view-config/statusFilter.html">
    <select name="statusFilter" class="setting-input">
      <f:option value="" selected="${it.statusFilter==null}">${%All selected jobs}</f:option>
      <f:option value="1" selected="${it.statusFilter==true}">${%Enabled jobs only}</f:option>
      <f:option value="2" selected="${it.statusFilter==false}">${%Disabled jobs only}</f:option>
    </select>
  </f:entry>

  <f:entry title="${%Recurse in subfolders}" field="recurse">
    <f:checkbox id="recurse"/>
  </f:entry>

  <f:entry title="${%Jobs}">
    <div class="listview-jobs">
      <j:forEach var="job" items="${h.getAllTopLevelItems(it.ownerItemGroup)}">
        <j:set var="spanClass" value=""/>
        <j:set var="spanStyle" value=""/>
        <j:if test="${job.parent!=it.ownerItemGroup}">
          <j:set var="spanClass" value="nested"/>
          <j:set var="spanStyle" value="${it.recurse?'':'display:none'}"/>
        </j:if>
        <span class="${spanClass}" style="${spanStyle}">
          <f:checkbox name="${job.getRelativeNameFromGroup(it.ownerItemGroup)}" checked="${it.jobNamesContains(job)}" title="${h.getRelativeDisplayNameFrom(job,it.ownerItemGroup)}" tooltip="${job.fullName}" json="true"/>
          <br/>
        </span>
      </j:forEach>
    </div>
  </f:entry>

  <f:optionalBlock name="useincluderegex" title="${%Use a regular expression to include jobs into the view}"
                   checked="${it.includeRegex != null}" help="/help/view-config/includeregex.html">
    <f:entry title="${%Regular expression}">
      <f:textbox name="includeRegex" field="includeRegex" />
    </f:entry>
  </f:optionalBlock>

  <j:if test="${it.hasJobFilterExtensions()}">
    <f:block>
      <f:repeatableHeteroProperty field="jobFilters" hasHeader="true" addCaption="${%Add Job Filter}" />
    </f:block>
  </j:if>

  </f:section>

  <!-- END cut'n'paste from https://github.com/jenkinsci/jenkins/blob/jenkins-1.532/core/src/main/resources/hudson/model/ListView/configure-entries.jelly -->

  <f:section title="${%Build Monitor Settings}">

  <f:entry title="${%Ordered by}">
    <select name="order" class="setting-input">
      <f:option value="ByName" selected='${it.currentOrder()=="ByName"}'>${%Name}</f:option>
      <f:option value="ByDisplayName" selected="${it.currentOrder()=='ByDisplayName'}">${%Display name}</f:option>
    </select>
  </f:entry>

  </f:section>

  <script>
    (function() {
      Behaviour.specify("#recurse", 'ListView', 0, function(e) {
        var nestedElements = $$('SPAN.nested')
        e.onclick = function() {
          nestedElements.each(function(el) {
            e.checked ? el.show() : el.hide();
          });
        }
      });
    }());
  </script>

</j:jelly>