array('value' => 3, 'text' => $hesklang['low'], 'formatted' => $hesklang['low']), 2 => array('value' => 2, 'text' => $hesklang['medium'], 'formatted' => '' . $hesklang['medium'] . ''), 1 => array('value' => 1, 'text' => $hesklang['high'], 'formatted' => '' . $hesklang['high'] . ''), 0 => array('value' => 0, 'text' => $hesklang['critical'], 'formatted' => '' . $hesklang['critical'] . ''), ); /* What should we do? */ if ($action = hesk_REQUEST('a')) { if ($action == 'linkcode') { generate_link_code(); } elseif (defined('HESK_DEMO')) { hesk_process_messages($hesklang['ddemo'], 'manage_categories.php', 'NOTICE'); } elseif ($action == 'new') { new_cat(); } elseif ($action == 'rename') { rename_cat(); } elseif ($action == 'remove') { remove(); } elseif ($action == 'order') { order_cat(); } elseif ($action == 'autoassign') { toggle_autoassign(); } elseif ($action == 'type') { toggle_type(); } elseif ($action == 'priority') { change_priority(); } elseif ($action == 'manager') { change_manager(); } } $modsForHesk_settings = mfh_getSettings(); /* Print header */ require_once(HESK_PATH . 'inc/headerAdmin.inc.php'); /* Print main manage users page */ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); ?> ' . $mycat['name'] . ''; } ?>

: ()

data-error="" required>


data-error="" required>

'; } else { $remove_code = ' '; } /* Is category private or public? */ if ($mycat['type']) { $type_code = ''; } else { $type_code = ''; } /* Is auto assign enabled? */ if ($hesk_settings['autoassign']) { if ($mycat['autoassign']) { $autoassign_code = ''; } else { $autoassign_code = ''; } } else { $autoassign_code = ''; } echo ' '; } // End while ?>
' . $mycat['id'] . ' ' . $mycat['name'] . ' ' . $priorities[$mycat['priority']]['formatted'] . ' ' . $all . '
40% Complete (success)
' . output_user_dropdown($mycat['id'], $mycat['manager'], $users) . ' ' . $autoassign_code . ' ' . $type_code . ' '; if ($orderBy != 'name' && $num > 1) { if ($j == 1) { echo ' '; } elseif ($j == $num) { echo ' '; } else { echo '   '; } } echo $remove_code . '
<?php echo $hesklang['genl']; ?>

 
' . $hesklang['cpric'] . '
 

'; } else { ?>

