gitprep / templates / pulls.html.ep /
b51214a 7 years ago
1 contributor
105 lines | 3.637kb
<%
  # API
  my $api = gitprep_api;

  # Parameters
  my $user_id = param('user');
  my $project_id = param('project');
  
  my $is = param('is');
  
  my $open = $is eq 'closed' ? 0 : 1;
  
  # Git
  my $git = $self->app->git;
  
  my $project_row_id = $api->get_project_row_id($user_id, $project_id);
  
  # Issues which have pull request
  my $issue_where = [
    ['and', ':issue.open{=}', ':pull_request{<>}', ':project{=}'],
    {'issue.open' => $open, pull_request => 0, project => $project_row_id}
  ];
  
  my $issues = app->dbi->model('issue')->select(
    [
      {__MY__ => '*'},
      {open_user => ['id']},
      {pull_request => ['target_branch']}
    ],
    where => $issue_where
  )->all;
  
  # Open count
  my $open_count = $api->get_open_pull_request_count($user_id, $project_id);
  
  # Close count
  my $close_count = $api->get_close_pull_request_count($user_id, $project_id);
  
  my $default_branch = app->manager->default_branch($user_id, $project_id);
  
  # Original projcet
  my $original_project = app->manager->original_project($user_id, $project_id);
%>

% layout 'common', title => "Pull Requests Tags \x{30fb} $user_id/$project_id";
  
  %= include '/include/header';
  
  <div class="container">
    % if ($api->logined) {
      <div class="pulls-button-container">
        % if ($original_project) {
          <a href="<%= url_for("/$original_project->{'user.id'}/$original_project->{id}/compare/$original_project->{default_branch}...$user_id:$default_branch") %>" class="btn btn-green btn-new">New pull request</a>
        % } else {
          <a href="<%= url_for("/$user_id/$project_id/compare") %>" class="btn btn-green btn-new">New pull request</a>
        % }
      </div>
    % }
    <div class="pulls">
      <div class="pulls-header">
        % if ($open) {
          <b><%= $open_count %> Open</b>
          <a href="<%= url_with->query([is => 'closed']) %>" style="margin-left:5px;color:#767676"><%= "\x{2714}" %><%= $close_count %> Closed</a>
        % } else {
          <a  style="margin-left:5px;color:#767676" href="<%= url_with->query([is => undef]) %>"><%= $open_count %> Open</a>
          <b>
            <span style="margin-left:5px;color:#767676"><%= "\x{2714}" %><%= $close_count %> Closed</span>
          </b>
        % }
      </div>
      <div class="pulls-body">
        % if (@$issues) {
          <ul>
            % for my $issue (@$issues) {
              <%
                my $target_branch = $issue->{'pull_request.target_branch'};
                my $commit = app->git->get_commit(app->rep_info($user_id, $project_id), $target_branch);
                my $open_time = $issue->{open_time};
                my $open_time_age = Time::Moment->now->epoch - $open_time;
                my $open_time_age_string = $self->app->git->_age_string($open_time_age);
              %>
              <li>
                <div class="pulls-title">
                  <a href="<%= "/$user_id/$project_id/pull/$issue->{number}" %>">
                    <b><%= $issue->{title} %></b>
                  </a>
                </div>
                <div class="pulls-description">
                  #<%= $issue->{number} %> <%= $issue->{open} ? 'opened' : 'closed' %>
                  <%= $open_time_age_string %>
                  by <%= $issue->{'open_user.id'} %>
                </div>
              </li>
            % }
          </ul>
        % } else {
          <div class="pulls-no-request">
            <div style="font-size:18px"><b>There aren’t any open pull requests.</b></div>
          </div>
        % }
      </div>
    </div>
  </div>
  
  %= include '/include/footer';