1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-14 11:23:42 +02:00
Sonarr/NzbDrone.Web/Scripts/jquery.dataTables.4button.pagination.js

93 lines
3.7 KiB
JavaScript
Raw Normal View History

$.fn.dataTableExt.oPagination.four_button = {
/*
* Function: oPagination.four_button.fnInit
* Purpose: Initalise dom elements required for pagination with a list of the pages
* Returns: -
* Inputs: object:oSettings - dataTables settings object
* node:nPaging - the DIV which contains this pagination control
* function:fnCallbackDraw - draw function which must be called on update
*/
"fnInit": function (oSettings, nPaging, fnCallbackDraw) {
nFirst = document.createElement('span');
nPrevious = document.createElement('span');
nNext = document.createElement('span');
nLast = document.createElement('span');
nFirst.appendChild(document.createTextNode(oSettings.oLanguage.oPaginate.sFirst));
nPrevious.appendChild(document.createTextNode(oSettings.oLanguage.oPaginate.sPrevious));
nNext.appendChild(document.createTextNode(oSettings.oLanguage.oPaginate.sNext));
nLast.appendChild(document.createTextNode(oSettings.oLanguage.oPaginate.sLast));
nFirst.className = "paginate_button first";
nPrevious.className = "paginate_button previous";
nNext.className = "paginate_button next";
nLast.className = "paginate_button last";
nPaging.appendChild(nFirst);
nPaging.appendChild(nPrevious);
nPaging.appendChild(nNext);
nPaging.appendChild(nLast);
$(nFirst).click(function () {
oSettings.oApi._fnPageChange(oSettings, "first");
fnCallbackDraw(oSettings);
});
$(nPrevious).click(function () {
oSettings.oApi._fnPageChange(oSettings, "previous");
fnCallbackDraw(oSettings);
});
$(nNext).click(function () {
oSettings.oApi._fnPageChange(oSettings, "next");
fnCallbackDraw(oSettings);
});
$(nLast).click(function () {
oSettings.oApi._fnPageChange(oSettings, "last");
fnCallbackDraw(oSettings);
});
/* Disallow text selection */
$(nFirst).bind('selectstart', function () { return false; });
$(nPrevious).bind('selectstart', function () { return false; });
$(nNext).bind('selectstart', function () { return false; });
$(nLast).bind('selectstart', function () { return false; });
},
/*
* Function: oPagination.four_button.fnUpdate
* Purpose: Update the list of page buttons shows
* Returns: -
* Inputs: object:oSettings - dataTables settings object
* function:fnCallbackDraw - draw function which must be called on update
*/
"fnUpdate": function (oSettings, fnCallbackDraw) {
if (!oSettings.aanFeatures.p) {
return;
}
/* Loop over each instance of the pager */
var an = oSettings.aanFeatures.p;
for (var i = 0, iLen = an.length; i < iLen; i++) {
var buttons = an[i].getElementsByTagName('span');
if (oSettings._iDisplayStart === 0) {
buttons[0].className = "paginate_disabled_first";
buttons[1].className = "paginate_disabled_previous";
}
else {
buttons[0].className = "paginate_enabled_first";
buttons[1].className = "paginate_enabled_previous";
}
if (oSettings.fnDisplayEnd() == oSettings.fnRecordsDisplay()) {
buttons[2].className = "paginate_disabled_next";
buttons[3].className = "paginate_disabled_last";
}
else {
buttons[2].className = "paginate_enabled_next";
buttons[3].className = "paginate_enabled_last";
}
}
}
};