3) { $_SESSION['cat_priority'] = 3; } /* Category name */ $catname = hesk_input(hesk_POST('name'), $hesklang['enter_cat_name'], 'manage_categories.php'); /* Do we already have a category with this name? */ $res = hesk_dbQuery("SELECT `id` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` WHERE `name` LIKE '" . hesk_dbEscape(hesk_dbLike($catname)) . "' LIMIT 1"); if (hesk_dbNumRows($res) != 0) { $_SESSION['catname'] = $catname; hesk_process_messages($hesklang['cndupl'], 'manage_categories.php'); } /* Get the latest cat_order */ $res = hesk_dbQuery("SELECT `cat_order` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ORDER BY `cat_order` DESC LIMIT 1"); $row = hesk_dbFetchRow($res); $my_order = $row[0] + 10; hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` (`name`,`cat_order`,`autoassign`,`type`, `priority`) VALUES ('" . hesk_dbEscape($catname) . "','" . intval($my_order) . "','" . intval($_SESSION['cat_autoassign']) . "','" . intval($_SESSION['cat_type']) . "','{$_SESSION['cat_priority']}')"); hesk_cleanSessionVars('catname'); hesk_cleanSessionVars('cat_autoassign'); hesk_cleanSessionVars('cat_type'); hesk_cleanSessionVars('cat_priority'); $_SESSION['selcat2'] = hesk_dbInsertID(); hesk_process_messages(sprintf($hesklang['cat_name_added'], '' . stripslashes($catname) . ''), 'manage_categories.php', 'SUCCESS'); } // End new_cat() function rename_cat() { global $hesk_settings, $hesklang; /* A security check */ hesk_token_check('POST'); $_SERVER['PHP_SELF'] = 'manage_categories.php?catid=' . intval(hesk_POST('catid')); $catid = hesk_isNumber(hesk_POST('catid'), $hesklang['choose_cat_ren'], $_SERVER['PHP_SELF']); $_SESSION['selcat'] = $catid; $_SESSION['selcat2'] = $catid; $catname = hesk_input(hesk_POST('name'), $hesklang['cat_ren_name'], $_SERVER['PHP_SELF']); $_SESSION['catname2'] = $catname; $res = hesk_dbQuery("SELECT `id` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` WHERE `name` LIKE '" . hesk_dbEscape(hesk_dbLike($catname)) . "' LIMIT 1"); if (hesk_dbNumRows($res) != 0) { $old = hesk_dbFetchAssoc($res); if ($old['id'] == $catid) { hesk_process_messages($hesklang['noch'], $_SERVER['PHP_SELF'], 'NOTICE'); } else { hesk_process_messages($hesklang['cndupl'], $_SERVER['PHP_SELF']); } } hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` SET `name`='" . hesk_dbEscape($catname) . "' WHERE `id`='" . intval($catid) . "' LIMIT 1"); unset($_SESSION['selcat']); unset($_SESSION['catname2']); hesk_process_messages($hesklang['cat_renamed_to'] . ' ' . stripslashes($catname) . '', $_SERVER['PHP_SELF'], 'SUCCESS'); } // End rename_cat() function remove() { global $hesk_settings, $hesklang; /* A security check */ hesk_token_check(); $_SERVER['PHP_SELF'] = 'manage_categories.php'; $mycat = intval(hesk_GET('catid')) or hesk_error($hesklang['no_cat_id']); if ($mycat == 1) { hesk_process_messages($hesklang['cant_del_default_cat'], $_SERVER['PHP_SELF']); } hesk_dbQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` WHERE `id`='" . intval($mycat) . "' LIMIT 1"); if (hesk_dbAffectedRows() != 1) { hesk_error("$hesklang[int_error]: $hesklang[cat_not_found]."); } hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "tickets` SET `category`=1 WHERE `category`='" . intval($mycat) . "'"); hesk_process_messages($hesklang['cat_removed_db'], $_SERVER['PHP_SELF'], 'SUCCESS'); } // End remove() function order_cat() { global $hesk_settings, $hesklang; /* A security check */ hesk_token_check(); $catid = intval(hesk_GET('catid')) or hesk_error($hesklang['cat_move_id']); $_SESSION['selcat2'] = $catid; $cat_move = intval(hesk_GET('move')); hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` SET `cat_order`=`cat_order`+" . intval($cat_move) . " WHERE `id`='" . intval($catid) . "' LIMIT 1"); if (hesk_dbAffectedRows() != 1) { hesk_error("$hesklang[int_error]: $hesklang[cat_not_found]."); } /* Update all category fields with new order */ $res = hesk_dbQuery("SELECT `id` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ORDER BY `cat_order` ASC"); $i = 10; while ($mycat = hesk_dbFetchAssoc($res)) { hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` SET `cat_order`=" . intval($i) . " WHERE `id`='" . intval($mycat['id']) . "' LIMIT 1"); $i += 10; } header('Location: manage_categories.php'); exit(); } // End order_cat() function toggle_autoassign() { global $hesk_settings, $hesklang; /* A security check */ hesk_token_check(); $catid = intval(hesk_GET('catid')) or hesk_error($hesklang['cat_move_id']); $_SESSION['selcat2'] = $catid; if (intval(hesk_GET('s'))) { $autoassign = 1; $tmp = $hesklang['caaon']; } else { $autoassign = 0; $tmp = $hesklang['caaoff']; } /* Update auto-assign settings */ $res = hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` SET `autoassign`='" . intval($autoassign) . "' WHERE `id`='" . intval($catid) . "' LIMIT 1"); if (hesk_dbAffectedRows() != 1) { hesk_process_messages($hesklang['int_error'] . ': ' . $hesklang['cat_not_found'], './manage_categories.php'); } hesk_process_messages($tmp, './manage_categories.php', 'SUCCESS'); } // End toggle_autoassign() function toggle_type() { global $hesk_settings, $hesklang; /* A security check */ hesk_token_check(); $catid = intval(hesk_GET('catid')) or hesk_error($hesklang['cat_move_id']); $_SESSION['selcat2'] = $catid; if (intval(hesk_GET('s'))) { $type = 1; $tmp = $hesklang['cpriv']; } else { $type = 0; $tmp = $hesklang['cpub']; } /* Update auto-assign settings */ hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` SET `type`='{$type}' WHERE `id`='" . intval($catid) . "' LIMIT 1"); if (hesk_dbAffectedRows() != 1) { hesk_process_messages($hesklang['int_error'] . ': ' . $hesklang['cat_not_found'], './manage_categories.php'); } hesk_process_messages($tmp, './manage_categories.php', 'SUCCESS'); } // End toggle_type() function output_user_dropdown($catId, $selectId, $userArray) { global $hesklang; if (!hesk_checkPermission('can_set_manager', 0)) { foreach ($userArray as $user) { if ($user['id'] == $selectId) { return '

' . $user['name'] . '

'; } } return '

' . $hesklang['no_manager'] . '

'; } else { $dropdownMarkup = ''; return '
' . $dropdownMarkup . '
'; } } function change_manager() { global $hesklang, $hesk_settings; $catid = hesk_POST('catid'); $newManagerId = hesk_POST('managerid'); hesk_dbQuery('UPDATE `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'categories` SET `manager` = ' . intval($newManagerId) . ' WHERE `id` = ' . intval($catid)); if (hesk_dbAffectedRows() != 1) { hesk_process_messages($hesklang['int_error'] . ': ' . $hesklang['cat_not_found'], './manage_categories.php'); } if ($newManagerId == 0) { // There is no new manager. return; } // Add the category to the user's categories list, if not already present $currentCatRs = hesk_dbQuery('SELECT `categories` FROM `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'users` WHERE `id` = ' . intval($newManagerId)); $currentCategories = hesk_dbFetchAssoc($currentCatRs); $categories = explode(',', $currentCategories['categories']); if (!in_array($catid, $categories)) { hesk_dbQuery('UPDATE `' . hesk_dbEscape($hesk_settings['db_pfix']) . 'users` SET `categories` = \'' . $currentCategories['categories'] . ',' . $catid . '\' WHERE `id` = ' . intval($newManagerId)); } hesk_process_messages($hesklang['manager_updated'], './manage_categories.php', 'SUCCESS'); } ?>