History log of /yui3/src/datatable/js/core.js
Revision Date Author Comments Expand
123d994150d858a0cd535edbee1382dd587d1b4f 15-Mar-2012 Luke Smith <lsmith@yahoo-inc.com>

Move core getRecord logic from view -> core getRecord was passing through to this.body.getRecord(args) but that required the table to be rendered. Accessing the records by id or clientId shouldn't depend on the rendered state.

1b08545d7464e74c95a0acc90bc691403b5fb830 15-Mar-2012 Luke Smith <lsmith@yahoo-inc.com>

Don't use clientId <tr id="HERE">. Fixes #2531889

9d76dcc6d107cb0295c667ef6106080ad714958e 14-Mar-2012 Luke Smith <lsmith@yahoo-inc.com>

+syncUI renders t(head/body/foot) content

53c97f474022b2633bdeccab063f518c4015f27a 13-Mar-2012 Luke Smith <lsmith@yahoo-inc.com>

Clean up module vs class descriptions, +@since 3.5.0 Moved the lengthy text from the module description to the class description so the module page would look cleaner. Added note for each class extension to point readers to the DataTable class for docs on the APIs contributed by this class, since they all have @for DataTable.

56751f9f69553e7248769ab331328c5b7c2092d3 10-Mar-2012 Luke Smith <lsmith@yahoo-inc.com>

Preserve first column assignment to map if dups If more than one column have the same key, getColumn({key}) would return the last one, and there was no way to get the first.

c171909064da912cf57bb76ad3eb55fba5fb5b6f 09-Mar-2012 Luke Smith <lsmith@yahoo-inc.com>

Fix set('data', modelListInstance)

b2c3f7ee9595487fa2c245134423177b4421db5d 05-Mar-2012 Luke Smith <lsmith@yahoo-inc.com>

Add back compat for field and id column configs core.js added the back compat. The others share an update of changing references of col._yuid to col.id.

0daaec0eac633fcafb9409e60093cbae2fd8e1ef 29-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Don't set table width if width attribute is unset.

06ef0d619dd00775d7c5761bc327aa409047c736 28-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

