pullrequests.mako
177 lines
| 5.8 KiB
| application/x-mako
|
MakoHtmlLexer
r1282 | <%inherit file="/base/base.mako"/> | |||
<%def name="title()"> | ||||
r4062 | ${_('{} Pull Requests').format(c.repo_name)} | |||
r1282 | %if c.rhodecode_name: | |||
· ${h.branding(c.rhodecode_name)} | ||||
%endif | ||||
</%def> | ||||
r3589 | <%def name="breadcrumbs_links()"></%def> | |||
r1282 | ||||
<%def name="menu_bar_nav()"> | ||||
${self.menu_items(active='repositories')} | ||||
</%def> | ||||
<%def name="menu_bar_subnav()"> | ||||
${self.repo_menu(active='showpullrequest')} | ||||
</%def> | ||||
<%def name="main()"> | ||||
r3757 | ||||
r1282 | <div class="box"> | |||
r3757 | <div class="title"> | |||
r4690 | ||||
r3757 | <ul class="button-links"> | |||
r4690 | <li><a class="btn ${h.is_active('open', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'open':1})}">${_('Open')}</a></li> | |||
<li><a class="btn ${h.is_active('my', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'my':1})}">${_('Created by me')}</a></li> | ||||
<li><a class="btn ${h.is_active('awaiting', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_review':1})}">${_('Awaiting review')}</a></li> | ||||
<li><a class="btn ${h.is_active('awaiting_my', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'awaiting_my_review':1})}">${_('Awaiting my review')}</a></li> | ||||
<li><a class="btn ${h.is_active('closed', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':0,'closed':1})}">${_('Closed')}</a></li> | ||||
<li><a class="btn ${h.is_active('source', c.active)}" href="${h.route_path('pullrequest_show_all',repo_name=c.repo_name, _query={'source':1})}">${_('From this repo')}</a></li> | ||||
r3757 | </ul> | |||
<ul class="links"> | ||||
% if c.rhodecode_user.username != h.DEFAULT_USER: | ||||
r1282 | <li> | |||
<span> | ||||
r1974 | <a id="open_new_pull_request" class="btn btn-small btn-success" href="${h.route_path('pullrequest_new',repo_name=c.repo_name)}"> | |||
r1282 | ${_('Open new Pull Request')} | |||
</a> | ||||
</span> | ||||
</li> | ||||
r3757 | % endif | |||
r4055 | ||||
<li> | ||||
<div class="grid-quick-filter"> | ||||
<ul class="grid-filter-box"> | ||||
<li class="grid-filter-box-icon"> | ||||
<i class="icon-search"></i> | ||||
</li> | ||||
<li class="grid-filter-box-input"> | ||||
<input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/> | ||||
</li> | ||||
</ul> | ||||
</div> | ||||
</li> | ||||
r3757 | </ul> | |||
r1282 | ||||
</div> | ||||
<div class="main-content-full-width"> | ||||
r4511 | <table id="pull_request_list_table" class="rctable table-bordered"></table> | |||
r1282 | </div> | |||
r3757 | ||||
r1282 | </div> | |||
<script type="text/javascript"> | ||||
$(document).ready(function() { | ||||
r1766 | var $pullRequestListTable = $('#pull_request_list_table'); | |||
r1282 | // object list | |||
r1766 | $pullRequestListTable.DataTable({ | |||
processing: true, | ||||
r1282 | serverSide: true, | |||
r4558 | stateSave: true, | |||
stateDuration: -1, | ||||
r1766 | ajax: { | |||
"url": "${h.route_path('pullrequest_show_all_data', repo_name=c.repo_name)}", | ||||
"data": function (d) { | ||||
d.source = "${c.source}"; | ||||
d.closed = "${c.closed}"; | ||||
d.my = "${c.my}"; | ||||
d.awaiting_review = "${c.awaiting_review}"; | ||||
d.awaiting_my_review = "${c.awaiting_my_review}"; | ||||
} | ||||
}, | ||||
dom: 'rtp', | ||||
r1282 | pageLength: ${c.visual.dashboard_items}, | |||
r4690 | order: [[ 2, "desc" ]], | |||
r1282 | columns: [ | |||
r4690 | { | |||
data: { | ||||
"_": "status", | ||||
"sort": "status" | ||||
}, title: "PR", className: "td-status", orderable: false | ||||
}, | ||||
{ | ||||
data: { | ||||
"_": "my_status", | ||||
"sort": "status" | ||||
}, title: "You", className: "td-status", orderable: false | ||||
}, | ||||
{ | ||||
data: { | ||||
"_": "name", | ||||
"sort": "name_raw" | ||||
}, title: "${_('Id')}", className: "td-componentname", "type": "num" | ||||
}, | ||||
{ | ||||
data: { | ||||
"_": "title", | ||||
"sort": "title" | ||||
}, title: "${_('Title')}", className: "td-description" | ||||
}, | ||||
{ | ||||
data: { | ||||
"_": "author", | ||||
"sort": "author_raw" | ||||
}, title: "${_('Author')}", className: "td-user", orderable: false | ||||
}, | ||||
{ | ||||
data: { | ||||
"_": "comments", | ||||
"sort": "comments_raw" | ||||
}, title: "", className: "td-comments", orderable: false | ||||
}, | ||||
{ | ||||
data: { | ||||
"_": "updated_on", | ||||
"sort": "updated_on_raw" | ||||
}, title: "${_('Last Update')}", className: "td-time" | ||||
} | ||||
r1282 | ], | |||
language: { | ||||
paginate: DEFAULT_GRID_PAGINATION, | ||||
r1766 | sProcessing: _gettext('loading...'), | |||
r1282 | emptyTable: _gettext("No pull requests available yet.") | |||
}, | ||||
"drawCallback": function( settings, json ) { | ||||
timeagoActivate(); | ||||
r4026 | tooltipActivate(); | |||
r1282 | }, | |||
"createdRow": function ( row, data, index ) { | ||||
if (data['closed']) { | ||||
r3816 | $(row).addClass('closed'); | |||
} | ||||
r4558 | }, | |||
"stateSaveParams": function (settings, data) { | ||||
data.search.search = ""; // Don't save search | ||||
data.start = 0; // don't save pagination | ||||
r1282 | } | |||
}); | ||||
r1766 | ||||
$pullRequestListTable.on('xhr.dt', function(e, settings, json, xhr){ | ||||
$pullRequestListTable.css('opacity', 1); | ||||
}); | ||||
$pullRequestListTable.on('preXhr.dt', function(e, settings, data){ | ||||
$pullRequestListTable.css('opacity', 0.3); | ||||
}); | ||||
r4055 | // filter | |||
$('#q_filter').on('keyup', | ||||
$.debounce(250, function() { | ||||
$pullRequestListTable.DataTable().search( | ||||
$('#q_filter').val() | ||||
).draw(); | ||||
}) | ||||
); | ||||
r1282 | }); | |||
</script> | ||||
</%def> | ||||