Skip to content
Newer
Older
100644 582 lines (381 sloc) 18.5 KB
ea53cbf @rgrove Update readmes and history files.
rgrove authored
1 App Framework Change History
2 ============================
3
cddb148 @tripp Populate HISTORY files.
tripp authored
4 @VERSION@
5 ------
6
7 * No changes.
8
f7e7bcb @tripp Update HISTORY versions.
tripp authored
9 3.18.1
da7fa36 @tripp Populate HISTORY files for next version.
tripp authored
10 ------
11
12 * No changes.
13
96b25d3 @tripp Update HISTORY versions.
tripp authored
14 3.18.0
80572fc @okuryu Populate HISTORY files
okuryu authored
15 ------
16
17 * No changes.
18
47ccc80 @tripp Update HISTORY files with 13.7.2
tripp authored
19 3.17.2
025eadf @okuryu Populate HISTORY files
okuryu authored
20 ------
21
22 * No changes.
23
5a36862 @okuryu Replace HISTORY files for 3.17.1
okuryu authored
24 3.17.1
25 ------
26
27 * No changes.
28
ce55cc9 @tripp Update HISTORY versions.
tripp authored
29 3.17.0
6851d4e @clarle [docs] Populate HISTORY.md with @VERSION@
clarle authored
30 ------
31
6ddb73d @triptych Adding missing HISTORY entries
triptych authored
32 * [ModelSync.Local]: Stringify hash before saving.
6851d4e @clarle [docs] Populate HISTORY.md with @VERSION@
clarle authored
33
c2bf7ee Bump history version to 3.16.0.
Ezequiel Rodriguez authored
34 3.16.0
c23e81e @clarle Seeding HISTORY.md files for next release
clarle authored
35 ------
36
cb0d4e8 @ericf Add HISTORY entry for Router hasRoute() change
ericf authored
37 ### Router
38
39 * Fixed issue where Router's `hasRoute(url)` method did not follow the same
40 semantics as the route dispatching process. Now all registered param handlers
41 will process any named params, giving them a chance to validate and reject a
42 param value. This will make the `hasRoute()` method an effective way to check
43 whether a router will dispatch to a route handler for a given URL. ([#][])
44
45
46 [#1722]: https://github.com/yui/yui3/issues/1722
47
c23e81e @clarle Seeding HISTORY.md files for next release
clarle authored
48
f6bf3c9 Replacement of @VERSION@ with new version.
Ezequiel Rodriguez authored
49 3.15.0
c23e81e @clarle Seeding HISTORY.md files for next release
clarle authored
50 ------
51
cb0d4e8 @ericf Add HISTORY entry for Router hasRoute() change
ericf authored
52 ### Model
53
7a8ffc6 @clarle [model-sync-local] Update HISTORY.md
clarle authored
54 * __[!]__ Refactored `ModelSync.Local` to use a different, more readable
55 storage system. This new storage system is backwards-incompatible with
56 the old storage system. However, the API remains the same and no application
57 code needs to be changed unless you want to maintain the data that is
58 present in `localStorage` today. ([#1597][])
c23e81e @clarle Seeding HISTORY.md files for next release
clarle authored
59
cb0d4e8 @ericf Add HISTORY entry for Router hasRoute() change
ericf authored
60 * Fixed an issue where `history-hash-ie` loaded on non-IE browsers.
61 ([#1613][]: @ezequiel)
62
63
64 [#1613]: https://github.com/yui/yui3/issues/1613
e504140 [App, Loader]: Update of history.
Ezequiel Rodriguez authored
65
66
63049cb @clarle Bump HISTORY to 3.14.1
clarle authored
67 3.14.1
51c596f @triptych seeding HISTORY.md files for next release
triptych authored
68 ------
69
70 * No changes.
71
730f173 @clarle Bump HISTORY version to 3.14.0
clarle authored
72 3.14.0
3042e6d @triptych Adding new @VERSION@ for HISTORY.md files
triptych authored
73 ------
74
75 * No changes.
76
e855cfb @ericf Bump HISTORY version to 3.13.0
ericf authored
77 3.13.0
ceacfe1 @triptych Adding new VERSION entries for HISTORY.md files
triptych authored
78 ------
79
ec19d3e @ericf Update Router's and App's change HISTORY for req dispatch refactor
ericf authored
80 ### App
81
82 * Added `req.aoo` which is a reference to the app instance.
83
ad48d08 @ericf Update user guide and add HISTORY entry for Router mount point changes
ericf authored
84 ### Router
85
86 * __[!]__ A router's `root` path is now enforced as its mount point. Routers
87 with a specified `root` will only consider paths as matching its route handles
88 if that path is semantically within the router's `root` path. For example:
89
c781d92 @ericf Fix syntax highlighting in App's HISTORY.md
ericf authored
90 ```js
ad48d08 @ericf Update user guide and add HISTORY entry for Router mount point changes
ericf authored
91 router.set('root', '/app/');
92
93 router.hasRoute('/app/'); // => true
94 router.hasRoute('/app/foo'); // => true
95 router.hasRoute('/bar/'); // => false
c781d92 @ericf Fix syntax highlighting in App's HISTORY.md
ericf authored
96 ```
ad48d08 @ericf Update user guide and add HISTORY entry for Router mount point changes
ericf authored
97
98 This fixed some issues with paths being erroneously considered matching even
99 when they were not semantically within the router's `root` path. ([#1083][])
100
ebe52cb @ericf Add note about `req.path` being the full path in App's HISTORY.md
ericf authored
101 * __[!]__ The `getPath()` method now returns the _full_ current path, whereas
102 before it returned the current path relative to the router's `root`. This also
103 affects `req.path` which is now the full path as well.
ad48d08 @ericf Update user guide and add HISTORY entry for Router mount point changes
ericf authored
104
ec19d3e @ericf Update Router's and App's change HISTORY for req dispatch refactor
ericf authored
105 * __[!]__ Changed Router's dispatching process to take `req` and `res` objects
106 instead of creating them inside the `_dispatch()` method. This refactor also
107 removed the deprecated support for calling `res()` as an alias for `next()`.
108
e91b90e @ericf Update Router's HISTORY for route objects
ericf authored
109 * Router now accepts route objects through its `route()` method. These route
110 objects are the same as those specified in a router's `routes` attribute and
111 what Router uses for its internal storage of its routes. If these route
112 objects contain a regular expression as their `path` or they contain a `regex`
113 or `regexp` property, then they are considered fully-processed. Route objects
114 can also contain any arbitrary metadata which will be preserved. ([#1067][])
115
ec19d3e @ericf Update Router's and App's change HISTORY for req dispatch refactor
ericf authored
116 * Added `req.router` which is a reference to the router instance.
117
118 * Added `req.route` which is a reference to the current route object whose
119 callbacks are being dispatched.
120
121 * Calling the `dispatch()` method will now set `req.src` to `"dispatch"`.
122
e07825b @ericf Merge branch 'router-req' into dev-3.x
ericf authored
123 ### Model
ad48d08 @ericf Update user guide and add HISTORY entry for Router mount point changes
ericf authored
124
016f5c9 @clarle Update App HISTORY.md
clarle authored
125 * Added ModelSync.Local, an extension which provides a `sync()` implementation
3442294 @clarle app: Fix typo in HISTORY.md
clarle authored
126 for `localStorage` that can be mixed into your Models and ModelLists.
e07825b @ericf Merge branch 'router-req' into dev-3.x
ericf authored
127 Examples of it in use can be seen in the [YUI TodoMVC][] example. ([#1218][])
128
ad48d08 @ericf Update user guide and add HISTORY entry for Router mount point changes
ericf authored
129
e91b90e @ericf Update Router's HISTORY for route objects
ericf authored
130 [#1067]: https://github.com/yui/yui3/issues/1067
016f5c9 @clarle Update App HISTORY.md
clarle authored
131 [#1083]: https://github.com/yui/yui3/issues/1083
132 [#1218]: https://github.com/yui/yui3/issues/1218
ceacfe1 @triptych Adding new VERSION entries for HISTORY.md files
triptych authored
133
e07825b @ericf Merge branch 'router-req' into dev-3.x
ericf authored
134 [YUI TodoMVC]: https://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/yui
135
ceacfe1 @triptych Adding new VERSION entries for HISTORY.md files
triptych authored
136
2fd0841 @triptych Adding History entries for v3.12.0
triptych authored
137 3.12.0
d74ba83 @triptych Seed HISTORY.md with @VERSION@
triptych authored
138 ------
139
1c5fd9f @ericf Update Model List's docs and HISTORY for descending sort feature
ericf authored
140 ### ModelList
141
142 * Added support for descending sort order via `sort({descending: true})`. In
143 order to support this, the `options` passed to `sort()` are now passed along
144 to the protected `_sort()` method. ([#1004][]: @rishabhm)
145
29aa25c @ericf Fix issue with Router trying to URL-decode `undefined` path segments
ericf authored
146 ### Router
147
11a7906 @ericf Add Router HISTORY entry for route param handlers feature
ericf authored
148 * Added support for registering route param handler functions or regexps. This
149 allows routes to be defined as string paths while adding validation/formatting
150 to route params, e.g., `"/posts:id"`, and register an `id` param handler to
151 parse string values into a number and make it available at `req.params.id`.
152 ([#1063][])
153
29aa25c @ericf Fix issue with Router trying to URL-decode `undefined` path segments
ericf authored
154 * Fixed issue with trying to URL-decode matching path segments that are
8ca52d6 @ericf Update Router's HISTORY for coercing NPCG `undefined`s to empty strings
ericf authored
155 `undefined`. Routes defined as regexps (instead of strings) can contain an
0dea82e @ericf Improve HISTORY entry for Router URL-decode of `undefined` matches fix
ericf authored
156 arbitrary number of captures; when executing the regex during dispatching, its
157 array of matches can contain `undefined` values. Router will now check that a
8ca52d6 @ericf Update Router's HISTORY for coercing NPCG `undefined`s to empty strings
ericf authored
158 match is a truthy value before trying to URL-decode it, and coerce `undefined`
159 values to empty strings. ([#964][], [#1076][])
29aa25c @ericf Fix issue with Router trying to URL-decode `undefined` path segments
ericf authored
160
d74ba83 @triptych Seed HISTORY.md with @VERSION@
triptych authored
161
8ca52d6 @ericf Update Router's HISTORY for coercing NPCG `undefined`s to empty strings
ericf authored
162 [#964]: https://github.com/yui/yui3/issues/964
1c5fd9f @ericf Update Model List's docs and HISTORY for descending sort feature
ericf authored
163 [#1004]: https://github.com/yui/yui3/issues/1004
11a7906 @ericf Add Router HISTORY entry for route param handlers feature
ericf authored
164 [#1063]: https://github.com/yui/yui3/issues/1063
8ca52d6 @ericf Update Router's HISTORY for coercing NPCG `undefined`s to empty strings
ericf authored
165 [#1076]: https://github.com/yui/yui3/issues/1076
1c5fd9f @ericf Update Model List's docs and HISTORY for descending sort feature
ericf authored
166
167
7cc64fa @triptych Adding HISTORY.md entries for 3.11.0 - replacing @VERSION@
triptych authored
168 3.11.0
fe83fd7 @triptych Populating HISTORY.md with @VERSION@
triptych authored
169 ------
170
171 * No changes.
172
079dd6f @ericf Tweak whitespace in App Framework's HISTORY.md
ericf authored
173
f8e065d @triptych Adding history updates
triptych authored
174 3.10.3
175 ------
176
177 * No changes.
178
29aa25c @ericf Fix issue with Router trying to URL-decode `undefined` path segments
ericf authored
179
468de6e @triptych Adding HISTORY.md updates
triptych authored
180 3.10.2
ee5bb85 @ericf Update Router's change history
ericf authored
181 ------
182
183 ### Router
184
185 * Router now properly dispatches when using hash-based URLs and calling
186 `replace()` without arguments; before it would throw an error. [#739]
187
188
173cccb @triptych First pass - adding no changes first
triptych authored
189 3.10.1
190 ------
191
192 * No changes.
193
ee5bb85 @ericf Update Router's change history
ericf authored
194
11982eb @triptych Adding HISTORY.md entries for 3.10.0
triptych authored
195 3.10.0
196 ------
481b97d @ericf Update Model's change history
ericf authored
197
198 ### Model
199
dcd5614 @ericf Correct a Model change history entry
ericf authored
200 * Fixed: The `options` object passed to Model's `setAttrs()` method was being
201 modified. Now a shallow copy of this object is now created so that the
202 `_transaction` property is added to the copy and not the passed-in object.
203 [#598]
481b97d @ericf Update Model's change history
ericf authored
204
205
87ab4ef @triptych Adding History for 3.9.1
triptych authored
206 3.9.1
f600427 @rgrove LazyModelList: Preserve original clientId when reviving a model. Fixes
rgrove authored
207 -----
208
209 ### LazyModelList
210
f0eaa56 @rgrove LazyModelList: Changing an attr on a revived model now updates the or…
rgrove authored
211 * Fixed: Changing an attribute on a revived model did not update the
212 corresponding property on the original object. [#528] [Ryan Grove]
213
f600427 @rgrove LazyModelList: Preserve original clientId when reviving a model. Fixes
rgrove authored
214 * Fixed: Revived models didn't have the same `clientId` as the original object.
215 [#530] [Ryan Grove]
216
b6bd812 @ericf Update App Framework's change history for Router change
ericf authored
217 ### Router
218
219 * Added a more helpful error when a named route callback function doesn't exist.
220 [#513] [Ryan Grove]
221
f600427 @rgrove LazyModelList: Preserve original clientId when reviving a model. Fixes
rgrove authored
222
2338b65 @triptych Updating HISTORY.md for 3.9.0
triptych authored
223 3.9.0
224 -----
225
e9d0242 @ericf Apply CSS Grid changes for Chome 25 to App Transitions
ericf authored
226 ### App
227
228 * Applied the same changes from CSS Grids to App Transitions to support changes
229 in how Chrome 25 renders `word-spacing`.
2338b65 @triptych Updating HISTORY.md for 3.9.0
triptych authored
230
a9fe21c @ericf History tweaks
ericf authored
231
26b9603 @triptych Updating HISTORY.md entries for 3.8.1
triptych authored
232 3.8.1
233 -----
234
235 * No changes.
236
a9fe21c @ericf History tweaks
ericf authored
237
9ddf37c @ericf Update Router's change history.
ericf authored
238 3.8.0
239 -----
240
241 ### Router
242
243 * Decode URL-encoded path matches for Router's `req.params`. [Ticket #2532941]
244
245
7fcce31 @ericf Update module change histories.
ericf authored
246 3.7.3
247 -----
248
249 ### App
250
251 * Add support for App Transitions in browsers which support native CSS3
252 transitions without using vendor prefixes. This change means IE10 and Opera
253 get view transitions.
254
255
256 3.7.2
257 -----
258
259 * No changes.
260
261
262 3.7.1
263 -----
264
265 * No changes.
266
267
3d85c69 @ericf Update Router's change history.
ericf authored
268 3.7.0
269 -----
270
8fd15d1 @ericf Update App's change history.
ericf authored
271 ### App
272
273 * Added App.Content, an App extension that provides pjax-style content fetching
274 and handling, making it seamless to use a mixture of server and client
275 rendered views.
276
d1b10fa @ericf Update ModelSync.REST's change history.
ericf authored
277 ### Model
278
6f08512 @ericf Update ModelSync.REST's change history.
ericf authored
279 * Added custom response parsing to ModelSync.REST to make it easy for developers
280 to gain access to the full `Y.io()` response object. Developers using
281 ModelSync.REST can either assign the `parseIOResponse` property to `false` to
282 gain access to the full `Y.io()` response object in their `parse()` method,
283 or provide a custom implementation of the `parseIOResponse()` method.
284
d1b10fa @ericf Update ModelSync.REST's change history.
ericf authored
285 * ModelSync.REST's `serialize()` method now receives the `action` which the
286 `sync()` method was invoked with. [Ticket #2532625]
287
99806c5 @rgrove Allow models to be added to a ModelList at instantiation time.
rgrove authored
288 ### ModelList
289
290 * You may now add models to a ModelList at instantiation time by providing an
291 Object, array of Objects, Model instance, array of Model instances, or another
292 ModelList instance in the `items` property of the config object passed to
293 ModelList's constructor. This change also applies to LazyModelList.
294
e587a8d @ericf Update YAF's change history and move 3.6.1 entries under 3.7.0.
ericf authored
295 ### Router
296
297 * Added support for route-based middleware to Router. The `route()` method now
298 accepts an arbitrary number of callbacks enabling more reuse of routing code.
299 For people familiar with Express.js' route middleware, this behaves the same.
300 [Ticket #2532620]
301
2a1522b @ericf Update View's change history.
ericf authored
302 ### View
303
304 * Log a warning when a handler function is not present when a view's `events`
305 are being attached. [Ticket #2532326] [Jay Shirley, Jeff Pihach]
306
d1b10fa @ericf Update ModelSync.REST's change history.
ericf authored
307
52456a7 @rgrove Docs and tests for req.pendingRoutes.
rgrove authored
308 3.6.0
309 -----
310
5486cd6 @ericf Update Y.App's change history.
ericf authored
311 ### App
312
313 * Added static property: `Y.App.serverRouting`, which serves as the default
314 value for the `serverRouting` attribute of all apps. [Ticket #2532319]
315
9750929 @ericf Update App Transitions' change history.
ericf authored
316 * Fixed issue with non-collapsing white space between views while transitioning.
317 White space is now fully collapsed and prevents views from jumping after a
318 cross-fade transition. [Ticket #2532298]
319
56ca32c @ericf Rearrange App Framework's 3.6.0 change history.
ericf authored
320 * Organized all CSS classes `Y.App` uses under a static `CLASS_NAMES` property.
321
a2ffb32 @ericf Update App.Transitions's change history.
ericf authored
322 * Moved `transitioning` CSS classname under `Y.App.CLASS_NAMES`.
323
56ca32c @ericf Rearrange App Framework's 3.6.0 change history.
ericf authored
324 ### Model
325
326 * Added ModelSync.REST, an extension which provides a RESTful XHR `sync()`
327 implementation that can be mixed into a Model or ModelList subclass.
328
5b80e5a @rgrove Make deletes safe inside ModelList.each() and .some(). [Fixes #2531910]
rgrove authored
329 ### ModelList
330
bcb77b0 @rgrove Add LazyModelList, a more efficient object-only ModelList
rgrove authored
331 * Added LazyModelList, a subclass of ModelList that manages a list of plain
332 objects rather than a list of Model instances. This can be more efficient when
333 working with large numbers of items. [Ryan Grove]
334
b3da3c3 @rgrove Add arrays of models at the correct indices; support 0 as index; tests.
rgrove authored
335 * The `add()` method now accepts an `index` option, which can be used to insert
336 the specified model(s) at a specific index in the list. [Greg Hinch]
337
5b80e5a @rgrove Make deletes safe inside ModelList.each() and .some(). [Fixes #2531910]
rgrove authored
338 * The `each()` and `some()` methods now iterate over a copy of the list, so it's
339 safe to remove a model during iteration. [Ticket #2531910]
340
bdf2377 @rgrove remove() can now remove models by index.
rgrove authored
341 * The `remove()` method now optionally accepts the index of a model to remove
342 (or an array of indices). You no longer need to specify the actual model
343 instance(s), although that's still supported as well.
344
85a6a4f @rgrove filter() now instantiates ModelList subclasses correctly
rgrove authored
345 * The `filter()` method now returns an instance of the subclass rather than
346 ModelList itself when called with `options.asList` set to `true` on a subclass
347 of ModelList. [Ryan Grove]
348
5fb22aa @rgrove Ignore bubbled idChange events from models not in this list. [Fixes #…
rgrove authored
349 * Fixed an issue where a list that received bubbled events from a model would
350 assume the model was in the list if its `id` changed, even if the model
351 actually wasn't in the list and was merely bubbling events to the list.
352 [Ticket #2532240]
353
52456a7 @rgrove Docs and tests for req.pendingRoutes.
rgrove authored
354 ### Router
355
91f6618 @ericf Update Router's change history.
ericf authored
356 * [!] Changed how hash-based paths interact with the URL's real path. The
357 path-like hash fragments are now treated as a continuation of the URL's path
358 when the router has been configured with a `root`. [Ticket #2532318]
359
49bedb4 @ericf Update Router's change history.
ericf authored
360 * Fixed issue when multiple routers are on the page and one router is destroyed
361 the remaining routers would stop dispatching. [Ticket #2532317]
362
363 * Fixed a multi-router issue where creating a router instance after a previous
364 router's `save()`/`replace()` method was called would cause in infinite
365 History replace loop. [Ticket #2532340]
6546bf0 @ericf Update Router's change history.
ericf authored
366
52456a7 @rgrove Docs and tests for req.pendingRoutes.
rgrove authored
367 * The `req` object passed to routes now has a `pendingRoutes` property that
368 indicates the number of matching routes after the current route in the
369 dispatch chain. [Steven Olmsted]
370
49bedb4 @ericf Update Router's change history.
ericf authored
371 * Added a static `Y.Router.dispatch()` method which provides a mechanism to
372 cause all active router instances to dispatch to their route handlers without
373 needing to change the URL or fire the `history:change` or `hashchange` event.
374
d3eaee4 @rgrove Update App history for 3.5.1.
rgrove authored
375
376 3.5.1
377 -----
378
b563746 @ericf Update App's change history for 3.5.1.
ericf authored
379 ### App
380
381 * Added `render` and `update` options to the `showView()` method.
382 [PR #100 Pat Cavit]
383
d3eaee4 @rgrove Update App history for 3.5.1.
rgrove authored
384 ### Router
385
4b26a94 @rgrove Update history.
rgrove authored
386 * Added a `removeQuery()` function that accepts a URL and returns it without a
387 query string (if it had one). [Pat Cavit]
388
389 * Fixed `hasRoute()` failing to match routes with query params. [Pat Cavit]
390
391 * Fixed bad route regex generation if a placeholder was the last thing in the
392 route. [Pat Cavit]
393
394 * Fixed generated route regexes matching hash/query params when they shouldn't
395 have. [Pat Cavit]
396
52456a7 @rgrove Docs and tests for req.pendingRoutes.
rgrove authored
397
b497a2f @rgrove Support '*' for creating catch-all routes.
rgrove authored
398 3.5.0
399 -----
400
87b3028 @ericf Added App to the App Framework's change history.
ericf authored
401 ### App
402
403 * Initial release.
404
d89a7d2 @rgrove Add load and save events. [Ticket #2531207]
rgrove authored
405 ### Model
406
7b7e786 @rgrove Make validate() async. [Ticket #2531218]
rgrove authored
407 * [!] The `validate()` method is now asynchronous, and is expected to call a
408 callback function on success or failure. Old-style synchronous `validate()`
409 methods will still work, but are deprecated. [Ticket #2531218]
410
cc64b31 @rgrove Model now supports ad-hoc attributes.
rgrove authored
411 * Model now supports ad-hoc attributes, which means it's no longer necessary to
412 subclass `Y.Model` and declare attributes ahead of time. The following is now
413 perfectly valid, and will result in a model instance with "foo" and "bar"
1128fd4 @rgrove ModelList#model now defaults to Y.Model and supports strings.
rgrove authored
414 attributes:
415
416 var model = new Y.Model({foo: 'foo', bar: 'bar'});
cc64b31 @rgrove Model now supports ad-hoc attributes.
rgrove authored
417
d89a7d2 @rgrove Add load and save events. [Ticket #2531207]
rgrove authored
418 * `load()` now fires a `load` event after the operation completes successfully,
419 or an `error` event on failure. The `load()` callback (if provided) will still
420 be called in both cases. [Ticket #2531207]
421
422 * `save()` now fires a `save` event after the operation completes successfully,
423 or an `error` event on failure. The `save()` callback (if provided) will still
424 be called in both cases. [Ticket #2531207]
425
ee8c112 @rgrove Merge options into the change event facade. [Fixes #2531492]
rgrove authored
426 * Options passed to `set()` and `setAttrs()` are now correctly merged into the
427 event facade of the `change` event. [Ticket #2531492]
428
3f630e4 @rgrove Make Model's destroy event fully preventable.
rgrove authored
429 * Model's `destroy` event is now fully preventable (previously it was possible
430 for the model to be deleted even if the `destroy` event was prevented by a
431 subscriber in the `on` phase).
432
e86e0d8 @rgrove Rename Controller to Router.
rgrove authored
433 ### ModelList
a97b2f6 @ericf Updated Controller docs to reflect route handling changes.
ericf authored
434
1128fd4 @rgrove ModelList#model now defaults to Y.Model and supports strings.
rgrove authored
435 * ModelList's `model` property is now set to `Y.Model` by default. Since
436 `Y.Model` now supports ad-hoc attributes, this makes it much easier to create
437 and populate a ModelList without doing any subclassing:
438
439 var list = new Y.ModelList();
440
441 list.add([
442 {foo: 'bar'},
443 {baz: 'quux'}
444 ]);
445
663231a @rgrove filter({asList: true}, ...) will return a new ModelList.
rgrove authored
446 * Added a `filter()` method that returns a filtered array of models or,
447 optionally, a new ModelList containing the filtered models. [Ticket #2531250]
e86e0d8 @rgrove Rename Controller to Router.
rgrove authored
448
420d1d0 @rgrove Add a `create` event to ModelList. [Ticket #2531400]
rgrove authored
449 * Added a `create` event that fires when a model is created/updated via the
450 `create()` method, but before that model has actually been saved and added to
451 the list (and before the `add` method has fired). [Ticket #2531400]
452
096a377 @rgrove Add a `load` event to ModelList. [Ticket #2531399]
rgrove authored
453 * Added a `load` event that fires when models are loaded. [Ticket #2531399]
454
299c9b5 @rgrove Enforce uniqueness on model ids. [Ticket #2531409]
rgrove authored
455 * Models' `id` attributes (if set) are now used to enforce uniqueness. If you
456 attempt to add a model to the list that has the same id as another model in
457 the list, an `error` event will be fired and the model will not be added.
458 [Ticket #2531409]
459
a22945f @rgrove add(), remove(), and reset() now support ModelLists as args. [Ticket …
rgrove authored
460 * The `add()`, `remove()` and `reset()` methods now accept other ModelList
461 instances in addition to models and arrays of models. For example, passing a
462 ModelList to `add()` will add all the models in that list to this list as
463 well. [Ticket #2531408]
464
e555c9d @rgrove Allow adding models created in another YUI sandbox or window. [Fixes …
rgrove authored
465 * ModelList now allows you to add models to the list even if they were
466 instantiated in another window or another YUI sandbox. [Ticket #2531543]
467
9ef02ee @rgrove Move comparison logic into `_compare()` for easier overriding.
rgrove authored
468 * ModelList subclasses can now override the protected `_compare()` method to
469 customize the low-level comparison logic used for sorting. This makes it easy
470 to do things like descending sort, multi-field sorting, etc. See the API docs
471 for details.
472
291ac9c @rgrove reset() now allows the caller to override the event's src property. […
rgrove authored
473 * The `reset()` method now allows the caller-provided options object to override
474 the `src` property that's passed on the event facade of the `reset` event.
475 [Ticket #2531888]
476
e86e0d8 @rgrove Rename Controller to Router.
rgrove authored
477 ### Router (formerly Controller)
478
479 * [!] The `Controller` class and `controller` module have been renamed to
480 `Router` and `router` respectively. The old names are deprecated, but have
481 been retained as aliases for backwards compatibility. They will be removed
482 in a future version of YUI.
b497a2f @rgrove Support '*' for creating catch-all routes.
rgrove authored
483
41b28f0 @rgrove Turn the html5, root, and routes properties into attributes.
rgrove authored
484 * [!] The `html5`, `root`, and `routes` properties are now attributes, and
485 `routes` may be set both during and after init. Code that refers to the old
486 properties, like `myController.root` and `myController.root = '/foo'`, must be
cc7e1a4 @rgrove Missed a few references to Controller.
rgrove authored
487 updated to use the attribute syntax instead: `myRouter.get('root')` and
488 `myRouter.set('root', '/foo')`.
41b28f0 @rgrove Turn the html5, root, and routes properties into attributes.
rgrove authored
489
e86e0d8 @rgrove Rename Controller to Router.
rgrove authored
490 * [!] The signature for route handlers has changed. Route handlers now receive
491 three arguments: `req`, `res`, and `next`. To preserve backcompat, `res` is a
492 function that, when executed, calls `next()`. This behavior is deprecated and
493 will be removed in a future version of YUI, so please update your route
494 handlers to expect `next` as the third param.
495
7dfbbf7 @rgrove Workaround for a nasty iOS 5 page cache bug. [Fixes #2531608]
rgrove authored
496 * `"*"` can now be used to create a wildcard route that will match any path
0e07f78 @ericf Updated Router's docs for the addition of in-path wildcard matching.
ericf authored
497 (previously it was necessary to use a regex to do this). Additionally, paths
7dfbbf7 @rgrove Workaround for a nasty iOS 5 page cache bug. [Fixes #2531608]
rgrove authored
498 which contain a `"*"` (e.g., `"/users/*"`) act as a wildcard matching
499 everything after it.
d037749 @rgrove Add a test for hasRoute() and update history.
rgrove authored
500
680bf12 @rgrove Make the html5 property configurable so implementors can break the web.
rgrove authored
501 * The `hasRoute()` method now accepts full URLs as well as paths.
2861374 @rgrove Listen to global history:change events.
rgrove authored
502
83f398b @ericf Updated Routers change history.
ericf authored
503 * The hashes used when `html5` is `false` are now root-less; the router's `root`
504 is removed from the hash before it is set on the URL.
505
cc7e1a4 @rgrove Missed a few references to Controller.
rgrove authored
506 * When multiple Router instances exist on a page, calling `save()` in one will
507 now cause matching routes to be dispatched in all routers, rather than only
508 the router that was the source of the change.
a97b2f6 @ericf Updated Controller docs to reflect route handling changes.
ericf authored
509
680bf12 @rgrove Make the html5 property configurable so implementors can break the web.
rgrove authored
510 * Added `url` and `src` properties to the request object that's passed to route
511 handlers.
512
cc7e1a4 @rgrove Missed a few references to Controller.
rgrove authored
513 * Made the `html5` config attribute writable. This allows you to force a router
514 to use (`true`) or not use (`false`) HTML5 history. Please don't set it to
515 `false` unless you understand the consequences.
680bf12 @rgrove Make the html5 property configurable so implementors can break the web.
rgrove authored
516
7dfbbf7 @rgrove Workaround for a nasty iOS 5 page cache bug. [Fixes #2531608]
rgrove authored
517 * Added a workaround for a nasty iOS 5 bug that destroys stored references to
518 `window.location` when the page is restored from the page cache. We already
519 had a workaround in place since this issue is present in desktop Safari as
520 well, but the old workaround no longer does the trick in iOS 5.
521 [Ticket #2531608]
522
94878f4 @rgrove Turn container, model, modelList and template into attributes.
rgrove authored
523 ### View
524
657cdd4 @rgrove Make template a property again.
rgrove authored
525 * [!] The `container`, `model`, and `modelList` properties are now attributes.
526 Code that refers to the old properties, like `myView.model` and
94878f4 @rgrove Turn container, model, modelList and template into attributes.
rgrove authored
527 `myView.model = model`, must be updated to use the attribute syntax instead:
528 `myView.get('model')` and `myView.set('model', model)`.
529
c4b1075 @rgrove The container attribute now treats string values as selectors.
rgrove authored
530 * [!] The `container` attribute now treats string values as CSS selectors.
531 Previously, it assumed string values represented raw HTML. To get the same
532 functionality as the old behavior, pass your HTML string through
533 `Y.Node.create()` before passing it to `container`.
534
da3fe82 @rgrove Destroying a view no longer destroys that view's container. [Ticket #…
rgrove authored
535 * [!] Destroying a view no longer also destroys the view's container node by
536 default. To destroy a view's container node when destroying the view, pass
537 `{remove: true}` to the view's `destroy()` method. [Ticket #2531689]
538
6996a67 @rgrove View now supports ad-hoc attributes.
rgrove authored
539 * View now supports ad-hoc attributes, which means it's no longer necessary to
540 subclass `Y.View` and declare attributes ahead of time. The following is now
541 perfectly valid, and will result in a view instance with "foo" and "bar"
542 attributes:
543
544 var view = new Y.View({foo: 'foo', bar: 'bar'});
545
74e2650 @rgrove Add containerTemplate prop and create container lazily [Ticket #2531681]
rgrove authored
546 * Added a `containerTemplate` property that contains an HTML template used to
547 create a container node when one isn't specified. Defaults to "<div/>".
548
549 * When no `container` node is specified at instantiation time, the container
550 won't be created until it's needed. `create()` is now only used to create a
551 default container; it's never called when a custom container node is
552 specified.
553
0f5627b @rgrove Mention Y.View.NodeMap in the history file.
rgrove authored
554 * Added a View extension, `Y.View.NodeMap`, that can be mixed into a `View`
555 subclass to provide a static `getByNode()` method that returns the nearest
556 View instance associated with a given Node (similar to `Widget.getByNode()`).
557
b497a2f @rgrove Support '*' for creating catch-all routes.
rgrove authored
558
f000f11 @rgrove Workaround for an iOS 4 history bug.
rgrove authored
559 3.4.1
560 -----
561
680bf12 @rgrove Make the html5 property configurable so implementors can break the web.
rgrove authored
562 ### Controller
563
564 * Added a workaround for an iOS 4 bug that causes the previous URL to be
565 displayed in the location bar after calling `save()` or `replace()` with a
566 new URL.
567
568 * Fixed a bug that caused the controller to get stuck in a "dispatching" state
569 if `save()` was called with no routes defined.
fc5666d @rgrove Don't get stuck in the 'dispatching' state when there are no routes.
rgrove authored
570
680bf12 @rgrove Make the html5 property configurable so implementors can break the web.
rgrove authored
571 ### Model
f000f11 @rgrove Workaround for an iOS 4 history bug.
rgrove authored
572
680bf12 @rgrove Make the html5 property configurable so implementors can break the web.
rgrove authored
573 * The `validate()` method is now only called when `save()` is called, rather
574 than on every attribute change. If validation fails, the save operation will
575 be aborted.
14ddb6a @rgrove `validate()` is now only called on `save()` [Fixes #2531132]
rgrove authored
576
f000f11 @rgrove Workaround for an iOS 4 history bug.
rgrove authored
577
ea53cbf @rgrove Update readmes and history files.
rgrove authored
578 3.4.0
579 -----
580
581 * Initial release.
Something went wrong with that request. Please try again.