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

{% block title %}{{ select.capitalize() }} - {{ repo.name }}{% endblock %}
{% set tag = "home" %}

{% block repo %}
  <div class="row">
    {% if repo_obj and repo_obj.is_empty %}
      <div class="col-md-8">
        <div class="alert {% if category == 'error' %}alert-warning{% else %}alert-info{%endif%}" role="alert">
          <p>This repo is brand new!</p>
            {% if authenticated and repo_admin %}
              <p>If you already have a git repo:</p>
              <pre>git remote add origin {{ config.get('GIT_URL_SSH') }}{% if repo.parent %}forks/{% endif %}{{ repo.fullname }}.git
git push -u origin master</pre>

              <p>If you have not created your git repo yet:</p>
              <pre>git clone {{ config.get('GIT_URL_SSH') }}{% if repo.parent %}forks/{% endif %}{{ repo.fullname }}.git
cd {{ repo.name }}
touch README.rst
git add README.rst
git commit -m "Add README file"
git push -u origin master</pre>
            {% else %}
              <p>The Project Creator has not pushed any code yet</p>
            {% endif %}
        </div>
      </div>
    {% else %}
      {% if origin == 'view_commits' %}
      <h3>Commits <span class="label label-default"> {{number_of_commits}}</span></h3>
      <div class="m-b-1">
        Displaying {{number_of_commits}} commits in
        <span class="pr-toplabel">{%
            if repo.is_fork %}<span class="oi" data-glyph="fork"></span> {%
            else %}<span class="oi" data-glyph="document"></span> {%
            endif %}{{ repo.fullname }}</span>
        <span class="pr-toplabel">
          <span class="oi" data-glyph="random"> </span>
          {{branchname}}
        </span>
      </div>

      {% if diff_commits|count > 0 %}
      <div class="alert alert-info" role="alert">
        This branch contains <a href="#" id="diff_commits_link">{{
            diff_commits|count }} commits</a> not in {%
            if repo.is_fork %}the upstream project
              <span class="pr-toplabel">
                <span class="oi" data-glyph="document"></span>
                {{ repo.name }}
              </span> {%
            else %}the main branch{%
            endif %}
            <span class="pr-toplabel">
              <span class="oi" data-glyph="random"> </span>
              {{head}}
            </span>

        {% if diff_commits and authenticated and (repo.is_fork or repo.settings.get('pull_requests', True)) %}
        <div id="request_pull" class="pull-xs-right">
            <a class="btn btn-primary btn-sm" href="{{ url_for('new_request_pull',
        username=username, repo=repo.name,
        branch_to=head, branch_from=branchname or 'master') }}">
        {% if repo_admin %}Request pull{% else %}Compare{% endif %}
            </a>
        </div>
        {% endif %}
        <div id="diff_commits" class="list-group m-t-1" style="display:none;">
          {% for diff_commit_full in diff_commits_full %}
             <a href="{{ url_for('view_commit', username=username,
                        repo=repo.name, commitid=diff_commit_full.hex)
                }}" class="list-group-item">
              <h5>
                <strong>{{ diff_commit_full.message.split('\n')[0] }}</strong>
                <div class="pull-xs-right">
                  <span class="commitdate" title="{{ diff_commit_full.commit_time|format_ts }}">
                    {{ diff_commit_full.commit_time|humanize }}
                  </span>
                </div>
              </h5>
              {{ diff_commit_full.author | author2avatar(20) | safe }}
              {{ diff_commit_full.author.name }}
              <div class="pull-xs-right">
                <span class="label label-default">{{ diff_commit_full.hex|short }}</span>
              </div>
            </a>
          {% endfor %}
        </div>

      </div>
      {% endif %}

      <div class="list-group m-t-1">
        {% for commit in last_commits %}
          <a href="{{ url_for('view_commit', username=username, repo=repo.name, commitid=commit.hex) }}"
              class="list-group-item {%
                if diff_commits and commit.oid.hex in diff_commits %}p-l-3{%
                endif %}" style="position:relative;">
            {% if diff_commits and commit.oid.hex in diff_commits %}
              <div title="This commit is not in the main branch of this Repo"
                  style="position:absolute; left:0; top:0; padding:5px;
                         padding-top:20px; height:100%; background:#eee;
                         vertical-align:middle;">
                <span class="oi" data-glyph="arrow-thick-right"></span>
              </div>
            {% endif %}
            <h5>
              <strong>{{ commit.message.split('\n')[0] }}</strong>
              <div class="pull-xs-right">
                <span class="commitdate" title="{{ commit.commit_time|format_ts }}">
                  {{ commit.commit_time|humanize }}
                </span>
              </div>
            </h5>
            {{ commit.author | author2avatar(20) | safe }} {{ commit.author.name }}
            <div class="pull-xs-right">
              <span class="label label-default">{{ commit.hex|short }}</span>
            </div>
          </a>
        {% endfor %}
      </div>
    {% endif %}

      {% if total_page %}
        <nav class="text-center">
          <ul class="pagination">
            <li {% if page <= 1%} class="disabled" {% endif %}>
              <a href="{{ url_for('.%s' % origin, username=username,
                          repo=repo.name, branchname=branchname, page=page-1)
                }}" aria-label="Previous">
                <span aria-hidden="true">&laquo;</span>
                <span class="sr-only">Newer</span>
              </a>
            </li>
            <li class="active">page {{ page }} of {{total_page}}</li>
            <li {% if page >= total_page %}class="disabled"{%endif%}>
              <a href="{{ url_for('.%s' % origin, username=username,
                          repo=repo.name, branchname=branchname, page=page+1)
                }}" aria-label="Next">
                <span aria-hidden="true">&raquo;</span>
                <span class="sr-only">Older</span>
              </a>
            </li>
          </ul>
        </nav>
      {% endif %}
    {% endif %}

    {% if origin == 'view_repo' or origin == 'view_repo_branch' %}

      {% if readme %}
        <div class="col-md-8">
          <section class="readme">
            {% if safe %}
              {{ readme | noJS |safe }}
            {% else %}
              {{ readme | noJS }}
            {% endif %}
          </section>
        </div>
      {% endif %}

      {% if readme or (repo_obj and repo_obj.is_empty) %}
      <div class="col-md-4">
      {% else %}
      <div class="col-md-12">
      {% endif %}
        <div class="card">
          <div class="card-block">
            <h5><strong>Owners</strong></h5>
            <div class="m-b-2">
              <div>
                <a href="{{ url_for('view_user', username=repo.user.user)}}">
                  {{ repo.user.default_email | avatar(20) | safe }}
                  {{ repo.user.fullname }} ({{ repo.user.user }})  -  creator
                </a>
              </div>
              {% for user in repo.users %}
              <div>
                <a href="{{ url_for('view_user', username=user.user)}}">
                  {{ user.default_email | avatar(20) | safe }}
                  {{ user.fullname }} ({{ user.user }})
                </a>
              </div>
              {% endfor %}
              {% for group in repo.groups %}
              <div>
                <a href="{{ url_for('view_group', group=group.group_name)}}">
                  @{{ group.group_name }}
                </a>
              </div>
              {% endfor %}
            </div>
            <h5><strong>Branches</strong></h5>
            <div class="m-b-2">
              {% if head %}
              <div id="branch-{{ head }}" class="repoinfo-branchlistitem row">
                <div class="branch_name col-md-10">
                  {% if branchname == head %}
                  <span class="oi text-muted" data-glyph="random"
                    title="Default branch"></span>
                  <strong title="Currently viewing branch {{ head }}" data-toggle="tooltip">{{ head }}</strong>
                  {% else  %}
                  <span class="oi text-muted" data-glyph="random"
                    title="Default branch"></span>
                  <a class="" href="{{ url_for('view_repo_branch',
                    username=username, repo=repo.name, branchname=head) }}"
                    title="{{ head }}">
                    {{ head }}
                  </a>
                  {% endif %}
                </div>
                <div class="branch_del col-md-2">
                  <span class="oi text-muted" data-glyph="star"
                    title="Default branch"></span>
                </div>
              </div>
              {% endif %}

            {% for branch in branches if branch != head%}
              <div id="branch-{{ branch }}" class="repoinfo-branchlistitem row">
                <div class="branch_name col-md-8">
                  <span class="oi text-muted" data-glyph="random"></span>
                  {% if branchname != branch %}
                  <a class="" href="{{ url_for('view_repo_branch',
                    username=username, repo=repo.name, branchname=branch) }}"
                    title="{{ branch }}">
                    {{ branch }}
                  </a>
                  {% else %}
                  <strong title="Currently viewing branch {{branch}}" data-toggle="tooltip">{{ branch }}</strong>
                  {% endif %}

                </div>
                <div class="branch_del col-md-4">
                  {% if repo_admin and branch != head %}
                  <form id="delete_branch_form-{{ branch | replace('/', '_') }}" action="{{
                    url_for('.delete_branch',
                            username=username, repo=repo.name, branchname=branch)
                    }}" method="post" class="inline icon del_icon"
                    onsubmit="return confirm('Are you sure you want to remove the branch: {{ branch }}?\nThis cannot be un-done!');">
                    {{ form.csrf_token }}
                    <a title="Remove branch {{ branch }}" href="#"
                      onclick="$('#delete_branch_form-{{ branch | replace('/', '_') }}').submit();">
                      <span class="oi" data-glyph="trash"></span>
                    </a>
                  </form>
                  {% endif %}
                </div>
              </div>
              {% endfor %}
            </div>
            <h5><strong>Source GIT URLs</strong>{% if
              (authenticated and repo_admin) or
              (config['DOC_APP_URL'] and repo and
                      repo.settings.get('project_documentation', True))
              %}
                  <span class="pull-xs-right"><a data-toggle="collapse" href="#moregiturls"
                  aria-expanded="false" aria-controls="moregiturls"
                  id="more_gits">more</a></span>{%endif%}</h5>
            <div>
              <div class="form-group">
                <div class="input-group input-group-sm">
                  <div class="input-group-addon">SSH</div>
                  <input class="form-control" type="text" value="{{
                    config.get('GIT_URL_SSH') }}{{ repo.fullname }}.git" readonly>
                </div>
              </div>
              <div class="form-group">
                <div class="input-group input-group-sm">
                  <div class="input-group-addon">GIT</div>
                  <input class="form-control" type="text" value="{{
                    config.get('GIT_URL_GIT') }}{{ repo.fullname }}.git" readonly>
                </div>
              </div>
              <div class="collapse" id="moregiturls">
                {% if config['DOC_APP_URL']
                    and repo
                    and repo.settings.get('project_documentation', True) %}
                  <h5><strong>Docs GIT URLs</strong></h5>
                  {% if authenticated and repo_admin %}
                    <div class="form-group">
                      <div class="input-group input-group-sm">
                        <div class="input-group-addon">SSH</div>
                        <input class="form-control" type="text" value="{{
                          config.get('GIT_URL_SSH') }}docs/{{ repo.fullname }}.git" readonly>
                      </div>
                    </div>
                  {% endif %}
                  <div class="form-group">
                    <div class="input-group input-group-sm">
                      <div class="input-group-addon">GIT</div>
                      <input class="form-control" type="text" value="{{
                        config.get('GIT_URL_GIT') }}docs/{{ repo.fullname }}.git" readonly>
                    </div>
                  </div>
                {% endif %}
                {% if authenticated and repo_admin %}
                  {% if config.get('ENABLE_TICKETS', True)
                     and repo.settings.get('issue_tracker', True) %}
                    <h5><strong>Issues GIT URLs</strong></h5>
                    <div class="form-group">
                      <div class="input-group input-group-sm">
                        <div class="input-group-addon">SSH</div>
                        <input class="form-control" type="text" value="{{
                          config.get('GIT_URL_SSH') }}tickets/{{ repo.fullname }}.git" readonly>
                      </div>
                    </div>
                  {% endif %}
                  <h5><strong>Pull Requests GIT URLs</strong></h5>
                  <div class="form-group">
                    <div class="input-group input-group-sm">
                      <div class="input-group-addon">SSH</div>
                      <input class="form-control" type="text" value="{{
                        config.get('GIT_URL_SSH') }}requests/{{ repo.fullname }}.git" readonly>
                    </div>
                  </div>
                {% endif %}
              </div>
            </div>
          </div>
          <div class="repo_date" title="{{repo.date_created}}">
              created {{repo.date_created|humanize}}
          </div>
        </div>

        {% if last_commits %}
          <div class="card">
            <div class="card-header">
              <strong>Recent Commits in
                <span class="pr-toplabel">
                  <span class="oi" data-glyph="random"></span>
                  {{branchname}}
                </span>
              </strong>
            </div>
            <div class="card-block p-a-0">
              <div class="list-group list-group-flush">
                {% for commit in last_commits %}
                  <a href="{{
                      url_for('view_commit', username=username,
                      repo=repo.name, commitid=commit.hex) }}" class="list-group-item">
                    <div class="commitdate" title="{{ commit.commit_time|format_ts }}">
                      <small>
                        <strong>
                          {{ commit.author | author2avatar(20) | safe }}
                          {{ commit.author.name }}
                        </strong>
                        commited {{ commit.commit_time|humanize }}
                      </small>
                    </div>
                    <div><small>
                      {{ commit.message.split('\n')[0] }}
                      {% if diff_commits and commit.oid.hex in diff_commits %}
                        <span class="new_commit" title="Commit not in the main repo">*</span>
                      {% endif %}
                    </small></div>
                  </a>
                {% endfor %}
              </div>
              </div>
            </div>
          </div>
        {% endif %}
      </div>
  {% endif %}
    </div>


