From 60b90d01cd6ab67d7966b2c5ac71dd33ed9e5d54 Mon Sep 17 00:00:00 2001 From: Robert Sesek Date: Sat, 9 Dec 2006 21:17:34 +0000 Subject: [PATCH] r1338: Incomplete JavaScript implementation of column ordering options --- docs/arrow_solid.psd | Bin 0 -> 31974 bytes docs/schema_changes.sql | 2 ++ includes/api_user.php | 18 ++++++++++++- includes/init.php | 1 + includes/permissions.php | 30 ++++++++++++++++++++++ templates/images/arrow_down.gif | Bin 0 -> 60 bytes templates/images/arrow_up.gif | Bin 0 -> 60 bytes templates/userctrl.tpl | 43 +++++++++++++++++++++++++++++--- userctrl.php | 20 ++++++++++++++- 9 files changed, 109 insertions(+), 5 deletions(-) create mode 100644 docs/arrow_solid.psd create mode 100644 templates/images/arrow_down.gif create mode 100644 templates/images/arrow_up.gif diff --git a/docs/arrow_solid.psd b/docs/arrow_solid.psd new file mode 100644 index 0000000000000000000000000000000000000000..52a8d5542c7115ea3b29004be8d0713c9f00b8ec GIT binary patch literal 31974 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 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') + 'defaultsortas' => array(TYPE_STR, REQ_NO, ':self'), + 'columnoptions' => array(TYPE_STR, REQ_NO, ':self') ); /** @@ -314,6 +315,21 @@ class UserAPI extends API return true; } + + // ################################################################### + /** + * Verify: columnoptions + * + * @access private + */ + function verify_columnoptions() + { + if (is_array($this->values['columnoptiopns'])) + { + $this->set('columnoptions', serialize($this->values['columnoptions'])); + } + return true; + } } /*=====================================================================*\ diff --git a/includes/init.php b/includes/init.php index dcf4dca..783f9b8 100755 --- a/includes/init.php +++ b/includes/init.php @@ -110,6 +110,7 @@ if ($userid) $userinfo['permissions'] = (int)$bugsys->datastore['usergroup']["$userinfo[usergroupid]"]['permissions']; $userinfo['displaytitle'] = $bugsys->datastore['usergroup']["$userinfo[usergroupid]"]['displaytitle']; $bugsys->userinfo = $userinfo; + $bugsys->userinfo['columnoptions'] = unserialize($bugsys->userinfo['columnoptions']); $funct->cookie(COOKIE_PREFIX . 'userid', $bugsys->userinfo['userid']); $funct->cookie(COOKIE_PREFIX . 'authkey', $bugsys->userinfo['authkey']); } diff --git a/includes/permissions.php b/includes/permissions.php index 8ef5a2b..fbd9353 100644 --- a/includes/permissions.php +++ b/includes/permissions.php @@ -71,6 +71,36 @@ $bugsys->emailoptions = array( ) ); +$bugsys->columns = array( + 'bugid' => 1, + 'summary' => 2, + 'userid' => 4, + 'product' => 8, + 'component' => 16, + 'version' => 32, + 'status' => 64, + 'resolution' => 128, + 'priority' => 256, + 'severity' => 512, + 'lastpost' => 1024, + 'votes' => 2048 +); + +$bugsys->columnNames = array( + 'bugid' => _('Bug ID'), + 'summary' => _('Summary'), + 'userid' => _('Reporter'), + 'product' => _('Product'), + 'component' => _('Component'), + 'version' => _('Version'), + 'status' => _('Status'), + 'resolution' => _('Resolution'), + 'priority' => _('Priority'), + 'severity' => _('Severity'), + 'lastpost' => _('Last Post'), + 'votes' => _('Votes') +); + /*=====================================================================*\ || ################################################################### || # $HeadURL$ diff --git a/templates/images/arrow_down.gif b/templates/images/arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..1e4aef55d103caa18e5a3a0f1eb3aa59ac187f67 GIT binary patch literal 60 zcmZ?wbhEHbjEB<5wG8q|kKzxu41Cwx1|H{*E`5!ZGX-ZqaI`A}q JTM{FKH2|~H5O@Fp literal 0 HcmV?d00001 diff --git a/templates/images/arrow_up.gif b/templates/images/arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..314c44951f957a28115d1113d5ac0cade0f3bfa5 GIT binary patch literal 60 zcmZ?wbhEHbjEB<5wG8q|kKzxu41Cwx1|H{*E`2{-`?CX-gxA8ZB Jn {$bugsys->options['trackertitle']} - {@"User Options"} + + @@ -64,9 +96,7 @@ $header - -
- +
@@ -202,6 +232,13 @@ $header {@"Default Sort Order Direction"} $defaultsortas + +
+ {@"Bug List Columns"} + + $columnOptions +
+
diff --git a/userctrl.php b/userctrl.php index caece8b..1e6c181 100644 --- a/userctrl.php +++ b/userctrl.php @@ -20,7 +20,8 @@ \*=====================================================================*/ $fetchtemplates = array( - 'userctrl' + 'userctrl', + 'userctrl_column' ); define('SVN', '$Id$'); @@ -225,6 +226,23 @@ if ($_REQUEST['do'] == 'modify') } } + $position = 0; + $columns = '{ '; + $array = ((is_array($bugsys->userinfo['columnoptions']) AND sizeof($bugsys->userinfo['columnoptions']) == sizeof($bugsys->columns)) ? $bugsys->userinfo['columnoptions'] : $bugsys->columns); + foreach ($array AS $column => $mask) + { + $columnName = $bugsys->columnNames["$column"]; + eval('$columnOptions .= "' . $template->fetch('userctrl_column') . '";'); + $columns = ''; + $position++; + } + + $columns = array(); + if (!is_array($bugsys->in['columns'])) + { + $columns = '{"' . implode('": "', $bugsys->userinfo['columnoptions']) . '"}'; + } + eval('$template->flush("' . $template->fetch('userctrl') . '");'); } -- 2.22.5