From 4a7108a3fcc67fc8fcc621b2a7b3ec08176bc0b7 Mon Sep 17 00:00:00 2001 From: dongsheng Date: Wed, 14 Jan 2009 06:05:33 +0000 Subject: [PATCH] "FILEPICKER/MDL-17888, improve paging performance in file picker" --- repository/javascript.php | 50 ++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/repository/javascript.php b/repository/javascript.php index 759cd4eb63..7003f36924 100644 --- a/repository/javascript.php +++ b/repository/javascript.php @@ -84,6 +84,7 @@ function repository_get_client($context, $accepted_filetypes = '*', $returnvalue .fp-upload-btn a:hover {background: grey;color:white} .fp-paging{margin:1em .5em; clear:both;text-align:center;line-height: 2.5em;} .fp-paging a{padding: .5em;border: 1px solid #CCC} +.fp-paging a.cur_page{border: 1px solid blue} .fp-popup{text-align:center} .fp-grid{float:left;text-align:center;} .fp-grid div{overflow: hidden} @@ -469,7 +470,9 @@ _client.print_header = function() { var panel = new YAHOO.util.Element('panel-$suffix'); var str = '
'; str += '
'; - str += _client.makepage('header'); + if(_client.ds.pages < 8){ + str += _client.makepage('header'); + } str += '
'; panel.set('innerHTML', str); _client.makepath(); @@ -776,18 +779,49 @@ _client.uploadcontrol = function() { } return str; } +_client.paging_node = function(type, page) { + if (page == _client.ds.page) { + str = ''; + } else { + str = ''; + } + return str; +} _client.makepage = function(id) { var str = ''; if(_client.ds.pages) { str += '
'; - for(var i = 1; i <= _client.ds.pages; i++) { - if(!_client.ds.search_result){ - str += ''; - } else { - str += ''; + if(!_client.ds.search_result){ + var action = 'req'; + } else { + var action = 'search_paging'; + } + str += _client.paging_node(action, 1)+'1'; + + if (_client.ds.page+2>=_client.ds.pages) { + var max = _client.ds.pages; + } else { + var max = _client.ds.page+2; + } + if (_client.ds.page-2 >= 3) { + str += ' ... '; + for(var i = _client.ds.page-2; i < max; i++) { + str += _client.paging_node(action, i); + str += String(i); + str += ' '; } - str += String(i); - str += ' '; + } else { + for(var i = 2; i < max; i++) { + str += _client.paging_node(action, i); + str += String(i); + str += ' '; + } + } + if (max==_client.ds.pages) { + str += _client.paging_node(action, _client.ds.pages)+_client.ds.pages+''; + } else { + str += _client.paging_node(action, max)+max+''; + str += ' ... '+_client.paging_node(action, _client.ds.pages)+_client.ds.pages+''; } str += '
'; } -- 2.39.5