Rev 1295 | Blame | Compare with Previous | Last modification | View Log | RSS feed
################################################################################ Codestriker: Copyright (c) 2001, 2002 David Sitsky. All rights reserved.# sits@users.sourceforge.net## This program is free software; you can redistribute it and modify it under# the terms of the GPL.# Action object for displaying a list of projects.package Codestriker::Action::ListProjects;use strict;use Codestriker;use Codestriker::Http::Template;use Codestriker::Model::Project;# List the projects in the system.sub process($$$) {my ($type, $http_input, $http_response) = @_;# Check if this operation is allowed.if (Codestriker->projects_disabled()) {$http_response->error("This function has been disabled");}my $query = $http_response->get_query();my $feedback = $http_input->get('feedback');# Retrieve the project details.my @projects = Codestriker::Model::Project->list();# Display the data, with each prject title linked to edit project page.$http_response->generate_header(topic_title=>"Project List",reload=>0, cache=>0);# Create the hash for the template variables.my $vars = {};$vars->{'feedback'} = $feedback;# Obtain a new URL builder object.my $url_builder = Codestriker::Http::UrlBuilder->new($query);# Go through all of the projects, and construct an edit_project URL.foreach my $project (@projects) {$project->{edit_url} = $url_builder->edit_project_url($project->{id});$project->{num_open_topics} =Codestriker::Model::Project->num_open_topics($project->{id});$project->{open_topic_list_url} =$url_builder->list_topics_url('', '', '', '', '', '', '', '', '','', [0], [$project->{id}], '');$project->{num_topics} =Codestriker::Model::Project->num_topics($project->{id});$project->{topic_list_url} =$url_builder->list_topics_url('', '', '', '', '', '', '', '', '','', undef, [$project->{id}], '');}$vars->{'projects'} = \@projects;$vars->{'create_project_url'} = $url_builder->create_project_url();# Send the data to the template for rendering.my $template = Codestriker::Http::Template->new("listprojects");$template->process($vars);$http_response->generate_footer();}1;