From: Joe Presbrey Date: Mon, 7 Nov 2005 23:59:20 +0000 (+0000) Subject: admin usertable paging and sort X-Git-Url: http://andersk.mit.edu/gitweb/sql-web.git/commitdiff_plain/77bd96856c2fc1ac3730e3c01d875506ce2ba2a5 admin usertable paging and sort URI fixed to REDIRECT_URI instead of REQUEST_URI git-svn-id: svn://presbrey.mit.edu/sql/mitsql@79 a142d4bd-2cfb-0310-9673-cb33a7e74f58 --- diff --git a/admin/main.php b/admin/main.php index 0852432..2575ca7 100755 --- a/admin/main.php +++ b/admin/main.php @@ -11,14 +11,37 @@ if ((isAdmin() || isImpersonating()) && isset($i_impersonate)) { if (!isAdmin()) redirectStart(); -// INNER JOIN UserStat ON User.UserId = UserStat.UserId -$sql = sprintf("SELECT User.UserId,Username,Name,dSignup,dLastCheck,nBytes,nBytesSoft,nBytesHard +empty($i_pagesize) && $i_pagesize=20; +empty($i_page) && $i_page=1; +empty($i_sortby) && $i_sortby='dSignup'; +empty($i_sortorder) && $i_sortorder=0; + +if ($i_sortorder>0) $sortSQL = 'ASC'; else $sortSQL = 'DESC'; + +$i_pagesize = mysql_escape_string($i_pagesize); +$i_page = mysql_escape_string($i_page); +$i_sortby = mysql_escape_string($i_sortby); + +$columns = array('','Username','Name','nBytes','nBytesHard','nBytesOver','dSignup'); + +$userCount = 0; +$sqlc = "SELECT COUNT(*) as c FROM User WHERE bEnabled=1"; +$r = fetchRows(DBSelect($sqlc)); +$r = array_shift($r); +count($r) && $userCount = array_shift($r); + +$sql = sprintf("SELECT User.UserId,Username,Name,dSignup,dLastCheck,nBytes,nBytesSoft,nBytesHard, + IF(nBytes>nBytesHard,nBytes-nBytesHard,0) as nBytesOver FROM User NATURAL JOIN UserStat NATURAL JOIN UserQuota WHERE bEnabled=1 - ORDER BY dSignup DESC"); -// ORDER BY nBytes DESC"); + ORDER BY $i_sortby $sortSQL"); + +$sql .= ' LIMIT '.($i_page-1)*$i_pagesize.','.$i_pagesize; +$pageArray = range(1,ceil($userCount/$i_pagesize)); +$pageCount = count($pageArray); + $users = fetchRows(DBSelect($sql),'UserId'); include 'tpl/head.php'; @@ -27,34 +50,60 @@ include 'tpl/head.php'; ',$userCount,' users | '; +if ($i_page > 1) $tPagePrev = ' Prev'; else $tPagePrev = 'First'; +if ($i_page < $pageCount) $tPageNext = ' Next'; else $tPageNext = 'Last'; +if (!empty($tPageNext) && empty($tPagePrev)) echo($tPageNext); +elseif (empty($tPageNext) && !empty($tPagePrev)) echo($tPagePrev); +else echo "$tPagePrev | $tPageNext"; + +/* +echo ' | Skip to: '; +foreach($pageArray as $availablePage) { + echo ' '.$availablePage.''; +} +*/ + +echo ' | Page '.$i_page.' of '.$pageCount.' by '.$i_sortby; + echo ''; +echo ''; +foreach($columns as $column) { + if (!empty($column)) { + $qsa = array('sortby'=>$column); + if ($column==$i_sortby) + $qsa['sortorder']=abs($i_sortorder-1); + echo ''; + } else echo ''; +} +echo ''; foreach($users as $id=>$user) { echo ''; } echo '
'.$column.'
', $user['UserId'], '', '', $user['Username'], - '', + '', $user['Name'], - '', + '', sprintSize($user['nBytes']), '', sprintSize($user['nBytesHard']), '', - $user['dSignup'], + sprintSize($user['nBytesOver']), '', - $user['dLastCheck'], + $user['dSignup'], +// '', +// $user['dLastCheck'], '
'; -echo '',count($users),' users'; - include 'tpl/foot.php'; ?> diff --git a/mitsql.cfg.php b/mitsql.cfg.php index 491429c..8702660 100755 --- a/mitsql.cfg.php +++ b/mitsql.cfg.php @@ -26,7 +26,8 @@ defined('ADMINPASS') || define('ADMINPASS', base64_decode('TXlCZWF0c1Bvc3RA')); defined('ADMINDB') || define('ADMINDB', 'mitsql'); $BASE_PATH = dirname(__FILE__).'/'; -$URI = (isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:''); +$URI = (isset($_SERVER["REDIRECT_URL"])?$_SERVER["REDIRECT_URL"]:''); +$URI = ((empty($URI) && isset($_SERVER['REQUEST_URI']))?$_SERVER['REQUEST_URI']:$URI); set_time_limit(0); ignore_user_abort(1);