From 1a825b81afcc04024358867456e0c2955859cb29 Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Sun, 26 Jul 2015 21:23:04 -0400 Subject: [PATCH] #209 Statuses can now be edited --- admin/manage_statuses.php | 158 +++++++++++++++++++++++++++++++++++++- inc/common.inc.php | 8 ++ language/en/text.php | 4 + 3 files changed, 167 insertions(+), 3 deletions(-) diff --git a/admin/manage_statuses.php b/admin/manage_statuses.php index 0336575c..3c0a3ccc 100644 --- a/admin/manage_statuses.php +++ b/admin/manage_statuses.php @@ -21,8 +21,12 @@ define('WYSIWYG',1); if (isset($_POST['a'])) { if ($_POST['a'] == 'create') { createStatus(); + } elseif ($_POST['a'] == 'update') { + updateStatus(); } } + + /* Print header */ require_once(HESK_PATH . 'inc/headerAdmin.inc.php'); @@ -142,16 +146,17 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); - + + data-toggle="tooltip" title=""> + - + @@ -397,6 +402,129 @@ function buildCreateModal() { $value) { + $languages[$key] = $hesk_settings['languages'][$key]['folder']; + } + ?> + + '; +} + function createStatus() { global $hesklang, $hesk_settings; @@ -421,6 +549,30 @@ function createStatus() { 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($newStatusId).")"); + } + + hesk_process_messages($hesklang['ticket_status_updated'],'manage_statuses.php','SUCCESS'); +} + function save() { global $hesklang, $hesk_settings; diff --git a/inc/common.inc.php b/inc/common.inc.php index 65843184..5a6a7074 100644 --- a/inc/common.inc.php +++ b/inc/common.inc.php @@ -1949,6 +1949,14 @@ function hesk_getFeatureArray() { ); } +function mfh_doesStatusHaveXrefRecord($statusId, $language) { + global $hesk_settings; + + $rs = hesk_dbQuery("SELECT 1 FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."text_to_status_xref` + WHERE `language` = '".hesk_dbEscape($language)."' AND `status_id` = ".intval($statusId)); + return hesk_dbNumRows($rs) > 0; +} + function mfh_getDisplayTextForStatusId($statusId) { global $hesklang, $hesk_settings; diff --git a/language/en/text.php b/language/en/text.php index b98e82c1..fa4dff3e 100644 --- a/language/en/text.php +++ b/language/en/text.php @@ -39,6 +39,10 @@ $hesklang['status_name_title'] = 'Status Name'; $hesklang['properties'] = 'Properties'; $hesklang['closable'] = 'Closable'; // Same as $hesklang['closable_question'], but without punctuation $hesklang['new_status_created'] = 'New status successfully created'; +$hesklang['editing_status_x'] = 'Editing status %s'; // 1st %s: text color, 2nd %s: status name +$hesklang['status_not_in_database'] = 'The status text for this language was not found in the database, so a suggested translation has been filled for you. + Please click "Save Changes" to save this translation to the database and to remove this warning.'; +$hesklang['ticket_status_updated'] = 'Ticket status successfully updated!'; // ADDED OR MODIFIED IN Mods for HESK 2.3.0 $hesklang['sm_icon'] = 'Icon';