All pastes #548880 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-07 21:55 UTC
rendered paste body
lass Project extends Controller {
	
	var $left_menu = array();
	var $top_menu = array();
	var $extra_info = array();
	
	function Project()
	{	
		parent::Controller();
		if (!$this->session->userdata('loggedin'))
			redirect('user/login');
	
		$this->top_menu = array('create' => 'Create New Project', 'index' => 'Search For A Project');
		
		$this->load->model('projectmodel', '', TRUE);
		$this->load->model('clientmodel', '', TRUE);
		$this->load->model('usermodel', '', TRUE);
		$this->load->model('project_typemodel', '', TRUE);
		$this->load->model('operation_typemodel', '', TRUE);
		$this->load->model('ticketmodel', '', TRUE);
		
		$this->extra_info = array(($this->session->userdata('loggedin')) ? "You are logged in as " . $this->session->userdata('first_name') . " " . $this->session->userdata('last_name') : "");
		
	}
	
	function index()
	{
		$data = array(	"view" 			=> "project/index",
						"render_header" => true,
						"render_footer" => true,
						"header" 		=> "header",
						"project_types" => $this->project_typemodel->get_type_list(),
						"left_menu" 	=> $this->left_menu,
						"top_menu" 		=> $this->top_menu,
						"extra_info"	=> $this->extra_info,
						"title" 		=> "IM Project Management"
						);
		$this->load->view('layout', $data);
	}
	
	function create()
	{
		$this->load->library("forge");
		$conf["action"] = "project/create";
		$conf["form_name"] = "Create New Project";
		
		$this->forge->initialize($conf);
				
		$default = array("rules" => "trim|required[4,24]");

		$this->forge->add("name", 				"text",		$default);
		$this->forge->add("client", 			"dropdown", array('options' => $this->clientmodel->get_client_list()));
		$this->forge->add("project_manager",	"dropdown",	array('options' => $this->usermodel->get_user_list()));
		$this->forge->add("type", 				"dropdown",	array('options' =>$this->project_typemodel->get_type_list()));
		$this->forge->add("create",				"submit",	array('value' => 'Create Project'));
		
		
		if ($post = $this->forge->post_data()) 
		{
			if ($id = $this->projectmodel->create_project($post))
				redirect('project/view/' . $id);
			else
				die('an error occured');
		}
		else
		{
			$data = array(	"view" 			=> "project/create",
							"render_header" => true,
							"render_footer" => true,
							"header" 		=> "header",
							"left_menu" 	=> $this->left_menu,
							"top_menu" 		=> $this->top_menu,
							"extra_info"	=> $this->extra_info,
							"title" 		=> "IM Project Management :: Create New Project"
							);
			$this->load->view('layout', $data);
		}
	}
	
	function view()
	{
		$id = $this->uri->segment(3);
		if ($project = $this->projectmodel->get_project($id))
		{
			$project_types = $this->project_typemodel->get_abbreviation_list();
			$this->extra_info[] = " | Viewing <strong>" . $project_types[$project->type] . $project->project_number . ' - ' . $project->name . "</strong>";
			$this->top_menu['create_ticket/' . $project->id] = 'Create Ticket';
			$this->top_menu['view_active_tickets/' . $project->id] = 'View Active Tickets';
			$this->top_menu['view_closed_tickets/' . $project->id] = 'View Closed Tickets';
			
			$data = array(	"view" 			=> "project/view",
							"render_header" => true,
							"render_footer" => true,
							"header" 		=> "header",
							"project" 		=> $project,
							"clients" 		=> $this->clientmodel->get_client_list(),
							"users" 		=> $this->usermodel->get_user_list(),
							"left_menu" 	=> $this->left_menu,
							"top_menu" 		=> $this->top_menu,
							"extra_info"	=> $this->extra_info,
							"title" 		=> "IM Project Management :: View Project :: " . $project->name
							);
			$this->load->view('layout', $data);
		}
		else
			show_404();
	}