From 9edb0095a42c6d65985f790ca1a85e8c134f24ba Mon Sep 17 00:00:00 2001 From: Mike Koch Date: Fri, 3 Jul 2015 22:23:09 -0400 Subject: [PATCH] #274 Add category sort property for dropdowns and table --- admin/admin_ticket.php | 3 ++- admin/export.php | 4 +++- admin/manage_categories.php | 10 ++++++---- admin/manage_permission_templates.php | 4 +++- admin/manage_users.php | 4 +++- admin/new_ticket.php | 3 ++- inc/ticket_list.inc.php | 3 ++- index.php | 3 ++- modsForHesk_settings.inc.php | 5 ++++- 9 files changed, 27 insertions(+), 12 deletions(-) diff --git a/admin/admin_ticket.php b/admin/admin_ticket.php index 5599d452..cf9d1a84 100644 --- a/admin/admin_ticket.php +++ b/admin/admin_ticket.php @@ -607,7 +607,8 @@ if (isset($_POST['latitude']) && isset($_POST['longitude'])) { require_once(HESK_PATH . 'inc/headerAdmin.inc.php'); /* List of categories */ -$result = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `cat_order` ASC"); +$orderBy = $modsForHesk_settings['category_order_column']; +$result = hesk_dbQuery("SELECT `id`,`name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `".$orderBy."` ASC"); $categories_options=''; while ($row=hesk_dbFetchAssoc($result)) { diff --git a/admin/export.php b/admin/export.php index aa0d9ae2..c9a2db84 100644 --- a/admin/export.php +++ b/admin/export.php @@ -36,6 +36,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); require(HESK_PATH . 'inc/reporting_functions.inc.php'); @@ -326,7 +327,8 @@ $can_view_unassigned = hesk_checkPermission('can_view_unassigned',0); // Category options $category_options = ''; $my_cat = array(); -$res2 = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE " . hesk_myCategories('id') . " ORDER BY `cat_order` ASC"); +$orderBy = $modsForHesk_settings['category_order_column']; +$res2 = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE " . hesk_myCategories('id') . " ORDER BY `".$orderBy."` ASC"); while ($row=hesk_dbFetchAssoc($res2)) { $my_cat[$row['id']] = hesk_msgToPlain($row['name'], 1); diff --git a/admin/manage_categories.php b/admin/manage_categories.php index 2afc7b0f..12c6f337 100644 --- a/admin/manage_categories.php +++ b/admin/manage_categories.php @@ -37,6 +37,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); hesk_load_database_functions(); @@ -87,8 +88,9 @@ else {return false;} //--> - 1) + if ($orderBy != 'name' && $num > 1) { if ($j == 1) { diff --git a/admin/manage_permission_templates.php b/admin/manage_permission_templates.php index b8e1bcb6..55f0b773 100644 --- a/admin/manage_permission_templates.php +++ b/admin/manage_permission_templates.php @@ -37,6 +37,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); hesk_load_database_functions(); @@ -81,7 +82,8 @@ else {return false;} array_push($templates, $row); } $featureArray = hesk_getFeatureArray(); - $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `name` ASC"); + $orderBy = $modsForHesk_settings['category_order_column']; + $res = hesk_dbQuery("SELECT * FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` ORDER BY `".$orderBy."` ASC"); $categories = array(); while ($row = hesk_dbFetchAssoc($res)) { array_push($categories, $row); diff --git a/admin/manage_users.php b/admin/manage_users.php index 24ab1842..0deacacf 100644 --- a/admin/manage_users.php +++ b/admin/manage_users.php @@ -37,6 +37,7 @@ define('HESK_PATH','../'); /* Get all the required files and functions */ require(HESK_PATH . 'hesk_settings.inc.php'); +require(HESK_PATH . 'modsForHesk_settings.inc.php'); require(HESK_PATH . 'inc/common.inc.php'); require(HESK_PATH . 'inc/admin_functions.inc.php'); require(HESK_PATH . 'inc/profile_functions.inc.php'); @@ -93,8 +94,9 @@ $default_userdata = array( ); /* A list of all categories */ +$orderBy = $modsForHesk_settings['category_order_column']; $hesk_settings['categories'] = array(); -$res = hesk_dbQuery('SELECT `id`,`name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `cat_order` ASC'); +$res = hesk_dbQuery('SELECT `id`,`name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `'.$orderBy.'` ASC'); while ($row=hesk_dbFetchAssoc($res)) { if ( hesk_okCategory($row['id'], 0) ) diff --git a/admin/new_ticket.php b/admin/new_ticket.php index deff1318..c80e0a54 100644 --- a/admin/new_ticket.php +++ b/admin/new_ticket.php @@ -209,7 +209,8 @@ require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); } // List categories - $result = hesk_dbQuery('SELECT * FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `cat_order` ASC'); + $orderByColumn = $modsForHesk_settings['category_order_column']; + $result = hesk_dbQuery('SELECT * FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` ORDER BY `'.$orderByColumn.'` ASC'); while ($row=hesk_dbFetchAssoc($result)) { if (isset($_SESSION['as_category']) && $_SESSION['as_category'] == $row['id']) {$selected = ' selected="selected"';} diff --git a/inc/ticket_list.inc.php b/inc/ticket_list.inc.php index 90e8289c..762c6896 100644 --- a/inc/ticket_list.inc.php +++ b/inc/ticket_list.inc.php @@ -47,8 +47,9 @@ if (!isset($admins)) } /* List of categories */ +$orderBy = $modsForHesk_settings['category_order_column']; $hesk_settings['categories'] = array(); -$res2 = hesk_dbQuery('SELECT `id`, `name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` WHERE ' . hesk_myCategories('id') . ' ORDER BY `cat_order` ASC'); +$res2 = hesk_dbQuery('SELECT `id`, `name` FROM `'.hesk_dbEscape($hesk_settings['db_pfix']).'categories` WHERE ' . hesk_myCategories('id') . ' ORDER BY `'.$orderBy.'` ASC'); while ($row=hesk_dbFetchAssoc($res2)) { $hesk_settings['categories'][$row['id']] = $row['name']; diff --git a/index.php b/index.php index 47d0946d..bdc5fbc6 100644 --- a/index.php +++ b/index.php @@ -224,7 +224,8 @@ if ( ! isset($_SESSION['c_category']) && ! $hesk_settings['select_cat']) // Get categories hesk_dbConnect(); - $res = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE `type`='0' ORDER BY `cat_order` ASC"); + $orderBy = $modsForHesk_settings['category_order_column']; + $res = hesk_dbQuery("SELECT `id`, `name` FROM `".hesk_dbEscape($hesk_settings['db_pfix'])."categories` WHERE `type`='0' ORDER BY `".$orderBy."` ASC"); if (hesk_dbNumRows($res) == 1) { diff --git a/modsForHesk_settings.inc.php b/modsForHesk_settings.inc.php index 3406ac42..0c68bc26 100644 --- a/modsForHesk_settings.inc.php +++ b/modsForHesk_settings.inc.php @@ -46,4 +46,7 @@ $modsForHesk_settings['attachments'] = 0; $modsForHesk_settings['show_number_merged'] = 1; //-- Setting for requesting user's location. 0 = Disable, 1 = Enable -$modsForHesk_settings['request_location'] = 0; \ No newline at end of file +$modsForHesk_settings['request_location'] = 0; + +//-- Column to sort categories by. Can be either 'name' or 'cat_order' +$modsForHesk_settings['category_order_column'] = 'cat_order'; \ No newline at end of file