##// END OF EJS Templates
feat(2fa): refactor logic arround validation/recoverycodes and workflows of configuration of 2fa...
feat(2fa): refactor logic arround validation/recoverycodes and workflows of configuration of 2fa - recovery codes are shown in 1 place only - save status about view of recovery codes - made the logic of saving states into user_data more explicit and no longer relly on hacky DB transaction logic - turn JS forms into a regular forms

File last commit:

r5137:f3cd5ebe default
r5367:a11e6ff3 default
Show More
repos.mako
148 lines | 4.1 KiB | application/x-mako | MakoHtmlLexer
<%inherit file="/base/base.mako"/>
<%def name="title()">
${_('Repositories administration')}
%if c.rhodecode_name:
&middot; ${h.branding(c.rhodecode_name)}
%endif
</%def>
<%def name="breadcrumbs_links()"></%def>
<%def name="menu_bar_nav()">
${self.menu_items(active='admin')}
</%def>
<%def name="menu_bar_subnav()">
${self.admin_menu(active='repositories')}
</%def>
<%def name="main()">
<div class="box">
<div class="title">
<input class="q_filter_box" id="q_filter" size="15" type="text" name="filter" placeholder="${_('quick filter...')}" value=""/>
<span id="repo_count"></span>
<ul class="links">
%if c.can_create_repo:
<li>
<a href="${h.route_path('repo_new')}" class="btn btn-small btn-success">${_('Add Repository')}</a>
</li>
%endif
</ul>
</div>
<div id="repos_list_wrap">
<table id="repo_list_table" class="display"></table>
</div>
</div>
<script>
$(document).ready(function() {
var $repoListTable = $('#repo_list_table');
// repo list
$repoListTable.DataTable({
processing: true,
serverSide: true,
ajax: {
"url": "${h.route_path('repos_data')}",
"dataSrc": function (json) {
var filteredCount = json.recordsFiltered;
var total = json.recordsTotal;
var _text = _gettext(
"{0} of {1} repositories").format(
filteredCount, total);
if (total === filteredCount) {
_text = _gettext("{0} repositories").format(total);
}
$('#repo_count').text(_text);
return json.data;
},
},
dom: 'rtp',
pageLength: ${c.visual.admin_grid_items},
order: [[ 0, "asc" ]],
columns: [
{
data: {
"_": "name",
"sort": "name"
}, title: "${_('Name')}", className: "td-componentname"
},
{
data: 'menu', "bSortable": false, className: "quick_repo_menu"},
{
data: {
"_": "desc",
"sort": "desc"
}, title: "${_('Description')}", className: "td-description"
},
{
data: {
"_": "last_change",
"sort": "last_change",
"type": Number
}, title: "${_('Last Change')}", className: "td-time"
},
{
data: {
"_": "last_changeset",
"sort": "last_changeset_raw",
"type": Number
}, title: "${_('Commit')}", className: "td-commit", orderable: false
},
{
data: {
"_": "owner",
"sort": "owner"
}, title: "${_('Owner')}", className: "td-user"
},
{
data: {
"_": "state",
"sort": "state"
}, title: "${_('State')}", className: "td-tags td-state"
},
{
data: {
"_": "action",
"sort": "action"
}, title: "${_('Action')}", className: "td-action", orderable: false
}
],
language: {
paginate: DEFAULT_GRID_PAGINATION,
sProcessing: _gettext('loading...'),
emptyTable:_gettext("No repositories present.")
},
"initComplete": function( settings, json ) {
quick_repo_menu();
}
});
$repoListTable.on('xhr.dt', function(e, settings, json, xhr){
$repoListTable.css('opacity', 1);
});
$repoListTable.on('preXhr.dt', function(e, settings, data){
$repoListTable.css('opacity', 0.3);
});
$('#q_filter').on('keyup',
$.debounce(250, function() {
$repoListTable.DataTable().search(
$('#q_filter').val()
).draw();
})
);
});
</script>
</%def>