{% endblock %}

{% block jscripts %}
{{ super() }}
<script type="text/javascript">
$(document).ready(function() {
    $(".extra_gits").hide();
});

$(function() {
  $( "#more_gits" ).click(function() {
      if ($( "#more_gits" ).html() == 'more') {
        $( "#more_gits" ).html('less');
      } else {
        $( "#more_gits" ).html('more');
      }
  });

  {% if authenticated and repo_admin %}
  $.ajax({
    url: '{{ url_for("internal_ns.get_pull_request_ready_branch") }}' ,
    type: 'POST',
    data: {
      repo: "{{ repo.name }}",
      repouser: "{{ repo.user.user if repo.is_fork else '' }}",
      csrf_token: "{{ form.csrf_token.current_token }}",
    },
    dataType: 'json',
    success: function(res) {
      if (res.code == 'OK'){
        for (branch in res.message){
          var url = "{{ url_for(
            'new_request_pull',
            repo=repo.name,
            username=repo.user.user if repo.is_fork else None,
            branch_to=head or 'master',
            branch_from='') }}";
          html = '<div class="alert alert-info" role="alert"> \
                The branch ' + branch +' contains ' + res.message[branch].length
                +  ' commits not in the main branch \
                <span class="pr-toplabel"> \
                <span class="oi" data-glyph="random"> </span> \
                {{ head }}</span> \
                <div id="request_pull" class="col-md-2"> \
                <a class="btn btn-primary btn-sm" href="' + url + branch + '"> Request pull </a> \
                </div></div>';
          /*$($('.bodycontent').find('.row').children()[0]).before(html);*/
          {% if repo.is_fork %}
          html2 = ' \
                <a class="small label label-sm label-primary" data-toggle="tooltip" \
                href="' + url + branch + '"\
                 title="' + branch +' contains ' + res.message[branch].length+' \
                 commit not in the upstream project. Click to create new PR now.'+'"> New PR</a> \
                </div>';
          {% else %}
          html2 = ' \
                <a class="small label label-sm label-primary" data-toggle="tooltip" \
                href="' + url + branch + '"\
                 title="' + branch +' contains ' + res.message[branch].length+' \
                 commit not in the main branch. Click to create new PR now.'+'"> New PR</a> \
                </div>';
          {%endif%}
          $('#branch-'+branch+' .branch_del').prepend(html2);
          $('[data-toggle="tooltip"]').tooltip({placement : 'bottom'});
        }
      }
    }
  });
  {% endif %}
});
</script>

{% if origin == 'view_commits' %}
<script type="text/javascript">
  $(function(){
    $('#diff_commits_link').click(function(){
      $('#diff_commits').toggle();
    });
  });
</script>
{% endif %}

{% endblock %}