## -*- coding: utf-8 -*- <%inherit file="base.mako"/> <%def name="breadcrumbs_links()"> %if c.repo: ${h.link_to('Settings',h.route_path('edit_repo', repo_name=c.repo.repo_name))} %elif c.repo_group: ${h.link_to(_('Admin'),h.route_path('admin_home'))} » ${h.link_to(_('Repository Groups'),h.route_path('repo_groups'))} » ${h.link_to(c.repo_group.group_name,h.route_path('edit_repo_group', repo_group_name=c.repo_group.group_name))} %else: ${h.link_to(_('Admin'),h.route_path('admin_home'))} » ${h.link_to(_('Settings'),h.route_path('admin_settings'))} %endif %if c.current_IntegrationType: » %if c.repo: ${h.link_to(_('Integrations'), request.route_path(route_name='repo_integrations_home', repo_name=c.repo.repo_name))} %elif c.repo_group: ${h.link_to(_('Integrations'), request.route_path(route_name='repo_group_integrations_home', repo_group_name=c.repo_group.group_name))} %else: ${h.link_to(_('Integrations'), request.route_path(route_name='global_integrations_home'))} %endif » ${c.current_IntegrationType.display_name} %else: » ${_('Integrations')} %endif </%def> <div class="panel panel-default"> <div class="panel-heading"> <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> </div> <div class="panel-body"> <% integration_type = c.current_IntegrationType and c.current_IntegrationType.display_name or '' 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"> <thead> <tr> <th><a href="?sort=enabled:${c.rev_sort_dir}">${_('Enabled')}</a></th> <th><a href="?sort=name:${c.rev_sort_dir}">${_('Name')}</a></th> <th colspan="2"><a href="?sort=integration_type:${c.rev_sort_dir}">${_('Type')}</a></th> <th><a href="?sort=scope:${c.rev_sort_dir}">${_('Scope')}</a></th> <th>${_('Actions')}</th> <th></th> </tr> </thead> <tbody> %if not c.integrations_list: <tr> <td colspan="7"> %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 %if c.current_IntegrationType: <% if c.repo: create_url = h.route_path('repo_integrations_create', repo_name=c.repo.repo_name, integration=c.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=c.current_IntegrationType.key) else: create_url = h.route_path('global_integrations_create', integration=c.current_IntegrationType.key) %> %endif <a href="${create_url}">${_(u'Create one')}</a> </td> </tr> %endif %for IntegrationType, integration in c.integrations_list: <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> <td class="td-icon"> %if integration.integration_type in c.available_integrations: <div class="integration-icon"> ${c.available_integrations[integration.integration_type].icon()|n} </div> %else: ? %endif </td> <td class="td-type"> ${integration.integration_type} </td> <td class="td-scope"> %if integration.repo: <a href="${h.route_path('repo_summary', repo_name=integration.repo.repo_name)}"> ${_('repo')}:${integration.repo.repo_name} </a> %elif integration.repo_group: <a href="${h.route_path('repo_group_home', repo_group_name=integration.repo_group.group_name)}"> ${_('repogroup')}:${integration.repo_group.group_name} %if integration.child_repos_only: ${_('child repos only')} %else: ${_('cascade to all')} %endif </a> %else: %if integration.child_repos_only: ${_('top level repos only')} %else: ${_('global')} %endif </td> %endif <td class="td-action"> %if not IntegrationType: ${_('unknown integration')} %else: <% if c.repo: edit_url = request.route_path('repo_integrations_edit', repo_name=c.repo.repo_name, integration=integration.integration_type, integration_id=integration.integration_id) 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) else: edit_url = request.route_path('global_integrations_edit', 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> <div class="integrations-paginator"> <div class="pagination-wh pagination-left"> ${c.integrations_list.pager('$link_previous ~2~ $link_next')} </div> </div> </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>