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

{% block title %}{{
    repo.namespace + '/' if repo.namespace }}{{ repo.name }}{% endblock %}
{% set tag = "home" %}
{% if g.repo_watch_levels == ['issues', 'commits'] %}
    {% set watch_button_title = 'You are watching issues, PRs, and commits on this project' %}
    {% set watch_button_class = 'btn-primary' %}
{% elif g.repo_watch_levels == ['issues'] %}
    {% set watch_button_title = 'You are watching issues on this project' %}
    {% set watch_button_class = 'btn-info' %}
{% elif g.repo_watch_levels == ['commits'] %}
    {% set watch_button_title = 'You are watching commits on this project' %}
    {% set watch_button_class = 'btn-info' %}
{% else %}
    {% set watch_button_title = 'You are not watching this project' %}
    {% set watch_button_class = 'btn-secondary' %}
{% endif %}

{% block content %}
<div class="repo-header p-t-1">
  <div class="container">
    <header>
      <h2 class="repo-name m-b-0">
        {% if repo.private %}
          <span class="oi red-icon" data-glyph="lock-locked"
              title="Private project"></span>
        {% endif %}
        {% if repo.is_fork -%}
          <a href="{{ url_for(
            'ui_ns.view_user', username=repo.user.user)
            }}"><span class="oi" data-glyph="fork">
        </span>{{ repo.user.user }}/</a>
        {%- endif -%}
        {%- if repo.namespace -%}
            <a href="{{ url_for(
                'ui_ns.view_projects', namespace=repo.namespace, pattern='*')
            }}">{{ repo.namespace }}</a> /
        {%- endif %} <a href="{{ url_for('ui_ns.view_repo',
            repo=repo.name,
            username=username,
            namespace=repo.namespace)
          }}">{{ repo.name }}</a>
        {% if g.authenticated %}
        <div class="pull-xs-right">
          {% if repo.settings.get('issue_tracker', True)
                and config.get('ENABLE_TICKETS', True)%}
          <a href="{{ url_for('ui_ns.new_issue',
              repo=repo.name,
              username=username,
              namespace=repo.namespace) }}"
            class="btn btn-success btn-sm">New Issue</a>
          {% endif %}
          <div class="btn-group">
          {% if not g.repo_starred %}
            <form method="POST" name="star_project" id="star_project"
              action="{{ url_for(
              'ui_ns.star_project',
              repo=repo.name,
              username=username,
              namespace=repo.namespace,
              star=1)}}">
              {{ g.forkbuttonform.csrf_token }}
            </form>
              <button class="btn btn-sm btn-secondary"
              onclick="$('#star_project').submit();">
                <span class="oi" data-glyph="star"></span>Star</button>
                <a href="{{url_for(
                            'ui_ns.view_stargazers',
                            repo=repo.name,
                            username=repo.user.user if repo.is_fork else None,
                            namespace=repo.namespace,
                )}}" class="btn btn-sm btn-primary">{{ repo.stargazers|length }}</a>
          {% else %}
            <form method="POST" name="unstar_project" id="unstar_project"
              action="{{ url_for(
              'ui_ns.star_project',
              repo=repo.name,
              username=username,
              namespace=repo.namespace,
              star=0)}}">
              {{ g.forkbuttonform.csrf_token }}
            </form>
              <button class="btn btn-sm btn-secondary"
              onclick="$('#unstar_project').submit();">
                <span class="oi" data-glyph="star"></span>Unstar</button>
                <a href="{{url_for(
                            'ui_ns.view_stargazers',
                            repo=repo.name,
                            username=repo.user.user if repo.is_fork else None,
                            namespace=repo.namespace,
                )}}" class="btn btn-sm btn-primary">{{repo.stargazers|length}}</a>
          {% endif %}
    </div>

    <div class="btn-group">
          {% if not repo.is_fork %}
            {% if g.repo_forked %}
              <a href="{{ url_for(
                'ui_ns.view_repo',
                repo=repo.name,
                username=g.fas_user.username,
                namespace=repo.namespace) }}" class="btn btn-sm btn-secondary">

              <span class="oi" data-glyph="fork"></span> View Fork
              </a>
            {% else %}
            <form method="POST" name="fork_project" id="fork_project"
              action="{{ url_for(
                'ui_ns.fork_project',
                repo=repo.name,
                username=username,
                namespace=repo.namespace) }}">
              {{ g.forkbuttonform.csrf_token }}
            </form>
              <button class="btn btn-sm btn-secondary"
              onclick="$('#fork_project').submit();">
              <span class="oi" data-glyph="fork"></span>Fork</button>
            {% endif %}
          {% endif %}
            <button title="{{ watch_button_title }}" type="button"
                    class="btn btn-sm dropdown-toggle {{ watch_button_class }}"
                    data-toggle="dropdown" id="watch-button">
              <span class="oi" data-glyph="eye"></span>
            </button>
            <div class="dropdown-menu dropdown-menu-right watch-menu">
              <form method="POST" id="watch_project" name="watch_project"
                action="{{ url_for('ui_ns.watch_repo',
                  repo=repo.name,
                  user=repo.user.user if repo.is_fork else None,
                  namespace=repo.namespace,
                  watch=0) }}">
                <a class="dropdown-item" id="watch_issues_button">
                    Watch Issues and PRs
                </a>
                <a class="dropdown-item" id="watch_commits_button">
                    Watch Commits
                </a>
                <a class="dropdown-item" id="watch_issues_commits_button">
                    Watch Issues, PRs, and Commits
                </a>
                <a class="dropdown-item" id="unwatch_button">
                    Unwatch
                </a>
                <a class="dropdown-item" id="reset_button">
                    Reset Watch Status
                </a>
                {{ g.forkbuttonform.csrf_token }}
              </form>
            </div>
          {% endif %}
        </h2>
        {% if repo.is_fork and repo.parent %}
        <div class="m-t-0">
          Forked from
          <a href="{{ url_for(
            'ui_ns.view_repo',
            repo=repo.parent.name,
            username=repo.parent.user.user if repo.parent.is_fork else None,
            namespace=repo.parent.namespace)}}">
            {{ repo.parent.fullname }}
          </a>
        </div>
        {% elif repo.is_fork and not repo.parent %}
        <div class="m-t-0">
            Fork from a deleted repository
        </div>
        {% endif %}
        <div class="projectinfo m-t-1 m-b-1">
        {% if repo.description %}{{ repo.description | safe }}{% else %}-{% endif -%}
        {%- if repo.url %} &nbsp;| &nbsp;<a class="inline" href="{{ repo.url }}">{{ repo.url }}</a>{% endif %}
        </div>

    </header>
    <ul class="nav nav-tabs nav-small">
      <li class="nav-item">
        <a {%
          if select == 'overview' %}class="nav-link active" {%
          else %}class="nav-link" {%
          endif %}href="{{ url_for(
              'ui_ns.view_repo',
              repo=repo.name,
              username=username,
              namespace=repo.namespace) }}">
            <span class="oi hidden-md-up" data-glyph="home"></span>
            <span class="hidden-sm-down">Overview</span>
        </a>
      </li>
        {% if config['DOC_APP_URL'] and repo and repo.settings.get('project_documentation', True) %}
        <li class="nav-item" >
          <a  {%
            if select == 'docs' %}class="active nav-link" {%
            else %}class="nav-link" {%
            endif %}href="{{ url_for(
                'ui_ns.view_docs',
                repo=repo.name,
                username=username,
                namespace=repo.namespace) }}">
              <span class="oi hidden-md-up" data-glyph="book"></span>
              <span class="hidden-sm-down">Docs</span>
          </a>
        </li>
        {% endif %}

        <li class="nav-item{%
            if g.repo_obj and g.repo_obj.is_empty %} disabled{% endif %}">
          <a {%
            if select == 'commits' %}class="active nav-link" {%
            else %}class="nav-link" {%
            endif %}href="{{ url_for(
                'ui_ns.view_commits',
                repo=repo.name,
                username=username,
                namespace=repo.namespace,
                branchname=branchname) }}">
              <span class="oi hidden-md-up" data-glyph="spreadsheet">
              </span><span class="hidden-sm-down">Commits</span>
            </a>
        </li>

        <li class="nav-item{%
            if g.repo_obj and g.repo_obj.is_empty %} disabled{% endif %}">
          <a {%
            if select == 'tree' %}class="active nav-link" {%
            else %}class="nav-link"{%
            endif %} href="{{ url_for(
                'ui_ns.view_tree',
                repo=repo.name,
                username=username,
                namespace=repo.namespace,
                identifier=branchname) }}">
              <span class="oi hidden-md-up" data-glyph="file"></span>
              <span class="hidden-sm-down">Files</span>
          </a>
        </li>

        <li class="nav-item">
          <a {%
            if select == 'tags' %}class="active nav-link" {%
            else %}class="nav-link" {%
            endif %}href="{{ url_for(
                'ui_ns.view_tags',
                repo=repo.name,
                username=username,
                namespace=repo.namespace) }}">
              <span class="oi hidden-md-up" data-glyph="box"></span>
              <span class="hidden-sm-down">Releases</span>
          </a>
        </li>

        {% if config.get('ENABLE_TICKETS', True) and repo
              and repo.settings.get('issue_tracker', True) %}
        <li class="nav-item">
            <a {%
              if select == 'issues' %}class="active nav-link" {%
              else %}class="nav-link" {%
              endif %}href="{{ url_for(
                  'ui_ns.view_issues',
                  repo=repo.name,
                  username=username,
                  namespace=repo.namespace) }}">
                <span class="oi hidden-md-up" data-glyph="warning"></span>
                <span class="hidden-sm-down">Issues&nbsp;</span>
                <span class="label label-default label-pill hidden-sm-down">
                  {{ repo.open_tickets if g.repo_committer else repo.open_tickets_public }}
                </span>
            </a>
        </li>
        {% endif %}

        {% if repo and repo.settings.get('pull_requests', True) %}
        <li class="nav-item">
          <a {%
            if select == 'requests' %}class="active nav-link" {%
            else %}class="nav-link" {%
            endif %}href="{{ url_for(
                'ui_ns.request_pulls',
                repo=repo.name,
                username=username,
                namespace=repo.namespace) }}">
              <span class="oi hidden-md-up" data-glyph="task"></span>
              <span class="hidden-sm-down">Pull Requests&nbsp;</span>
              <span class="label label-default label-pill hidden-sm-down">
                {{ repo.open_requests }}
              </span>
          </a>
        </li>
        {% endif %}

        <li class="nav-item">
          <a {%
            if select == 'stats' %}class="active nav-link" {%
            else %}class="nav-link" {%
            endif %}href="{{ url_for(
                'ui_ns.view_stats',
                repo=repo.name,
                username=username,
                namespace=repo.namespace) }}">
              <span class="oi hidden-md-up" data-glyph="task"></span>
              <span class="hidden-sm-down">Stats&nbsp;</span>
          </a>
        </li>

      {% if g.authenticated %}
        {% if g.repo_admin %}
          <li class="nav-item pull-xs-right">
            <a title="Settings" {%
              if select == 'settings' %}class="active nav-link" {%
              else %}class="nav-link" {%
              endif %}href="{{ url_for(
                  'ui_ns.view_settings',
                  repo=repo.name,
                  username=username,
                  namespace=repo.namespace) }}">
                <span class="oi" data-glyph="cog"></span>
                <span class="hidden-sm-down">Settings</span>
            </a>
          </li>
        {% endif %}
      {% endif %}
      {% if endpoint == 'view_docs' %}
      <li class="nav-item pull-xs-right">
        <a class="nav-link" href="{{ config['DOC_APP_URL'] + url_for(
            'ui_ns.view_repo',
            repo=repo.namespace + '.' + repo.name if repo.namespace else repo.name,
            username=username,
            filename=filename)
          }}" target="_blank" title="Open to a new tab" rel="noopener noreferrer">
          <span class="oi" data-glyph="external-link"></span>
        </a>
      </li>
      {% endif %}

    </ul>
  </div>
