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';