{% extends g.theme.master %}
{% if hasattr(c.app, 'repo') %}
{% set repo = c.app.repo %}
{% else %}
{% set repo = None %}
{% endif %}
{% if repo and repo.status != 'ready' %}
{% set hide_left_bar = True %}
{% endif %}
{% block extra_css %}
<link rel="alternate" type="application/rss+xml" title="RSS" href="{{c.app.url}}feed.rss"/>
<link rel="alternate" type="application/atom+xml" title="Atom" href="{{c.app.url}}feed.atom"/>
{% endblock %}
{% block extra_js %}
<script type="text/javascript" src="{{g.forge_static('js/spin.min.js')}}"></script>
<script type="text/javascript">(function() {
$('#access_urls .btn').click(function(evt){
evt.preventDefault();
var parent = $(this).parents('.btn-bar');
$(parent).find('input').val($(this).attr('data-url'));
$(parent).find('span').text($(this).attr('title')+' access');
$(this).parent().children('.btn').removeClass('active');
$(this).addClass('active');
});
$('#access_urls .btn').first().click();
{% if repo %}
var repo_status = document.getElementById('repo_status');
// The repo_status div will only be present if repo.status != 'ready'
if (repo_status) {
var opts = {
lines: 9, // The number of lines to draw
length: 4, // The length of each line
width: 2, // The line thickness
radius: 3, // The radius of the inner circle
rotate: 0, // The rotation offset
color: '#555', // #rgb or #rrggbb
speed: 1, // Rounds per second
trail: 60, // Afterglow percentage
shadow: false, // Whether to render a shadow
hwaccel: false, // Whether to use hardware acceleration
className: 'spinner', // The CSS class to assign to the spinner
zIndex: 2e9, // The z-index (defaults to 2000000000)
top: 10, // Top position relative to parent in px
left: 10 // Left position relative to parent in px
};
var spinner = new Spinner(opts).spin(repo_status);
function check_status() {
$.get('{{repo.url()}}status', function(data) {
if (data.status === 'ready') {
window.clearInterval(status_checker);
spinner.opts.speed = 0;
spinner.opts.opacity = 1;
spinner.spin(repo_status)
$('#repo_status h2').html('Repo status: ready. <a href=".">Click here to refresh this page.</a>');
}
else {
$('#repo_status h2 span').html(data.status);
}
});
}
// Check repo status every 15 seconds
var status_checker = window.setInterval(check_status, 15000);
{% endif %}
}
}());
</script>
{% endblock %}
{% block before_content %}
{% if repo and repo.status != 'ready' %}
<div id="repo_status">
<h2>Repo status: <span>{{repo.status}}</span>...</h2>
</div>
{% endif %}
{% endblock %}
{% macro clone_info(repo) %}
{% if repo %}
<div id="access_urls" class="btn-bar grid-19">
<div class="btn-set{% if not h.has_access(c.app, 'write')() %} duo{% endif %}">
{% if h.has_access(c.app, 'write')() %}
<a class="btn" data-url="{{repo.clone_command('rw')}}" title="Read/Write">
RW
</a>
<a href="#" class="btn" data-url="{{repo.clone_command('ro')}}" title="Read Only">
RO
</a>
<a href="#" class="btn" data-url="{{repo.clone_command('https')}}" title="HTTP">
HTTP
</a>
{% else %}
<a href="#" class="btn" data-url="{{repo.clone_command('ro')}}" title="Read Only">
RO
</a>
<a href="#" class="btn" data-url="{{repo.clone_command('https_anon')}}" title="HTTP">
HTTP
</a>
{% endif %}
</div>
<span></span>
<input id="access_url" readonly type="text"
class="selectText"
value=""/>
</div>
<hr>
{% endif %}
{% endmacro %}
{% macro commit_labels(commit) %}
{% set branches, tags = commit.symbolic_ids %}
{% for b in branches %}
<span class="scm-branch-label">{{b}}</span>
{% endfor %}
{% for t in tags %}
<span class="scm-tag-label">{{t}}</span>
{% endfor %}
{% endmacro %}