<?php
# ---------------------------------------------------------------------
# truc is a tool for requirement and use case tracking
# Copyright (C) 2006 ASDIS - http://sf.net/projects/truc
#
# (rth) Initial truc version based on rth
#       Copyright (C) 2005 George Holbrook - rth@lists.sourceforge.net
#
# This program is distributed under the terms and conditions of the GPL
# See the README and LICENSE files for details
#----------------------------------------------------------------------

include_once"./api/include_api.php";
auth_authenticate_user();

# Declare variables
$delete_successful = false;

session_set_properties( "release", $_GET );

$project_properties 	= session_get_project_properties();
$project_name 			= $project_properties['project_name'];
$project_id 			= $project_properties['project_id'];
$page 					= basename(__FILE__);
$user_properties		= session_get_user_properties();
$user_id				= $user_properties['user_id'];
$username				= $user_properties['username'];


if( !isset( $_POST['confirm'] ) ) {
	html_window_title();
	html_print_body();
	html_page_title($project_name ." - ". lang_get('delete_page') );
	html_page_header( $db, $project_name );
	html_print_menu();

	print"<br>\n";

	# User came from a link, now check if all post data is there
	if( isset( $_POST['r_page'] ) && isset( $_POST['f'] ) && isset( $_POST['id'] ) && isset( $_POST['msg'] ) ) {
		print"<div align=center>\n";
		print"<table class=width40>\n";
		print"<tr>\n";
		print"<td>\n";
		print"<form name='delete' action=$page method='post'>\n";
		print"<input type='hidden' name='confirm_f' value='".$_POST['f']."'>\n";
		print"<input type='hidden' name='confirm_id' value='".$_POST['id']."'>\n";
		print"<input type='hidden' name='confirm_r_page' value='".$_POST['r_page']."'>\n";
		print"<input type='hidden' name='confirm_msg' value='".$_POST['msg']."'>\n";
		# For removing users from projects
		if( isset( $_POST['project_id'] ) && $_POST['project_id'] != '' ) {
			print"<input type='hidden' name='confirm_project_id' value='".$_POST['project_id']."'>\n";
		}
		print"<table class=inner rules='none' border='0'>\n";
		print"<tr>\n";
		print"<td colspan=2>&nbsp;</td>\n";
		print"</tr>\n";
		print"<tr>\n";
		print"<td colspan=2 class=form-lbl-c>".util_get_delete_msg( $_POST['msg'] )."</td>\n";
		print"</tr>\n";
		print"<tr>\n";
		print"<td colspan=2>&nbsp;</td>\n";
		print"</tr>\n";
		print"<tr>\n";
		print"<td class='center'>&nbsp;&nbsp;&nbsp;&nbsp;<input type='submit' name='confirm' value='". lang_get('yes') ."'></td>\n";
		print"<td class='left'><input type='submit' name='confirm' value='". lang_get('no') ."'></td>\n";
		print"</tr>\n";
		print"</table>\n";
		print"</form>\n";
		print"</td>\n";
		print"</tr>\n";
		print"</table>\n";
		print"</div>\n";
	# Not all get data is set
	} else {
		print"<div class='error'>".ERROR_NO_DATA."</div>\n";
	}
	html_print_footer();
# User submitted the form, check which option was selected
} elseif( $_POST['confirm'] == lang_get('no') ) {
	# User does not want to delete record
	html_redirect( $_POST['confirm_r_page'] );
} elseif( $_POST['confirm'] == 'Yes' ) {
	switch ( $_POST['confirm_f'] ) {
	case "delete_release":
		admin_release_delete( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_build":
		admin_build_delete( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_testset":
		admin_testset_delete( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_user_from_project":
		project_remove_user( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_area_tested_from_project":
		project_remove_area_tested( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_machine_from_project":
		project_remove_machine( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_testtype_from_project":
		project_remove_testtype( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_man_doc_type_from_project":
		project_remove_man_doc_type( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_req_doc_type_from_project":
		project_remove_req_doc_type( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_environment_from_project":
		project_remove_environment( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_req_area_covered_from_project":
		project_remove_req_area_covered( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_req_functionality_from_project":
		project_remove_req_functionality( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_test_step":
		test_delete_test_step( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_project":
		project_delete( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_user":
		user_delete( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_requirement":

	        if (requirement_locked($_POST['confirm_project_id'],$_POST['confirm_id'],$username)) {
                  $delete_successful = false;
                  $errormessage=error_report_msg(CAN_NOT_MODIFY_REQUIREMENT_LOCKED,requirement_locked_by($_POST['confirm_project_id'],$_POST['confirm_id']));
                  break;
                }
		############################################################################
		# EMAIL NOTIFICATION
		############################################################################
		$recipients		= requirement_get_notify_users($_POST['confirm_project_id'], $_POST['confirm_id']);
		requirement_email($_POST['confirm_project_id'], $_POST['confirm_id'], $recipients, $action="delete");
		############################################################################
		############################################################################
		requirement_delete( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_test":
                if (usecase_locked($project_id,$_POST['confirm_id'],$username)) {
                   html_print_operation_failed( 'usecase_edit_page',error_report_msg(CAN_NOT_MODIFY_USECASE_LOCKED,usecase_locked_by($project_id,$_POST['confirm_id'])), "test_detail_page.php?test_id=".$_POST['confirm_id']);
                   exit;
                }

		test_delete( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_news_post":
		news_delete( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_bug_category_from_project":
		project_remove_bug_category( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "remove_bug_component_from_project":
		project_remove_bug_component( $_POST['confirm_project_id'], $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_bug":
		bug_delete( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_bugnote":
		bug_delete_bugnote( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_bug_assoc":
		bug_delete_bug_assoc( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_testplan":
		testset_delete_test_plan( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_uploaded_testrun_document":
		file_delete_test_run_doc( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	case "delete_screen":
		test_delete_screen( $_POST['confirm_id'] );
		$delete_successful = true;
		break;
	}

	/*if( $delete_successful ) {
		print"<div class=operation-successful>Delete Successful</div>\n";
	} else {
		print"<div class=operation-successful>Delete Unsuccessful</div>\n";
	}*/

        if ($delete_successful)
              	html_print_operation_successful( "delete_page", $_POST['confirm_r_page'] );
	   else html_print_operation_failed ("delete_page",$errormessage, $_POST['confirm_r_page']) ;
}

?>