<?php
session_start();
//------------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------------
include_once('../inc/config.php');
include_once('../inc/util.inc');
include_once('../inc/admin_class.php');
include_once('../inc/validation_class.php');
mysql_connect($db_server, $db_username, $db_password);
mysql_select_db($db_database);
$validation = new Validation();
$admin = new Admin();
//------------------------------------------------------------------------------
// Setup Theme
//------------------------------------------------------------------------------
$THEME = array(
'site_name' => getSiteName(),
'path' => '../',
'page' => 'tracker',
'page_title' => _('Administration'),
'theme_path' => getTheme(),
'modules' => getAdminModules(),
);
//------------------------------------------------------------------------------
// Control Structure
//------------------------------------------------------------------------------
include $THEME['path'].$THEME['theme_path'].'adminheader.php';
if (!isLoggedInAdmin()) {
handleBadLogin();
return;
}
$fields = usingWhichFields();
displayMenu();
if (isset($_GET['view'])) {
// Import
if ($_GET['view'] == 'import') {
if (isset($_POST['import-submit'])) {
$keepId = isset($_POST['keep-id']) ? '1' : '0';
$admin->importCsv($_FILES['csv'], $_POST['type'], $keepId);
} elseif (isset($_GET['type'])) {
$admin->displayImportForm($_GET['type']);
} else {
$admin->displayImportStep1();
}
// Ticket Types
} elseif ($_GET['view'] == 'types') {
$message = '';
if (isset($_GET['edit'])) {
$admin->displayTicketTypesEditForm($_GET['edit']);
} elseif (isset($_POST['add-types'])) {
$message = displayAddTypeSubmit($_POST['name']);
$admin->displayCurrentTicketTypes($message);
$admin->displayTicketTypesAddForm();
} elseif (isset($_POST['edit-types'])) {
$message = displayEditTypeSubmit($_POST['name'], $_POST['id']);
$admin->displayCurrentTicketTypes($message);
$admin->displayTicketTypesAddForm();
} elseif (isset($_POST['delete-types'])) {
$message = displayDeleteTypeSubmit($_POST['chk-delete']);
$admin->displayCurrentTicketTypes($message);
$admin->displayTicketTypesAddForm();
} elseif (isset($_POST['update-types'])) {
$message = displayUpdateDefaultTypeSubmit($_POST['default']);
$admin->displayCurrentTicketTypes($message);
$admin->displayTicketTypesAddForm();
} else {
$admin->displayCurrentTicketTypes($message);
$admin->displayTicketTypesAddForm();
}
// Ticket Priorities
} elseif ($_GET['view'] == 'priorities') {
$message = '';
if (isset($_GET['edit'])) {
$admin->displayTicketPrioritiesEditForm($_GET['edit']);
} elseif (isset($_POST['add-priorities'])) {
$message = displayAddPrioritiesSubmit($_POST['name']);
$admin->displayCurrentTicketPriorities($message);
$admin->displayTicketPrioritiesAddForm();
} elseif (isset($_POST['edit-priorities'])) {
$message = displayEditPrioritiesSubmit($_POST['id'], $_POST['name']);
$admin->displayCurrentTicketPriorities($message);
$admin->displayTicketPrioritiesAddForm();
} elseif (isset($_POST['delete-priorities'])) {
$message = displayDeletePrioritiesSubmit($_POST['chk-delete']);
$admin->displayCurrentTicketPriorities($message);
$admin->displayTicketPrioritiesAddForm();
} else {
$admin->displayCurrentTicketPriorities($message);
$admin->displayTicketPrioritiesAddForm();
}
// Projects
} elseif ($_GET['view'] == 'projects') {
$message = '';
if (isset($_GET['edit'])) {
$admin->displayProjectsEditForm($_GET['edit']);
} elseif (isset($_POST['add-projects'])) {
$message = displayAddProjectSubmit($_POST);
$admin->displayCurrentProjects($message);
$admin->displayProjectsAddForm();
} elseif (isset($_POST['edit-projects'])) {
$message = displayEditProjectSubmit($_POST);
$admin->displayCurrentProjects($message);
$admin->displayProjectsAddForm();
} elseif (isset($_POST['delete-projects'])) {
$message = displayDeleteProjectSubmit($_POST['chk-delete']);
$admin->displayCurrentProjects($message);
$admin->displayProjectsAddForm();
} elseif (isset($_POST['rename-projects'])) {
$message = displayRenameProjectSubmit($_POST['projects']);
$admin->displayCurrentProjects($message);
$admin->displayProjectsAddForm();
} else {
$admin->displayCurrentProjects($message);
$admin->displayProjectsAddForm();
}
// Components
} elseif ($_GET['view'] == 'components') {
$message = '';
if (isset($_GET['edit'])) {
$admin->displayComponentsEditForm($_GET['edit']);
} elseif (isset($_POST['add-components'])) {
$message = displayAddComponentSubmit($_POST['name']);
$admin->displayCurrentComponents($message);
$admin->displayComponentsAddForm();
} elseif (isset($_POST['edit-components'])) {
$message = displayEditComponentSubmit($_POST['id'], $_POST['name']);
$admin->displayCurrentComponents($message);
$admin->displayComponentsAddForm();
} elseif (isset($_POST['delete-components'])) {
$message = displayDeleteComponentSubmit($_POST['chk-delete']);
$admin->displayCurrentComponents($message);
$admin->displayComponentsAddForm();
} elseif (isset($_POST['rename-components'])) {
$message = displayRenameComponentSubmit($_POST['components']);
$admin->displayCurrentComponents($message);
$admin->displayComponentsAddForm();
} else {
$admin->displayCurrentComponents($message);
$admin->displayComponentsAddForm();
}
// Versions
} elseif ($_GET['view'] == 'versions') {
// Turn On/Off Discovered, Target or Fixed
if (isset($_GET['off'])) {
$admin->turnOffField($_GET['off']);
$fields = usingWhichFields();
} elseif (isset($_GET['on'])) {
$message = $admin->turnOnField($_GET['on']);
$fields = usingWhichFields();
}
$message = '';
if (isset($_GET['edit'])) {
$admin->displayVersionsEditForm($_GET['edit']);
} elseif (isset($_POST['add-versions'])) {
$message = displayAddVersionSubmit($_POST['name']);
$admin->displayCurrentVersions($fields, $message);
$admin->displayVersionsAddForm();
} elseif (isset($_POST['edit-versions'])) {
$message = displayEditVersionSubmit($_POST);
$admin->displayCurrentVersions($fields, $message);
$admin->displayVersionsAddForm();
} elseif (isset($_POST['delete-versions'])) {
$message = displayDeleteVersionSubmit($_POST['chk-delete']);
$fields = usingWhichFields();
$admin->displayCurrentVersions($fields, $message);
$admin->displayVersionsAddForm();
} else {
$admin->displayCurrentVersions($fields, $message);
$admin->displayVersionsAddForm();
}
// Misc
} elseif ($_GET['view'] == 'misc') {
// Turn On/Off Misc fields
if (isset($_GET['off'])) {
$admin->turnOffField($_GET['off']);
$fields = usingWhichFields();
} elseif (isset($_GET['on'])) {
$message = $admin->turnOnField($_GET['on']);
$fields = usingWhichFields();
}
$admin->displayCurrentMisc($fields);
}
} else {
displayTrackerMessage();
}
echo '
<div style="clear:both"></div>';
include $THEME['path'].$THEME['theme_path'].'footer.php';
return;
//------------------------------------------------------------------------------
// Functions
//------------------------------------------------------------------------------
function handleBadLogin ()
{
echo '
<div class="error-alert">'._('You must login as an Administrator to view this page.').'</div>';
displayLogin('tracker.php');
}
function displayMenu ()
{
echo '
<div id="sub-navigation" class="clearfix">
<ul id="sub-nav" class="clearfix">
<li><a href="?view=types">'._('Ticket Types').'</a></li>
<li><a href="?view=priorities">'._('Ticket Priorities').'</a></li>
<li><a href="?view=projects">'._('Projects').'</a></li>
<li><a href="?view=components">'._('Components').'</a></li>
<li><a href="?view=versions">'._('Versions').'</a></li>
<li><a href="?view=misc">'._('Misc.').'</a></li>
<li class="action"><a href="?view=import">'._('Import Tickets').'</a></li>
</ul>
</div>';
}
function displayTrackerMessage ()
{
echo '
<h2>'._('Tracker').'</h2>
<p>'._('Welcome to the Tracker Module Administration. Here you can change how the Tracker Module works.').'</p>
<p>'._('Remember: removing all options from a particular Tracker field, will remove that field from the Tracker Module.').'</p>';
}
function displayAddTypeSubmit ($name)
{
global $validation;
$name = $validation->cleanInput($name);
if (strlen($name) > 0) {
$sql = "INSERT INTO `sam_ticket_type` (`name`)
VALUES ('$name')";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot create new ticket type.'));
}
$sql = "UPDATE `sam_configuration`
SET `use_type` = '1'
LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn on ticket types.'));
}
}
return array('ok', _('Ticket type added.'));
}
function displayEditTypeSubmit ($name, $id)
{
global $validation;
$name = $validation->cleanInput($name);
$id = $validation->cleanInput($id);
if (strlen($name) > 0) {
$sql = "UPDATE `sam_ticket_type`
SET `name` = '$name'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update ticket type.'));
}
}
return array('ok', _('Ticket type updated.'));
}
function displayDeleteTypeSubmit ($data)
{
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
foreach ($data as $id) {
$sql = "DELETE FROM `sam_ticket_type`
WHERE `id` = ".escape_string($id)." LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot delete ticket type.'));
}
}
// If all Types are deleted, then turn off Ticket Types
$sql = "SELECT `id` FROM `sam_ticket_type` LIMIT 1";
$result = mysql_query($sql);
if (!$result) {
$error = _('Could not get ticket type information.');
logSqlError($error, __FILE__, __LINE__, mysql_error(), $sql);
return array('error', $error);
}
if (mysql_num_rows($result) < 1) {
$sql = "UPDATE `sam_configuration` SET `use_type` = '0' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn off ticket type.'));
}
}
return array('ok', _('Ticket type deleted.'));
}
function displayUpdateDefaultTypeSubmit ($id)
{
global $validation;
$id = $validation->cleanInput($id);
// Remove existing defaults
$sql = "UPDATE `sam_ticket_type` SET `default` = '0' WHERE `default` = '1'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot remove default ticket type.'));
}
// Update the new default
$sql = "UPDATE `sam_ticket_type` SET `default` = '1' WHERE `id` = ".escape_string($id)." LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update default ticket type.'));
}
return array('ok', _('Default changed.'));
}
function displayAddPrioritiesSubmit ($name)
{
global $validation;
$name = $validation->cleanInput($name);
$sql = "SELECT `order`
FROM `sam_ticket_priority`
ORDER BY `order` DESC
LIMIT 1";
$result = mysql_query($sql);
if (!$result) {
$error = _('Could not get ticket priority information.');
logSqlError($error, __FILE__, __LINE__, mysql_error(), $sql);
return array('error', $error);
}
$r = mysql_fetch_array($result);
$nextOrder = $r['order'] + 1;
$sql = "INSERT INTO `sam_ticket_priority` (`name`, `order`)
VALUES ('$name', '$nextOrder')";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot add ticket priority.'));
}
// Turn on Ticket Priority
$sql = "UPDATE `sam_configuration` SET `use_priority` = '1' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn on ticket priority.'));
}
return array('ok', _('Ticket priority added.'));
}
function displayEditPrioritiesSubmit ($id, $name)
{
global $validation;
$id = $validation->cleanInput($id);
$name = $validation->cleanInput($name);
$sql = "UPDATE `sam_ticket_priority`
SET `name` = '$name'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot edit ticket priority.'));
}
return array('ok', _('Ticket priority updated.'));
}
function displayDeletePrioritiesSubmit ($data)
{
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
// Delete
foreach ($data as $id) {
$sql = "DELETE FROM `sam_ticket_priority`
WHERE `id` = '$id'
LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot delete ticket priority.'));
}
}
$sql = "SELECT `id`
FROM `sam_ticket_priority` ORDER BY `order`";
$result = mysql_query($sql);
if (!$result) {
$error = _('Could not get ticket priority information.');
logSqlError($error, __FILE__, __LINE__, mysql_error(), $sql);
return array('error', $error);
}
if (mysql_num_rows($result) > 0) {
$i = 1;
while ($r = mysql_fetch_array($result)) {
$sql = "UPDATE `sam_ticket_priority`
SET `order` = '$i'
WHERE `id` = '".$r['id']."'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update ticket priority order.'));
}
$i++;
}
}
// If all Priorities are deleted, then turn off Ticket Priorities
$sql = "SELECT `id`
FROM `sam_ticket_priority` LIMIT 1";
$result = mysql_query($sql);
if (!$result) {
$error = _('Could not get ticket priority information.');
logSqlError($error, __FILE__, __LINE__, mysql_error(), $sql);
return array('error', $error);
}
if (mysql_num_rows($result) < 1) {
$sql = "UPDATE `sam_configuration`
SET `use_priority` = '0' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn off ticket priority.'));
}
}
return array('ok', _('Ticket priority deleted.'));
}
function displayUpdatePrioritiesSubmit ($data)
{
global $validation;
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
// Update the default
if (isset($data['default'])) {
$default = $validation->cleanInput($data['default']);
// Remove existing defaults
$sql = "UPDATE `sam_ticket_priority`
SET `default` = '0'
WHERE `default` = '1'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot remove default ticket priority.'));
}
// Update the new default
$sql = "UPDATE `sam_ticket_priority`
SET `default` = '1'
WHERE `id` = '$default' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update default ticket priority.'));
}
}
// Validate proper order
$orders = array();
foreach ($_POST as $key => $value) {
$pos = strpos($key, 'order');
if ($pos !== false) {
$orders[] = $value;
}
}
$count1 = count($orders);
$orders = array_unique($orders);
$count2 = count($orders);
if ($count1 != $count2) {
return array('error', _('Cannot have duplicate values for Order.'));
}
// Update the order
foreach ($_POST as $key => $value) {
$pos = strpos($key, 'order');
if ($pos !== false) {
$id = substr($key, 5);
$id = $validation->cleanInput($id);
$value = $validation->cleanInput($value);
$sql = "UPDATE `sam_ticket_priority`
SET `order` = '$value'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update ticket priority order.'));
}
}
}
return array('ok', _('Ticket priority order updated.'));
}
function displayAddProjectSubmit ($data)
{
global $validation;
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
$name = $validation->cleanInput($data['name']);
$desc = $validation->cleanInput($data['desc']);
$year = $validation->cleanInput($data['year']);
$month = $validation->cleanInput($data['month']);
$day = $validation->cleanInput($data['day']);
$due = $year.'-'.$month.'-'.$day.' 00:00:00';
$sql = "INSERT INTO `sam_project` (`name`, `desc`, `due`)
VALUES ('$name', '$desc', '$due')";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot add new project.'));
}
// Turn on Projects
$sql = "UPDATE `sam_configuration`
SET `use_project` = '1'
LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn on projects.'));
}
return array('ok', _('Ticket project added.'));
}
function displayEditProjectSubmit ($data)
{
global $validation;
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
$id = $validation->cleanInput($data['id']);
$name = $validation->cleanInput($data['name']);
$desc = $validation->cleanInput($data['desc']);
$year = $validation->cleanInput($data['year']);
$month = $validation->cleanInput($data['month']);
$day = $validation->cleanInput($data['day']);
$due = $year.'-'.$month.'-'.$day.' 00:00:00';
$sql = "UPDATE `sam_project`
SET `name` = '$name',
`due` = '$due',
`desc` = '$desc'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update project.'));
}
if (isset($data['complete']) && !isset($data['already-complete'])) {
$complete = gmdate('Y-m-d H:i:s');
$sql = "UPDATE `sam_project`
SET `complete` = '$complete'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update project.'));
}
}
if (!isset($data['complete']) && isset($data['already-complete'])) {
$sql = "UPDATE `sam_project`
SET `complete` = '0000-00-00 00:00:00'
WHERE `id` = ".escape_string($_POST['id']);
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot update project.'));
}
}
return array('ok', _('Ticket project updated.'));
}
function displayDeleteProjectSubmit ($data)
{
global $validation;
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
foreach ($data as $id) {
$id = $validation->cleanInput($id);
$sql = "DELETE FROM `sam_project`
WHERE `id` = '$id' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot delete project.'));
}
}
// If all Projects are deleted, then turn off Projects
$sql = "SELECT `id` FROM `sam_project` LIMIT 1";
$result = mysql_query($sql);
if (!$result) {
logSqlError($error, __FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Could not get project information.'));
}
if (mysql_num_rows($result) < 1) {
$sql = "UPDATE `sam_configuration` SET `use_project` = '0' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn on projects.'));
}
}
return array('ok', _('Ticket project deleted.'));
}
function displayRenameProjectSubmit ($name)
{
global $validation;
$name = $validation->cleanInput($name);
$sql = "UPDATE `sam_configuration`
SET `projects` = '$name'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot rename project.'));
}
return array('ok', _('Ticket project renamed.'));
}
function displayAddComponentSubmit ($name)
{
global $validation;
$name = $validation->cleanInput($name);
$sql = "INSERT INTO `sam_component` (`name`)
VALUES ('$name')";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot add component.'));
}
// Turn on Components
$sql = "UPDATE `sam_configuration`
SET `use_component` = '1' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn on component.'));
}
return array('ok', _('Component added.'));
}
function displayEditComponentSubmit ($id, $name)
{
global $validation;
$id = $validation->cleanInput($id);
$name = $validation->cleanInput($name);
$sql = "UPDATE `sam_component`
SET `name` = '$name'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot edit component.'));
}
return array('ok', _('Component updated.'));
}
function displayDeleteComponentSubmit ($data)
{
global $validation;
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
foreach ($data as $id) {
$id = $validation->cleanInput($id);
$sql = "DELETE FROM `sam_component`
WHERE `id` = '$id' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot delete component.'));
}
}
// If all Components are deleted, then turn off Components
$sql = "SELECT `id` FROM `sam_component` LIMIT 1";
$result = mysql_query($sql);
if (!$result) {
logSqlError($error, __FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Could not get component information.'));
}
if (mysql_num_rows($result) < 1) {
$sql = "UPDATE `sam_configuration`
SET `use_component` = '0' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn on components.'));
}
}
return array('ok', _('Component deleted.'));
}
function displayRenameComponentSubmit ($name)
{
global $validation;
$name = $validation->cleanInput($name);
$sql = "UPDATE `sam_configuration`
SET `components` = '$name'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot rename components.'));
}
$message = array('ok', _('Components renamed.'));
}
function displayAddVersionSubmit ($name)
{
global $validation;
$name = $validation->cleanInput($name);
$sql = "INSERT INTO `sam_version` (`name`)
VALUES ('$name')";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot add version.'));
}
return array('ok', _('Version added.'));
}
function displayEditVersionSubmit ($data)
{
global $validation;
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
$id = $validation->cleanInput($data['id']);
$name = $validation->cleanInput($data['name']);
$sql = "UPDATE `sam_version`
SET `name` = '$name'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot edit version.'));
}
if (isset($data['released']) && !isset($data['already-released'])) {
$released = gmdate('Y-m-d H:i:s');
$sql = "UPDATE `sam_version`
SET `released` = '$released'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot edit version.'));
}
}
if (!isset($data['released']) && isset($data['already-released'])) {
$sql = "UPDATE `sam_version`
SET `released` = '0000-00-00 00:00:00'
WHERE `id` = '$id'";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot edit version.'));
}
}
return array('ok', _('Version updated.'));
}
function displayDeleteVersionSubmit ($data)
{
global $validation;
if (!is_array($data)) {
$error = _('Invalid params.');
logError(__FILE__, __LINE__, $error);
return array('error', $error);
}
foreach ($data as $id) {
$id = $validation->cleanInput($id);
$sql = "DELETE FROM `sam_version`
WHERE `id` = '$id' LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot delete version.'));
}
}
// If all Versions are deleted, then turn off Discovered, Target and Fixed
$sql = "SELECT `id` FROM `sam_version` LIMIT 1";
$result = mysql_query($sql);
if (!$result) {
logSqlError($error, __FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Could not get version information.'));
}
if (mysql_num_rows($result) < 1) {
$sql = "UPDATE `sam_configuration`
SET `use_discovered` = '0',
`use_target` = '0',
`use_fixed` = '0'
LIMIT 1";
if (!mysql_query($sql)) {
logSqlError(__FILE__, __LINE__, mysql_error(), $sql);
return array('error', _('Cannot turn off version.'));
}
}
return array('ok', _('Version deleted.'));
}