</div>

<div class="container p-t-3">
    {% if repo.read_only %}
    <div class="container p-t-2">
        <div class="alert alert-danger alert-dismissible" role="alert">
          <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
            <span class="sr-only">Close</span>
          </button>
          <span class="oi red-icon" data-glyph="file"
              title="Read Only"></span>
          The permissions on this repository are being updated. This may take a while.
          During this time, you or some of the project's contributors may not be able
          to push to this repository.
        </div>
    </div>
    {% endif %}
    {% if authenticated and repo.settings.get('pull_request_access_only') %}
    <div class="container p-t-2">
        <div class="alert alert-info alert-dismissible" role="alert">
          <button type="button" class="close" data-dismiss="info" aria-label="Close">
            <span aria-hidden="true">&times;</span>
            <span class="sr-only">Close</span>
          </button>
          <span class="oi blue-icon" data-glyph="file" title="PR Only"></span>
          This project does not support direct push to its git repo, all changes
          must be done via pull-requests from forks.
        </div>
    </div>
    {% endif %}
{% block repo %}
{% endblock %}
</div>
{% endblock %}

{% block jscripts %}
{{ super() }}
<script type="text/javascript">
$(document).ready(function() {
    {% if g.repo_watch_levels %}
        var currentWatchStatusButton = $('#watch_{{ g.repo_watch_levels | join('_') }}_button');
    {% else %}
        var currentWatchStatusButton = $('#unwatch_button');
    {% endif %}
    currentWatchStatusButton.prepend('<span class="oi" data-glyph="circle-check" style="padding-right:0.5em"></span>');
    $('.watch-menu a').not(currentWatchStatusButton).css('padding-left', '2.85em');

    $(".watch-menu a").click(function(){
        var selectedValue = $(this).attr('id');
        var watchProjectForm = $("#watch_project");
        var action = watchProjectForm.attr('action');

        if (selectedValue === "watch_issues_button") {
            action = action.replace('/settings/0', '/settings/1');
        } else if (selectedValue === "watch_commits_button") {
            action = action.replace('/settings/0', '/settings/2');
        } else if (selectedValue === "watch_issues_commits_button") {
            action = action.replace('/settings/0', '/settings/3');
        } else if (selectedValue === "reset_button") {
            action = action.replace('/settings/0', '/settings/-1');
        }

        watchProjectForm.attr('action', action);
        watchProjectForm.submit();
    });
});
</script>
{% endblock %}