/* Preparing Sorters for multiple tables on the page*/ /* Each Page will simply add tables to the table_Ids Array*/ var table_sorters = new Array(); function table_createSorter(tableId, sortBy, sortOrder) { var i =table_sorters.length; table_sorters[i] = new Array(); table_sorters[i][0] = tableId; table_sorters[i][1] = new TableSorter(tableId); if (sortBy != null && sortBy!='') table_doSort( sortOrder,sortBy, tableId, false); } function table_getSorter(tableId) { for(i=0;i parseFloat(val2) ) { return 1*order; } return 0; }); } // Date else if (this.dataTypes[column] == "Date") { // alert("date"); this.rows.sort( function compare(a,b) { var val1 = (a.cells[column].innerText); var val2 = (b.cells[column].innerText); if (val1 == null || trimString(val1) == '') { return -1*order; } if (val2 == null || trimString(val2) == '') { return 1*order; } return (datecompare(val1, dateGetFormat(val1),val2,dateGetFormat(val2)))*order; }); } // Image else if (this.dataTypes[column] == "Image") { this.rows.sort( function compare(a,b) { var val1 = table_cell_getImageAlt(a.cells[column]); var val2 = table_cell_getImageAlt(b.cells[column]); if (val1 == null || trimString(val1) == '') { return -1*order; } if (val2 == null || val2 == '') { return 1*order; } if (val1+"" < val2+"" ) { return -1*order; } if (val1+"" > val2+"" ) { return 1*order; } return 0; }); } // AlphaNumeric else { this.rows.sort( function compare(a,b) { var val1 = (a.cells[column].innerText); var val2 = (b.cells[column].innerText); if ((val1 == null || trimString(val1) == '')) { return -1*order; } if ((val2 == null || trimString(val2) == '')) { return 1*order; } // If Values are just numbers or alphanumeric if (isNaN(val1) || isNaN(val2)) type = "Text"; else type = "Number"; if (type == "Text") { if (val1+"" < val2+"") { return -1*order; } if (val1+"" > val2+"") { return 1*order; } return 0; } else { if (parseFloat(val1) < parseFloat(val2)) {return -1*order; } if (parseFloat(val1) > parseFloat(val2)) {return 1*order; } return 0; } }); } // reorder the html table this.refreshTable(resize) } /* Reversers the rows in the table*/ function table_sort_reverse(resize) { obj = this; noOfRows = obj.uiTable.rows.length; for (var i=0; i < (noOfRows/2); i++) { obj.uiTable.rows[i].swapNode(obj.uiTable.rows[noOfRows-1-i]); } if (resize == true || resize == null) onResize(); } /* reorders the html table based on the results of TableSorter*/ function table_sort_refresh(resize) { var obj = this; for (var i=0; i < obj.rows.length; i++) { var from = -1; for (var j=0; j < obj.uiTable.rows.length; j++) { if ( obj.rows[i] == obj.uiTable.rows[j]) { from = j;break; } } var to = i; obj.uiTable.moveRow(from,to); var mod = to%2 ; if ( mod == 0 ) obj.uiTable.rows[to].className="tableRow1"; else obj.uiTable.rows[to].className="tableRow0"; } // if (obj.sortedOrder == 1) obj.reverseTable(); if (resize == true || resize == null) onResize(); } // Called from user Action to show popup menu function sort(value , column, obj, tableId) { //fix for eQ :: 530156 - IE loses document after we do save on reports var docObj; if ( obj != null ) { docObj = obj.document; } else { docObj = document; } docObj.sortByClient = 'false'; docObj.form.reset(); var sortByElementName = "SORT_BY"; if ( tableId != null && tableId != "" ) { sortByElementName = tableId + "_SORT_BY"; gSortOrderElemName = tableId + "_SORT_ORDER"; gStartCountElemName = tableId + "_START_COUNT"; } var sortByElement = docObj.getElementById(sortByElementName); if (sortByElement != null) { sortByElement.value = value; } else { docObj.form.SORT_BY.value = value; } var sortOrderPopUpObj = docObj.getElementById('sortOrder'); i2uiShowMenu('sortOrder',sortOrderPopUpObj); } // called when user choose order on the popup menu function sortOrder(order) { if (document.sortByClient == true) { table_onClientSort_doSort(order,document.sortColumnNumber); } else { var sortOrderElement = document.getElementById(gSortOrderElemName); var startCountElement = document.getElementById(gStartCountElemName); if (sortOrderElement != null && startCountElement != null) { sortOrderElement.value = order; startCountElement.value = 0; } else { document.form.SORT_ORDER.value = order; document.form.START_COUNT.value = 0; } document.form.submit(); } } function table_sort_changeIcon( cell, sortOrder) { var childLen = cell.childNodes.length; var k; if ( childLen >= 1) { for(k = 0; k < childLen; k++) { var child = cell.childNodes[k]; if (child.nodeName == 'SPAN') { if (sortOrder == 0 ) { if (child.id == 'asc') toggleItemVisibility(child,'show'); else if (child.id == 'desc') toggleItemVisibility(child,'hide'); } else if (sortOrder == 1) { if (child.id == 'asc') toggleItemVisibility(child,'hide'); else if (child.id == 'desc') toggleItemVisibility(child,'show'); } else if (sortOrder == -1) { if (child.id == 'asc' || child.id =='ascdesc' || child.id=='desc') toggleItemVisibility(child,'hide'); } } } } } /* This is called from user action */ function table_onClientSort_getOrder(id, column) { document.sortByClient = true; document.sortTableId = id; document.sortColumnNumber = column;; i2uiShowMenu('sortOrder'); return; } /* This is called from user action */ function table_doSort(order,columnName, tableId, resize) { var sorter = table_getSorter(tableId); var table = sorter.uiTableHeader; if (table == null) return; var posOfSortingHeaderRow = table.rows.length-1; if (posOfSortingHeaderRow < 0 )return; var column = -1; for(var i =0; i< table.rows[posOfSortingHeaderRow].cells.length;i++) { if (table.rows[posOfSortingHeaderRow].cells[i].name == columnName) { column = i; break } } if (column == -1) return; var cell = table.rows[posOfSortingHeaderRow].cells[column]; if (cell.sortable="client") { table_onClientSort_doSort(order,column,tableId,resize); } else { // NotImplemented } } /* This is called from user action */ function table_onClientSort_doSort(order,column, tableId,resize) { if (tableId == null) tableId = document.sortTableId; if (tableId == null) return; if (column == null) return; if (resize == null) resize = true; var sorter = table_getSorter(tableId); var table = sorter.uiTableHeader; var posOfSortingHeaderRow = table.rows.length-1; var cell = table.rows[posOfSortingHeaderRow].cells[column]; for(var i =0; i< table.rows[posOfSortingHeaderRow].cells.length;i++) { table_sort_changeIcon(table.rows[posOfSortingHeaderRow].cells[i],-1); } if (order == 'Ascending' ) { sorter.sort(column,0, resize); table_sort_changeIcon(cell,0); } else if (order == 'Descending') { order = 'Descending'; sorter.sort(column,1,resize); table_sort_changeIcon(cell,1); } else { sorter.sort(column,null,resize); table_sort_changeIcon(cell,sorter.sortedOrder); } return; } function ui_configureTable(tableId) { var pageId = document.form.PAGE_NAME.value; if( pageId == "" ) pageId = document.form.PAGE.value; var sysId = document.form.SYS_ID;//for pages built using studio var s = omxContextPath + '/core/configure.jsp?TABLE_ID=' + tableId+"&PAGE_ID="+pageId; if( sysId ) s += "&SYS_ID=" + sysId.value; popUpWindow(s,'configurePopup'); } function table_export(tableId,horizontal, where) { if (where == "true" || where == "client" || where == "") { ui_extractTable(tableId, horizontal); } else if (where == "ui") { exportTablePGL(tableId); } else if (where == "server") { // not implemented in server yet. } } function table_export_old(tableId, where, action) { if (where == "true" || where == "client" || where == "") { ui_extractTable(tableId); } else if (where == 'x2') { exportTableX2(action); } } // private function exportTableX2(action) { var prevAction = document.search_form.action; var prevTarget = document.search_form.target; var prevMaxRows = document.search_form.MAX_ROWS.value; var max = page_maxRowsExportable; if (document.result_form.RECORD_COUNT.value > max) { core_alert("Your search Criteria resulted in {0} rows. Only {1} rows can be exported to excel. Please change the search critieria and try again.",document.result_form.RECORD_COUNT.value, max); return; } document.search_form.MAX_ROWS.value = document.result_form.RECORD_COUNT.value; document.search_form.target = "i2ui_shell_bottom"; document.search_form.action=omxContextPath + action; document.search_form.submit(); document.search_form.action= prevAction; document.search_form.target= prevTarget; document.search_form.MAX_ROWS.value= prevMaxRows; } //private function exportTablePGL(tableId) { var pageId = document.form.PAGE_NAME.value; var prevAction = document.form.action; var prevTarget = document.form.target; var prevMaxRows = document.form.MAX_ROWS.value; var max = page_maxRowsExportable; if (document.form.RECORD_COUNT.value > max) { core_alert("Your search Criteria resulted in {0} rows. Only {1} rows can be exported to excel. Please change the search critieria and try again.",document.form.RECORD_COUNT.value, max); return; } document.form.MAX_ROWS.value = document.form.RECORD_COUNT.value; document.form.target = "i2ui_shell_bottom"; document.form.action=omxContextPath+ "/core/report/controller/export.x2c?TABLE_ID="+ tableId+"&PAGE_ID="+pageId; document.form.submit(); document.form.action= prevAction; document.form.target= prevTarget; document.form.MAX_ROWS.value= prevMaxRows; } /* Returns the selected rowid's as an array given the tableid */ function table_getSelectedRows(tableid) { var selected = new Array(); // NS4 browser not supported // if (document.layers != null) //// return selected; var tableobj = document.getElementById(tableid); if (tableobj != null) { var checkboxes; // IE has a document object per element if(tableobj.document) checkboxes = tableobj.document.getElementsByTagName("INPUT"); else checkboxes = document.getElementsByTagName("INPUT"); if (checkboxes != null) { var len = checkboxes.length; var j = 0; for(var i=0; i (b.text+"")) { return 1; } return 0; } ); for (var i=first,j=0; j -1)) { if(!isValid_field(selectedElem.name, null)) { bValidFilters = false; onResize(); break; } } } if (bValidFilters) { document.form.START_COUNT.value = 0; ui_submit_param("SYS_RELOAD","innerAction=Filter"); } } function clear_filters_and_refresh() { for (var i = 0; i -1)) { selectedElem.value = ""; } } ui_submit('SYS_RELOAD'); }