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 handling the submission of editing a project.package Codestriker::Action::SubmitEditProject;use strict;use Codestriker;use Codestriker::Model::Project;use Codestriker::Action::ListProjects;use Codestriker::Action::EditProject;# If the input is valid, update the appropriate project into the database.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 $project_state = $http_input->get('project_state');# Check that the state parameter is valid.my $found = 0;foreach my $state (@Codestriker::project_states) {if ($project_state eq $state) {$found = 1;last;}}if (!$found) {$http_response->error("Invalid project state: $project_state");}# Check if this action is allowed.if ($project_state eq "Deleted") {$http_response->error("This function has been disabled");}# Check that the appropriate fields have been filled in.my $id = $http_input->get('projectid');my $name = $http_input->get('project_name');my $description = $http_input->get('project_description');my $version = $http_input->get('version');my $feedback = "";if ($name eq "") {$feedback .= "No project name was entered.\n";}if ($description eq "") {$feedback .= "No project description was entered.\n";}# Try to update the project in the model.if ($feedback eq "") {my $rc;if ($project_state eq "Deleted"){$rc =Codestriker::Model::Project->delete($id, $version);}else{$rc =Codestriker::Model::Project->update($id, $name, $description,$version, $project_state);}if ($rc == $Codestriker::INVALID_PROJECT) {$feedback .="Project with name \"$name\" doesn't exist.\n";} elsif ($rc == $Codestriker::STALE_VERSION) {$feedback .="Project was modified by another user.\n";}}# If there was a problem, direct control back to the edit project# screen, otherwise go to the project list screen.if ($feedback ne "") {$http_input->{feedback} = $feedback;} else {$http_input->{feedback} = "Project updated.\n";}if ($project_state ne "Deleted"){Codestriker::Action::EditProject->process($http_input,$http_response);}else{Codestriker::Action::ListProjects->process($http_input,$http_response);}}1;