From 38e3c4d141e0837e345274221dadfd93bd9a5c5e Mon Sep 17 00:00:00 2001 From: phasefx Date: Sat, 14 Nov 2009 09:11:53 +0000 Subject: [PATCH] Have List Actions -> Print List CSV & Print List Expanded Format use the displayed column order instead of the original column order, for better WYSIWYP(rint) :) git-svn-id: svn://svn.open-ils.org/ILS/trunk@14916 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../xul/staff_client/chrome/content/util/list.js | 58 ++++++++++++++-------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/Open-ILS/xul/staff_client/chrome/content/util/list.js b/Open-ILS/xul/staff_client/chrome/content/util/list.js index 88bb6ec126..3ff99e764f 100644 --- a/Open-ILS/xul/staff_client/chrome/content/util/list.js +++ b/Open-ILS/xul/staff_client/chrome/content/util/list.js @@ -1123,31 +1123,36 @@ util.list.prototype = { '_dump_tree_csv' : function(params) { var obj = this; - var dump = ''; + var _dump = ''; + var ord_cols = []; for (var j = 0; j < obj.columns.length; j++) { if (obj.node.treeBoxObject.columns.getColumnAt(j).element.getAttribute('hidden') == 'true') { /* skip */ } else { - if (dump) dump += ','; - dump += '"' + obj.columns[j].label.replace(/"/g, '""') + '"'; + ord_cols.push( [ obj.node.treeBoxObject.columns.getColumnAt(j).element.getAttribute('ordinal'), j ] ); } } - dump += '\r\n'; + ord_cols.sort( function(a,b) { + if ( Number( a[0] ) < Number( b[0] ) ) return -1; + if ( Number( a[0] ) > Number( b[0] ) ) return 1; + return 0; + } ); + for (var j = 0; j < ord_cols.length; j++) { + if (_dump) _dump += ','; + _dump += '"' + obj.columns[ ord_cols[j][1] ].label.replace(/"/g, '""') + '"'; + } + _dump += '\r\n'; for (var i = 0; i < this.treechildren.childNodes.length; i++) { var row = ''; var treeitem = this.treechildren.childNodes[i]; var treerow = treeitem.firstChild; - for (var j = 0; j < treerow.childNodes.length; j++) { - if (obj.node.treeBoxObject.columns.getColumnAt(j).element.getAttribute('hidden') == 'true') { - /* skip */ - } else { - if (row) row += ','; - row += '"' + treerow.childNodes[j].getAttribute('label').replace(/"/g, '""') + '"'; - } + for (var j = 0; j < ord_cols.length; j++) { + if (row) row += ','; + row += '"' + treerow.childNodes[ ord_cols[j][1] ].getAttribute('label').replace(/"/g, '""') + '"'; } - dump += row + '\r\n'; + _dump += row + '\r\n'; } - return dump; + return _dump; }, 'dump_extended_format' : function(params) { @@ -1161,21 +1166,30 @@ util.list.prototype = { '_dump_tree_extended_format' : function(params) { var obj = this; - var dump = ''; + var _dump = ''; + var ord_cols = []; + for (var j = 0; j < obj.columns.length; j++) { + if (obj.node.treeBoxObject.columns.getColumnAt(j).element.getAttribute('hidden') == 'true') { + /* skip */ + } else { + ord_cols.push( [ obj.node.treeBoxObject.columns.getColumnAt(j).element.getAttribute('ordinal'), j ] ); + } + } + ord_cols.sort( function(a,b) { + if ( Number( a[0] ) < Number( b[0] ) ) return -1; + if ( Number( a[0] ) > Number( b[0] ) ) return 1; + return 0; + } ); for (var i = 0; i < this.treechildren.childNodes.length; i++) { var row = document.getElementById('offlineStrings').getString('list.dump_extended_format.record_separator') + '\r\n'; var treeitem = this.treechildren.childNodes[i]; var treerow = treeitem.firstChild; - for (var j = 0; j < treerow.childNodes.length; j++) { - if (obj.node.treeBoxObject.columns.getColumnAt(j).element.getAttribute('hidden') == 'true') { - /* skip */ - } else { - row += obj.columns[j].label + ': ' + treerow.childNodes[j].getAttribute('label') + '\r\n'; - } + for (var j = 0; j < ord_cols.length; j++) { + row += obj.columns[ ord_cols[j][1] ].label + ': ' + treerow.childNodes[ ord_cols[j][1] ].getAttribute('label') + '\r\n'; } - dump += row + '\r\n'; + _dump += row + '\r\n'; } - return dump; + return _dump; }, 'dump_csv_to_clipboard' : function(params) { -- 2.11.0