
2. Added Data tables for disciplines/sub-disciplines in the vis. 3. added support for different csv downloadables. 4. Added new updated libraries for DataTables plugin.
178 lines
No EOL
7.5 KiB
JavaScript
178 lines
No EOL
7.5 KiB
JavaScript
var disciplineOrSubdisciplineDataTableFilter = function(oSettings, aData, iDataIndex) {
|
|
|
|
/*
|
|
* We are not showing the first column which holds the info on whether that row contains info on
|
|
* discipline OR subdiscipline.
|
|
* */
|
|
|
|
if (aData[0] === ACTIVE_DISCIPLINE_SUBDISCIPLINE_FILTER) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
$.fn.dataTableExt.oPagination.gmail_style = {
|
|
|
|
"fnInit": function (oSettings, nPaging, fnCallbackDraw) {
|
|
//var nInfo = document.createElement( 'div' );
|
|
var nFirst = document.createElement('span');
|
|
var nPrevious = document.createElement('span');
|
|
var nNext = document.createElement('span');
|
|
var nLast = document.createElement('span');
|
|
|
|
/*
|
|
nFirst.innerHTML = oSettings.oLanguage.oPaginate.sFirst;
|
|
nPrevious.innerHTML = oSettings.oLanguage.oPaginate.sPrevious;
|
|
nNext.innerHTML = oSettings.oLanguage.oPaginate.sNext;
|
|
nLast.innerHTML = oSettings.oLanguage.oPaginate.sLast;
|
|
*/
|
|
|
|
nFirst.innerHTML = "<span class='small-arrows'>«</span> <span class='paginate-nav-text'>First</span>";
|
|
nPrevious.innerHTML = "<span class='small-arrows'>‹</span> <span class='paginate-nav-text'>Prev</span>";
|
|
nNext.innerHTML = "<span class='paginate-nav-text'>Next</span><span class='small-arrows'>›</span>";
|
|
nLast.innerHTML = "<span class='paginate-nav-text'>Last</span><span class='small-arrows'>»</span>";
|
|
|
|
var oClasses = oSettings.oClasses;
|
|
nFirst.className = oClasses.sPageButton + " " + oClasses.sPageFirst;
|
|
nPrevious.className = oClasses.sPageButton + " " + oClasses.sPagePrevious;
|
|
nNext.className = oClasses.sPageButton + " " + oClasses.sPageNext;
|
|
nLast.className = oClasses.sPageButton + " " + oClasses.sPageLast;
|
|
|
|
//nPaging.appendChild( nInfo );
|
|
nPaging.appendChild(nFirst);
|
|
nPaging.appendChild(nPrevious);
|
|
nPaging.appendChild(nNext);
|
|
nPaging.appendChild(nLast);
|
|
|
|
$(nFirst).click(function () {
|
|
if (oSettings.oApi._fnPageChange(oSettings, "first")) {
|
|
fnCallbackDraw(oSettings);
|
|
}
|
|
});
|
|
|
|
$(nPrevious).click(function () {
|
|
if (oSettings.oApi._fnPageChange(oSettings, "previous")) {
|
|
fnCallbackDraw(oSettings);
|
|
}
|
|
});
|
|
|
|
$(nNext).click(function () {
|
|
if (oSettings.oApi._fnPageChange(oSettings, "next")) {
|
|
fnCallbackDraw(oSettings);
|
|
}
|
|
});
|
|
|
|
$(nLast).click(function () {
|
|
if (oSettings.oApi._fnPageChange(oSettings, "last")) {
|
|
fnCallbackDraw(oSettings);
|
|
}
|
|
});
|
|
|
|
/* Take the brutal approach to cancelling text selection */
|
|
$('span', nPaging).bind('mousedown', function () {
|
|
return false;
|
|
}).bind('selectstart', function () {
|
|
return false;
|
|
});
|
|
|
|
/* ID the first elements only */
|
|
if (oSettings.sTableId !== '' && typeof oSettings.aanFeatures.p == "undefined") {
|
|
nPaging.setAttribute('id', oSettings.sTableId + '_paginate');
|
|
nFirst.setAttribute('id', oSettings.sTableId + '_first');
|
|
nPrevious.setAttribute('id', oSettings.sTableId + '_previous');
|
|
//nInfo.setAttribute( 'id', 'infoContainer' );
|
|
nNext.setAttribute('id', oSettings.sTableId + '_next');
|
|
nLast.setAttribute('id', oSettings.sTableId + '_last');
|
|
}
|
|
},
|
|
|
|
/*
|
|
* Function: oPagination.full_numbers.fnUpdate
|
|
* Purpose: Update the list of page buttons shows
|
|
* Returns: -
|
|
* Inputs: object:oSettings - dataTables settings object
|
|
* function:fnCallbackDraw - draw function to call on page change
|
|
*/
|
|
"fnUpdate": function (oSettings, fnCallbackDraw) {
|
|
if (!oSettings.aanFeatures.p) {
|
|
return;
|
|
}
|
|
|
|
var iPageCount = 5;
|
|
var iPageCountHalf = Math.floor(iPageCount / 2);
|
|
var iPages = Math.ceil((oSettings.fnRecordsDisplay()) / oSettings._iDisplayLength);
|
|
var iCurrentPage = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
|
|
var iStartButton, iEndButton, i, iLen;
|
|
var oClasses = oSettings.oClasses;
|
|
|
|
/* Pages calculation */
|
|
if (iPages < iPageCount) {
|
|
iStartButton = 1;
|
|
iEndButton = iPages;
|
|
} else {
|
|
if (iCurrentPage <= iPageCountHalf) {
|
|
iStartButton = 1;
|
|
iEndButton = iPageCount;
|
|
} else {
|
|
if (iCurrentPage >= (iPages - iPageCountHalf)) {
|
|
iStartButton = iPages - iPageCount + 1;
|
|
iEndButton = iPages;
|
|
} else {
|
|
iStartButton = iCurrentPage - Math.ceil(iPageCount / 2) + 1;
|
|
iEndButton = iStartButton + iPageCount - 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* Loop over each instance of the pager */
|
|
var an = oSettings.aanFeatures.p;
|
|
var anButtons, anStatic, nPaginateList;
|
|
var fnClick = function () { /* Use the information in the element to jump to the required page */
|
|
var iTarget = (this.innerHTML * 1) - 1;
|
|
oSettings._iDisplayStart = iTarget * oSettings._iDisplayLength;
|
|
fnCallbackDraw(oSettings);
|
|
return false;
|
|
};
|
|
var fnFalse = function () {
|
|
return false;
|
|
};
|
|
|
|
for (i = 0, iLen = an.length; i < iLen; i++) {
|
|
if (an[i].childNodes.length === 0) {
|
|
continue;
|
|
}
|
|
|
|
/* Update the 'premanent botton's classes */
|
|
anButtons = an[i].getElementsByTagName('span');
|
|
anStatic = [
|
|
anButtons[0], anButtons[1], anButtons[anButtons.length - 2], anButtons[anButtons.length - 1]];
|
|
$(anStatic).removeClass(oClasses.sPageButton + " " + oClasses.sPageButtonActive + " " + oClasses.sPageButtonStaticDisabled);
|
|
if (iCurrentPage == 1) {
|
|
anStatic[0].className += " " + oClasses.sPageButtonStaticDisabled;
|
|
anStatic[1].className += " " + oClasses.sPageButtonStaticDisabled;
|
|
} else {
|
|
anStatic[0].className += " " + oClasses.sPageButton;
|
|
anStatic[1].className += " " + oClasses.sPageButton;
|
|
}
|
|
|
|
if (iPages === 0 || iCurrentPage == iPages || oSettings._iDisplayLength == -1) {
|
|
anStatic[2].className += " " + oClasses.sPageButtonStaticDisabled;
|
|
anStatic[3].className += " " + oClasses.sPageButtonStaticDisabled;
|
|
} else {
|
|
anStatic[2].className += " " + oClasses.sPageButton;
|
|
anStatic[3].className += " " + oClasses.sPageButton;
|
|
}
|
|
}
|
|
|
|
if (typeof GMAIL_STYLE_PAGINATION_CONTAINER_CLASS === 'undefined') {
|
|
GMAIL_STYLE_PAGINATION_CONTAINER_CLASS = 'paginatedtabs';
|
|
}
|
|
|
|
if (iPages <= 1) {
|
|
$("." + GMAIL_STYLE_PAGINATION_CONTAINER_CLASS).hide();
|
|
} else {
|
|
$("." + GMAIL_STYLE_PAGINATION_CONTAINER_CLASS).show();
|
|
}
|
|
}
|
|
}; |