Blob Blame Raw
{% extends "master.html" %}

{% block title %}Pull Requests for {{ username }}{% endblock %}


{% block content %}
<div class="p-t-2">
  <div class="container">
    <h3 class="p-b-2">
        Pull Requests for {{ username | avatar(20) | safe }} {{ username }}
    </h3>
    <div>
      <span class="btn-group btn-group-sm issues-tagbar" role="group">
          <a data-togglebutton="pr-status-open" id="toggle-open"
            class="btn btn-primary btn-sm">Open</a>
          <a data-togglebutton="pr-status-merged" id="toggle-merged"
            class="btn btn-secondary btn-sm">Merged</a>
          <a data-togglebutton="pr-status-closed" id="toggle-closed"
            class="btn btn-secondary btn-sm">Closed</a>
          <a data-togglebutton="pr-status-all"
            class="btn btn-secondary btn-sm">All</a>
      </span>
    </div>
    <hr>

    {% for pullrequests in (
      requests|selectattr("user.username", "equalto", username),
      requests|rejectattr("user.username", "equalto", username)) %}
      {% if loop.first %}
        {% set id="my-pr-table" %}
        <b>
          Pull Requests opened by {{ username | avatar(20) | safe }}
          {{ username }}
        </b>
      {% else %}
        {% set id="pr-table" %}
        <b>
          Pull Requests {{ username | avatar(20) | safe }}
          {{ username }} can act on
        </b>
      {% endif %}
      <table class="table table-hover table-striped m-b-0 m-t-1" id="{{ id }}">
        <thead class="thead-default">
          <tr>
              <th class="nowrap">#</th>
              <th>Status</th>
              <th>Title</th>
              <th>Merge Status</th>
              <th class="open_date nowrap">Opened</th>
              <th class="nowrap">Project</th>
              <th class="nowrap">Opened by</th>
              <th class="assigned nowrap">Assigned to</th>
          </tr>
        </thead>
        <tfoot>
        </tfoot>
        <tbody>
        {% for request in pullrequests %}
          <tr class="pr-status pr-status-{{request.status|lower}}"{%
            if request.status|lower != "open" %}style="display:none;"{%
            endif %}>
            <td class="nowrap">
              <span class="label label-default">PR#{{ request.id }}</span>
            </td>
            <td>
              <span class="label {%
                if request.status|lower == 'merged' %}label-success{%
                elif request.status|lower == 'closed' %}label-danger{%
                elif request.status|lower == 'open' %}label-primary{%
                endif %}">{{request.status}}
              </span>
            </td>
            <td class="stretch-table-column">
              <a href="{{ url_for(
                'ui_ns.request_pull',
                repo=request.project.name,
                username=request.project.user.username if request.project.is_fork else None,
                namespace=request.project.namespace,
                requestid=request.id) }}">
                {{ request.title | noJS("img") | safe }}
              </a>
            </td>
            <td>
              <span class="label {%
                if request.merge_status|lower in ['no_change', 'fforward'] %}label-success{%
                elif request.merge_status|lower == 'conflicts' %}label-danger{%
                elif request.merge_status|lower == 'merge' %}label-primary{%
                endif%}">
                {{request.merge_status or 'No Status' | lower}}
              </span>
            </td>
            <td class="nowrap">
              <span title="{{request.date_created | format_datetime}}">{{
                request.date_created | humanize}}</span>
            </td>
            <td class="nowrap">
              <a href="{{ url_for(
                'ui_ns.view_repo',
                repo=request.project.name,
                username=request.project.user.username if request.project.is_fork else None,
                namespace=request.project.namespace) }}">
                {{ request.project.user.username + '/' if request.project.is_fork }}
                {{ request.project.namespace + '/' if request.project.namespace }}
                {{ request.project.name }}
              </a>
            </td>
            <td class="nowrap">
              {{ request.user.default_email | avatar(16) | safe }}
              {{ request.user.username }}
            </td>
            <td class="nowrap">
              {% if request.assignee %}
              {{ request.assignee.default_email | avatar(16) | safe }}
              {{ request.assignee.user }}
              {% else %}
              <span class="text-muted">unassigned</span>
              {% endif %}
            </td>
          </tr>
        {% endfor %}
          <tr>
            <td colspan="8" class="pr-status noresult" style="display:none;">
              No pull-requests found
            </td>
          </tr>
        </tbody>
      </table>
      <br>
    {% endfor %}
  </div>
</div>

{% endblock %}

{% block jscripts %}
    {{ super() }}
    <script type="text/javascript">
      $(function(){
        $('.issues-tagbar .btn').click(function(){
          $('.issues-tagbar .btn-primary').addClass("btn-secondary");
          $('.issues-tagbar .btn-primary').removeClass("btn-primary");
          $(this).removeClass("btn-secondary");
          $(this).addClass("btn-primary");
          if ($(this).attr("data-togglebutton") == "pr-status-all"){
            $(".pr-status").show();
          } else {
            $(".pr-status").hide();
            $("."+$(this).attr("data-togglebutton")).show();
          }
          showNoResultMessage();
        });
      });

      // Show 'No pull-requests found' message.
      function showNoResultMessage(){
        // Flush old view...
        $('.noresult').hide();

        // ... and check which should be shown now.
        if ($('#pr-table .pr-status').filter(':visible').length == 0){
          $('#pr-table .noresult').show();
        }
        if ($('#my-pr-table .pr-status').filter(':visible').length == 0){
          $('#my-pr-table .noresult').show();
        }
      }

      // Show 'No pull-requests found' message on pageload.
      $(function(){
        showNoResultMessage();
      });
    </script>
{% endblock %}