gitprep / templates / user.html.ep /
36025d0 8 years ago
2 contributor
67 lines | 2.023kb
<%
  # API
  my $api = gitprep_api;
  
  # Redirect for project delete
  if (my $deleted_project = param('deleted_project')) {
    flash('deleted_project', $deleted_project);
    $self->redirect_to('current');
    return;
  }
  
  my $user = param('user');
  
  # Projects
  unless (app->manager->exists_user($user)) {
    $self->reply->not_found;
    return;
  }
  my $projects = app->manager->projects($user);
  my $reps = [];
  for my $project (@$projects) {
    my $rep = app->git->repository($user, $project->{name}) || {none => 1};
    $rep->{name} = $project->{name};
    $rep->{private} = $project->{private};
    push @$reps, $rep;
  }
%>

% layout 'common', title => $user;
  %= include '/include/header', title => 'Repositories';

  <div class="container">
    %= include '/include/message', message => flash('message');

    <div class="topic1">Repositories</div>
    
    <ul class="repositories">
      % for my $rep (sort { $a->{age} <=> $b->{age} } @$reps) {
        % if (!$rep->{private} || $api->can_access_private_project($user, $rep->{name})) {
          <li>
            % my $pname = $rep->{name};
            <div class="repositories-name">
              <a href="<%= url_for("/$user/$pname") %>">
                <%= $rep->{name} %>
              </a>
              % if ($rep->{private}) {
                <i class="icon icon-lock"></i>
              % }
            </div>
            <div class="repositories-description">
              <%= $rep->{description} %>
            </div>
            <div class="repositories-age">
              % my $age = $rep->{age_string};
              % if ($rep->{none}) {
                <span style="color:red">Repository not exists</span>
                <a href="<%= "/$user/$rep->{name}/settings" %>" class="btn btn-mini">Settings</a>
              % } else {
                <%= $age ? "last updated $age" : 'new repository' %>
              % }
            </div>
          </li>
        % }
      % }
    </ul>
  </div>
  %= include '/include/footer';