_uiSetWidth needs to account for border width This unfortunately breaks percentage widths for non-scrolling tables, since the browser resize is not tracked in core. The initial paint should be fine, but resizing the browser won't resize the table. I need to move that logic from datatable-scroll to core, but it'll have to wait for a future sprint :(

ec9c91e7570a04fd93e9ab0832e848bfe61fa28c 28-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Last changes to get datatable-scroll working * Added cellspacing="0" to core and fixed header template and removed *border-collapse: collapse hack for IE * Double wrapped the Y scrolling nodes. New <div> has the border and contains the fixed headers and the overflow <div>. This obviated some dim calculations to work around border widths for placement of the fixed header. Also allowed an overflow-x: hidden rule to hide any column width rounding issues resulting in the fixed headers being 1px too wide and overflowing the previous yScrollNode border. * Use table.replace(wrapper).appendTo(wrapper) instead of table.wrap(wrapper) because IE (I forget which version--6 or 7, I think) did all sorts of stupid things, like extracting the last table cell and wrapping the rest of the table inside it. It's probably a bug that needs addressing in Node.prototype.wrap, but this solution also works. I do believe this will be the shipped version of datatable-scroll. Hurrah!

be9626f6dd0214b95bf03baeb5d0202850ec5b4d 25-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Add support for percentage widths + x scrolling

bfa489f3b68d44a0001c747a82b32216e82eae54 18-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Remove _parent property from moved columns

abc8d7abfd7d6d7536994f6ac05952d5ded2a077 18-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Forgot a return statement. Hurray for tests.

cbd1c850256eb95dbf47fbaa52e294346aa05de5 18-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Move col._parent assignment to Core Needed for getColumn.

a8a2744323b27e70a885cc656cf64395dcf33dc1 17-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Functional support for recordset, columnset attrs For back compat. Supports assignment only (construction time or via set(...)). get('recordset/columnset') still returns the ModelList or object array.

e90ae02198771cf9f34eaadbcf534f5ff4529baf 17-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Fix getColumn([m, n]) It was returning child 1 (index of n) rather than child n.

d6e29a74bc75003aba4b292a76e9f581648f954a 15-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Remove all traces of aria. SRs read better without Sad state of affairs, but NVDA and VoiceOver read the table better when no aria roles are assigned. Ticket #2531426

ab776ac805185338f807ee3a76f07a44fc1ca774 13-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Sanitize the column _id for use as className For now, replace whitespace with dashes. There may be other cases requiring further cleanup.

f66ed455f4cff0022bbdf8df3e63e4bb322358be 10-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

Sanitize the column _id for use as className For now, replace whitespace with dashes. There may be other cases requiring further cleanup.

6150d0da682e16ad4d81e047f5c247fd4def8dee 01-Feb-2012 Luke Smith <lsmith@yahoo-inc.com>

_initRecordType optimz, -arrow flip on col hover

a8ded901565edd13a2e761d1e49ad19cc4846a85 29-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Note the addition of _yuid, _id to columns API doc update.

39cd86ca87dc4b053cb7c39908b22453b4063ca4 28-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

+aria-readonly, role=presentation to templates Core defines the grid role on the contentBox (should this be on the boundingBox?) so all <table>s should be role presentation. No need to move ARIA roles around.

61333e7c4809415690794369cc7999d4996b56f5 28-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

table.aria-describedby = caption

07ff67ea90d75871e3374fe7806df4d4aee6ffaf 28-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Don't be too clever with caption It was checking that _captionNode was attached to the table, but that was getting in the way of x scrolling. No need to be so pendantic. :)

ca0723e67651ca449c98024f1b44b83d0aeff00f 27-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Remove name-based fallback in getColumn Column map is keyed by key or name, so it's unnecessary. And an infinite loop because the if (i > len) should have been if (i >= len).

f77c4c9ca708f6574cce085bdfe3025eb3050223 25-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Add delegate method in its current implementation for backward compatibility. Decision made in a rush, so I may regret it.

67f9d521f66b7ed61ab64c26dd3602e6a4dcda57 25-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Add headers to nested header `<th>`s Screen readers still hate my markup for this, but we'll get it worked out soon.

aa423514dff5d61d6b94b57af85f6c85f51c2ef5 24-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

s/addAttribute/setAttribute/ oops

1be6a724c21fb8f874d13d43bd5b2c73cb3e1924 24-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Add grid role to contentBox, presentation to table Odd setup for a static table, but the assumption is that no matter how the table is rendered, it should always be considered a single table to screen readers.

f8dd5569a14fbf6cf9e64bf54ff0df1752dd33b4 24-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Review feedback #3 (from Satyam) * typo in getRow * move caption and summary attr => _uiSet* to _UI_ATTRS * rename {classes} placeholder {className} * header cells get column class as well * header cells get yui3-datatable-header class * data cells get yui3-datatable-cell class * Core now assigns columns a _id which is name, key, or yuid w/ uniqueness counter * column class names now yui3-datatable-col-foo (added -col-) * use toJSON() to get data for the formatters * replace CSS targeting tags with classes

9f7cb9c23d9595b1ae9873d604fb47420cd7ad2c 21-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Review feedback round #1 1. Fix typo in TFOOT_TEMPLATE 2. Don't store the array data populating the `data` ModelList in the attribute 3. Other minor typos

201232b90752c6d505c32c25b94ba1c66e41f256 19-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Remove backslash escaping in `code _snippets` Not needed in the latest yuidoc

81619e546ba03384a7bc5cbdd1e5971de2231a6c 18-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

-column widths (extension). +data bubbles to table Extracted the column width assignment code to the datatable-column-widths module. Made the ModelList bubble events to the DataTable instance.

b67e1d4c4fddca40df080a57b1adf97c1a2bed54 13-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Refactor the rendering mechanism to use events The view instances were inaccessible prior to render(). So I moved the renderUI logic into a renderTable event defaultFn. That defaultFn then sets up the table, caption, and columns, then fires renderHeader, renderFooter, and renderBody events. Each of these events call the view's render() method and finish up. Flexibility achieved!

605a5ff5af741b7b048a879c425da344f8824257 13-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

_uiSetCols takes boolean to force col replacement Also, minor bug fix - remove subscription to widthChange. _afterWidthChange wasn't defined, resulting in the object syntax subscription to after() to cause widthChanges to be handled by _afterSummaryChange. Oops! Widget already wired up the widthChange sub, so no need to subscribe.

fd06d148a5629604f9ec0776c3c187b93b4ba588 12-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Add colgroup,col rendering and col width support Column widths are assigned via CSS on the <col> node associated with a given column, which is effectively a min-width. If content in the column cells will not fit in the configured width, it will expand the column. This is unfortunate native DOM behavior. I will create a separate module that enforces column width-based truncation, but that's not core functionality.

1a40b51b558814291aa784dfd7335004602428ce 10-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

Move tbody,foot,head creation into Core It simplifies logic to have the Views working with the table sections rather than the table itself. Unrelated, renamed _uiUpdateWidth to _uiSetWidth to override the Widget method that just set dims on the boundingBox.

83c9c4c9682c7ef1e3241b6fbe657587dc25d205 06-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

width attribute now sets table width

34cb050bcf5bd1f87cea322c1c9bd638c5548f2f 05-Jan-2012 Luke Smith <lsmith@yahoo-inc.com>

getColumn more versatile; get('columns.foo') fixed

592e4ce874d241c1fa6f6cd663948111e1265e11 22-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Move `renderUI` to @protected section

ca1522309bafe3ee34f72255a57d19d5f7e00361 22-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Split out view config properties Class extensions can add to the config object passed to the constructor of the appropriate view when the render() process instantiates the view.

4944333103ccc64b6a668a99679fe8f7f394f444 22-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Allow `null` for views. API doc clarifications.

2ca893a46681bbaa43192000939faa79b500cad7 21-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

s/validator/setter/ for recordType The setter method was already in place, I just forgot to update the ATTRS.recordType config.

e0a1afd287c016be5722249b10ba81684f33886b 20-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Finish API docs for current API There will be more. Oh, so much more.

855db1ceb06a9fae53cbc975b61ccec97eacccaf 20-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Add API docs and other minor updates.

bee4605886c750c7ef055209b922583d98ea8263 16-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Add API docs and minor fixes as I see them Ongoing.

fe8924d7ce76cee0e6f7d747517100273513408e 14-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Add `getCell` and `getRow` pass thrus Also pass the `_cssPrefix` to the views for use by their `getClassName` implementations, and instantiate the view classes with `container` and `modelList`

d15134141197c4fc93eb6094020e03eb72aa8d73 12-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Decouple column parsing, +nested cols The parsing of column array data was in Core, but was parsed into three different forms: 1) for column access from Core's get('columns.<key>') 2) for column prep for header rendering 3) for column prep for body rendering Now the columns are passed to the views to do with as they will, and Core only does what is needed for #1. Also, parsing nested headers efficiently is a pain in the ass. The 'children' config doesn't allow implementers to choose which cells get rowspan when the number of header rows is greater than the number of column descendant levels. As is done in 3.4.1, parent cells are always rowspan 1. I prefer to have data related columns have rowspan 1, but the logic to support that with the "children" config would be crazy complex. Implementers can move stuff around in `table.head.columns` before `render()` if they want different cell placement and spanning.

0e7d399f99fcb097a927af7e6588f393740585a2 12-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

+getCell and getRow. Grouped, alphabetized methods Conflicts (resolved) src/datatable/js/pe.js

79fac3c43e396f54a5fb368ac33ff7c21df23397 12-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

+ column.formatter & column.nodeFormatter Other bug fixes. Can render from array. Column ordering works. Movin right along.

a3e011a6940a2707d43148e12f3d3cd6fd388794 12-Dec-2011 Luke Smith <lsmith@yahoo-inc.com>

Initial drop of DataTable rearchitecture Renders a table from supplied columns and data as a ModelList with Model instances. A lot more plumbing in place, but not yet exercised. Progressive enhancement extension in src/pe.js, but doesn't have build files yet.