/** * Copyright 2016 [ZTE] and others. * * Licensed 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. */ var serverPageTable = {}; /* Bootstrap style full number pagination control */ $.fn.dataTableExt.oApi.fnPagingInfo = function ( oSettings ) { return { "iStart": oSettings._iDisplayStart, "iEnd": oSettings.fnDisplayEnd(), "iLength": oSettings._iDisplayLength, "iTotal": oSettings.fnRecordsTotal(), "iFilteredTotal": oSettings.fnRecordsDisplay(), "iPage": Math.ceil( oSettings._iDisplayStart / oSettings._iDisplayLength ), "iTotalPages": Math.ceil( oSettings.fnRecordsDisplay() / oSettings._iDisplayLength ) }; }; $.extend( $.fn.dataTableExt.oPagination, { "bootstrap_extended": { "fnInit": function( oSettings, nPaging, fnDraw ) { var oLang = oSettings.oLanguage.oPaginate; var oPaging = oSettings.oInstance.fnPagingInfo(); var fnClickHandler = function ( e ) { e.preventDefault(); if ( oSettings.oApi._fnPageChange(oSettings, e.data.action) ) { fnDraw( oSettings ); } }; $(nPaging).append( '
' + oLang.sPage + ' ' + '' + '' + ' ' + oLang.sPageOf + ' ' + '
' ); var els = $('a', nPaging); $(els[0]).bind('click.DT', { action: "previous" }, fnClickHandler ); $(els[1]).bind('click.DT', { action: "next" }, fnClickHandler); $('.pagination-panel-input', nPaging).bind('change.DT', function(e) { var oPaging = oSettings.oInstance.fnPagingInfo(); e.preventDefault(); var page = parseInt($(this).val()); if (page > 0 && page < oPaging.iTotalPages) { if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { fnDraw( oSettings ); } } else { $(this).val(oPaging.iPage + 1); } }); $('.pagination-panel-input', nPaging).bind('keypress.DT', function(e) { var oPaging = oSettings.oInstance.fnPagingInfo(); if (e.which == 13) { var page = parseInt($(this).val()); if (page > 0 && page < oSettings.oInstance.fnPagingInfo().iTotalPages) { if ( oSettings.oApi._fnPageChange(oSettings, page-1) ) { fnDraw( oSettings ); } } else { $(this).val(oPaging.iPage + 1); } e.preventDefault(); } }); }, "fnUpdate": function ( oSettings, fnDraw ) { var iListLength = 5; var oPaging = oSettings.oInstance.fnPagingInfo(); var an = oSettings.aanFeatures.p; var i, j, sClass, iStart, iEnd, iHalf=Math.floor(iListLength/2); if ( oPaging.iTotalPages < iListLength) { iStart = 1; iEnd = oPaging.iTotalPages; } else if ( oPaging.iPage <= iHalf ) { iStart = 1; iEnd = iListLength; } else if ( oPaging.iPage >= (oPaging.iTotalPages-iHalf) ) { iStart = oPaging.iTotalPages - iListLength + 1; iEnd = oPaging.iTotalPages; } else { iStart = oPaging.iPage - iHalf + 1; iEnd = iStart + iListLength - 1; } for ( i=0, iLen=an.length ; i'+j+'') .insertBefore( $('li.next:first', an[i])[0] ) .bind('click', function (e) { e.preventDefault(); oSettings._iDisplayStart = (parseInt($('a', this).text(),10)-1) * oPaging.iLength; fnDraw( oSettings ); } ); } // Add / remove disabled classes from the static elements if ( oPaging.iPage === 0 ) { $('a.prev', an[i]).addClass('disabled'); } else { $('a.prev', an[i]).removeClass('disabled'); } if ( oPaging.iPage === oPaging.iTotalPages-1 || oPaging.iTotalPages === 0 ) { $('a.next', an[i]).addClass('disabled'); } else { $('a.next', an[i]).removeClass('disabled'); } } } } } ); serverPageTable.getRestPara = function( cond , tableSetting ){ var pageNo=tableSetting._iDisplayStart/tableSetting._iDisplayLength+1; var pageSize = tableSetting._iDisplayLength; var queryParameter={"pageNo":pageNo,"pageSize":tableSetting._iDisplayLength,groupId:["it.group.database=02","it.group.server=01"]}, newData={"data":JSON.stringify(queryParameter)}; //put the pageinfo in cond if there is a pageinfo var pageInfo = vm.logInfo[vm.logType].pageInfo; if(pageInfo != null && serverPageTable.perpagenumber == pageSize){ cond.idEnd = pageInfo.pageStart[pageNo - 1]; cond.idStart = pageInfo.pageStart[pageNo]; if(!cond.idStart){ //the last page cond.idStart = 0; } }else{ delete cond.idStart; delete cond.idEnd; vm.logInfo[vm.logType].pageInfo = null; pageNo = 1; tableSetting._iDisplayStart = 0; } var data = { cond:JSON.stringify(cond), perpagenumber:pageSize, pageNo:pageNo, needPageInfo:vm.logInfo[vm.logType].pageInfo == null }; serverPageTable.perpagenumber = pageSize; return data; }; serverPageTable.initTableWithoutLib = function( setting ,cond , divId) { //transform colomn var column = setting.columns; //empty table $('#'+ divId).children().remove(); var tableId = setting.tableId; var tableEleStr = '' + '' +'' + '' + '' +'' +'' +'
'; $('#'+ divId).append(tableEleStr); //$('#'+ tableId).append(' '); var trEle = $('#'+ tableId + ' > thead >tr'); //var dataTableColumn = []; for ( var one in column){ var th = '' + column[one].name + ''; trEle.append(th); } var table = $("#" + tableId).dataTable({ //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", //"sDom": '<"top"rt><"bottom"lip>', "sDom": '<"top"rt>', "oLanguage": setting.language,//language //"bJQueryUI": true, "bPaginate": setting.paginate,// page button "bFilter": false,// search bar "bAutoWidth":true,//automatically set colum width "bLengthChange": true,// record number in each row "iDisplayLength": 10,// row number in each page "bSort": setting.sort ? true : false,// sort "bInfo": setting.info,// Showing 1 to 10 of 23 entries "bWidth": true, "bScrollCollapse": true, "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button "bProcessing": true, "bServerSide": false, "bDestroy": true, "bSortCellsTop": true, "sAjaxSource": setting.restUrl, "aoColumns": setting.columns, "aoColumnDefs": [ { sDefaultContent: '', aTargets: [ '_all' ] } ], "fnServerData": function (sSource, aoData, fnCallback, oSettings) { oSettings.jqXHR = $.ajax({ "type": 'get', "url": sSource, "dataType": "json", //"data":serverPageTable.getRestPara(cond,oSettings), "success": function (resp) { oSettings.iDraw = oSettings.iDraw + 1; resp = resp || []; var data = {}; data.aaData = resp; var totalCounts = resp.length; data.iTotalRecords = totalCounts; data.iTotalDisplayRecords = totalCounts; data.sEcho = oSettings; fnCallback(data); }, "error": function(resp) { var data = {}; data.aaData = []; var totalCounts = 0; data.iTotalRecords = totalCounts; data.iTotalDisplayRecords = totalCounts; data.sEcho = oSettings; fnCallback(data); } }); } }); }; serverPageTable.initDataTable = function( setting ,cond , divId) { //transform colomn var column = setting.columns; //empty table $('#'+ divId).children().remove(); var tableId = setting.tableId; var tableEleStr = '' + '' +'' + '' + '' +'' +'' +'
'; $('#'+ divId).append(tableEleStr); //$('#'+ tableId).append(' '); var trEle = $('#'+ tableId + ' > thead >tr'); //var dataTableColumn = []; for ( var one in column){ var th = '' + column[one].name + ''; trEle.append(th); } var table = $("#" + tableId).dataTable({ //"sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout //"sDom" : "<'row'<'col-md-12 col-sm-12'lip>r><'table-scrollable't>>", "sDom": '<"top"rt><"bottom"lip>', "oLanguage": setting.language,//language //"bJQueryUI": true, "bPaginate": setting.paginate,// page button "bFilter": false,// search bar "bAutoWidth":true,//automatically set colum width "bLengthChange": true,// record number in each row "iDisplayLength": 10,// row number in each page "bSort": setting.sort ? true : false,// sort "bInfo": setting.info,// Showing 1 to 10 of 23 entries "bWidth": true, "bScrollCollapse": true, "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button "bProcessing": true, "bServerSide": false, "bDestroy": true, "bSortCellsTop": true, "sAjaxSource": setting.restUrl, "aoColumns": setting.columns, "aoColumnDefs": [ { sDefaultContent: '', aTargets: [ '_all' ] } ], "fnServerData": function (sSource, aoData, fnCallback, oSettings) { oSettings.jqXHR = $.ajax({ "type": 'get', "url": sSource, "dataType": "json", //"data":serverPageTable.getRestPara(cond,oSettings), "success": function (resp) { oSettings.iDraw = oSettings.iDraw + 1; resp = resp || []; var data = {}; data.aaData = resp; var totalCounts = resp.length; data.iTotalRecords = totalCounts; data.iTotalDisplayRecords = totalCounts; data.sEcho = oSettings; fnCallback(data); }, "error": function(resp) { var data = {}; data.aaData = []; var totalCounts = 0; data.iTotalRecords = totalCounts; data.iTotalDisplayRecords = totalCounts; data.sEcho = oSettings; fnCallback(data); } }); } }); }; serverPageTable.initTableWithData = function( setting , divId , tableData) { //transform colomn var column = setting.columns; //empty table $('#'+ divId).children().remove(); var tableId = setting.tableId; var tableEleStr = '' + '' +'' + '' + '' +'' +'' +'
'; $('#'+ divId).append(tableEleStr); var trEle = $('#'+ tableId + ' > thead >tr'); for ( var one in column){ var th = '' + column[one].name + ''; trEle.append(th); } var table = $("#" + tableId).dataTable({ "sDom" : "<'row'<'col-md-12 col-sm-12'lip>r>>", "oLanguage": setting.language,//language //"bJQueryUI": true, "bPaginate": setting.paginate,// page button "bFilter": false,// search bar "bAutoWidth":true,//automatically set the column width "bLengthChange": true,// record number in each row "iDisplayLength": 10,// row number in each page "bSort": setting.sort ? true : false,// sort "bInfo": setting.info,// Showing 1 to 10 of 23 entries "bWidth": true, "bScrollCollapse": true, "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button "bProcessing": false, "bServerSide": false, "bDestroy": true, "bSortCellsTop": true, "sAjaxSource": tableData, "aoColumns": setting.columns, "fnServerData": function (sSource, aoData, fnCallback, oSettings) { oSettings.iDraw = oSettings.iDraw + 1; var resp = tableData || []; var data = {}; data.aaData = resp; var totalCounts = resp.length; data.iTotalRecords = totalCounts; data.iTotalDisplayRecords = totalCounts; data.sEcho = oSettings; fnCallback(data); } }); }; serverPageTable.initDataTableForEvent = function( setting ,cond , divId) { //transform colomn var column = setting.columns; //empty table $('#'+ divId).children().remove(); var tableId = setting.tableId; var tableEleStr = '' + '' +'' + '' + '' +'' +'' +'
'; $('#'+ divId).append(tableEleStr); var trEle = $('#'+ tableId + ' > thead >tr'); for ( var one in column){ var th = '' + column[one].name + ''; trEle.append(th); } var table = $("#" + tableId).dataTable({ "sDom": '<"top"rt><"bottom"lip>', "oLanguage": setting.language,//language //"bJQueryUI": true, "bPaginate": setting.paginate,// page button "bFilter": false,// search bar "bAutoWidth":true,//automatically set the column width "bLengthChange": true,// record number in each row "iDisplayLength": 10,// row number in each page "bSort": setting.sort ? true : false, "bInfo": setting.info,// Showing 1 to 10 of 23 entries "bWidth": true, "bScrollCollapse": true, "sPaginationType": "bootstrap_extended", // page, a total of two kinds of style, another one is two_button "bProcessing": true, "bServerSide": false, "bDestroy": true, "bSortCellsTop": true, "sAjaxSource": setting.restUrl, "aoColumns": setting.columns, "aoColumnDefs": [ { sDefaultContent: '', aTargets: [ '_all' ] } ], "fnServerData": function (sSource, aoData, fnCallback, oSettings) { oSettings.jqXHR = $.ajax({ "type": 'get', "url": sSource, "dataType": "json", //"data":serverPageTable.getRestPara(cond,oSettings), "success": function (resp) { oSettings.iDraw = oSettings.iDraw + 1; var result = []; for(var i=0;i