{% 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 %}