Blob Blame Raw
{% extends "repo_master.html" %}

{% block title %}Tree - {{
    repo.namespace + '/' if repo.namespace }}{{ repo.name }}{% endblock %}
{% set tag = "home" %}


{% block repo %}
  <div class="row m-b-1">
    <div class="col-sm-6">
    <h3>
      Files
    </h3>
    </div>

    <div class="col-sm-6">
      <div class="pull-xs-right">
      <div class="button-label button-label-default">
        {% if repo.is_fork %}
        <span class="oi" data-glyph="fork"></span>
        {{ repo.user.user }}/{{ repo.name }}
        {% else %}
        <span class="oi" data-glyph="document"></span> {{ repo.name }}
        {% endif %}

      </div>
      {% if branchname %}
        <div class="btn-group">
          <button type="button" class="btn btn-secondary btn-sm dropdown-toggle"
                  data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                  <span class="oi" data-glyph="random"> </span> {{ branchname }}
          </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">
          <li>
            <a href="{{ url_for('ui_ns.view_tree',
                repo=repo.name,
                username=username,
                namespace=repo.namespace,
                identifier=branchname)
          }}">
              <span class="oi" data-glyph="random">
              </span>&nbsp; {{ branchname }}
            </a>
          </li>
        {% for file in filename.split('/') %}
          {% set path = '/'.join(filename.split('/')[:loop.index]) %}
          {% 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="oi" data-glyph="folder"></span>&nbsp; {{ file }}</a>
          </li>
          {% elif file %}
          <li class="active">
            <span class="oi" data-glyph="{% if output_type == 'tree' %}folder{% else %}file{% endif %}">
            </span>&nbsp; {{ file }}
          </li>
          {% endif %}
        {% endfor %}
        </ol>
      </div>

{% if content is not none %}
  {% if output_type in ('file','binary','image','markup') %}
  <div class="card-block p-a-0">
        {% if content is not none %}
          {% if output_type in ('file','binary','image','markup') %}
            <div class="file-button-bar">
                {% 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')
                    and (
                        not g.authenticated
                        or (
                            not repo.is_fork
                            or (
                                g.authenticated
                                and repo.user.user != g.fas_user.username
                            )
                        )
                    )
                %}
                <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();">
                            {% if g.repo_forked %}
                            Edit in your fork
                            {% else %}
                            Fork and Edit
                            {% endif %}
                    </button>
                    {{ g.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_blame_file',
                    repo=repo.name,
                    username=username,
                    namespace=repo.namespace,
                    identifier=branchname,
                    filename=filename) | unicode }}" title="View git blame">Blame</a>

                <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>
          {% endif %}
        {% endif %}

    {% if output_type=='file' %}
        {% autoescape false %}
        {{ content | format_loc }}
        {% endautoescape %}
    {% elif output_type == 'markup' %}
        <div class="m-a-2">
        {% autoescape false %}
        {{ content | noJS | safe }}
        {% endautoescape %}
      </div>
    {% elif output_type == 'image' %}
        <img src="{{ url_for('ui_ns.view_raw_file',
                    repo=repo.name,
                    username=username,
                    namespace=repo.namespace,
                    identifier=branchname,
                    filename=filename | unicode) }}"/>
    {% elif output_type == 'binary' %}
        <p class="noresult">
          Binary files cannot be rendered.<br/>
          Please
          <a href="{{ url_for('ui_ns.view_raw_file',
                    repo=repo.name,
                    username=username,
                    namespace=repo.namespace,
                    identifier=branchname,
                    filename=filename | unicode) }}">view the raw version
          </a>
        </p>
    {% endif %}
  </div>
  {% else %}
      <div class="card-block p-a-0">
          <table class="table table-sm">
        <tbody>
          {% for entry in content %}
            <tr>
                <td class="pagure-table-icon">
                {% if entry.filemode == 16384 %}
                    <span class="oi text-muted" data-glyph="folder"></span>
                {% elif entry.filemode == 40960 %}
                    <span class="oi text-muted" data-glyph="link-broken"></span>
                {% elif entry.filemode == 57344 %}
                    <span class="oi text-muted" data-glyph="layers"></span>
                {% else %}
                    <span class="oi text-muted" data-glyph="file"></span>
                {% endif %}
            </td>
            <td class="pagure-table-filename table-expand-col">
                {% if entry.filemode == 16384 %}<strong>{% endif -%}
                <a href="{{ url_for(
                    'ui_ns.view_file',
                    repo=repo.name,
                    username=username,
                    namespace=repo.namespace,
                    identifier=branchname,
                    filename=filename | unicode + '/' +
                    entry.name | unicode if filename else entry.name) }}">
                   {{ entry.name | unicode }}
                </a>{% if entry.filemode == 16384 %}</strong>{% endif%}
            </td>
          {% endfor %}
        </tbody>
      </table>
      </div>
  {% endif %}
{% 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">
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 %}