Migration SVN
This commit is contained in:
123
web/javascript/pagination.js
Executable file
123
web/javascript/pagination.js
Executable file
@@ -0,0 +1,123 @@
|
||||
function makeTable(id, json)
|
||||
{
|
||||
json = eval(json);
|
||||
var tbody = $('#'+id);
|
||||
|
||||
tbody.html('');
|
||||
|
||||
jQuery.each(json, function(tr, tr_content)
|
||||
{
|
||||
var dom_tr = $(document.createElement('tr'));
|
||||
jQuery.each(json[tr][0], function(opt, value)
|
||||
{
|
||||
dom_tr.attr(opt, value);
|
||||
});
|
||||
|
||||
jQuery.each(json[tr][1], function(opt, value)
|
||||
{
|
||||
var dom_td = $(document.createElement('td'));
|
||||
jQuery.each(json[tr][1][opt], function(_opt, _value)
|
||||
{
|
||||
if(_opt != 'html') {
|
||||
dom_td.attr(_opt, _value);
|
||||
} else {
|
||||
dom_td.html(_value);
|
||||
}
|
||||
});
|
||||
dom_tr.append(dom_td);
|
||||
});
|
||||
tbody.append(dom_tr);
|
||||
});
|
||||
}
|
||||
|
||||
function getPage(tableID, numPage, maxPages, relativePath, addValue)
|
||||
{
|
||||
if (relativePath==undefined) {
|
||||
relativePath=0;
|
||||
} else if (typeof(rel_path[relativePath])=='undefined') {
|
||||
relativePath=0;
|
||||
}
|
||||
var strurl=rel_path[relativePath];
|
||||
strurl += '/ajax.php?frm_id=' + tableID;
|
||||
var datas='p='+numPage;
|
||||
if (addValue!=undefined) {
|
||||
datas += '&value=' + addValue;
|
||||
}
|
||||
$.ajax({
|
||||
url: strurl,
|
||||
data: datas,
|
||||
type: 'GET',
|
||||
error: function(responseText)
|
||||
{
|
||||
alert(critical_error);
|
||||
},
|
||||
success: function(responseText)
|
||||
{
|
||||
makeTable(tableID, responseText);
|
||||
if ( maxPages > 1) {
|
||||
makePagesLinks(tableID, maxPages, numPage, relativePath, addValue);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function makePageLink(tableID, page, content, nbPages, relativePath, addValue)
|
||||
{
|
||||
var a = $(document.createElement('a'));
|
||||
a.html(content);
|
||||
a.attr('rel', page);
|
||||
a.attr('style', 'cursor: pointer;');
|
||||
a.click(function()
|
||||
{
|
||||
var n = parseInt($(this).attr('rel'));
|
||||
getPage(tableID, n, nbPages, relativePath, addValue);
|
||||
});
|
||||
return a;
|
||||
}
|
||||
|
||||
function makePagesLinks(tableID, nbPages, currentPage, relativePath, addValue)
|
||||
{
|
||||
var p = $('#' + tableID + '_pg_links');
|
||||
p.html('');
|
||||
p.attr('style', 'text-align: center;');
|
||||
|
||||
p.append(makePageLink(tableID, 1, '|<', nbPages, relativePath, addValue));
|
||||
p.append(' ');
|
||||
p.append(makePageLink(tableID, Math.max(currentPage-1, 1), '<<', nbPages, relativePath, addValue));
|
||||
p.append(' ');
|
||||
|
||||
if(nbPages > 15) {
|
||||
var start = Math.max(1, currentPage-3);
|
||||
var end = Math.min(nbPages, currentPage+3);
|
||||
|
||||
if(start == 1) {
|
||||
end = 7;
|
||||
} else {
|
||||
p.append('<a>...</a> ');
|
||||
}
|
||||
|
||||
if(end == nbPages) {
|
||||
start = nbPages-6;
|
||||
}
|
||||
} else {
|
||||
var start = 1;
|
||||
var end = nbPages;
|
||||
}
|
||||
|
||||
for(var u=start; u<=end; u++) {
|
||||
a=makePageLink(tableID, u, u, nbPages, relativePath, addValue);
|
||||
if(u == currentPage) {
|
||||
a.attr('class', 'current');
|
||||
}
|
||||
p.append(a);
|
||||
p.append(' ');
|
||||
}
|
||||
|
||||
if(end != nbPages) {
|
||||
p.append('<a>...</a> ');
|
||||
}
|
||||
|
||||
p.append(makePageLink(tableID, Math.min( currentPage+1, nbPages), '>>', nbPages, relativePath, addValue));
|
||||
p.append(' ');
|
||||
p.append(makePageLink(tableID, nbPages, '>|', nbPages, relativePath, addValue));
|
||||
}
|
||||
Reference in New Issue
Block a user