src.dualinventive.com/mtinfo/dist/webroot/rc-4.05/scripts/page/menu_project.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();
}
?>