$row): ?>
'; } ?> style=";">

'; } else { echo ' '; } if ($index !== $numberOfStatuses) { // Display move down echo ' '; } else { echo ''; } } function buildCreateModal() { global $hesklang, $hesk_settings; $languages = array(); foreach ($hesk_settings['languages'] as $key => $value) { $languages[$key] = $hesk_settings['languages'][$key]['folder']; } ?> $value) { $languages[$key] = $hesk_settings['languages'][$key]['folder']; } ?> 0) { // it's a default action return 'no-default'; } // check if any tickets have this status $statusRs = hesk_dbQuery("SELECT 1 FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."tickets` WHERE `status` = ".intval($id)); if (hesk_dbNumRows($statusRs) > 0) { return 'no-tickets'; } return 'yes'; } function echoWarningForStatus() { global $hesklang; echo ' '; } function createStatus() { global $hesklang, $hesk_settings; hesk_dbConnect(); // Create the new status record $isClosed = hesk_POST('closed'); $closable = hesk_POST('closable'); $textColor = hesk_POST('text-color'); /* Get the latest cat_order */ $res = hesk_dbQuery("SELECT `sort` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` ORDER BY `sort` DESC LIMIT 1"); $row = hesk_dbFetchRow($res); $my_order = $row[0]+10; // Get the next status id $res = hesk_dbQuery("SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` ORDER BY `ID` DESC LIMIT 1"); $row = hesk_dbFetchAssoc($res); $nextId = $row['ID'] + 1; $insert = "INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` (`ID`, `Key`, `TextColor`, `IsClosed`, `Closable`, `sort`) VALUES (".intval($nextId).", 'STORED IN XREF TABLE', '".hesk_dbEscape($textColor)."', ".intval($isClosed).", '".hesk_dbEscape($closable)."', ".intval($my_order).")"; hesk_dbQuery($insert); // For each language, create a value in the xref table foreach (hesk_POST_array('name') as $language => $translation) { hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."text_to_status_xref` (`language`, `text`, `status_id`) VALUES ('".hesk_dbEscape($language)."', '".hesk_dbEscape($translation)."', ".intval($nextId).")"); } hesk_process_messages($hesklang['new_status_created'],'manage_statuses.php','SUCCESS'); } function updateStatus() { global $hesklang, $hesk_settings; $statusId = hesk_POST('status-id'); $isClosed = hesk_POST('closed'); $closable = hesk_POST('closable'); $textColor = hesk_POST('text-color'); $update = "UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` SET `TextColor` = '".hesk_dbEscape($textColor)."', `IsClosed` = ".intval($isClosed).", `Closable` = '".hesk_dbEscape($closable)."' WHERE `ID` = ".intval($statusId); hesk_dbQuery($update); // For each language, delete the xref record and insert the new ones hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."text_to_status_xref` WHERE `status_id` = ".intval($statusId)); foreach (hesk_POST_array('name') as $language => $translation) { hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."text_to_status_xref` (`language`, `text`, `status_id`) VALUES ('".hesk_dbEscape($language)."', '".hesk_dbEscape($translation)."', ".intval($statusId).")"); } hesk_process_messages($hesklang['ticket_status_updated'],'manage_statuses.php','SUCCESS'); } function deleteStatus() { global $hesklang, $hesk_settings; $statusId = hesk_GET('id'); hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."text_to_status_xref` WHERE `status_id` = ".intval($statusId)); hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` WHERE `ID` = ".intval($statusId)); resortStatuses(); hesk_process_messages($hesklang['ticket_status_deleted'],'manage_statuses.php','SUCCESS'); } function moveStatus() { global $hesk_settings, $hesklang; $statusId = intval(hesk_GET('id')); $statusMove = intval(hesk_GET('move')); hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` SET `sort` = `sort`+".intval($statusMove)." WHERE `ID` = '".intval($statusId)."' LIMIT 1"); resortStatuses(); hesk_process_messages($hesklang['status_sort_updated'],'manage_statuses.php','SUCCESS'); } function resortStatuses() { global $hesk_settings; /* Update all category fields with new order */ $res = hesk_dbQuery("SELECT `ID` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` ORDER BY `sort` ASC"); $i = 10; while ($myStatus = hesk_dbFetchAssoc($res)) { hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` SET `sort`=".intval($i)." WHERE `ID`='".intval($myStatus['ID'])."' LIMIT 1"); $i += 10; } } function save() { global $hesklang, $hesk_settings; //-- Update default status for actions $defaultQuery = "UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."statuses` SET "; hesk_dbQuery($defaultQuery . "`IsNewTicketStatus` = 0"); $updateQuery = $defaultQuery . "`IsNewTicketStatus` = 1 WHERE `ID` = ".intval($_POST['newTicket']); hesk_dbQuery($updateQuery); hesk_dbQuery($defaultQuery . "`IsClosedByClient` = 0"); $updateQuery = $defaultQuery . "`IsClosedByClient` = 1 WHERE `ID` = ".intval($_POST['closedByClient']); hesk_dbQuery($updateQuery); hesk_dbQuery($defaultQuery . "`IsCustomerReplyStatus` = 0"); $updateQuery = $defaultQuery . "`IsCustomerReplyStatus` = 1 WHERE `ID` = ".intval($_POST['replyFromClient']); hesk_dbQuery($updateQuery); hesk_dbQuery($defaultQuery . "`IsStaffClosedOption` = 0"); $updateQuery = $defaultQuery . "`IsStaffClosedOption` = 1 WHERE `ID` = ".intval($_POST['staffClosedOption']); hesk_dbQuery($updateQuery); hesk_dbQuery($defaultQuery . "`IsStaffReopenedStatus` = 0"); $updateQuery = $defaultQuery . "`IsStaffReopenedStatus` = 1 WHERE `ID` = ".intval($_POST['staffReopenedStatus']); hesk_dbQuery($updateQuery); hesk_dbQuery($defaultQuery . "`IsDefaultStaffReplyStatus` = 0"); $updateQuery = $defaultQuery . "`IsDefaultStaffReplyStatus` = 1 WHERE `ID` = ".intval($_POST['defaultStaffReplyStatus']); hesk_dbQuery($updateQuery); hesk_dbQuery($defaultQuery . "`LockedTicketStatus` = 0"); $updateQuery = $defaultQuery . "`LockedTicketStatus` = 1 WHERE `ID` = ".intval($_POST['lockedTicketStatus']); hesk_dbQuery($updateQuery); hesk_dbQuery($defaultQuery . "`IsAutocloseOption` = 0"); $updateQuery = $defaultQuery . "`IsAutocloseOption` = 1 WHERE `ID` = ".intval($_POST['autocloseTicketOption']); hesk_dbQuery($updateQuery); hesk_process_messages($hesklang['default_statuses_updated'],'manage_statuses.php','SUCCESS'); }