From 0fb7a6091752d0cd7806edff34c92facbe92e0ee Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Tue, 23 Feb 2010 20:59:49 -0800 Subject: [PATCH] Fix DataForms with dates. --- docs/changelog/7.x.x.txt | 1 + www/extras/yui-webgui/build/form/datatable.js | 25 +++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index f812d9f24..f94aaccea 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -8,6 +8,7 @@ - fixed #11428: Dataform Date Field Problem - fixed #11409: 7.7.32 Breaks Code Editor - fixed #11426: Logout page gets cached + - fixed #11428: Dataform Date Field Problem 7.8.12 - fixed #11285: Pasting HTML into Code Editor in IE diff --git a/www/extras/yui-webgui/build/form/datatable.js b/www/extras/yui-webgui/build/form/datatable.js index 3f9d1d2b2..514fe7409 100644 --- a/www/extras/yui-webgui/build/form/datatable.js +++ b/www/extras/yui-webgui/build/form/datatable.js @@ -49,7 +49,7 @@ WebGUI.Form.DataTable data = {}; var columns = this.dataTable.getColumnSet().getDefinitions(); for ( var i = 0; i < columns.length; i++ ) { - data[ columns[ i ].key ] = ""; + data[ columns[ i ].key ] = columns[i].formatter == "date" ? new Date : ""; } } this.dataTable.addRow( data ); @@ -626,18 +626,11 @@ WebGUI.Form.DataTable key : newKey, formatter : format, resizeable : ( col ? col.resizeable : 1 ), - sortable : ( col ? col.sortable : 1 ) + sortable : ( col ? col.sortable : 1 ), + editor : ( format == "date" ? "date" : "textbox") }; var newIndex = col ? col.getKeyIndex() : undefined; - // Set the editor - if ( format == "date" ) { - newCol.editor = "date"; - } - else { - newCol.editor = "textbox"; - } - this.dataTable.insertColumn( newCol, newIndex ); if ( col ) { // Get a new reference so we remove the right column @@ -650,6 +643,18 @@ WebGUI.Form.DataTable } this.dataTable.removeColumn( delCol ); } + else { + //Set data in the new column to useful defaults. + var allRecords = this.dataTable.getRecordSet().getRecords(); + var numRecords = allRecords.length; + for (j=0; j < numRecords; j++) { + if (format == "date") { + allRecords[j].setData(newKey, new Date); + } else { + allRecords[j].setData(newKey, ''); + } + } + } i++; }