{% extends "repo_master.html" %}
{% block title %}Tree - {{
repo.namespace + '/' if repo.namespace }}{{ repo.name }}{% endblock %}
{% set tag = "home" %}
{% block header %}
<link href="{{ url_for('static', filename='vendor/highlight.js/styles/github.css') }}?version={{ g.version}}"
rel="stylesheet" />
<style>
.hljs {
background: #fff;
}
</style>
{% endblock %}
{% block repo %}
<div class="row m-b-1">
<div class="col-sm-6">
<h3>
Blame {{ filename }}
</h3>
</div>
<div class="col-sm-6">
<div class="float-right">
{% if branchname %}
<div class="btn-group">
<button type="button" class="btn btn-outline-light border-secondary text-dark btn-sm dropdown-toggle"
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="fa fa-random fa-fw"></span> Branch: <span class="font-weight-bold">{{ branchname }}</span>
</button>
<div class="dropdown-menu dropdown-menu-right">
{% for branch in g.branches %}
{% if origin == 'view_tree' %}
<a class="dropdown-item" href="{{ url_for(
'ui_ns.view_tree',
repo=repo.name,
username=username,
namespace=repo.namespace,
identifier=branch) }}">
{{ branch }}
</a>
{% elif origin == 'view_file' %}
<a class="dropdown-item" href="{{ url_for(
'ui_ns.view_file',
repo=repo.name,
username=username,
namespace=repo.namespace,
identifier=branch,
filename=filename | unicode ) }}">
{{ branch }}
</a>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
</div>
</div>
</div>
<div class="card">
<div class="card-header">
<ol class="breadcrumb p-0 bg-transparent mb-0">
<li>
<a href="{{ url_for('ui_ns.view_tree',
repo=repo.name,
username=username,
namespace=repo.namespace,
identifier=branchname)
}}">
<span class="fa fa-random">
</span> {{ branchname }}
</a>
</li>
{% set path = '' %}
{% for file in filename.split('/') %}
{% if loop.first %}
{% set path = file %}
{% else %}
{% set path = path + '/' + file %}
{% endif %}
{% if loop.index != loop.length %}<li><a
href="{{ url_for('ui_ns.view_file',
repo=repo.name,
username=username,
namespace=repo.namespace,
identifier=branchname,
filename=path | unicode)}}">
<span class="fa fa-folder"></span> {{ file }}</a>
</li>
{% elif file %}
<li class="active">
<span class="fa {% if output_type == 'tree' %}fa-folder{% else %}fa-file{% endif %}">
</span> {{ file }}
</li>
{% endif %}
{% endfor %}
</ol>
</div>
{% if content %}
<div class="card-block p-a-0">
<div class="bg-light border text-right pr-2">
{% if output_type in ('file','markup') and g.repo_admin %}
<a class="btn btn-sm btn-secondary" href="{{ url_for(
'ui_ns.edit_file',
repo=repo.name,
username=username,
namespace=repo.namespace,
branchname=branchname,
filename=filename | unicode) }}" title="Edit file">Edit</a>
{% endif %}
{% if output_type in ('file','markup') %}
<form class="btn btn-sm" method="POST" name="fork_project"
action="{{ url_for('ui_ns.fork_edit_file',
repo=repo.name,
username=username,
namespace=repo.namespace,
branchname=branchname, filename=filename) }}">
<button class="btn btn-sm btn-secondary"
onclick="fork_project.submit();">
Fork and Edit
</button>
{{ forkbuttonform.csrf_token }}
</form>
{% endif %}
{% if output_type == 'markup' %}
<a class="btn btn-sm btn-secondary" href="{{ url_for(
'ui_ns.view_file', username=username, namespace=repo.namespace,
repo=repo.name, identifier=branchname,
filename=filename | unicode, text=True) }}"
title="View as text">Text</a>
{% else %}
<a class="btn btn-secondary btn-sm" href="{{ url_for(
'ui_ns.view_file',
repo=repo.name,
username=username,
namespace=repo.namespace,
identifier=branchname,
filename=filename | unicode) }}" title="View as blob">Blob</a>
{% endif %}
<a class="btn btn-secondary btn-sm" href="{{ url_for(
'ui_ns.view_raw_file',
repo=repo.name,
username=username,
namespace=repo.namespace,
identifier=branchname,
filename=filename) | unicode }}" title="View as raw">Raw</a>
</div>
{% autoescape false %}
{{ content | blame_loc(repo, username, blame) }}
{% endautoescape %}
</div>
{% else %}
No content found in this repository
{% endif %}
</div> <!-- end .card-->
{% if readme %}
<div class="card">
<div class="card-header">
<strong>README{{readme_ext}}</strong>
</div>
<div class="card-block">
{{ readme | noJS | safe }}
</div>
</div>
{% endif %}
{% endblock %}
{% block jscripts %}
{{ super() }}
<script type="text/javascript"
src="{{ url_for('static', filename='vendor/highlight.js/highlight.pack.js') }}?version={{ g.version}}"></script>
<script type="text/javascript"
src="{{ url_for('static', filename='vendor/highlight.js/spec.js') }}?version={{ g.version}}"></script>
<script>hljs.initHighlightingOnLoad();</script>
<script type="text/javascript" nonce="{{ g.nonce }}">
function updateHighlight() {
var cls = "highlighted-line";
$('.' + cls).removeClass(cls)
if (location.hash !== '') {
var lines = location.hash.substr(2).split('-').map(function (x) { return parseInt(x, 10) });
for (var i = lines[lines.length - 1]; i >= lines[0]; i--) {
$('[data-line-number=' + i + ']').closest('tr').addClass(cls);
}
return lines;
}
return [];
}
$(document).ready(function () {
var lines = updateHighlight();
if (lines) {
var offset = $('[data-line-number=' + lines[0] + ']').offset().top;
$('html, body').animate({scrollTop: offset}, 200);
}
});
$(window).on('hashchange', updateHighlight);
var selected = [];
$("[data-line-number]").click(function (ev) {
var line = $(this).attr('data-line-number');
if (ev.shiftKey) {
selected = selected.slice(-1).concat(line);
} else {
selected = [line];
}
var hash = '_' + selected[0];
if (selected.length === 2) {
hash = '_' + Math.min(selected[0], selected[1]) + '-' + Math.max(selected[0], selected[1]);
}
window.location.hash = hash;
return false;
});
</script>
{% endblock %}