[% BLOCK menuItem %]
  <li class="[% IF "${root}${curUri}" == uri %]active[% END %]">
    <a href="[% uri %]">[% title %]</a>
  </li>
[% END %]

[% BLOCK makeSubMenu %]
  <li class="dropdown">
    <a class="dropdown-toggle" href="#" data-toggle="dropdown">[% title %]<b class="caret"></b></a>
    <ul id="left-menu" class="dropdown-menu">
      [% content %]
    </ul>
  </li>
[% END %]

[% BLOCK makeLinkWrapped %]
  <li [% IF curUri == uri %]class="active"[% END %]>
    <a href="[% uri %]">[% title %]</a>
    [% content %]
  </li>
[% END %]

[% BLOCK makeLink %]
[% INCLUDE makeLinkWrapped content="" %]
[% END %]

<ul class="nav pull-left" id="top-menu">

  [% WRAPPER makeSubMenu title="Status" %]
    [% INCLUDE makeLink
       uri = c.uri_for(c.controller('Root').action_for('queue'))
       title = "Queue ("_ nrRunningBuilds _"/"_ nrQueuedBuilds _")" %]
    [% INCLUDE makeLink
       uri = c.uri_for(c.controller('Root').action_for('status'))
       title = "Active build steps" %]
    [% INCLUDE makeLink
       uri = c.uri_for(c.controller('Root').action_for('machines'))
       title = "Machine status" %]
    [% INCLUDE makeLink
       uri = c.uri_for(c.controller('Root').action_for('evals'))
       title = "Latest evaluations" %]
    [% INCLUDE makeLink
       uri = c.uri_for(c.controller('Root').action_for('all'))
       title = "Latest builds" %]
  [% END %]

  [% IF project %]
    [% WRAPPER makeSubMenu title=("Project: " _ project.name)  %]
      [% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('view'), [project.name]) title = "Overview" %]
      [% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('all'), [project.name]) title = "Latest builds" %]
      [% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('jobstatus'), [project.name]) title = "Job status" %]
      [% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('errors'), [project.name]) title = "Errors" %]
      <li class="divider"></li>
      [% INCLUDE menuItem uri = c.uri_for('/project' project.name 'channel' 'latest') title = "Channel" %]
      [% IF c.user_exists %]
        <li class="divider"></li>
        [% INCLUDE menuItem uri = c.uri_for('/project' project.name 'edit') title="Edit" %]
        [% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('create_jobset'), [project.name]) title = "Create jobset" %]
      [% END %]
    [% END %]
  [% END %]

  [% IF jobset %]
    [% WRAPPER makeSubMenu title=("Jobset: " _ jobset.name) %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Jobset').action_for('index'), [project.name, jobset.name])
        title = "Overview" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Jobset').action_for('evals'), [project.name, jobset.name])
        title = "Evaluations" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Jobset').action_for('all'), [project.name, jobset.name])
        title = "Latest builds" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Jobset').action_for('jobstatus'), [project.name, jobset.name])
        title = "Job status" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Jobset').action_for('errors'), [project.name, jobset.name])
        title = "Errors" %]
      <li class="divider"></li>
      [% INCLUDE menuItem uri = c.uri_for('/jobset' project.name jobset.name 'channel' 'latest') title = "Channel" %]
      [% IF c.user_exists %]
        <li class="divider"></li>
        [% INCLUDE menuItem uri = c.uri_for('/jobset' project.name jobset.name 'edit') title="Edit" %]
        [% INCLUDE menuItem uri = c.uri_for('/jobset' project.name jobset.name 'clone') title="Clone" %]

        <script>
          function confirmEvaluateJobset() {
            bootbox.confirm(
              'Are you sure you want to force evaluation of this jobset?',
              function(c) {
                if (!c) return;
                $.post("[% c.uri_for('/api/push', { jobsets = project.name _ ':' _ jobset.name }) %]")
                  .done(function(data) {
                    if (data.error)
                      bootbox.alert("Unable to schedule the jobset for evaluation: " + data.error);
                    else
                      bootbox.alert("The jobset has been scheduled for evaluation.");
                  })
                  .fail(function() { bootbox.alert("Server request failed!"); });
              });
            return;
          };
        </script>
        [% INCLUDE menuItem title="Evaluate" uri = "javascript:confirmEvaluateJobset()" %]

      [% END %]
    [% END %]
  [% END %]

  [% IF job %]
    [% WRAPPER makeSubMenu title=("Job: " _ job.name) %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Job').action_for('overview'), [project.name, jobset.name, job.name])
        title = "Overview" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Job').action_for('all'), [project.name, jobset.name, job.name])
        title = "Latest builds" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Job').action_for('jobstatus'), [project.name, jobset.name, job.name])
        title = "Job status" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Job').action_for('errors'), [project.name, jobset.name, job.name])
        title = "Errors" %]
      <li class="divider"></li>
      [% INCLUDE menuItem uri = c.uri_for('/job' project.name jobset.name job.name 'channel' 'latest') title = "Channel" %]
    [% END %]
  [% END %]

  [% IF build %]
    [% WRAPPER makeSubMenu title=("Build: " _ build.id) %]
      [% INCLUDE makeLink
        uri = c.uri_for('/build' build.id)
        title = "Overview" %]
      [% IF c.user_exists %]
        <li class="divider"></li>
        [% INCLUDE makeLink
          uri = c.uri_for('/build' build.id 'clone')
          title = "Clone build" %]
        [% IF available %]
          [% IF build.keep %]
            [% INCLUDE makeLink
               uri = c.uri_for('/build' build.id 'keep' 0)
               title = "Unkeep build" %]
          [% ELSE %]
            [% INCLUDE makeLink
               uri = c.uri_for('/build' build.id 'keep' 1)
               title = "Keep build" %]
          [% END %]
        [% END %]
        [% IF build.finished %]
          [% INCLUDE makeLink
            uri = c.uri_for('/build' build.id 'restart')
            title = "Restart build" %]
        [% END %]
        [% IF !build.finished %]
          [% INCLUDE makeLink
            uri = c.uri_for('/build' build.id 'cancel')
            title = "Cancel build" %]
        [% END %]
      [% END %]
    [% END %]
  [% END %]

  [% IF c.user_exists && c.check_user_roles('admin') %]
    [% WRAPPER makeSubMenu title="Admin" %]
      [% IF c.check_user_roles('admin') %]
        [% INCLUDE menuItem uri = c.uri_for(c.controller('Project').action_for('create')) title = "Create project" %]
        <li class="divider"></li>
      [% END %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Admin').action_for('machines'))
        title = "Manage machines" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Admin').action_for('managenews'))
        title = "Manage news" %]
      [% INCLUDE makeLink
        uri = c.uri_for(c.controller('Admin').action_for('users'))
        title = "Manage users" %]
      <li class="divider"></li>
      [% INCLUDE maybeLink
        uri = c.uri_for(c.controller('Admin').action_for('clearfailedcache'))
        content = "Clear failed builds cache"
        confirmmsg = "Are you sure you want to clear the failed builds cache?"
        class = "" %]
      [% INCLUDE maybeLink
        uri = c.uri_for(c.controller('Admin').action_for('clear_queue_non_current'))
        content = "Clear all non-running old builds from queue"
        confirmmsg = "Are you sure you want to clear the queue?"
        class = "" %]
    [% END %]
  [% END %]

</ul>

<div class="pull-right">

  <form class="navbar-search" action="[% c.uri_for('/search') %]">
    <input name="query" type="text" class="search-query span2" placeholder="Search" [% HTML.attributes(value => c.req.params.query) %]></input>
  </form>

  <ul class="nav" id="top-menu">

    [% IF c.user_exists %]
      [% INCLUDE makeLink uri = c.uri_for(c.controller('User').action_for('edit'), [c.user.username]) title = "Preferences" %]
      [% INCLUDE makeLink uri = c.uri_for(c.controller('Root').action_for('logout')) title = "Sign out" %]
    [% ELSE %]
      [% INCLUDE makeLink uri = c.uri_for(c.controller('Root').action_for('login')) title = "Sign in" %]
    [% END %]

  </ul>

</div>
