185 lines
13 KiB
PHP
185 lines
13 KiB
PHP
<?php
|
|
/** \file scripts\page\menu_project.php
|
|
* \brief DI webinterface menu project script.
|
|
* \author Rob Schalken, Core|Vision
|
|
* \version $Revision: 26247 $
|
|
* \date $Date: 2016-02-29 10:40:22 +0100 (Mon, 29 Feb 2016) $
|
|
*
|
|
* This file contains the menu user script. This file creates the user menu.
|
|
* Here the user can select multiple project actions (create/delete/search/change)/
|
|
*/
|
|
|
|
//== Required settings ======================
|
|
$_PAGE_INFO['page_title'] = _("project menu");
|
|
|
|
$_PAGE_INFO['history_menu_buttons'] = array(_("Project overview"), $_PAGE_INFO['HIST_MAIN']);
|
|
$_PAGE_INFO['history_menu_links'] = array("page/project", "page/menu");
|
|
//===========================================
|
|
//Button text //Page (including next action) // Rights needed
|
|
$_PAGE_INFO['menu_items'] = array( array("" , "" , "" ),
|
|
array(_("Setup project") , "page/menu_project_search&action=project_new" , "menu:projecten:root,menu:projecten&projectleider-rc,menu:projecten&projectleider" ),
|
|
array("" , "" , "" ),
|
|
array("" , "" , "" ),
|
|
array(_("Change setup project") , "page/menu_project_search&action=project_change" , "menu:projecten:root,menu:projecten&projectleider-rc,menu:projecten&projectleider" ),
|
|
array("" , "" , "" ),
|
|
array(_("Design project") , "page/menu_project_search&action=project_design" , "menu:projecten:root,menu:projecten&projecten:a" ),
|
|
array(_("Duplicate project") , "page/menu_project_search&action=project_duplicate" , "menu:projecten:root,menu:projecten&projectleider-rc,menu:projecten&projectleider" ),
|
|
array(_("Plan project") , "page/menu_project_search&action=project_plan" , "menu:projecten:root,menu:projecten&projecten:d" ),
|
|
array(_("Verify project design") , "page/menu_project_search&action=project_verify_design" , "menu:projecten:root,menu:projecten&projecten:b" ),
|
|
array("" , "" , "" ),
|
|
array(_("Verify project plan") , "page/menu_project_search&action=project_verify_plan" , "menu:projecten:root,menu:projecten&projecten:e" ),
|
|
array(_("Validate project design") , "page/menu_project_search&action=project_validate_design" , "menu:projecten:root,menu:projecten&projecten:c" ),
|
|
array("" , "" , "" ),
|
|
array(_("Validate project plan") , "page/menu_project_search&action=project_validate_plan" , "menu:projecten:root,menu:projecten&projecten:f" ),
|
|
array("" , "" , "" ),
|
|
array(_("Release project") , "page/menu_project_search&action=project_release" , "menu:projecten:root,menu:projecten&projecten:g" ),
|
|
array("" , "" , "" ),
|
|
array("" , "" , "" ),
|
|
array(_("Return project") , "page/menu_project_search&action=project_return" , "menu:projecten:root,menu:projecten&projecten:h,menu:projecten&projecten:d" ),
|
|
array("" , "" , "" ),
|
|
array(_("Assign equipment") , "page/menu_project_search&action=material_overview" , "menu:projecten:root,menu:projecten&projecten:d" ),
|
|
array("" , "" , "" ),
|
|
array(_("Search project") , "page/menu_project_search&action=project_info" , "menu:projecten:root,menu:projecten&menu:projecten:zoeken,menu:projecten&projectleider,menu:projecten&projectleider-rc" ));
|
|
|
|
// Clear previous session info
|
|
unset($_SESSION[$_PAGE_INFO['id']]['action']);
|
|
unset($_SESSION[$_PAGE_INFO['id']]['recall']);
|
|
unset($_SESSION[$_PAGE_INFO['id']]['material_overview']);
|
|
|
|
// Verify project/rights and log
|
|
if (Ver_Rights_Project_Log("menu:projecten:root,menu:projecten", "menu:projecten", $_SESSION[$_PAGE_INFO['id']]['login']['project']['name'])) {
|
|
// Save page title
|
|
$_SESSION[$_PAGE_INFO['id']]['title'] = _("Project maintenance");
|
|
|
|
// Show page header
|
|
print_page_header();
|
|
|
|
// Array with actions waiting for you!
|
|
$handle_action = array("project_design","project_verify_design","project_validate_design","project_plan","project_verify_plan","project_validate_plan","project_release","project_return");
|
|
|
|
// Clear info
|
|
$menu_items = array();
|
|
$menu_links = array();
|
|
$menu_rights = array();
|
|
$menu_extra_info = array();
|
|
|
|
// Collect menu items
|
|
for ($i = 0; $i < (sizeof($_PAGE_INFO['menu_items'])); $i++) {
|
|
// Retrieve button text
|
|
$menu_items[$i] = $_PAGE_INFO['menu_items'][$i][0];
|
|
|
|
// Verify menu rights and available link => enable/disable
|
|
if ((db_ver_rights_user_one_valid($_SESSION[$_PAGE_INFO['id']]['login']['user']['id'] ,$_PAGE_INFO['menu_items'][$i][2])) && (!empty($_PAGE_INFO['menu_items'][$i][1]))) {
|
|
$menu_rights[$i] = 1;
|
|
|
|
// Get action
|
|
$action = split("&action=", $_PAGE_INFO['menu_items'][$i][1]);
|
|
|
|
// Check how many projects are waiting for your action
|
|
if (is_array($action)) {
|
|
if (in_array($action[1], $handle_action)) {
|
|
// Initial values
|
|
$projects = array();
|
|
|
|
// Get all parts
|
|
$parts = split(",", $_PAGE_INFO['menu_items'][$i][2]);
|
|
|
|
if (is_array($parts)) {
|
|
foreach($parts as $part) {
|
|
// Skip when root (is no part)
|
|
if ($part != "menu:projecten:root") {
|
|
// Remove project menu access
|
|
$part = substr($part, strlen("menu:projecten&"));
|
|
|
|
// Initial values
|
|
$sstatus = "";
|
|
$ostatus = "";
|
|
$pstatus = "";
|
|
$type = "";
|
|
|
|
switch($action[1]) {
|
|
case "project_design":
|
|
$sstatus = array("niet vrijgegeven","verzoek tot vrijgeven");;
|
|
$ostatus = "concept";
|
|
$type = "rc";
|
|
break;
|
|
case "project_verify_design":
|
|
$sstatus = array("niet vrijgegeven","verzoek tot vrijgeven");;
|
|
$ostatus = "gereed";
|
|
$type = "rc";
|
|
break;
|
|
case "project_validate_design":
|
|
$sstatus = array("niet vrijgegeven","verzoek tot vrijgeven");;
|
|
$ostatus = "geverifieerd";
|
|
$type = "rc";
|
|
break;
|
|
case "project_plan":
|
|
$sstatus = array("niet vrijgegeven","verzoek tot vrijgeven");;
|
|
$pstatus = "concept";
|
|
break;
|
|
case "project_verify_plan":
|
|
$sstatus = array("niet vrijgegeven","verzoek tot vrijgeven");;
|
|
$pstatus = "gereed";
|
|
$type = "rc";
|
|
break;
|
|
case "project_validate_plan":
|
|
$sstatus = array("niet vrijgegeven","verzoek tot vrijgeven");;
|
|
$pstatus = "geverifieerd";
|
|
$type = "rc";
|
|
break;
|
|
case "project_release":
|
|
$sstatus = array("niet vrijgegeven","verzoek tot vrijgeven");
|
|
$ostatus = "gevalideerd";
|
|
$pstatus = "gevalideerd";
|
|
$type = "rc";
|
|
break;
|
|
case "project_return":
|
|
if ($part == "projecten:h") {
|
|
$sstatus = "vrijgegeven";
|
|
$ostatus = "gevalideerd";
|
|
$pstatus = "gevalideerd";
|
|
$type = "rc";
|
|
}
|
|
else {
|
|
$pstatus = "gereed";
|
|
$type = "normaal";
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if ((db_ver_rights_user_one_valid($_SESSION[$_PAGE_INFO['id']]['login']['user']['id'], $part))) {
|
|
// Get (non closed) projects
|
|
$projects_parts = db_fetch_user_projects($_SESSION[$_PAGE_INFO['id']]['login']['user']['id'], $part, $type, 0, $sstatus, $ostatus, $pstatus);
|
|
if (is_array($projects_parts)) {
|
|
foreach($projects_parts as $item) {
|
|
if (!in_array($item, $projects)) {
|
|
array_push($projects, $item);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Determine extra project info
|
|
$menu_extra_info[$i]['text'] = sizeof($projects);
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
$menu_rights[$i] = 0;
|
|
}
|
|
// Retrieve button link
|
|
$menu_links[$i] = "?id=" . $_PAGE_INFO['id'] . "&href=" . $_PAGE_INFO['menu_items'][$i][1];
|
|
}
|
|
|
|
// Display main menu
|
|
print_menu(_("Project maintenance"), $menu_items, $menu_links, $menu_rights, 1, 0, $menu_extra_info);
|
|
|
|
// Show page footer
|
|
print_page_footer();
|
|
}
|
|
?>
|