From dd958b694604037d10c5a0823a5bc94aacba957c Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Wed, 14 Jan 2015 16:57:20 -0500 Subject: [PATCH] #110 Update Service Messages page --- admin/service_messages.php | 653 +++++++++++++++++++++++++++++++++++++ inc/common.inc.php | 17 +- inc/show_admin_nav.inc.php | 4 +- 3 files changed, 666 insertions(+), 8 deletions(-) create mode 100644 admin/service_messages.php diff --git a/admin/service_messages.php b/admin/service_messages.php new file mode 100644 index 00000000..40939492 --- /dev/null +++ b/admin/service_messages.php @@ -0,0 +1,653 @@ + + +
+ +
+ +
+ + + +
+
+

+
+
+ '.$hesklang['no_sm'].'

'; + } + else + { + // List of staff + if ( ! isset($admins) ) + { + $admins = array(); + $res2 = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."users`"); + while ($row=hesk_dbFetchAssoc($res2)) + { + $admins[$row['id']]=$row['name']; + } + } + + ?> + + + + + + + + + + + + + + + + + + + +
  
+
+ + +
+
+ 1) + { + if ($k == 1) + { + ?> + + + + + + + + + + + + + + + + +  
+
+ + + +
+
+ +
+
+ +
+
+

+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
+ > +
+
+
+ +
+ +
+
+
+ ' : ''; ?> + +
+
+ + +
+
+
+
+
+
+
+
+
+ + 4 || $style < 0) + { + $style = 0; + } + + $type = empty($_POST['type']) ? 0 : 1; + $title = hesk_input( hesk_POST('title') ) or $hesk_error_buffer[] = $hesklang['sm_e_title']; + $message = hesk_getHTML( hesk_POST('message') ); + + // Any errors? + if (count($hesk_error_buffer)) + { + $_SESSION['edit_sm'] = true; + $hesklang['new_sm'] = $hesklang['edit_sm']; + + $_SESSION['new_sm'] = array( + 'id' => $id, + 'style' => $style, + 'type' => $type, + 'title' => $title, + 'message' => hesk_input( hesk_POST('message') ), + ); + + $tmp = ''; + foreach ($hesk_error_buffer as $error) + { + $tmp .= "
  • $error
  • \n"; + } + $hesk_error_buffer = $tmp; + + $hesk_error_buffer = $hesklang['rfm'].'

    '; + hesk_process_messages($hesk_error_buffer,'service_messages.php'); + } + + // Just preview the message? + if ( isset($_POST['sm_preview']) ) + { + $_SESSION['preview_sm'] = true; + $_SESSION['edit_sm'] = true; + $hesklang['new_sm'] = $hesklang['edit_sm']; + + $_SESSION['new_sm'] = array( + 'id' => $id, + 'style' => $style, + 'type' => $type, + 'title' => $title, + 'message' => $message, + ); + + header('Location: service_messages.php'); + exit; + } + + // Update the service message in the database + hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` SET + `author` = '".intval($_SESSION['id'])."', + `title` = '".hesk_dbEscape($title)."', + `message` = '".hesk_dbEscape($message)."', + `style` = '{$style}', + `type` = '{$type}' + WHERE `id`={$id} LIMIT 1"); + + $_SESSION['smord'] = $id; + hesk_process_messages($hesklang['sm_mdf'],'service_messages.php','SUCCESS'); + +} // End save_sm() + + +function edit_sm() +{ + global $hesk_settings, $hesklang; + + // Get service messageID + $id = intval( hesk_GET('id') ) or hesk_error($hesklang['sm_e_id']); + + // Get details from the database + $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` WHERE `id`={$id} LIMIT 1"); + if ( hesk_dbNumRows($res) != 1 ) + { + hesk_error($hesklang['sm_not_found']); + } + $sm = hesk_dbFetchAssoc($res); + + $_SESSION['new_sm'] = $sm; + $_SESSION['edit_sm'] = true; + + $hesklang['new_sm'] = $hesklang['edit_sm']; + +} // End edit_sm() + + +function order_sm() +{ + global $hesk_settings, $hesklang; + + // A security check + hesk_token_check(); + + // Get ID and move parameters + $id = intval( hesk_GET('id') ) or hesk_error($hesklang['sm_e_id']); + $move = intval( hesk_GET('move') ); + $_SESSION['smord'] = $id; + + // Update article details + hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` SET `order`=`order`+".intval($move)." WHERE `id`={$id} LIMIT 1"); + + // Update order of all service messages + update_sm_order(); + + // Finish + header('Location: service_messages.php'); + exit(); + +} // End order_sm() + + +function update_sm_order() +{ + global $hesk_settings, $hesklang; + + // Get list of current service messages + $res = hesk_dbQuery("SELECT `id` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` ORDER BY `order` ASC"); + + // Update database + $i = 10; + while ( $sm = hesk_dbFetchAssoc($res) ) + { + hesk_dbQuery("UPDATE `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` SET `order`=".intval($i)." WHERE `id`='".intval($sm['id'])."' LIMIT 1"); + $i += 10; + } + + return true; + +} // END update_sm_order() + + +function remove_sm() +{ + global $hesk_settings, $hesklang; + + // A security check + hesk_token_check(); + + // Get ID + $id = intval( hesk_GET('id') ) or hesk_error($hesklang['sm_e_id']); + + // Delete the service message + hesk_dbQuery("DELETE FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` WHERE `id`={$id} LIMIT 1"); + + // Were we successful? + if ( hesk_dbAffectedRows() == 1 ) + { + hesk_process_messages($hesklang['sm_deleted'],'./service_messages.php','SUCCESS'); + } + else + { + hesk_process_messages($hesklang['sm_not_found'],'./service_messages.php'); + } + +} // End remove_sm() + + +function new_sm() +{ + global $hesk_settings, $hesklang, $listBox; + global $hesk_error_buffer; + + // A security check + # hesk_token_check('POST'); + + $hesk_error_buffer = array(); + + $style = intval( hesk_POST('style', 0) ); + if ($style > 4 || $style < 0) + { + $style = 0; + } + + $type = empty($_POST['type']) ? 0 : 1; + $title = hesk_input( hesk_POST('title') ) or $hesk_error_buffer[] = $hesklang['sm_e_title']; + $message = hesk_getHTML( hesk_POST('message') ); + + // Any errors? + if (count($hesk_error_buffer)) + { + $_SESSION['new_sm'] = array( + 'style' => $style, + 'type' => $type, + 'title' => $title, + 'message' => hesk_input( hesk_POST('message') ), + ); + + $tmp = ''; + foreach ($hesk_error_buffer as $error) + { + $tmp .= "
  • $error
  • \n"; + } + $hesk_error_buffer = $tmp; + + $hesk_error_buffer = $hesklang['rfm'].'

    '; + hesk_process_messages($hesk_error_buffer,'service_messages.php'); + } + + // Just preview the message? + if ( isset($_POST['sm_preview']) ) + { + $_SESSION['preview_sm'] = true; + + $_SESSION['new_sm'] = array( + 'style' => $style, + 'type' => $type, + 'title' => $title, + 'message' => $message, + ); + + header('Location: service_messages.php'); + exit; + } + + // Get the latest service message order + $res = hesk_dbQuery("SELECT `order` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` ORDER BY `order` DESC LIMIT 1"); + $row = hesk_dbFetchRow($res); + $my_order = intval($row[0]) + 10; + + // Insert service message into database + hesk_dbQuery("INSERT INTO `".hesk_dbEscape($hesk_settings['db_pfix'])."service_messages` (`author`,`title`,`message`,`style`,`type`,`order`) VALUES ( + '".intval($_SESSION['id'])."', + '".hesk_dbEscape($title)."', + '".hesk_dbEscape($message)."', + '{$style}', + '{$type}', + '{$my_order}' + )"); + + $_SESSION['smord'] = hesk_dbInsertID(); + hesk_process_messages($hesklang['sm_added'],'service_messages.php','SUCCESS'); + +} // End new_sm() + +?> diff --git a/inc/common.inc.php b/inc/common.inc.php index 21e399a7..b68338d7 100644 --- a/inc/common.inc.php +++ b/inc/common.inc.php @@ -65,19 +65,24 @@ hesk_getLanguage(); function hesk_service_message($sm) { + $faIcon = ""; switch ($sm['style']) { case 1: - $style = "success"; + $style = "alert alert-success"; + $faIcon = "fa fa-check-circle"; break; case 2: - $style = "info"; + $style = "alert alert-info"; + $faIcon = "fa fa-comment"; break; case 3: - $style = "notice"; + $style = "alert alert-warning"; + $faIcon = "fa fa-exclamation-triangle"; break; case 4: - $style = "error"; + $style = "alert alert-danger"; + $faIcon = "fa fa-times-circle"; break; default: $style = "none"; @@ -85,8 +90,8 @@ function hesk_service_message($sm) ?>
    - '; ?> - + '; ?> +

    +
    '; hesk_show_notice($hesklang['mma2'], $hesklang['mma1'], false); } // Show a notice if we are in "Knowledgebase only" mode if ( hesk_check_kb_only(false) ) { - echo '
    '; hesk_show_notice($hesklang['kbo2'], $hesklang['kbo1'], false); } ?> +