list.html
251 lines
| 9.5 KiB
| text/html
|
HtmlLexer
r411 | ## -*- coding: utf-8 -*- | ||
<%inherit file="base.html"/> | |||
<%def name="breadcrumbs_links()"> | |||
%if c.repo: | |||
${h.link_to('Settings',h.url('edit_repo', repo_name=c.repo.repo_name))} | |||
r731 | %elif c.repo_group: | ||
${h.link_to(_('Admin'),h.url('admin_home'))} | |||
» | |||
${h.link_to(_('Repository Groups'),h.url('repo_groups'))} | |||
» | |||
${h.link_to(c.repo_group.group_name,h.url('edit_repo_group', group_name=c.repo_group.group_name))} | |||
r411 | %else: | ||
${h.link_to(_('Admin'),h.url('admin_home'))} | |||
» | |||
${h.link_to(_('Settings'),h.url('admin_settings'))} | |||
%endif | |||
%if current_IntegrationType: | |||
» | |||
%if c.repo: | |||
${h.link_to(_('Integrations'), | |||
request.route_url(route_name='repo_integrations_home', | |||
repo_name=c.repo.repo_name))} | |||
r731 | %elif c.repo_group: | ||
${h.link_to(_('Integrations'), | |||
request.route_url(route_name='repo_group_integrations_home', | |||
repo_group_name=c.repo_group.group_name))} | |||
r411 | %else: | ||
${h.link_to(_('Integrations'), | |||
request.route_url(route_name='global_integrations_home'))} | |||
%endif | |||
» | |||
${current_IntegrationType.display_name} | |||
%else: | |||
» | |||
${_('Integrations')} | |||
%endif | |||
</%def> | |||
r731 | |||
r411 | <div class="panel panel-default"> | ||
<div class="panel-heading"> | |||
r731 | <h3 class="panel-title"> | ||
%if c.repo: | |||
${_('Current Integrations for Repository: {repo_name}').format(repo_name=c.repo.repo_name)} | |||
%elif c.repo_group: | |||
${_('Current Integrations for repository group: {repo_group_name}').format(repo_group_name=c.repo_group.group_name)} | |||
%else: | |||
${_('Current Integrations')} | |||
%endif | |||
</h3> | |||
r411 | </div> | ||
<div class="panel-body"> | |||
r731 | <% | ||
if c.repo: | |||
home_url = request.route_path('repo_integrations_home', | |||
repo_name=c.repo.repo_name) | |||
elif c.repo_group: | |||
home_url = request.route_path('repo_group_integrations_home', | |||
repo_group_name=c.repo_group.group_name) | |||
else: | |||
home_url = request.route_path('global_integrations_home') | |||
%> | |||
<a href="${home_url}" class="btn ${not current_IntegrationType and 'btn-primary' or ''}">${_('All')}</a> | |||
%for integration_key, IntegrationType in available_integrations.items(): | |||
<% | |||
if c.repo: | |||
list_url = request.route_path('repo_integrations_list', | |||
r411 | repo_name=c.repo.repo_name, | ||
r731 | integration=integration_key) | ||
elif c.repo_group: | |||
list_url = request.route_path('repo_group_integrations_list', | |||
r667 | repo_group_name=c.repo_group.group_name, | ||
r731 | integration=integration_key) | ||
else: | |||
list_url = request.route_path('global_integrations_list', | |||
integration=integration_key) | |||
%> | |||
<a href="${list_url}" | |||
class="btn ${current_IntegrationType and integration_key == current_IntegrationType.key and 'btn-primary' or ''}"> | |||
${IntegrationType.display_name} | |||
r411 | </a> | ||
%endfor | |||
r731 | |||
<% | |||
if c.repo: | |||
create_url = h.route_path('repo_integrations_new', repo_name=c.repo.repo_name) | |||
elif c.repo_group: | |||
create_url = h.route_path('repo_group_integrations_new', repo_group_name=c.repo_group.group_name) | |||
else: | |||
create_url = h.route_path('global_integrations_new') | |||
%> | |||
<p class="pull-right"> | |||
<a href="${create_url}" class="btn btn-small btn-success">${_(u'Create new integration')}</a> | |||
</p> | |||
<table class="rctable integrations"> | |||
r411 | <thead> | ||
<tr> | |||
r731 | <th><a href="?sort=enabled:${rev_sort_dir}">${_('Enabled')}</a></th> | ||
<th><a href="?sort=name:${rev_sort_dir}">${_('Name')}</a></th> | |||
<th colspan="2"><a href="?sort=integration_type:${rev_sort_dir}">${_('Type')}</a></th> | |||
<th><a href="?sort=scope:${rev_sort_dir}">${_('Scope')}</a></th> | |||
r411 | <th>${_('Actions')}</th> | ||
r646 | <th></th> | ||
r411 | </tr> | ||
</thead> | |||
<tbody> | |||
r731 | %if not integrations_list: | ||
<tr> | |||
<td colspan="7"> | |||
<% integration_type = current_IntegrationType and current_IntegrationType.display_name or '' %> | |||
%if c.repo: | |||
${_('No {type} integrations for repo {repo} exist yet.').format(type=integration_type, repo=c.repo.repo_name)} | |||
%elif c.repo_group: | |||
${_('No {type} integrations for repogroup {repogroup} exist yet.').format(type=integration_type, repogroup=c.repo_group.group_name)} | |||
%else: | |||
${_('No {type} integrations exist yet.').format(type=integration_type)} | |||
%endif | |||
r411 | |||
r731 | %if current_IntegrationType: | ||
<% | |||
if c.repo: | |||
create_url = h.route_path('repo_integrations_create', repo_name=c.repo.repo_name, integration=current_IntegrationType.key) | |||
elif c.repo_group: | |||
create_url = h.route_path('repo_group_integrations_create', repo_group_name=c.repo_group.group_name, integration=current_IntegrationType.key) | |||
else: | |||
create_url = h.route_path('global_integrations_create', integration=current_IntegrationType.key) | |||
%> | |||
%endif | |||
<a href="${create_url}">${_(u'Create one')}</a> | |||
</td> | |||
</tr> | |||
%endif | |||
%for IntegrationType, integration in integrations_list: | |||
r411 | <tr id="integration_${integration.integration_id}"> | ||
<td class="td-enabled"> | |||
%if integration.enabled: | |||
<div class="flag_status approved pull-left"></div> | |||
%else: | |||
<div class="flag_status rejected pull-left"></div> | |||
%endif | |||
</td> | |||
<td class="td-description"> | |||
${integration.name} | |||
</td> | |||
r731 | <td class="td-icon"> | ||
%if integration.integration_type in available_integrations: | |||
<div class="integration-icon"> | |||
${available_integrations[integration.integration_type].icon|n} | |||
</div> | |||
%else: | |||
? | |||
%endif | |||
</td> | |||
<td class="td-type"> | |||
r411 | ${integration.integration_type} | ||
</td> | |||
r731 | <td class="td-scope"> | ||
%if integration.repo: | |||
<a href="${h.url('summary_home', repo_name=integration.repo.repo_name)}"> | |||
${_('repo')}:${integration.repo.repo_name} | |||
</a> | |||
%elif integration.repo_group: | |||
<a href="${h.url('repo_group_home', group_name=integration.repo_group.group_name)}"> | |||
${_('repogroup')}:${integration.repo_group.group_name} | |||
r793 | %if integration.child_repos_only: | ||
${_('child repos only')} | |||
%else: | |||
${_('cascade to all')} | |||
%endif | |||
r731 | </a> | ||
%else: | |||
r793 | %if integration.child_repos_only: | ||
r731 | ${_('top level repos only')} | ||
r793 | %else: | ||
r731 | ${_('global')} | ||
%endif | |||
</td> | |||
%endif | |||
r411 | <td class="td-action"> | ||
r731 | %if not IntegrationType: | ||
r411 | ${_('unknown integration')} | ||
%else: | |||
<% | |||
if c.repo: | |||
r667 | edit_url = request.route_path('repo_integrations_edit', | ||
r411 | repo_name=c.repo.repo_name, | ||
integration=integration.integration_type, | |||
integration_id=integration.integration_id) | |||
r667 | elif c.repo_group: | ||
edit_url = request.route_path('repo_group_integrations_edit', | |||
repo_group_name=c.repo_group.group_name, | |||
integration=integration.integration_type, | |||
integration_id=integration.integration_id) | |||
r411 | else: | ||
r667 | edit_url = request.route_path('global_integrations_edit', | ||
r411 | integration=integration.integration_type, | ||
integration_id=integration.integration_id) | |||
%> | |||
<div class="grid_edit"> | |||
<a href="${edit_url}">${_('Edit')}</a> | |||
</div> | |||
<div class="grid_delete"> | |||
<a href="${edit_url}" | |||
class="btn btn-link btn-danger delete_integration_entry" | |||
data-desc="${integration.name}" | |||
data-uid="${integration.integration_id}"> | |||
${_('Delete')} | |||
</a> | |||
</div> | |||
%endif | |||
</td> | |||
</tr> | |||
%endfor | |||
<tr id="last-row"></tr> | |||
</tbody> | |||
</table> | |||
r731 | <div class="integrations-paginator"> | ||
<div class="pagination-wh pagination-left"> | |||
${integrations_list.pager('$link_previous ~2~ $link_next')} | |||
</div> | |||
</div> | |||
r411 | </div> | ||
</div> | |||
<script type="text/javascript"> | |||
var delete_integration = function(entry) { | |||
if (confirm("Confirm to remove this integration: "+$(entry).data('desc'))) { | |||
var request = $.ajax({ | |||
type: "POST", | |||
url: $(entry).attr('href'), | |||
data: { | |||
'delete': 'delete', | |||
'csrf_token': CSRF_TOKEN | |||
}, | |||
success: function(){ | |||
location.reload(); | |||
}, | |||
error: function(data, textStatus, errorThrown){ | |||
alert("Error while deleting entry.\nError code {0} ({1}). URL: {2}".format(data.status,data.statusText,$(entry)[0].url)); | |||
} | |||
}); | |||
}; | |||
} | |||
$('.delete_integration_entry').on('click', function(e){ | |||
e.preventDefault(); | |||
delete_integration(this); | |||
}); | |||
</script> |