gitprep / templates / user.html.ep /
23a14c6 7 years ago
2 contributor
87 lines | 2.932kb
<%
  # 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_id = param('user');
  my $user = app->dbi->model('user')->select(
    where => {id => $user_id, admin => 0}
  )->one;
  
  # Projects
  unless (app->manager->exists_user($user_id)) {
    $self->reply->not_found;
    return;
  }
  my $projects = app->manager->projects($user_id);
  my $reps = [];
  for my $project (@$projects) {
    my $rep = app->git->repository(app->rep_info($user_id, $project->{id})) || {none => 1};
    $rep->{id} = $project->{id};
    $rep->{private} = $project->{private};
    $rep->{age} //= 0;
    push @$reps, $rep;
  }
%>

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

  <div class="container">
    %= include '/include/message', message => flash('message');
    
    <div class="repositories-container">
      <div class="repositories-left">
        <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_id, $rep->{id})) {
              <li>
                % my $project_id = $rep->{id};
                <div class="repositories-name">
                  <a href="<%= url_for("/$user_id/$project_id") %>">
                    <%= $rep->{id} %>
                  </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_id/$rep->{id}/settings" %>" class="btn btn-mini">Settings</a>
                  % } else {
                    <%= $age ? "last updated $age" : 'new repository' %>
                  % }
                </div>
              </li>
            % }
          % }
        </ul>
      </div>
      <div class="repositories-right">
        <h2 class="topic1">Profile</h2>
        <div class="repositories-user-name">
          % if (defined $user->{name} && length $user->{name}) {
            <%= $user->{name} %>
          % } else {
            No Name
          % }
        </div>
        <div class="repositories-user-id"><%= $user->{id} %></div>
        <div class="repositories-user-mail"><i class="icon icon-envelope"></i> <a href="mailto:<%= $user->{email} %>"><%= $user->{email} %></a></div>
      </div>
    </div>
  </div>
  %= include '/include/footer';