From efaa8c310dcaaf99eed61f2be718264a9c2a7865 Mon Sep 17 00:00:00 2001 From: Robert Sesek Date: Tue, 25 Jul 2006 21:50:18 +0000 Subject: [PATCH] r944: Adding user options in the API and admin section for the default sort override --- admin/user.php | 7 +++++ docs/schema_changes.sql | 4 +++ includes/api_user.php | 63 ++++++++++++++++++++++++++++++++--------- 3 files changed, 60 insertions(+), 14 deletions(-) diff --git a/admin/user.php b/admin/user.php index 0db0089..2e53d24 100644 --- a/admin/user.php +++ b/admin/user.php @@ -21,6 +21,7 @@ require_once('./global.php'); require_once('./includes/api_user.php'); +require_once('./includes/class_sort.php'); require_once('./includes/class_api_error.php'); APIError(array(new API_Error_Handler($admin), 'admin_error')); @@ -74,6 +75,8 @@ if ($_POST['do'] == 'insert') $user->set('usedst', $bugsys->in['usedst']); $user->set('password', $bugsys->in['password']); $user->set('hidestatuses', $bugsys->in['hidestatuses']); + $user->set('defaultsorkey', $bugsys->in['defaultsortkey']); + $user->set('defaultsortas', $bugsys->in['defaultsortas']); $user->insert(); $admin->redirect('user.php?do=edit&userid=' . $user->insertid); @@ -96,6 +99,8 @@ if ($_POST['do'] == 'update') $user->set('usedst', $bugsys->in['usedst']); $user->set('password', $bugsys->in['password']); $user->set('hidestatuses', $bugsys->in['hidestatuses']); + $user->set('defaultsorkey', $bugsys->in['defaultsortkey']); + $user->set('defaultsortas', $bugsys->in['defaultsortas']); $user->update(); $admin->redirect('user.php?do=edit&userid=' . $user->objdata['userid']); @@ -164,6 +169,8 @@ if ($_REQUEST['do'] == 'edit' OR $_REQUEST['do'] == 'add') $admin->row_yesno($lang->string('Observe Daylight Savings Time (DST)'), 'usedst', $user->objdata['usedst']); $admin->row_text($lang->string('Hidden Statuses on Bug Listing'), construct_option_select('hidestatuses', $bugsys->datastore['status'], $user->objdata['hidestatuses'], 'statusid', 'status', 0, true)); + $admin->row_text($lang->string('Default Sort Order Column'), construct_option_select('defaultsortkey', ListSorter::fetch_by_text(false), $user->objdata['defaultsortkey'])); + $admin->row_text($lang->string('Default Sort Order Direction'), construct_option_select('defaultsortas', ListSorter::fetch_as_text(false), $user->objdata['defaultsortas'])); $admin->row_submit(); diff --git a/docs/schema_changes.sql b/docs/schema_changes.sql index 8b9ee8c..2fca7ba 100644 --- a/docs/schema_changes.sql +++ b/docs/schema_changes.sql @@ -24,3 +24,7 @@ ALTER TABLE bug CHANGE productid product INT(10) UNSIGNED NOT NULL DEFAULT '0'; ALTER TABLE bug CHANGE componentid component INT(10) UNSIGNED NOT NULL DEFAULT '0'; ALTER TABLE bug CHANGE versionid version INT(10) UNSIGNED NOT NULL DEFAULT '0'; + +ALTER TABLE bug ADD defaultsortkey varchar(50) NULL; + +ALTER TABLE bug ADD defaultsortas varchar(10) NULL; diff --git a/includes/api_user.php b/includes/api_user.php index d457a33..7bb2836 100644 --- a/includes/api_user.php +++ b/includes/api_user.php @@ -22,6 +22,7 @@ $GLOBALS['isso:callback']->load('api', null); require_once('./includes/functions_datastore.php'); +require_once('./includes/class_sort.php'); /** * API: User @@ -40,19 +41,21 @@ class UserAPI extends API * @access private */ var $fields = array( - 'userid' => array(TYPE_UINT, REQ_AUTO, 'verify_nozero'), - 'email' => array(TYPE_STR, REQ_YES, ':self'), - 'displayname' => array(TYPE_STR, REQ_YES, ':self'), - 'usergroupid' => array(TYPE_UINT, REQ_YES, ':self'), - 'password' => array(TYPE_STR, REQ_YES), - 'salt' => array(TYPE_STR, REQ_SET), - 'authkey' => array(TYPE_STR, REQ_SET), - 'showemail' => array(TYPE_BOOL, REQ_NO), - 'showcolours' => array(TYPE_BOOL, REQ_NO), - 'languageid' => array(TYPE_UINT, REQ_NO), - 'timezone' => array(TYPE_INT, REQ_NO), - 'usedst' => array(TYPE_BOOL, REQ_NO), - 'hidestatuses' => array(TYPE_STR, REQ_NO, ':self') + 'userid' => array(TYPE_UINT, REQ_AUTO, 'verify_nozero'), + 'email' => array(TYPE_STR, REQ_YES, ':self'), + 'displayname' => array(TYPE_STR, REQ_YES, ':self'), + 'usergroupid' => array(TYPE_UINT, REQ_YES, ':self'), + 'password' => array(TYPE_STR, REQ_YES), + 'salt' => array(TYPE_STR, REQ_SET), + 'authkey' => array(TYPE_STR, REQ_SET), + 'showemail' => array(TYPE_BOOL, REQ_NO), + 'showcolours' => array(TYPE_BOOL, REQ_NO), + 'languageid' => array(TYPE_UINT, REQ_NO), + 'timezone' => array(TYPE_INT, REQ_NO), + 'usedst' => array(TYPE_BOOL, REQ_NO), + 'hidestatuses' => array(TYPE_STR, REQ_NO, ':self'), + 'defaultsortkey' => array(TYPE_STR, REQ_NO, ':self'), + 'defaultsortas' => array(TYPE_STR, REQ_NO, ':self') ); /** @@ -249,7 +252,7 @@ class UserAPI extends API /** * Verify: hidestatuses * - * @access public + * @access private */ function verify_hidestatuses() { @@ -260,6 +263,38 @@ class UserAPI extends API return true; } + + // ################################################################### + /** + * Verify: defaultsortkey + * + * @access private + */ + function verify_defaultsortkey() + { + if (!ListSorter::fetch_by_text($this->values['defaultsortkey'])) + { + return false; + } + + return true; + } + + // ################################################################### + /** + * Verify: defaultsortas + * + * @access private + */ + function verify_defaultsortas() + { + if (!ListSorter::fetch_as_text($this->values['defaultsortas'])) + { + return false; + } + + return true; + } } /*=====================================================================*\ -- 2.22.5