summaryrefslogtreecommitdiffstats
path: root/common/src/main/webapp/thirdparty/data-tables/DataTableSmartClient.js
diff options
context:
space:
mode:
authorLizi <li.zi30@zte.com.cn>2018-01-18 09:24:19 +0000
committerLizi <li.zi30@zte.com.cn>2018-01-18 09:32:07 +0000
commite02cfb1940c721efa29d7766763e5d5beaf46189 (patch)
tree4b813c85bc4296733c5ec4a16169d0d8eada7176 /common/src/main/webapp/thirdparty/data-tables/DataTableSmartClient.js
parent38fda27a24d9ceac0d6499fe60396954e647f2ca (diff)
Remove the redundancy packages
Change-Id: I1c04ad98a1fc0351b69c125c7afc8b6ee8ad64af Issue-ID: AAI-591 Signed-off-by: Lizi <li.zi30@zte.com.cn>
Diffstat (limited to 'common/src/main/webapp/thirdparty/data-tables/DataTableSmartClient.js')
-rw-r--r--common/src/main/webapp/thirdparty/data-tables/DataTableSmartClient.js1215
1 files changed, 0 insertions, 1215 deletions
diff --git a/common/src/main/webapp/thirdparty/data-tables/DataTableSmartClient.js b/common/src/main/webapp/thirdparty/data-tables/DataTableSmartClient.js
deleted file mode 100644
index 5fa69e5..0000000
--- a/common/src/main/webapp/thirdparty/data-tables/DataTableSmartClient.js
+++ /dev/null
@@ -1,1215 +0,0 @@
-/***
- Wrapper/Helper Class for datagrid based on jQuery Datatable Plugin
- ***/
-var DatatableICT = function () {
-
- var tableOptions; // main options
- var dataTable; // datatable object
- var table; // actual table jquery object
- var tableContainer; // actual table container object
- var tableWrapper; // actual table wrapper jquery object
- var tableInitialized = false;
- var ajaxParams = []; // set filter mode
- var columns;
- var xsHiddenColumns;
- var smHiddenColumns;
- var columnMaxLength = 30;
- var columnsTooLong;
- var hidden_xs_maxWidth = 768;
- var hidden_sm_maxWidth = 991;
-
- var openRowFlag = false;
- var rowOverFlag = false;
- var rowCheckable = false;
-
- var aTargetsAll;
- var sTotalRecordsSource;
- var tableHeight;
-
- var includedInXsHiddenColumns = function(columnId){
- for(var i=0;i<xsHiddenColumns.length; i++ ){
- var column = xsHiddenColumns[i];
- if(columnId == column.columnId){
- return true;
- }
- }
- return false;
- }
-
- var includedInSmHiddenColumns = function(columnId){
- for(var i=0;i<smHiddenColumns.length; i++ ){
- var column = smHiddenColumns[i];
- if(columnId == column.columnId){
- return true;
- }
- }
- return false;
- }
-
- var countSelectedRecords = function() {
- var selected = $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size();
- var text = tableOptions.dataTable.oLanguage.sGroupActions;
- if (selected > 0) {
- $('.table-group-actions > span', tableWrapper).text(text.replace("_TOTAL_", selected));
- } else {
- $('.table-group-actions > span', tableWrapper).text("");
- }
- }
-
- var jsonObjectToArray = function(json, columns, iDraw){
- var jsonToDatatable = {aaData:[], sEcho:iDraw, iTotalRecords:0, iTotalDisplayRecords:0 };
- for(var i=0; i<json.response.data.length; i++){
- jsonToDatatable.aaData[i] = [];
- var resRowObject = json.response.data[i];
- if(rowCheckable){
- jsonToDatatable.aaData[i].push("<input type=\"checkbox\" name=\"id[]\" value=\"1\">");
- }
- if(openRowFlag){
- jsonToDatatable.aaData[i].push("<span class=\"row-details row-details-close\"></span>");
- }
- for(var j=0; j<columns.length; j++){
-
- if($(window).width() >= hidden_xs_maxWidth && $(window).width() < hidden_sm_maxWidth && includedInSmHiddenColumns(columns[j].columnId )){
- /*隐藏pad尺寸需要隐藏的列*/
- }else if($(window).width() < hidden_xs_maxWidth && includedInXsHiddenColumns(columns[j].columnId )){
- /*隐藏手机尺寸需要隐藏的列*/
- }else{
- var currentColumnId = columns[j].columnId;
- if(jQuery.inArray(currentColumnId, columnsTooLong) > -1){
- var rawText = "";
- for(var k=0;k<columnsTooLong.length;k++){
- if(currentColumnId == columnsTooLong[k]){
- rawText = resRowObject[currentColumnId];
- break;
- }
- }
- if(rawText.length > columnMaxLength){
- jsonToDatatable.aaData[i].push(rawText.slice(0, columnMaxLength) + '...');
- }else{
- jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]);
- }
- } else {
- jsonToDatatable.aaData[i].push(resRowObject[currentColumnId]);
- }
-
- }
- }
- }
- jsonToDatatable.sEcho++;
- var totalRow = 0;
- var totalRecordsSource = eval('json.' + sTotalRecordsSource);
- if(totalRecordsSource && totalRecordsSource.length >0){
- totalRow = parseInt(totalRecordsSource);
- }
- if(isNaN(totalRow)){
- alert('All rows counting number got fail!');
- }else{
- jsonToDatatable.iTotalRecords = totalRow;
- jsonToDatatable.iTotalDisplayRecords = totalRow;
- }
- return jsonToDatatable;
- }
-
- var singleAlarmDel = function(divOverlay){
-
- //根据浮动框的当前id获取需要删除的行
- var trId = divOverlay.attr('id_tr');
- tr=$('tr#' + trId);
- var tds = $(tr).children();
- var tdAlarmId = $(tds.eq(2)).text();
-
- var data= {
- "alarmId":[parseInt(tdAlarmId)]
- };
-
- var sSource = "/web/rest/web/fm/curalarms?data=" + JSON.stringify(data) + "&_operationType=remove&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json";
-
- $.ajax( {
- "dataType": 'json',
- "type": "DELETE",
- "url": sSource,
- "data" : null,
- "contentType" : 'application/json; charset=utf-8',
- "success": function(json) {
- if(json.response.status == 0){
- var resRowObject = json.response.data[0];
- //alert('删除成功');
- }
- if(json.response.status == -1){
- //alert('删除失败');
- }
- },
- "error": function() {
- alert('Communication Error!');
- }
- } );
- }
-
- var singleAlarmAckUnAck = function(divOverlay, ackType){
-
- //根据浮动框的当前id获取需要确认的行
- var trId = divOverlay.attr('id_tr');
- var tr = $('tr#' + trId);
-
- //取得隐藏的头部表格的相应行
- var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable');
- //var trHead = $('tbody > tr:nth-child(' + trId + ')', $tableHead);
- var trHead = $('tr#' + trId.replace('body', 'head'), $tableHead);
- var tdDivs = $('td > div', trHead);
-
- var tds = $(tr).children();
- var tdAlarmId = "";
- if(rowCheckable){
- tdAlarmId = $(tds.eq(2)).text();
- }else{
- tdAlarmId = $(tds.eq(1)).text();
- }
-
- var aoData =
- {
- "dataSource":"isc_PageRestDataSource_0",
- "operationType":"update",
- "componentId":"isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0",
- "data":{
- "viewType":1,
- "state":ackType,
- "alarmId":[
- parseInt(tdAlarmId)
- ]
- },
- "oldValues":null
- };
-
- var sSource = "/web/rest/web/fm/curalarms?isc_dataFormat=json";
-
- $.ajax( {
- "dataType": 'json',
- "type": "PUT",
- "url": sSource,
- "contentType": 'application/json; charset=utf-8',
- "data": JSON.stringify(aoData),
- "success": function(json) {
- json = AlarmLabels.transformFieldNames(json);
- if(json.response.status == 0){
- var resRowObject = json.response.data[0];
- var columnsCopy = $.extend(true, [], columns);
- //隐藏列的情况下需要特殊处理
- if($(window).width()>=hidden_xs_maxWidth && $(window).width()<hidden_sm_maxWidth){
- columnsCopy = [];
- for(var i=0;i<columns.length;i++){
- if(!includedInSmHiddenColumns(columns[i].columnId)){
- columnsCopy.push(columns[i]);
- }
- }
- } else if($(window).width()<hidden_xs_maxWidth){
- columnsCopy = [];
- for(var i=0;i<columns.length;i++){
- if(!includedInXsHiddenColumns(columns[i].columnId)){
- columnsCopy.push(columns[i]);
- }
- }
- }
- var iIndex = 1;
- if(rowCheckable){
- iIndex = 2;
- }
- for(var i=iIndex;i<tds.length && (i-iIndex)<columnsCopy.length;i++){
- var currentColumnId = columnsCopy[i-iIndex].columnId;
- if(jQuery.inArray(currentColumnId, columnsTooLong) > -1) {
- var rawText = "";
- for(var k=0;k<columnsTooLong.length;k++){
- if(currentColumnId == columnsTooLong[k]){
- rawText = resRowObject[currentColumnId];
- break;
- }
- }
- if(rawText.length > columnMaxLength){
- $(tds.eq(i)).html(rawText.slice(0, columnMaxLength) + '...');
- $(tdDivs.eq(i)).html(rawText.slice(0, columnMaxLength) + '...');
- }else{
- $(tds.eq(i)).html(resRowObject[currentColumnId]);
- $(tdDivs.eq(i)).html(resRowObject[currentColumnId]);
- }
- } else {
- $(tds.eq(i)).html(resRowObject[currentColumnId]);
- $(tdDivs.eq(i)).html(resRowObject[currentColumnId]);
- }
- }
- //更新缓存中的当前行数据
- for (var t = 0; t < dataTable.datas.length; t++) {
- var temp = dataTable.datas[t];
- if (temp.alarmId == resRowObject['alarmId']) {
- dataTable.datas[t] = resRowObject;
- break;
- }
- }
- }
- if(json.response.status == -1){
- $('div#myModalConfirm').modal({
- keyboard: false,
- backdrop: 'static'
- });
- $('span#alarm_number').html(tdAlarmId);
- //国际化信息
- if(ackType==1){
- $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_ok'));
- }else{
- $('span#aos_fm_alarm_opeater_ack_already').html($.i18n.prop('aos_fm_alarm_opeater_ack_already_un'));
- }
- }
- },
- "error": function() {
- alert('Communication Error!');
- }
- } );
- }
-
- var addRowOverlap = function(){
- var $tableData = $('table#datatable_ajax');
- //取得隐藏的头部表格的相应行
- var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable');
- var trHeads = $tableHead.find('tr').get();
- $.each( trHeads, function( index, trHead ){
- $(trHead).attr('id', 'headTableTR' + index);
- });
- //取得浮动div
- var $divOverlay = $('div#divOverlay');
- var divScrollHead = $('div.dataTables_scrollHead');
- var divRightPadding = $('div#divRightPadding');
- //取表头下边沿位置
- var tableHeadBottomHeight = $(divScrollHead).position().top + $(divScrollHead).height();
- var tableBottom = $tableData.position().top + $tableData.height();
- //取表格右边沿位置
- var tableRightEdgePosition = $(divRightPadding).position().left;
- var trs = $tableData.find('tr').get();
- $.each( trs, function( index, tr ){
- var tdEmpty = $('td.dataTables_empty',tr);
- if(!tdEmpty || tdEmpty.length ==0 ){
- $(tr).attr('id', 'bodyTableTR' + index);
- //$divOverlay.attr('id_tr', 'bodyTableTR' + index);
- $(tr).one('hover', function(){
- var rowPos = $(tr).position();
- var currentTrTop = rowPos.top;
- //var bottomLeft = rowPos.left;
- $divOverlay.attr('id_tr', 'bodyTableTR' + index);
- $divOverlay.css({
- display: 'block',
- position: 'absolute',
- 'background-color': '#e5e5e5',
- //opacity: 0.7,
- border: 'solid 0px',
- top: currentTrTop + 6,
- left: tableRightEdgePosition - 308,
- width: 300,
- height: 30
- });
- //防止浮动框跳出表格内容区域
- if( $divOverlay.position().top < tableHeadBottomHeight || $divOverlay.position().top + $divOverlay.height() > tableBottom){
- $divOverlay.css('display', 'none');
- }
- var buttonConfirm = $('div#buttonConfirm', $divOverlay);
- var buttonUnConfirm = $('div#buttonUnConfirm', $divOverlay);
- $(buttonConfirm).one('click', function(){
- var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRounded');
- var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRoundedDisabled');
- if(buttonRoundedTDsConfirm && buttonRoundedTDsConfirm.length > 0){
- $.each(buttonRoundedTDsConfirm, function(index, td){
- $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled');
- });
- $.each(buttonRoundedTDsUnConfirm, function(index, td){
- $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded');
- });
- $divOverlay.css('display', 'none');
- singleAlarmAckUnAck($divOverlay, 1);
- }
- });
- $(buttonUnConfirm).one('click', function(){
- var buttonRoundedTDsUnConfirm = $(buttonUnConfirm).find('td.buttonRounded');
- var buttonRoundedTDsConfirm = $(buttonConfirm).find('td.buttonRoundedDisabled');
- if(buttonRoundedTDsUnConfirm && buttonRoundedTDsUnConfirm.length > 0){
- $.each(buttonRoundedTDsUnConfirm, function(index, td){
- $(td).removeClass('buttonRounded').addClass('buttonRoundedDisabled');
- });
- $.each(buttonRoundedTDsConfirm, function(index, td){
- $(td).removeClass('buttonRoundedDisabled').addClass('buttonRounded');
- });
- $divOverlay.css('display', 'none');
- singleAlarmAckUnAck($divOverlay, 2);
- }
- });
- var buttonDelete = $('div#buttonDelete', $divOverlay);
- $(buttonDelete).die().live('click', function(){
- //弹出删除确认对话框
- $('div#myModal').modal({
- keyboard: false,
- backdrop: 'static'
- });
- $('#delConfirm').die().live('click', function(){
- $divOverlay.css('display', 'none');
- dataTable.fnClose(tr);
- $(tr).remove();
- //删除表头表格的相应行
- $('tr#' + $(tr).attr('id').replace('body', 'head'), $tableHead).remove();
- //删除后端数据
- singleAlarmDel($divOverlay);
- //刷新表格
- dataTable.fnAdjustColumnSizing();
- });
- });
- //展开行的情况隐藏
- $('td.details > table.detailTable').on('hover', function(){
- $divOverlay.css('display', 'none');
- });
- });
- }
- });
- }
-
- return {
-
- //main function to initiate the module
- init: function (options, columnsDefined, xsHiddenColumnsDefined, smHiddenColumnsDefined) {
-
- if (!$().dataTable) {
- return;
- }
-
- var the = this;
-
- //记录需要禁掉默认排序的列
- var aTargets = [];
- var targetsLength = columnsDefined.length;
- if(rowCheckable)targetsLength++;
- if(openRowFlag)targetsLength++;
- for(var i=0;i<targetsLength;i++){
- aTargets.push(i);
- }
- aTargetsAll = aTargets;
-
- // default settings
- options = $.extend(true, {
- src: "", // actual table
- filterApplyAction: "filter",
- filterCancelAction: "filter_cancel",
- resetGroupActionInputOnSuccess: true,
- dataTable: {
- //"sDom" : "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r><'table-scrollable't><'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>", // datatable layout
-
- "aoColumnDefs" : [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)
- 'bSortable' : false,
- 'aTargets' : aTargets
- }],
-
- "bAutoWidth": false, // disable fixed width and enable fluid table
- //"bSortCellsTop": true, // make sortable only the first row in thead
- "sPaginationType": "bootstrap_extended", // pagination type(bootstrap, bootstrap_full_number or bootstrap_extended)
- "bProcessing": true, // enable/disable display message box on record load
- "bServerSide": true, // enable/disable server side ajax loading
- "sAjaxSource": "", // define ajax source URL
- //"sServerMethod": "GET",
-
- // handle ajax request
- "fnServerData": function ( sSource, aoData, fnCallback, oSettings ) {
- //for ICT Paging
- //var startIndex = aoData[3].value;//"iDisplayStart"
- //var pageLength = aoData[4].value;//"iDisplayLength"
- var oPaging = oSettings.oInstance.fnPagingInfo();
- //var startIndex = oPaging.iStart;
- var pageLength = oPaging.iLength;
- var curPageNo = oPaging.iPage + 1;
-
- for(var k=aoData.length-1;k>=0;k--){
- var flag = -1;
- if(aoData[k].name=='pageSize'){
- aoData[k].value=pageLength;
- flag++;
- }
- if(aoData[k].name=='pageNo'){
- aoData[k].value=curPageNo;
- flag++
- }
- if(flag == 1)break;
- }
-
- oSettings.jqXHR = $.ajax( {
- "dataType": 'json',
- "type": "GET",
- "url": sSource,
- "data": aoData,
- "success": function(res, textStatus, jqXHR) {
- if (res.sMessage) {
- onapFrameWork.alert({type: (res.sStatus == 'OK' ? 'success' : 'danger'), icon: (res.sStatus == 'OK' ? 'check' : 'warning'), message: res.sMessage, container: tableWrapper, place: 'prepend'});
- }
- if ($('.group-checkable', tableContainer).size() === 1) {
- $('.group-checkable', tableContainer).attr("checked", false);
- $.uniform.update($('.group-checkable', tableContainer));
- }
- if (tableOptions.onSuccess) {
- tableOptions.onSuccess.call(the);
- }
- //保存数据在dataTable对象中给行详细信息面板用
- dataTable.datas = res.response.data;
- if(res.response.status < 0){
- alert(res.response.data);
- return;
- }
-
- //告警字段值转换
- res = AlarmLabels.transformFieldNames(res);
-
- res = jsonObjectToArray(res, columns, oSettings.iDraw);
-
- //重绘表格
- fnCallback(res, textStatus, jqXHR);
- },
- "error": function() {
- if (tableOptions.onError) {
- tableOptions.onError.call(the);
- }
- onapFrameWork.alert({type: 'danger', icon: 'warning', message: tableOptions.dataTable.oLanguage.sAjaxRequestGeneralError, container: tableWrapper, place: 'prepend'});
- $('.dataTables_processing', tableWrapper).remove();
- }
- } );
-
- },
-
- // pass additional parameter
- "fnServerParams": function ( aoData ) {
- //here can be added an external ajax request parameters.
- //for(var i in ajaxParams) {
- for(var i=0; i<ajaxParams.length; i++){
- var param = ajaxParams[i];
- aoData.push({"name" : param.name, "value": param.value});
- }
- },
-
- "fnDrawCallback": function( oSettings ) { // run some code on table redraw
- if (tableInitialized === false) { // check if table has been initialized
- tableInitialized = true; // set table initialized
- table.show(); // display table
- }
- onapFrameWork.initUniform($('input[type="checkbox"]', tableContainer)); // reinitialize uniform checkboxes on each table reload
- countSelectedRecords(); // reset selected records indicator
- //所有td不换行
- $('table#datatable_ajax').find('td').css('white-space', 'nowrap');
-
- //自适应对齐表头
- var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper);
- var tbodyHead = $('tbody', $tableHead);
- if(tbodyHead && tbodyHead.length >0){
- $(tbodyHead).remove();
- }
-
- var $tableBody = $('table#datatable_ajax', tableWrapper);
- var trIn = $('thead > tr:nth-child(1)', $tableHead);
- var trBodyHead = $('thead > tr:nth-child(1)', $tableBody);
- var tds = $(trIn).children();
- var ths = $(trBodyHead).children();
- for(var k=0;k<tds.length;k++){
- $(ths.eq(k)).html('<div style="height: 0;overflow: hidden;">' + tds.eq(k).html() + '</div>');
- }
- var bodyRows = $('tbody > tr', $tableBody);
- for(var i=0;i<bodyRows.length;i++){
- var rowClone = $(bodyRows.eq(i)).clone();
- var tds = $(rowClone).children();
- for(var j=0;j<tds.length;j++){
- $(tds.eq(j)).html('<div style="height: 0;overflow: hidden;">' + tds.eq(j).html() + '</div>');
- $(tds.eq(j)).height('0px');
- $(tds.eq(j)).css('padding-top','0px');
- $(tds.eq(j)).css('padding-bottom','0px');
- $(tds.eq(j)).css('border-top-width','0px');
- $(tds.eq(j)).css('border-bottom-width','0px');
- }
- $(rowClone).height('0px');
- $tableHead.append($(rowClone).prop("outerHTML"));
- }
-
- $('.dataTables_scrollBody').css('width','100%');
- $('.dataTables_scrollHead').css('width','98.5%');
- $('.dataTables_scrollHeadInner').css('padding-right', 0);
-
- //添加浮动确认反确认按钮
- if(rowOverFlag){
- addRowOverlap();
- }
-
- //设置表格本体高度
- $('div.dataTables_scrollBody').css('height', tableHeight);
- }
- }
- }, options);
-
- tableOptions = options;
-
- columns = columnsDefined;
- xsHiddenColumns = xsHiddenColumnsDefined;
- smHiddenColumns = smHiddenColumnsDefined;
- // create table's jquery object
- table = $(options.src);
- tableContainer = table.parents(".table-container");
- // apply the special class that used to restyle the default datatable
-
- $.fn.dataTableExt.oStdClasses.sWrapper = $.fn.dataTableExt.oStdClasses.sWrapper + " dataTables_extended_wrapper";
-
- // initialize a datatable
- dataTable = table.dataTable(options.dataTable);
-
- tableWrapper = table.parents('.dataTables_wrapper');
-
- // modify table per page dropdown input by appliying some classes
- $('.dataTables_length select', tableWrapper).addClass("form-control input-xsmall input-sm");
-
- // handle group checkboxes check/uncheck
- $('.group-checkable', tableContainer).change(function () {
- var set = $('tbody > tr > td:nth-child(1) input[type="checkbox"]', table);
- var checked = $(this).is(":checked");
- $(set).each(function () {
- $(this).attr("checked", checked);
- });
- $.uniform.update(set);
- countSelectedRecords();
- });
-
- // handle row's checkbox click
- table.on('change', 'tbody > tr > td:nth-child(1) input[type="checkbox"]', function(){
- countSelectedRecords();
- });
-
- //填充表头右边界
- $('.dataTables_scrollHead').css('display','inline-block');
- //var dataTables_scrollHead_height = $('.dataTables_scrollHead').css( "height" );
- $(".dataTables_scrollHead").after("<div id='divRightPadding' style='overflow: hidden; background:#eee; position: relative; float:right; border: 1px solid #ddd; height:" + 38 + "px; width: 1.4%;'></div>");
- if($.browser.mozilla){
- $('#divRightPadding').css('height', '40');
- }
-
- //隐藏掉某些列
- var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper);
- var $tableBody = $('table#datatable_ajax', tableWrapper);
-
- for(var i=0;i<xsHiddenColumns.length;i++){
- for(var j=0;j<columns.length;j++){
- if(xsHiddenColumns[i].columnId == columns[j].columnId){
- $('thead > tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-xs');
- $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-xs');
- break;
- }
- }
- }
-
- for(var i=0;i<smHiddenColumns.length;i++){
- for(var j=0;j<columns.length;j++){
- if(smHiddenColumns[i].columnId == columns[j].columnId){
- $('thead > tr > th#' + columns[j].columnId, $tableHead).addClass('hidden-sm');
- $('thead > tr > th#' + columns[j].columnId, $tableBody).addClass('hidden-sm');
- break;
- }
- }
- }
- },//end init------------------------------------------------------------------------------------
-
- getSelectedRowsCount: function() {
- return $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).size();
- },
-
- getSelectedRows: function() {
- var rows = [];
- $('tbody > tr > td:nth-child(1) input[type="checkbox"]:checked', table).each(function(){
- rows.push({name: $(this).attr("name"), value: $(this).val()});
- });
-
- return rows;
- },
-
- addAjaxParam: function(name, value) {
- ajaxParams.push({"name": name, "value": value});
- },
-
- clearAjaxParams: function(name, value) {
- ajaxParams = [];
- },
-
- getDataTable: function() {
- return dataTable;
- },
-
- getTableWrapper: function() {
- return tableWrapper;
- },
-
- gettableContainer: function() {
- return tableContainer;
- },
-
- getTable: function() {
- return table;
- },
-
- setOpenRowFlag: function(openRowFlagInput) {
- openRowFlag = openRowFlagInput;
- },
-
- setRowOverFlag: function(rowOverFlagInput) {
- rowOverFlag = rowOverFlagInput;
- },
-
- setRowCheckable: function(rowCheckableInput) {
- rowCheckable = rowCheckableInput;
- },
-
- setColumnsTooLong: function(columnsTooLongInput) {
- columnsTooLong = columnsTooLongInput;
- },
-
- setSTotalRecordsSource: function(sTotalRecordsSourceInput){
- sTotalRecordsSource = sTotalRecordsSourceInput;
- },
-
- setTableHeight: function(tableHeightInput){
- tableHeight = tableHeightInput;
- }
-
- };
-
-};
-
-var TableAjaxICT = function () {
-
- var initPickers = function () {
- //init date pickers
- $('.date-picker').datepicker({
- //rtl: App.isRTL(),
- autoclose: true
- });
- }
-
- //判断a数组是否包含b数组
- function isContained(largeArray, smallArray){
- if(!(largeArray instanceof Array) || !(smallArray instanceof Array))
- return false;
- if(largeArray.length < smallArray.length)
- return false;
- for(var i = 0; i < smallArray.length; i++){
- var flag = false;
- for(j=0;j<largeArray.length;j++){
- if(largeArray[j].columnId == smallArray[i].columnId){
- flag = true;
- break;
- }
- }
- if(flag==false)return false;
- }
- return true;
- }
-
- var grid = new DatatableICT();
-
- /* Formatting function for row details */
- function fnFormatDetails(oTable, nTr, columns, rowCheckable) {
- //取得当前行显示数据
- var tds = $(nTr).children();
- var alarmId="";
- if(rowCheckable){
- alarmId = $(tds.eq(2)).html();
- }else{
- alarmId = $(tds.eq(1)).html();
- }
- //取得当前行完整数据
- var systemType = 0;
- var code = 0;
- //所有字段
- var resDisplayName="";
- var moc="";
- var alarmRaisedTime="";
- var perceivedSeverity="";
- var probableCauseDesc="";
- var neip="";
- var alarmType="";
- var ackState="";
- var ackTime="";
- var ackUserId="";
- var ackSystemId="";
- var alarmChangedTime="";
- var componentname="";
- var position1="";
- var specificproblem="";
- var additionalText="";
- for (var i = 0; i < oTable.datas.length; i++) {
- var temp = oTable.datas[i];
- if (temp.alarmId == alarmId) {
- alarmId = temp.alarmId;
- resDisplayName = temp.resDisplayName;
- alarmRaisedTime = temp.alarmRaisedTime;
- perceivedSeverity = temp.perceivedSeverity;
- probableCauseDesc = temp.probableCauseDesc;
- neip = temp.neip;
- alarmType = temp.alarmType;
- ackState = temp.ackState;
- ackTime = temp.ackTime;
- ackUserId = temp.ackUserId;
- ackSystemId = temp.ackSystemId;
- alarmChangedTime = temp.alarmChangedTime;
-
- systemType = temp.systemType;
- code = temp.probableCauseCode;
- moc = temp.moc;
- componentname = temp.componentname;
- position1 = temp.position1;
- specificproblem = temp.specificproblem;
- additionalText = temp.additionalText;
- break;
- }
- }
-
- var id = alarmId;
- var sOut = '<table class = "detailTable" width = 900>';
- sOut += '<tr class="oddDetailTable"><td class = "detailTitleStyle" width = 80><span class = "labelDetailTable">' + columns[0].columnTitle + '</span></td><td class = "detailCellStyle" width = 160>' + alarmId + '</td>';
- sOut += '<td class = "detailTitleStyle" width = 80><span class = "labelDetailTable">' + columns[4].columnTitle + '</span></td><td class = "detailCellStyle" width = 160>' + perceivedSeverity + '</td>';
- sOut += '<td class = "detailTitleStyle" width = 80><span class = "labelDetailTable">' + columns[9].columnTitle + '</span></td><td class = "detailCellStyle" width = 160>' + alarmType + '</td>';
- sOut += '<td class = "detailTitleStyle" width = 80><span class = "labelDetailTable">' + columns[3].columnTitle + '</span></td><td class = "detailCellStyle" width = 160>' + alarmRaisedTime + '</td></tr>';
-
- sOut += '<tr class="evenDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[5].columnTitle + '</span></td><td class = "detailCellStyle" colspan = 3>' + probableCauseDesc + '</td>';
- sOut += '<td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[15].columnTitle + '</span></td><td class = "detailCellStyle">' + alarmChangedTime + '</td>';
- sOut += '<td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[11].columnTitle + '</span></td><td class = "detailCellStyle">' + ackState + '</td></tr>';
-
- sOut += '<tr class="oddDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[12].columnTitle + '</span></td><td class = "detailCellStyle">' + ackTime + '</td>';
- sOut += '<td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[13].columnTitle + '</span></td><td class = "detailCellStyle">' + ackUserId + '</td>';
- sOut += '<td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[14].columnTitle + '</span></td><td class = "detailCellStyle">' + ackSystemId + '</td>';
- sOut += '<td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[7].columnTitle + '</span></td><td class = "detailCellStyle">' + neip + '</td></tr>';
-
- sOut += '<tr class="evenDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[2].columnTitle + '</span></td><td class = "detailCellStyle" colspan = 3>' + moc + '</td>';
- sOut += '<td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[1].columnTitle + '</span></td><td class = "detailCellStyle" colspan = 3>' + resDisplayName + '</td></tr>';
-
- sOut += '<tr class="oddDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[8].columnTitle + '</span></td><td class = "detailCellStyle" colspan = 3>' + componentname + '</td>';
- sOut += '<td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[16].columnTitle + '</span></td><td class = "detailCellStyle" colspan = 3>' + position1 + '</td></tr>';
-
- sOut += '<tr class="evenDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[10].columnTitle + '</span></td><td class = "detailCellStyle" colspan = 7>' + specificproblem + '</td></tr>';
-
- sOut += '<tr class="oddDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + columns[6].columnTitle + '</span></td><td class = "detailCellStyle" colspan = 7>' + additionalText + '</td></tr>';
-
- sOut += '<tr class="evenDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + $.i18n.prop('aos_fm_SuggestionSetting_view_DefaultSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '</span></td><td id = "defaulInfo' + id + '" class = "detailCellStyle" colspan = 7>' + '</td></tr>';
-
- sOut += '<tr class="oddDetailTable"><td class = "detailTitleStyle"><span class = "labelDetailTable">' + $.i18n.prop('aos_fm_SuggestionSetting_view_SettingSuggestionGroupTitle').replace(';', '').replace(/\"/g,'') + '</span></td><td id = "customInfo' + id + '" class = "detailCellStyle" colspan = 7><td align="right"><button id = "customInfoModify' + id + '" class="btn-toolbar" type="button"><span id = "modifyBtnSpan' + id + '"class="fa fa-pencil-square-o"></span></button></td><td id="cancelDiv' + id + '"></td></td></tr>';
-
- sOut += '</table>';
-
- /*
- var systemType = 0;
- var code = 0;
- for (var i = 0; i < oTable.datas.length; i++) {
- var temp = oTable.datas[i];
- if (temp.alarmId == oTr['alarmId'].value) {
- systemType = temp.systemType;
- code = temp.probableCauseCode;
- }
- }*/
- var data = {
- "systemType" : systemType,
- "code" : code
- };
- var sendData = JSON.stringify(data);
- $.ajax({
- "dataType" : 'json',
- "type" : "GET",
- "url" : "/web/rest/web/fm/Maintenance" + "?" + "data=" + sendData,
- "contentType" : 'application/json; charset=utf-8',
- "data" : null,
- "success" : function (json) {
- $('tr').find('td#defaulInfo' + id).text(json.defaulInfo);
- $('tr').find('td#customInfo' + id).text(json.customInfo);
- var modify = $('#customInfoModify' + id);
- modify.on('click', function () {
- var span = $('#modifyBtnSpan' + id);
- var customInfo = $('tr').find('td#customInfo' + id);
- var cancel = $('#cancelDiv' + id);
- if (span['0'].className === 'fa fa-pencil-square-o') {
- var value = customInfo['0'].textContent;
- customInfo['0'].textContent = '';
- customInfo['0'].innerHTML = '<textarea id="customInfoInput' + id + '" type="textarea" cols=100 rows=4>' + value + '</textarea>';
- span['0'].className = 'fa fa-floppy-o';
- cancel['0'].innerHTML = '<button id = "cancelBtn' + id + '" class="btn-toolbar" type="button"><span class="fa fa-sign-out"></span></button>';
- $('#cancelBtn' + id).on('click', function () {
- customInfo['0'].innerHTML = '';
- customInfo['0'].textContent = value;
- cancel['0'].innerHTML = '';
- span['0'].className = 'fa fa-pencil-square-o';
- });
- } else {
- var inputValue = $('#customInfoInput' + id)['0'].value;
- customInfo['0'].innerHTML = '';
- customInfo['0'].textContent = inputValue;
- span['0'].className = 'fa fa-pencil-square-o';
- cancel['0'].innerHTML = '';
- var modifyData = {
- "systemType" : systemType,
- "code" : code,
- "defaulInfo" : json.defaulInfo,
- "customInfo" : inputValue
- };
- $.ajax({
- "dataType" : 'json',
- "type" : "PUT",
- "url" : "/web/rest/web/fm/Maintenance",
- "contentType" : 'application/json; charset=utf-8',
- "data" : JSON.stringify(modifyData),
- "error" : function () {
- alert('Modify Error!');
- }
- });
- }
- });
- },
- "error" : function () {
- alert('Communication Error!');
- }
- });
-
- return sOut;
- }
-
- var generateColumns = function(columns, openRowFlag, rowCheckable){
- var $tableData = $('table#datatable_ajax');
- var theadTR = $('thead > tr', $tableData);
- if(rowCheckable){
- theadTR.append('<th><input type="checkbox" class="group-checkable"></th>');
- }
- if(openRowFlag){
- theadTR.append('<th>&nbsp;&nbsp;</th>');
- }
- for(var i=0;i<columns.length;i++){
- theadTR.append('<TH id="' + columns[i].columnId + '" style="white-space: nowrap;">' + columns[i].columnTitle + '</TH>');
- }
- }
-
- var sortHandling = function(oTable, openRowFlag, rowCheckable){
- var indexSkip = -1;
- if(openRowFlag&&rowCheckable){
- indexSkip = 1;
- }else if(openRowFlag&&!rowCheckable||!openRowFlag&&rowCheckable){
- indexSkip = 0;
- }
- var $sortOrder = 0; //排序类型 1表示升序,0表示降序
- var tableWrapper = $('div#datatable_ajax_wrapper');
- var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper);
- var $tableData = $('table#datatable_ajax');
- var clearSort = function(currentTh){
- var ths = $tableHead.find('th').get();
- var tableDataHeadTHs = $tableData.find('th').get();
- $.each( ths, function( index, th ){
- if(index > indexSkip){
- if($(th).text() != currentTh.text()){
- if($(th).is('.sorting_disabled')){
- //do nothing;
- }else if($(th).is('.sorting_asc')){
- $(th).removeClass('sorting_asc').addClass('sorting_disabled');
- $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled');
- }else if($(th).is('.sorting_desc')){
- $(th).removeClass('sorting_desc').addClass('sorting_disabled');
- $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled');
- }
- }
- }
- });
- }
-
- $('th', $tableHead).each(function( column )
- {
- if(column>indexSkip){
- //处理三种有可能存在的排序字段,比较方法
- var findSortKey;
- if( $(this).is('.sort-title') || $(this).is('.sorting_disabled') )
- {
- findSortKey = function( $cell )
- {
- var cellText = $cell.text();
- if(isNaN(cellText)){
- return $cell.text().toUpperCase();
- }else{
- return parseFloat(cellText);
- }
- //return $cell.text().toUpperCase();
- }
- }
- else if( $(this).is('.sort-date') )
- {
- findSortKey = function( $cell )
- {
- return Date.parse('1' + $cell.text());
- }
- }
- else if( $(this).is('.sort-price') )
- {
- findSortKey = function( $cell )
- {
- var key = parseFloat($cell.text().replace(/^[^\d.]*/, ''))
- return isNaN(key) ? 0 : key;
- }
- }
-
- //排序
- if( findSortKey )
- {
- $(this).click(function()
- {
- $sortOrder = $sortOrder == 0 ? 1 : 0;
- var tableDataHeadTHs = $tableData.find('th').get();
-
- if($sortOrder == 1){
- if($(this).is('.sorting_disabled')){
- $(this).removeClass('sorting_disabled').addClass('sorting_asc');
- $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_asc');
- }else if($(this).is('.sorting_asc')){
- $(this).removeClass('sorting_asc').addClass('sorting_desc');
- $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc');
- }else if($(this).is('.sorting_desc')){
- $(this).removeClass('sorting_desc').addClass('sorting_asc');
- $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc');
- }
- }else{
- if($(this).is('.sorting_disabled')){
- $(this).removeClass('sorting_disabled').addClass('sorting_desc');
- $(tableDataHeadTHs[column]).removeClass('sorting_disabled').addClass('sorting_desc');
- }else if($(this).is('.sorting_asc')){
- $(this).removeClass('sorting_asc').addClass('sorting_desc');
- $(tableDataHeadTHs[column]).removeClass('sorting_asc').addClass('sorting_desc');
- }else if($(this).is('.sorting_desc')){
- $(this).removeClass('sorting_desc').addClass('sorting_asc');
- $(tableDataHeadTHs[column]).removeClass('sorting_desc').addClass('sorting_asc');
- }
- }
- clearSort($(this));
-
- var rows = $tableData.find('tbody > tr').get();
-
- $.each( rows, function( index, row )
- {
- //先关掉所有行
- if ( oTable.fnIsOpen(row) )
- {
- $(row).find('.row-details').click();
- }
- });
-
- //重新取得所有行,否则排序后表格显示异常
- rows = $tableData.find('tbody > tr').get();
-
- $.each( rows, function( index, row )
- {
- row.sortKey = findSortKey($(row).children('td').eq(column));
- });
- //排序方法
- rows.sort(function( a, b )
- {
- if( $sortOrder == 1 )
- {
- //升序
- if(a.sortKey < b.sortKey) return -1;
- if(a.sortKey > b.sortKey) return 1;
- return 0;
- }
- else
- {
- //降序
- if(a.sortKey < b.sortKey) return 1;
- if(a.sortKey > b.sortKey) return -1;
- return 0;
- }
- });
- //排序后的对象添加给$table
- $.each( rows, function( index, row )
- {
- $tableData.children('tbody').append(row);
- row.sortKey = null;
- });
- });
- }
- }
- });
- }
-
- var handleRecords = function(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource) {
-
- /*
- jQuery.getJSON('/web/newict/framework/thirdparty/data-tables/app-universal-i18n-datatable-' + lang + '.json',
- function(data) {
- oLanguage = data;
- });
- */
- grid.setOpenRowFlag(openRowFlag);
- grid.setRowCheckable(rowCheckable);
- grid.setRowOverFlag(rowOverFlag);
- grid.setColumnsTooLong(columnsTooLong);
- grid.setSTotalRecordsSource(sTotalRecordsSource);
- grid.setTableHeight(tableHeight);
- //取得查询条件
-// if(!requestStr || requestStr.length == 0){
-// requestStr = JSON.stringify(requestAllData);
-// }
- grid.clearAjaxParams();
- grid.addAjaxParam('data', requestStr);
- //取得其他参数
- for(var i=0;i<requestParameters.length;i++){
- grid.addAjaxParam(requestParameters[i].paraId,requestParameters[i].paraValue);
- }
-
- grid.init({
- src: $("#datatable_ajax"),
- onSuccess: function(grid) {
- // execute some code after table records loaded
- var tableWrapper = $('div#datatable_ajax_wrapper');
- var $tableHead = $('div.dataTables_scrollHeadInner > table.dataTable', tableWrapper);
- var ths = $tableHead.find('th').get();
- var $tableData = $('table#datatable_ajax');
- var tableDataHeadTHs = $tableData.find('th').get();
- $.each( ths, function( index, th ){
- //clear all sort direction
- if($(th).is('.sorting_disabled')){
- //do nothing;
- }else if($(th).is('.sorting_asc')){
- $(th).removeClass('sorting_asc').addClass('sorting_disabled');
- $(tableDataHeadTHs[index]).removeClass('sorting_asc').addClass('sorting_disabled');
- }else if($(th).is('.sorting_desc')){
- $(th).removeClass('sorting_desc').addClass('sorting_disabled');
- $(tableDataHeadTHs[index]).removeClass('sorting_desc').addClass('sorting_disabled');
- }
- });
-
- },
- onError: function(grid) {
- // execute some code on network or other general error
- },
- dataTable: {
- "sDom" : "tr<'row'<'col-md-6 col-sm-12'><'col-md-6 col-sm-12'pli>>", // datatable layout
- "oLanguage": oLanguage,
- //"bAutoWidth": true,
- "sScrollY": tableHeight,
- "bScrollCollapse": true,
- "sScrollX": "100%",
- //"sScrollXInner": "110%",
- "aLengthMenu": [
- [20, 50, 100],
- [20, 50, 100] // change per page values here
- ],
- "iDisplayLength": 20, // default record count per page
- "bServerSide": true, // server side processing
- "sAjaxSource": requestURL // ajax source
- }
- }, columns, xsHiddenColumns, smHiddenColumns, openRowFlag, rowCheckable);
- }
-
- /*
- * Insert a 'details' column to the table
- */
- var insertDetails = function (oTable, columns, rowCheckable) {
-
- var $tableData = $('table#datatable_ajax');
-
- $tableData.on('click', ' tbody td .row-details', function () {
- var nTr = $(this).parents('tr')[0];
- if (oTable.fnIsOpen(nTr)) {
- /* This row is already open - close it */
- $(this).addClass("row-details-close").removeClass("row-details-open");
- oTable.fnClose(nTr);
- } else {
- /* Open this row */
- $(this).addClass("row-details-open").removeClass("row-details-close");
- oTable.fnOpen(nTr, fnFormatDetails(oTable, nTr, columns, rowCheckable), 'details');
- }
- });
- }
-
- return {
-
- //main function to initiate the module
- init: function (requestStr, lang, configPathPrefix) {
-
- var oLanguage;
- var columns;
- var xsHiddenColumns;
- var smHiddenColumns;
- var columnsAll;
-
- var openRowFlag = false;
- var rowOverFlag = false;
- var rowCheckable = false;
- var requestURL="";
- var requestAllData;
- var requestParameters;
-
- var tableHeight;
- var tableWidth;
-
- var columnsTooLong;
- var sTotalRecordsSource="";
-
- //取得当前配置及国际化信息
- $.ajax({
- dataType: 'json',
- url: configPathPrefix + '-' + lang + '.json',
- async: false,
- contentType:'application/json; charset=utf-8',
- "success": function(data) {
- oLanguage = data.language;
- columns = data.columns;
- xsHiddenColumns = data.xsHiddenColumns;
- smHiddenColumns = data.smHiddenColumns;
- columnsAll = data.columnsAll;
- openRowFlag = data.openRowFlag == 'true'? true: false;
- rowOverFlag = data.rowOverFlag == 'true'? true: false;
- rowCheckable = data.rowCheckable == 'true'? true: false;
- requestURL = data.requestURL;
- //requestAllData = data.requestAllData;
- requestParameters = data.requestParameters;
- tableHeight = data.tableHeight;
- tableWidth = data.tableWidth;
- columnsTooLong = data.columnsTooLong;
- sTotalRecordsSource = data.sTotalRecordsSource;
- },
- "error" : function (xhr, info) {
- alert('Communication Error! Error reason:' + info);
- }
- });
-
- $('#dataTableWrapperDiv').css('width', tableWidth);
-
- if(!isContained(xsHiddenColumns, smHiddenColumns) || !isContained(columns, xsHiddenColumns) || !isContained(columnsAll, columns)){
- alert('Columns claim error: (smHiddenColumns <= xsHiddenColumns <= columns <= columnsAll) Please!');
- return;
- }
-
- generateColumns(columns, openRowFlag, rowCheckable);
- //initPickers();
- handleRecords(requestStr, columns, xsHiddenColumns, smHiddenColumns, oLanguage, openRowFlag, rowCheckable, rowOverFlag, requestURL, requestParameters, tableHeight, columnsTooLong, sTotalRecordsSource);
- //获得初始化完毕的DataTable对象
- var oTable = grid.getDataTable();
- if(openRowFlag){
- insertDetails(oTable, columnsAll, rowCheckable);
- }
- sortHandling(oTable, openRowFlag, rowCheckable);
- //oTable.fnAdjustColumnSizing(true);
- return oTable;
- }
-
- };
-
-}();
-
-var DataTableSmartClient = function(datas, configPathPrefix){
-
- var requestStr = "";
- if(datas){
- requestStr = JSON.stringify(datas);
- }
-
- var lang = getLanguage();
- //lang = 'en-US';
- loadi18n_FM(lang);
- //requestStr = "";
- var oTable = TableAjaxICT.init(requestStr, lang, configPathPrefix);
-
- //重新调节列宽以适应window resize
- $(window).one('resize', function () {
- //oTable.DataTable.models.oSettings.bAjaxDataGet = false;
- oTable.fnAdjustColumnSizing(false);
- } );
-}