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

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

{% block header %}
    <meta name="go-import" content="{{ config.get('APP_URL', '').split('://', 1)[1] }}{{ repo.fullname }} git {{ config.get('GIT_URL_GIT') }}{{ repo.fullname }}.git">
{% endblock %}

{% block repo %}
  <div class="row">
    {% if g.repo_obj and g.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 g.authenticated and g.repo_committer %}
              <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 %}
        <div class="col-md-8">
          {% if readme %}
            <section class="readme">
              {{ readme | noJS | safe }}
            </section>
            {% else %}
            <section class="no-readme">
              <div class="card">
                <div class="card-header text-center text-muted pt-2 pb-2">
                  The {{repo.name}} project's README file is empty or unavailable.
                </div>
              </div>
            </section>
          {% endif %}
        </div>
    {% endif %}
      <div class="col-md-4">
        <div class="card">
          <div class="card-block">
              <h5><strong>Source GIT URLs</strong>{% if
                (authenticated and g.repo_committer) 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>
                {% if g.authenticated and g.repo_committer %}
                <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="{{
                      git_url_ssh }}{{ 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') }}{{ 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 g.authenticated and g.repo_committer %}
                      <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="{{
                            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 g.authenticated and g.repo_committer %}
                    {% 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="{{
                            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="{{
                          git_url_ssh }}requests/{{ repo.fullname }}.git" readonly>
                      </div>
                    </div>
                  {% endif %}
                </div>
              </div>
            </div>
        </div>
        <div class="card mb-3">
          <div class="card-body">
            <h5><strong>Contributors</strong></h5>
            <div class="mb-4">
              <div>
                <a href="{{ url_for('ui_ns.view_user', username=repo.user.user)}}">
                  {{ repo.user.default_email | avatar(20) | safe }}
                  {{ repo.user.fullname }} ({{ repo.user.user }})
                </a>
                -  main admin
              </div>
              {% for access in repo.contributors %}
                {% for user in repo.contributors[access] %}
                  <div>
                    <a href="{{ url_for('ui_ns.view_user', username=user.user)}}">
                      {{ user.default_email | avatar(20) | safe }}
                      {{ user.fullname }} ({{ user.user }})
                    </a>
                    - {{ access }}
                  </div>
                {% endfor %}
              {% endfor %}
              {% for access in repo.contributor_groups %}
                {% for group in repo.contributor_groups[access] %}
                  <div>
                    <a href="{{ url_for('ui_ns.view_group', group=group.group_name)}}">
                      @{{ group.group_name }}
                    </a>
                    - {{ access }}
                  </div>
                {% endfor %}
              {% endfor %}
            </div>
            <h5><strong>Branches</strong></h5>
            <div class="mb-4">
              {% if head %}
              <div id="branch-{{ head }}" class="repoinfo-branchlistitem row">
                <div class="branch_name col-md-8">
                  {% 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 href="{{ url_for('ui_ns.view_repo_branch',
                    repo=repo.name,
                    username=username,
                    namespace=repo.namespace,
                    branchname=head) }}"
                    title="{{ head }}" data-toggle="tooltip">
                    {{ head }}
                  </a>
                  {% endif %}
                </div>
                <div class="branch_del col-md-4">
                  <span class="oi text-muted" data-glyph="star"
                    title="Default branch"></span>
                </div>
              </div>
              {% endif %}

            {% for branch in g.branches if branch != head %}
              <div id="branch-{{ branch | replace('/', '__')
               }}" 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('ui_ns.view_repo_branch',
                    repo=repo.name,
                    username=username,
                    namespace=repo.namespace,
                    branchname=branch) }}"
                    title="{{ branch }}" data-toggle="tooltip">{{ branch }}
                  </a>
                  {% else %}
                  <strong title="Currently viewing branch {{branch}}" data-toggle="tooltip">{{ branch }}</strong>
                  {% endif %}

                </div>
                <div class="branch_del col-md-4">
                  {% if g.repo_committer and branch != head and config.get('ALLOW_DELETE_BRANCH', True) %}
                  <form id="delete_branch_form-{{
                    branch | replace('/', '__') | replace('+', '___')
                    }}" action="{{
                    url_for('ui_ns.delete_branch',
                            repo=repo.name,
                            username=username,
                            namespace=repo.namespace,
                            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('/', '__') | replace('.', '\\\\.')
                        | replace('+', '___')
                        }}').submit();">
                      <span class="oi" data-glyph="trash"></span>
                    </a>
                  </form>
                  {% endif %}
                </div>
              </div>
              {% endfor %}
            </div>
            {% if head %}
            <div class="mb-1">
                <a class="btn btn-secondary btn-xs btn-block"
                   href="{{ url_for('ui_ns.new_request_pull',
                    repo=repo.name,
                    username=username,
                    namespace=repo.namespace,
                    branch_to=head,
                    branch_from=branchname or 'master') }}">Open Pull-Request
                </a>
            </div>
            {% endif %}
          </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-body p-0">
              <div class="list-group list-group-flush">
                {% for commit in last_commits %}
                  <a href="{{
                      url_for('ui_ns.view_commit',
                      repo=repo.name,
                      username=username,
                      namespace=repo.namespace,
                      commitid=commit.hex) }}" class="list-group-item list-group-item-action">
                    <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] }}
                    </small></div>
                  </a>
                {% endfor %}
              </div>
              </div>
            </div>
        {% endif %}
      </div>
    </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 g.authenticated and g.repo_committer %}
  $.ajax({
    url: '{{ url_for("internal_ns.get_pull_request_ready_branch") }}' ,
    type: 'POST',
    data: {
      namespace: "{{ repo.namespace if repo.namespace }}",
      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.new_branch){
          var url = "{{ url_for(
            'ui_ns.new_request_pull',
            repo=repo.name,
            username=repo.user.user if repo.is_fork else None,
            namespace=repo.namespace,
            branch_to=head or 'master',
            branch_from='') }}";
          html = '<div class="alert alert-info" role="alert"> \
                The branch ' + branch +' contains '
                + res.message.new_branch[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 + '"> Create pull request </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.new_branch[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.new_branch[branch].length+' \
                 commit not in the main branch. Click to create new PR now.'+'"> New PR</a> \
                </div>';
          {%endif%}
          var _b = branch.replace(/\./g, '\\.').replace('/', '__').replace('\+', '\\+');
          $('#branch-' + _b + ' .branch_del').prepend(html2);
          $('[data-toggle="tooltip"]').tooltip({placement : 'bottom'});
        }
        for (branch in res.message.branch_w_pr){
          var html = ' \
              <a class="small label label-sm label-success" data-toggle="tooltip" '
               + 'href="{{ request.url_root }}' + res.message.branch_w_pr[branch]
               + '"title="' + branch +' is already in an opened pull-request">'
               + 'PR#' + res.message.branch_w_pr[branch].split('/').slice(-1)[0]  + ' </a> \
              </div>';
          $('#branch-' + branch.replace(/\./g, '\\.').replace('/', '__')
            + ' .branch_del').prepend(html);
          $('[data-toggle="tooltip"]').tooltip({placement : 'bottom'});
        }
      }
    }
  });
  {% endif %}
});
</script>
{% endblock %}