131 lines
6.0 KiB
PHP
131 lines
6.0 KiB
PHP
<?php
|
|
/** \file scripts\page\menu_changelog_info.php
|
|
* \brief DI webinterface menu system version maintenance script.
|
|
* \author Jack Weeland, Core|Vision
|
|
* \version $Revision: 26247 $
|
|
* \date $Date: 2016-02-29 10:40:22 +0100 (Mon, 29 Feb 2016) $
|
|
*
|
|
* This file contains the menu system change log maintenance
|
|
*
|
|
*/
|
|
|
|
//=== Menu structure ===
|
|
|
|
// Check that this page is called with the correct action (to prevent illegal access)
|
|
if( !is_valid_action("changelog_new","changelog_duplicate","changelog_change","changelog_info") ) {
|
|
// Redirect page back to login page
|
|
force_logout(_("No valid rights"), "Invalid action: " . current_action(TRUE));
|
|
}
|
|
|
|
$page = new MTinfoPage();
|
|
|
|
//===========================================
|
|
|
|
// Verify project/rights and log
|
|
if( $page->user_has_rights() ) {
|
|
if( $_SESSION[$_PAGE_INFO['id']]['recall_counter'] ) {
|
|
// Return from call
|
|
}
|
|
else if( is_valid_action("changelog_new") ) {
|
|
// new item: generated temporary identifier as index in the array
|
|
$t = gettimeofday(TRUE);
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_id'] = "tmp_" . sprintf("%u%06u", $t, ($t - floor($t)) * 1000);
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = array();
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info'] = array();
|
|
|
|
// save the version identifier from version entry page, or the search screen
|
|
if( is_valid_call("version_new","version_duplicate","version_change") ) {
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info']['versie'] = $_SESSION[$_PAGE_INFO['id']]['version_id'];
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info']['volgorde'] = array_max($_SESSION[$_PAGE_INFO['id']]['version_info']['changelog'], "volgorde", 0) + 1;
|
|
// link device types and system components from the version info
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info']['device'] = $_SESSION[$_PAGE_INFO['id']]['version_info']['device'];
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info']['syscomp'] = $_SESSION[$_PAGE_INFO['id']]['version_info']['syscomp'];
|
|
}
|
|
else {
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info']['versie'] = $_SESSION[$_PAGE_INFO['id']]['search']['s&o']['version_id'];
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info']['volgorde'] = 0;
|
|
}
|
|
}
|
|
else if( is_valid_action("changelog_info","changelog_change","changelog_duplicate") ) {
|
|
if( isset($_GET['changelog_id']) ) {
|
|
// set change log identifier from the URL
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_id'] = decrypt($_GET['changelog_id'], "changelog_id_" . $_SESSION[$_PAGE_INFO['id']]['login']['user']['id']);
|
|
}
|
|
else {
|
|
// set change log identifier from the search screen
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_id'] = $_SESSION[$_PAGE_INFO['id']]['search']['s&o']['changelog_id'];
|
|
}
|
|
|
|
if( isset($_SESSION[$_PAGE_INFO['id']]['changelog_id']) ) {
|
|
if( is_array($_SESSION[$_PAGE_INFO['id']]['version_changelog'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']]) ) {
|
|
// change log item is stored in the version info array
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info'] = $_SESSION[$_PAGE_INFO['id']]['version_changelog'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']];
|
|
}
|
|
else {
|
|
// read the change log items and its documents
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info'] = db_fetch_version_change($_SESSION[$_PAGE_INFO['id']]['changelog_id']);
|
|
}
|
|
|
|
if( is_array($_SESSION[$_PAGE_INFO['id']]['version_changelog_doc'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']]) ) {
|
|
// change log item is stored in the version info array
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = $_SESSION[$_PAGE_INFO['id']]['version_changelog_doc'][$_SESSION[$_PAGE_INFO['id']]['changelog_id']];
|
|
}
|
|
else {
|
|
// read the change log items and its documents
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = db_fetch_files($_SESSION[$_PAGE_INFO['id']]['changelog_id'], "changelog_versie_change_documenten", FALSE, "ASC");
|
|
}
|
|
|
|
// invalidate the identifier when duplicating an item
|
|
if( is_valid_action("changelog_duplicate") ) {
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_id'] = "tmp_copy_" . $_SESSION[$_PAGE_INFO['id']]['changelog_id'];
|
|
|
|
// copy the documents
|
|
$documents = $_SESSION[$_PAGE_INFO['id']]['changelog_doc'];
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_doc'] = array();
|
|
foreach( $documents as $doc ) {
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_doc'][] = db_duplicate_file($doc);
|
|
}
|
|
// clean up
|
|
unset($documents);
|
|
}
|
|
}
|
|
else {
|
|
// wrong call; redirect back to login page
|
|
force_logout(_("No valid rights"), "Change log id not set");
|
|
}
|
|
}
|
|
|
|
// the change log is closely linked to a version; fetch the version info
|
|
// if not set (when this page is called bypassing 'version_info')
|
|
if( !is_valid_call("version*") ) {
|
|
$_SESSION[$_PAGE_INFO['id']]['version_info'] = db_fetch_system_version($_SESSION[$_PAGE_INFO['id']]['changelog_info']['versie']);
|
|
}
|
|
// as well as to the system component; fetch it if not set (when this page is called bypassing 'syscomp_info')
|
|
if( !is_valid_call("system_component*") ) {
|
|
$_SESSION[$_PAGE_INFO['id']]['syscomp_info'] = db_fetch_system_component($_SESSION[$_PAGE_INFO['id']]['version_info']['syscomp']);
|
|
}
|
|
|
|
// Nested call?
|
|
if( !$_SESSION[$_PAGE_INFO['id']]['recall_counter'] ) {
|
|
$_SESSION[$_PAGE_INFO['id']]['changelog_info']['return_action'] = $_SESSION[$_PAGE_INFO['id']]['return_action'];
|
|
}
|
|
|
|
// Add calendar to header
|
|
$extra_header_HTML = "<script type=\"text/javascript\" src=\"" . JAVA_DIR . "calender.js\"></script>\n";
|
|
|
|
// Show page header
|
|
$y_position = (isset($_SESSION[$_PAGE_INFO['id']]['changelog_info']['y_position'])) ? ($_SESSION[$_PAGE_INFO['id']]['changelog_info']['y_position']) : 0;
|
|
print_xml_header($y_position, $extra_header_HTML);
|
|
|
|
// Include info content
|
|
include("menu_changelog_info_content.php");
|
|
|
|
// Show page footer
|
|
print_page_footer();
|
|
}
|
|
else {
|
|
// Redirect page back to login page
|
|
force_logout(_("No valid rights"), "No rights for menu " . $page->menu . ": " . $page->rights);
|
|
}
|
|
|
|
?>
|