<% # API my $api = gitprep_api; # Parameters my $user_id = param('user'); my $project_id = param('project'); my $op = param('op') || ''; my $page = param('page') || 1; # Git my $git = $self->app->git; # Delete my $errors; if ($op eq 'delete' && lc $self->req->method eq 'post') { # Forbbiden unless ($api->logined($user_id)) { $self->redirect_to('/'); return; } # Parameters my $branch = param('branch'); # Validator my $vc = app->vc; # Validation result my $validation = $vc->validation; # "branch" if (!(defined $branch && length $branch)) { $validation->add_failed(branch => 'Branch name is empty'); } if ($validation->is_valid) { # Delete branch eval { $git->delete_branch(app->rep_info($user_id, $project_id), $branch) }; if (my $e = $@) { app->log->error(url_with . ": $e"); $errors = ['Internal Error']; } else { $self->flash(message => "Branch $branch is deleted."); $self->redirect_to; return; } } else { $errors = $validation->messages } } # Default branch my $default_branch_name = app->manager->default_branch($user_id, $project_id); my $default_branch = $git->branch($self->app->rep_info($user_id, $project_id), $default_branch_name); # Branches my $branches = []; # Pagenation my $page_count = 20; my $skip = $page_count * ($page - 1); my $all_branches = $git->branches($self->app->rep_info($user_id, $project_id)); my $max = 0; my $all_count = 0; for my $branch (@$all_branches) { $branch->{status} = $git->branch_status( $self->app->rep_info($user_id, $project_id), $default_branch->{name}, $branch->{name} ); $max = $branch->{status}{ahead} if $max < $branch->{status}{ahead}; $max = $branch->{status}{behind} if $max < $branch->{status}{behind}; if ($branch->{status}{ahead} > 100) { $branch->{status}{ahead_bar} = 100; } else { $branch->{status}{ahead_bar} = $branch->{status}{ahead}; } if ($branch->{status}{behind} > 100) { $branch->{status}{behind_bar} = 100; } else { $branch->{status}{behind_bar} = $branch->{status}{behind}; } $max = 100 if $max > 100; if ($all_count >= $skip && $all_count < $skip + $page_count) { push @$branches, $branch; } $all_count++; } my $original_project_row_id = app->dbi->model('project')->select( 'original_project', where => {'user.id' => $user_id, 'project.id' => $project_id} )->value; my $original_project; if ($original_project_row_id) { $original_project = app->dbi->model('project')->select( [ {__MY__ => '*'}, {user => ['id']} ], where => {'project.row_id' => $original_project_row_id} )->one; } %> % layout 'common', title => "branches \x{30fb} $user_id/$project_id"; %= include '/include/header';
%= include '/include/errors', errors => $errors; %= include '/include/message', message => flash('message');

Branches

% if (@$branches) { % }
%= include '/include/footer';