124 lines
2.9 KiB
JavaScript
Executable File
124 lines
2.9 KiB
JavaScript
Executable File
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));
|
|
}
|