blob: ab761056b82c37107d326255012d65d6518555be [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// flowscripts util for paging navigation
// $Id: pager.js,v 1.4 2004/07/05 14:40:31 savs Exp $
/*
Utility function to create a 'paging record' for the display of long paged lists of records
*/
function pagerNavigation(total, page, size) {
total = parseInt(total); // make sure JS realises they are Numbers, so we can add them without getting string concatenation !!!
page = parseInt(page);
size = parseInt(size);
var pages = Math.ceil(total/size);
var index = new java.util.ArrayList();
var off = 5; // half the max # of slots to see
var start = 0;
var end = pages;
if (pages > (off*2)) {
if (page < off) { // if we are close to the left
start = 0;
end = start + (off*2);
} else if (page > (pages - off)) { // if we are close to the right
start = pages - (off*2);
end = pages;
} else { // we are somewhere in the middle
start = page - off;
end = page + off;
}
}
for (var i = start; i < end; i++) index.add(new java.lang.Integer(i));
var firstIndex = 0;
var lastIndex = 0;
try {
firstIndex = index.get(0);
lastIndex = index.get(index.size()-1);
} catch (e) {}
var record = {
total: new java.lang.Integer( total),
next: total > ((page * size) + size) ? new java.lang.Integer(page + 1) : null,
prev: page > 0 ? new java.lang.Integer(page - 1) : null,
size: new java.lang.Integer(size),
page: new java.lang.Integer(page),
pages: new java.lang.Integer(pages),
index: index,
firstIndex: firstIndex,
lastIndex: lastIndex
};
return record;
}