From efe62bae1e613d0f48ba436c23320ca6108e6acb Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Fri, 30 Jan 2009 08:40:00 -0800 Subject: [PATCH] Let the user choose which columns get sorted in a DataTable, js changes. --- www/extras/yui-webgui/build/form/datatable.js | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/www/extras/yui-webgui/build/form/datatable.js b/www/extras/yui-webgui/build/form/datatable.js index cedbf8ae9..a96db2181 100644 --- a/www/extras/yui-webgui/build/form/datatable.js +++ b/www/extras/yui-webgui/build/form/datatable.js @@ -338,7 +338,8 @@ WebGUI.Form.DataTable "help select row", "help add row", "help default sort", - "help reorder column" + "help reorder column", + "sortable" ] }, onpreload : { @@ -399,7 +400,8 @@ WebGUI.Form.DataTable div.parentNode.removeChild( div ); }; - var buttonLabel = this.i18n.get( "Form_DataTable", "delete column" ); + var sortableLabel = this.i18n.get( "Form_DataTable", "sortable" ); + var buttonLabel = this.i18n.get( "Form_DataTable", "delete column" ); var availableFormats = [ { "value" : "text", @@ -464,6 +466,16 @@ WebGUI.Form.DataTable format.appendChild( opt ); } div.appendChild( format ); + + div.appendChild( document.createTextNode(sortableLabel) ); + + var sorter = document.createElement( "input" ); + sorter.type = "checkbox"; + sorter.name = "canSort_" + i; + sorter.checked = cols[i].sortable; + sorter.value = 1; + div.appendChild( sorter ); + return div; }; @@ -475,6 +487,7 @@ WebGUI.Form.DataTable var newIdx = cols.length; // create a new column object cols[newIdx] = new YAHOO.widget.Column; + cols[newIdx].sortable = true; // add it to the dialog box this.appendChild( createTableColumn(newIdx,cols) ); }; @@ -600,9 +613,10 @@ WebGUI.Form.DataTable // Update columns var i = 0; while ( data[ "newKey_" + i ] ) { - var oldKey = data[ "oldKey_" + i ]; - var newKey = data[ "newKey_" + i ]; - var format = data[ "format_" + i ][0]; + var oldKey = data[ "oldKey_" + i ]; + var newKey = data[ "newKey_" + i ]; + var format = data[ "format_" + i ][0]; + var canSort = data[ "canSort_" + i ] var col = this.dataTable.getColumn( oldKey ); // Don't allow adding multiple columns with same key @@ -626,7 +640,7 @@ WebGUI.Form.DataTable key : newKey, formatter : format, resizeable : ( col ? col.resizeable : 1 ), - sortable : ( col ? col.sortable : 1 ) + sortable : canSort }; var newIndex = col ? col.getKeyIndex() : undefined;