source: TI12-security/trunk/python/ndg.security.test/ndg/security/test/openidrelyingparty/public/yui/2.6.0/datatable/README @ 4907

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI12-security/trunk/python/ndg.security.test/ndg/security/test/openidrelyingparty/public/yui/2.6.0/datatable/README@4907
Revision 4907, 20.9 KB checked in by pjkersha, 11 years ago (diff)
  • Single Sign On Service logout controller: fixed WSGI Session Manager client instantiation - added Session Manager environ key arg
  • Completed OpenIDRelyingPartyMiddleware - wraps Authkit OpenID RP code adding a custom signin template and logout capability.
Line 
1DataTable Release Notes
2
3*** version 2.6.0 ***
4
5* GA release.
6* Created new subclass ScrollingDataTable. Created new classes CellEditor,
7BaseCellEditor, and associated subclasses. As a result, the following API changes
8have been made:
9   - DataTable.editCheckbox is no longer supported. The CheckboxCellEditor class should be used instead.
10   - DataTable.editDate is no longer supported. The DateCellEditor class should be used instead.
11   - DataTable.editDropdown is no longer supported. The DropdownCellEditor class should be used instead.
12   - DataTable.editRadio is no longer supported. The RadioCellEditor class should be used instead.
13   - DataTable.editTextarea is no longer supported. The TextareaCellEditor class should be used instead.
14   - DataTable.editTextbox is no longer supported. The TextboxCellEditor class should be used instead.
15   - editorUpdateEvent is no longer supported.
16   - showCellEditorBtns() is no longer supported. The CellEditor method renderBtns() should be used instead.
17   - resetCellEditor() renamed to destroyCellEditor().
18   - Values for checkboxOptions, dropdownOptions, and radioOptions must be either a
19   simple Array or an array of object literals with properties "value" and "label".
20   - A new CellEditor property asyncSubmitter can be used to submit input values
21   and will block the DataTable UI (via new DataTable methods disable() and
22   undisable()) until the callback function is executed to finish the transaction.
23   - The CellEditor's "Save" and "Cancel" buttons now have configurable labels.
24   - CellEditor validator functions, including the built-in function YAHOO.widget.DataTable.validateNumber
25   must return undefined for invalid values.
26   
27* Pagination and sorting have been reworked to better support dynamically driven
28DataTables. As a result, the following important changes have been made:
29    - Removed support for "magic meta" fields
30    - The following APIs have been removed:
31        * "paginationEventHandler" Attribute
32        * handleSimplePagination()
33        * handleDataSourcePagination()       
34        * updatePaginator()
35        * showPage()
36        * formatPaginator()
37        * formatPaginationDropdown()
38        * formatPaginatorLinks()
39    - The following APIs have been added:
40        * "dynamicData" Attribute
41    - The following APIs have been changed:
42        * onPaginatorChange() has been renamed to onPaginatorChangeRequest()
43    - Removed backward compatibility support for the "paginated" Attribute and
44   the object literal "paginator" Attribute value. Implementers must use the Paginator
45   class to populate the "paginator" Attribute.
46
47* The following APIs have been changed from static class properties to instance
48Attributes, to be set via the initial config or myDataTable.set():
49    - MSG_EMPTY
50    - MSG_ERROR
51    - MSG_LOADING
52    - COLOR_COLUMNFILLER (ScrollingDataTable)
53   
54* The formatTheadCell() method been changed from static a static method to an
55instance method with an update to its argument signature.
56
57* The initEvent will fire when rows are rendered from an initialized state,
58and the renderEvent will always fire when rows are rendered, and also when the
59underlying DOM incrementally changes (such as incrementally adding or deleting
60rows or Columns). This is a change from prior behavior, when the the renderEvent
61would *not* fire if the initEvent was fired and only when the entire view was
62rendered (such as a new page). There is now a new postRenderEvent which fires
63after the renderEvent, once the post-render cleanup routine has executed (i.e.,
64Column width validations).
65
66* For consistency with other doBefore abstract methods, doBeforeShowCellEditor()
67returns true by default, and returns false to cancel showing the cell editor.
68
69* Added the following APIs
70   - configs property
71   - getBdTableEl() method (ScrollingDataTable only)
72   - getHdContainerEl() method (ScrollingDataTable only)
73   - getHdTableEl() method (ScrollingDataTable only)
74   - updateCell() method
75   - currencyOptions, dateOptions, and numberOptions Attributes for default formatting
76
77* Column changes:
78   - minWidth default value now null.
79   - Added Column.maxAutoWidth property
80   - Removed unused Column._oDefinition private property.
81   - Hidden Columns are now manifested as cell liner elements with display:none
82   to prevent content from being visible.
83   - Resizeable Columns now create an additional resizer liner DIV element between
84   the TH element and the liner DIV element. Implementers are advised to access the
85   liner DIV elements via Column.getThLinerEl() rather than TH.firstChild.
86   - currencyOptions, dateOptions, and numberOptions properties for robust per-Column formatting
87 
88* In the markup, the primary data TBODY is (once again) before the message TBODY element.
89 
90* TR element IDs are now assigned with the corresponding Record ID.
91 
92* Removed unused TD ID assignments.
93 
94* All CSS clases representing Column states now assigned directly on TH and TD
95elements, not on liner DIV elements.
96 
97* Added bottom border to last TR element in ScrollingDataTables.
98 
99* paginator attribute can be set to null to remove pagination.
100
101* Paginator extracted to standalone class and optional dependency.
102 
103* The default CSS styles for captions have been updated.
104
105* addRows(data, index) now inserts rows in the correct order
106
107* initializeTable now resets Paginator's totalRecords
108
109* default cell formatting broken out into Formatter collection method
110
111
112*** version 2.5.2 ***
113
114* Paginator now updates recordOffset to the starting index of the last page when
115totalRecords is set to a size smaller than the current recordOffset.
116
117* Assorted pagination and scrolling bugs.
118
119* Resizing a Column no longer inadvertantly sorts it in IE.
120 
121* Header text no longer wraps by default.
122 
123* Added UI to fill gap when a scrolling DataTable is narrower than its container.
124 
125* Fixed wrong assignment of classnames for TDs and message cell.
126 
127* Fixed bugs for width, minWidth, and hidden Column values in non-scrolling DataTables.
128 
129* Added getBdContainerEl() method.
130
131
132
133*** version 2.5.1 ***
134
135* Only split THEAD from TBODY markup for scrollable tables.
136* columnResizeEvent sends new width value.
137* Improved performance for adding, deleting, and updating rows dynamically.
138
139
140
141*** version 2.5.0 ***
142
143* Introduced YAHOO.widget.Paginator to manage pagination.
144* Introduced YAHOO.util.Chain to allow for progressive rendering.
145
146Removed APIs
147
148    * CLASS_SCROLLBODY
149    * CLASS_TABLE
150    * getTableEl()
151
152Changed APIs
153
154    * initializeTable() - No longer takes any arguments. Data must be added as a separate step.
155    * doBeforeLoadData(sRequest, oResponse, oPayload) - oResponse is now the converted full response (typed JSON or XML as appropriate). oPayload is now an optional data payload implementer can pass in to DataSource.sendRequest via the callback object literal.
156    * formatCell() - The first argument, elCell, is now a reference to the cell liner element rather than the TD itself.
157    * onDataReturnAppendRows(sRequest, oResponse, oPayload) - oResponse is now the converted full response (typed JSON or XML as appropriate). oPayload is now an optional data payload implementer can pass in to DataSource.sendRequest via the callback object literal.
158    * onDataReturnInitializeTable(sRequest, oResponse, oPayload) - oResponse is now the converted full response (typed JSON or XML as appropriate). oPayload is now an optional data payload implementer can pass in to DataSource.sendRequest via the callback object literal.
159    * onDataReturnInsertRows(sRequest, oResponse, oPayload) - oResponse is now the converted full response (typed JSON or XML as appropriate). oPayload is now an optional data payload implementer can pass in to DataSource.sendRequest via the callback object literal.
160    * paginator - Should now be an instance of YAHOO.widget.Paginator.
161    * sortedBy.dir - Use CLASS_ASC or CLASS_DESC instead of "asc" and "desc" strings.
162    * Scrolling must be enabled via the configs "scrollable", "width", and "height". CSS should no longer be used to set width or height on scrollable tables.   
163
164Deprecated APIs
165
166    * formatPaginatorDropdown() - Use new Paginator class.
167    * formatPaginatorLinks() - Use new Paginator class.
168    * formatPaginators() - Use new Paginator class.
169    * refreshView() - Use render().
170    * showPage() - Use new Paginator class.
171    * updatePaginator() - Use new Paginator class.
172    * headerCellClickEvent - Use theadCellClickEvent.
173    * headerCellDblclickEvent - Use theadCellDblclickEvent.
174    * headerCellMousedownEvent - Use theadCellMousedownEvent.
175    * headerCellMouseoutEvent - Use theadCellMouseoutEvent.
176    * headerCellMouseoverEvent - Use theadCellMouseoverEvent.
177    * headerLabelClickEvent - Use theadLabelClickEvent.
178    * headerLabelDblclickEvent - Use theadLabelDblclickEvent.
179    * headerLabelMousedownEvent - Use theadLabelMousedownEvent.
180    * headerLabelMouseoutEvent - Use theadLabelMouseoutEvent.
181    * headerLabelMouseoverEvent - Use theadLabelMouseoverEvent.
182    * headerRowClickEvent - Use theadRowClickEvent.
183    * headerRowDblclickEvent - Use theadRowDblclickEvent.
184    * headerRowMousedownEvent - Use theadRowMousedownEvent.
185    * headerRowMouseoutEvent - Use theadRowMouseoutEvent.
186    * headerRowMouseoverEvent - Use theadRowMouseoverEvent.
187    * refreshEvent - Use renderEvent.
188    * paginated - No longer used, as long as "paginator" value is an instance of Paginator class.
189
190
191RecordSet
192
193    * updateKey() - Use updateRecordValue().
194    * keyUpdateEvent - Use recordValueUpdateEvent.
195
196Column
197
198    * width - Must now be a number. Strings will be ignored.
199    * sortOptions.defaultOrder - Use sortOptions.defaultDir, and use CLASS_ASC or CLASS_DESC instead of "asc" and "desc" strings.
200
201
202
203*** version 2.4.0 ***
204
205* No changes.
206
207
208
209*** version 2.3.1 ***
210
211* For better support of resizeable Columns, the following core CSS changes have been
212made:
213
214- applied "table-layout:fixed" to TABLE elements
215- removed "overflow:hidden" from TH and TD elements
216- removed "white-space:nowrap" from TD elements
217
218As a result, implementers may notice a change in the widths of their rendered
219DataTables, which should be resolved by setting widths explicitly via CSS or
220your Column definitions.
221
222* Selection model issues have been addressed by clearing up ambiguous ID and
223index usage. Record instances are now assigned globally unique and immutable ID
224strings (no longer numbers). Record indexes are numbers that are mutable in order
225to represent Record order within a RecordSet instance. TR elements are assigned
226DOM ID strings that are *unrelated* to Record instance IDs and Record indexes. Be
227aware that DOM element IDs will get reused when sorting and paginating. Furthermore,
228Column instances are assigned globally unique and immutable ID strings
229(no longer numbers). Column indexes are numbers that are mutable and represent
230Column order within a ColumnSet instance. Please refer to the API documentation
231for details on when to use Record/Column instance IDs, DOM element IDs, and
232Record/Column index numbers.
233
234* Enabling row or cell selection no longer breaks clicks on links and form elements.
235
236
237
238*** version 2.3.0 ***
239
240* DataSource requests over XHR no longer automatically insert a "?" in the URIs
241between the host and the query. Implementers should explicitly include the
242question mark if it is required by your server. Please refer to the XHR
243examples for implementation details.
244
245* Applied new skinning model.
246
247* The MVC model has been stabilized and many APIs have been renamed or changed
248quite a bit from the previous version. Implementers should now only use
249DataTable APIs and not use any Record or RecordSet APIs to add/delete/update
250rows, Records, and DOM elements. RecordSet synchronization will be managed for
251you under the hood. For example, myDataTable.addRow() now accepts an object
252literal of data and will create a Record and update the DOM. Calling
253myDataTable.deleteRow() will delete the appropriate Record and update the DOM.
254Please refer to the API reference for full details on property and method names and
255argument signatures. When possible, Logger messages will provide deprecation warnings,
256so implementers upgrading from the previous version are encouraged to use the debug
257build of DataTable.
258
259* The DataTable constructor signature has changed in 2 major ways:
2601) Do not pass in a ColumnSet instance. Instead, pass in an array of Column
261definitions directly, and a ColumnSet instance will be created for you under the hood.
2622) In the progressive enhancement case, first instantiate a DataSource pointing
263to your HTML TABLE element, and then pass in that DataSource instance to your
264DataTable constructor. Please refer to the progressive enhancement example
265for implementation details.
266
267* DataTable now extends Element, which has become a required dependency. Implementers
268should now use the myDataTable.set("propertyName", newValue) syntax instead of direct
269dot notation of any properties.
270
271* The underlying pagination architecture and API have been revised. Specifically,
272the property paginator has been deprecated in favor of paginated,
273paginatorOptions has been deprecated in favor of paginator, and related events
274and method names have been changed. Please see the pagination examples for
275implementation details. Please refer to the API reference for full details on
276new property and method names and argument signatures.
277
278* There is a known pagination bug where changing the rows-per-page dropdown while
279on a page number that is out of bounds of the new range, the current page value
280fails to get reset to an appropriate default value.
281
282* There is a known pagination bug where custom containers are ignored.
283
284* There is a known bug where row and cell selections are not tracked correctly in
285paginated DataTables.
286
287* The underlying editing architecture and API have been revised. Specifically, the
288ColumnEditor class is no longer used, the method editCell() has been deprecated
289in favor of showCellEditor(), and the Custom Event "cellEditEvent" is now
290"editorSaveEvent". Please see the inline editing example for
291implementation details. Please refer to the API reference for full details on
292property and method names and argument signatures.
293
294* There is a known issue where the built-in date editor throws a JavaScript
295exception when encountering a null or non-Date value. Implementers using the built-in
296date editor should validate for type Date and avoid null values in these data
297fields.
298
299* The underlying sort architecture, including YAHOO.util.Sort, has been modified
300to accept a single sort function rather than separate functions for ascending
301and descending sorts.
302
303* Scrolling a DataTable with an active Cell Editor will cancel the edit to
304to prevent the Cell Editor's position from getting out of sync with its
305associated TD element.
306
307* The following static methods are executed in the scope of the DataTable
308instance: DataTable.validateNumber(), DataTable.formatButton(),
309DataTable.formatCheckbox(), DataTable.formatCurrency(), DataTable.formatDate(),
310DataTable.formatDropdown(), DataTable.formatEmail(), DataTable.formatLink(),
311DataTable.formatNumber(), DataTable.formatRadio(), DataTable.formatText(),
312DataTable.formatTextarea(), DataTable.formatTextbox().
313
314* The following DataTable APIs have changed:
315- The following static constants have been removed: CLASS_CURRENCY, CLASS_CURRENTPAGE,
316CLASS_DATE, CLASS_EMAIL, CLASS_FIRSTLINK, CLASS_FIRSTPAGE, CLASS_HEADCONTAINER,
317CLASS_HEADRESIZER, CLASS_HEADTEXT, CLASS_HIGHLIGHT, CLASS_LASTLINK, CLASS_LASTPAGE,
318CLASS_LINK, CLASS_NEXTLINK, CLASS_NEXTPAGE, CLASS_NUMBER, CLASS_PAGELINK,
319CLASS_PAGELINKS, CLASS_PAGESELECT, CLASS_PREVLINK, CLASS_PREVPAGE, CLASS_SORTEDBYASC,
320CLASS_SORTEDBYDESC, CLASS_STRING.
321- The following static constants have been added: CLASS_ASC, CLASS_BUTTON,
322CLASS_DEFAULT, CLASS_DESC, CLASS_DISABLED, CLASS_DROPDOWN, CLASS_HEADER,
323CLASS_HIGHLIGHTED, CLASS_LABEL, CLASS_NEXT, CLASS_PAGE, CLASS_PREVIOUS,
324CLASS_RESIZER
325- The property contextMenu is no longer supported.
326- The property dataSource has been deprecated in favor of the accessor method
327getDataSource().
328- The property fixedWidth is not fully supported.
329- The property sortedBy now defines key instead of colKey.
330- The property rowSingleSelect has been deprecated in favor of selectionMode.
331
332* The following Record APIs have changed:
333- Record data values are no longer accessible with oRecord[key] or oRecord.key.
334Implementers should now use oRecord.getData(key).
335- The property yuiRecordId has been deprecated in favor of the accessor method
336getId().
337
338* The following RecordSet APIs have changed:
339- The method getRecordBy() is not implemented.
340- The method insert() has been deprecated in favor of addRecord() and addRecords().
341- The method replace() has been renamed replaceRecords().
342- The method sort() has been deprecated in favor of sortRecords().
343
344* The following Column APIs have changed:
345- Column type has been deprecated in favor of formatter. In your Column
346definitions, please change type:"date" to formatter:"date", type:"currency" to
347formatter:"currency", etc.
348- The property parser is no longer used. Implementers should use the static
349DataSource methods DataSource.parseDate(), DataSource.parseNumber(), and
350DataSource.parseString() for type conversion functionality.
351- The methods getColSpan() and getRowSpan() have been renamed to getColspan()
352and getRowspan().
353- The return value for the method getId() has been changed.
354- The following methods are no longer implemented: parse(), parseCheckbox(),
355parseDate(), parseNumber(), parseSelect(). Implementers should now use a
356DataSource with a data type of HTML TABLE element.
357- The showEditor() method is no longer implemented. Implementers should now use
358the DataTable method showCellEditor().
359- All static formatter functions have been moved from the Column class to the
360DataTable class.
361
362* The DataTable method getColumn() has a known issue where instead of accepting
363a Column's key index value, the method accepts a Column's ID value. Until this
364issue is fixed, implementers can use the following workaround:
365
366    // Instead of this:
367    // var oColumn = myDataTable.getColumn(0);
368
369    // Use this:
370    var oColumn = myDataTable.getColumn(myDataTable.getFirstTrEl().cells[0].yuiColumnId);
371
372
373
374
375
376
377
378
379
380
381*** version 2.2.2 ***
382
383* Removed workaround for a fixed Dom.getXY() bug that was causing a positioning
384problem for inline editors on scrolled pages.
385
386
387
388**** version 2.2.1 ***
389
390* Changed default pagination from enabled to disabled. Must set property
391paginator to true to enable built-in client-side pagination.
392* Removed deleteSelectedRows() and added deleteRows().
393* Deprecated properties isEmpty and isLoading, and methods showLoadingMessage(),
394showEmptyMessage(), and hideTableMessages(). Implementers should now use
395showTableMessage() and hideTableMessage().
396* Deprecated methods paginateRows() and onDataReturnPaginateRows(). Implementers
397should now use popualateTable() and onDataReturnPopulateTable().
398* Deprecated pagination properties pageCurrent, rowsPerPage, startRecordIndex,
399pageLinksLength, rowsPerPageDropdown, pageLinksStart, and pagers.
400* Fixed unclickable links.
401* Fix to support data values of 0 (zero).
402* Fixed broken validation in multiple places when the value 0 (zero) is passed
403in as an argument.
404* Fixed incorrect month output in formatDate().
405* Fixed broken empty message when there are zero rows.
406* Allow implementers to use data with field name "id".
407* Fixed Column resizeability in -min builds.
408* Fixed Column sorting of null, undefined, and empty values.
409* Fixed Column sorting of nested headers.
410* Fixed paginator dropdowns to stay in sync when paginating.
411* Fixed rowSingleSelect for paginated DataTable.
412* Fix for currency values with more than 2 decimal places.
413* Fixed broken TR ID assignments in replaceRows().
414* Fixed Opera UI artifacting problem when repaginating via dropdowns.
415* Fixed orphaned ColumnEditor during pagination or other de facto blur
416interaction. Data gets saved.
417* Extracted non-foundational CSS for scrollable DataTables to make UI easier to
418customize.
419* Updated methods select() and unselect() to also accept an array of elements or
420an array of strings.
421* Improved row selection behavior to model the desktop paradigm (i.e., require
422CONTROL and/or SHIFT keys to multi-select).
423* Tweaked inline editing for better Mac performance.
424* Refactored pagination code to be easier to implement, configure, and extend.
425* Accept an error boolean from DataSource in case of data error and show error
426message.
427* The CustomEvent rowDeleteEvent is now only fired once per deleted row and
428its argument signature has been modified.
429* Added selectRow(), rowSelectEvent, unselectRow(), rowUnselectEvent, rowAddEvent,
430and rowUpdateEvent.
431* Added constants CLASS_TABLE, CLASS_EDITOR, CLASS_FIRST, and CLASS_LAST.
432* Added ColumnEditor class moveContainerTo().
433* Add IDs and class hooks to TABLE element and ColumnEditor's container DIV.
434* Add class hooks to first and last TR elements.
435* Added hook to doBeforeLoadData() for the not-from-markup constructor flow.
436* Added properties paginator and paginatorOptions, as well as method getPaginator().
437* Added methods saveEditorData() and cancelEditorData().
438* Improved type checking with YAHOO.lang.
439
440
441
442**** version 2.2.0 ***
443
444* Beta release.
445* Caption is not supported when scrolling is enabled.
446* Resizeability is not supported for fixed-width DataTables.
Note: See TracBrowser for help on using the repository browser.