Skip to content
Browse files

Updates the Change log for 1.9.0.

  • Loading branch information...
1 parent f91eee8 commit 066ae08a481add7f1649d97bc10177575044b678 @publickeating publickeating committed
Showing with 210 additions and 7 deletions.
  1. +210 −7 CHANGELOG.md
View
217 CHANGELOG.md
@@ -1,11 +1,17 @@
-CHANGE LOG FOR 1.6+
-===================
+CHANGE LOG
+==========
-Edge
+1.9.0
----------
### CHANGES & FEATURES
+
+* Improves and adds much documentation.
+* Adds the Showcase app used on http://showcase.sproutcore.com. This app contains
+ an up-to-date implementation of all of SproutCore's Views and Controls,
+ including code snippets for the many options of each. The app also links into
+ the SproutCore demos, which are being recovered and re-implemented.
* Introduces SC.Color:
- feature detection for rgba
- parser from rgb(a), hsl(a), hex, and argb values to a normalized rgb space
@@ -17,19 +23,216 @@ Edge
- fixes layout rendering by creating a render delegate
- adds SC.mediaCapabilities for media capability detection
- updates styling to use Chance
+* Adds window.requestAnimationFrame() polyfill. This allows you to use
+ requestAnimationFrame on any browser, which will use the browser's version or
+ fallback to a basic timer version instead. This does not use the run loop,
+ because this is for non-event driven animations.
+* Adds indeterminate SC.ProgressView support.
+ - updated to match new SproutCore theme
+ - uses CSS animation if possible or else falls back to highly optimized
+ JavaScript animation.
* Adds `useUnixTime` attribute to SC.DateTime record attribute handlers.
+* Adds XHR2 event notification support.
+
+ Here are some example uses:
+
+ - req.notify('progress', this, this.reqDidProgress); // Handle 'progress' events
+ - req.notify('abort', this, this.reqDidAbort); // Handle 'abort' events
+ - req.notify('upload.progress', this, this.reqUploadDidProgress); // Handle 'progress' events on the XMLHttpRequestUpload
+* Adds ability for SC.Query to compare through association (i.e.
+ query.orderBy = 'address.street' now works).
+* Adds several more unit tests and fixes outdated unit tests.
+* Moves base CSS for SC.ButtonView, SC.CheckboxView and SC.RadioView out of the
+ foundation framework and into the desktop framework where these views are
+ defined.
+* Prevents exception when setting SC.SelectView items to null.
+* Prevents exception when clicking on a content-less SC.CollectionView.
+* Improves SC.SelectView handling of separator items.
+ - Previously, if a separator item didn't include a title, it would throw an
+ exception in String loc().
+ - Added a small improvement to the SelectView performance since separator
+ items can't be selected so we don't need to check them.
+ - Added unit test showing that the first selectable item becomes the default
+ value when no value is set. This prevents disabled items or separators from
+ being default.
+* Adds binding between a tree controller and it's tree item observer to keep
+ the selection options between the two in sync ('allowsSelection',
+ 'allowsMultipleSelection', 'allowsEmptySelection').
+* Adds 'interpretKeyEvents' support to SC.TextFieldView allowing you to implement
+ special handling of many common keys. For example, it is now easy to submit
+ the value of a field or fields when the 'Return' key is pressed by adding
+ an insertNewline() method to the text field view. Other interpreted keys are:
+ escape, delete, backspace, tab, left arrow, right arrow, up arrow, down arrow,
+ home, end, page up and page down.
+* Moves key_bindings to core_foundation so it can be with views/view/keyboard
+ (the only file that uses it).
+* Refactors createNestedRecord for child records without primary keys:
+ - The previous version had some broken code, such as checking for the
+ existence of id, although it is not set anywhere previously or passed to the
+ function and creating an existingId variable for no purpose. It also wrapped
+ most of the function in a run loop, but this is not necessary.
+ - The previous version would create a new record even if the child record has
+ no primary key, which would auto-generate a new primary key and thus a new
+ store key each time that same child record needed to be re-accessed. It also
+ did extra work fixing up the store by having to manipulate the id after creation.
+ - This version generates a re-usable id upfront for child records that don't
+ have a primary key value. This means that the id is unique to that child
+ record and if the child record is unloaded and reloaded, even though it
+ doesn't have a primary key, it will still get the same generated id and thus,
+ get the same store key in the store, preventing the store from creating new
+ objects and leaking the caches on the old child record.
+* Changes SC.ArrayController orderBy syntax to 'key ASC' or 'key DESC', not
+ 'ASC key' or 'DESC key'.
+ - SC.Query's and MySQL's ordering syntax are both 'key DIR' and so
+ SC.ArrayController's syntax should be the same.
+* Adds functionality to SC.routes to pull the parameters out of the location
+ when it is URL encoded. For example, 'videos/5?format=h264&size=small&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DG0k3kHtyoqc%26feature%3Dg-logo%26context%3DG21d2678FOAAAAAAABAA' now properly has url: 'http://www.youtube.com/watch?v=G0k3kHtyoqc&feature=g-logo&context=G21d2678FOAAAAAAABAA'
+ in the params object.
+* Adds observer support of firstObject and lastObject on Enumerables.
+ Note: Any Object that mixes in SC.Enumerable must pass the start and length
+ arguments to enumerableContentDidChange() for firstObject and lastObject to
+ be independently observable.
+* Fixes SC.ArrayController so that when orderBy changes, the firstObject and
+ lastObject properties are invalidated and thus recomputed if needed.
+* Refactors SC.GridView so that the adjustment of item views only updates when
+ the frame changes. It is also has much better performance by only changing on
+ a width change, since items are positioned left to right and only changing
+ the items currently visible.
+ - This also makes SC.GridView work with sparse data, where it would previously
+ have requested the entire array of data each time the clipping frame changed (happens on scroll in SC.ScrollView).
+ - This fixes a problem rotating grid views on an iPad.
+* Improves SC.DROP_ON support for SC.ListView and SC.GridView. These views now
+ update the target item's isDropTarget property to reflect that it is the
+ target of a drag and drop operation, which allows us to style the drop target
+ item appropriately.
+ - Previously the support was commented out in SC.GridView and was incorrectly
+ implemented in SC.ListView (it wiped out the isSelected value on the target items).
+* Prevents exception on SC.CollectionFastPath when calling itemViewForContentIndex()
+ before the view was visible.
+* Enhances SC.SegmentedView to support vertical layout and adds a vertical layout theme.
+* Makes SC.DisclosureView default CSS more directly targeted to that type of
+ button only.
+* Removes internal _observers, _bindings and _properties arrays from SC.Object
+ classes after they are created. This was a waste of memory.
+* Reduces the default touchBoundary on touch controls from 50px outside, which
+ is really big, to 25px outside.
+* Makes iframes scrollable in iOS by default.
+* Fixes the default value of SC.MenuPane's itemSeparatorKey to be 'isSeparator'
+ as indicated in the documentation.
+* SC.LabelView with a value of null or undefined will render an empty string "",
+ not "null" or "undefined".
+* Adds a warning in debug mode when duplicate bindings for the same key are
+ detected. This warning detects when a binding is being created more than once
+ for the same property.
+ - For example, if you define 'smallBinding' inside 'MyApp.ParentClass = SC.View.extend({ smallBinding: … ' and then extend MyApp.ParentClass further like so 'childView1: MyApp.ParentClass.extend({ smallBinding: … ', then childView1 would have the same binding to small appearing twice in its bindings Array. This can lead to strange behavior when you try connect and disconnect the bindings on the fly.
+* Adds support to SC.MenuPane for pgUp/pgDown/home/end to navigate the menu.
+* Improves SC.ModalPane's automatic disabling of covered SC.TextFieldViews.
+ SC.ModalPane will disable tabbing into any fields not in the current pane, so
+ that tabbing won't jump "behind" the modal pane. However, if the text field
+ had isBrowserFocusable set to NO, SC.ModalPane would unintentionally set it to
+ YES when it was done. This is no longer the case and SC.ModalPane will respect
+ the previous value of isBrowserFocusable on each text field.
+* SC.View:animate() no longer fires multiple callbacks when animating more than
+ one property at the same time.
+* Adds support for SC.Object:invokeOnceLater() so that additional arguments that
+ are given are passed to the target method.
### DEPRECATIONS & REMOVALS
+* The default value of SC.Menu:itemSeparatorKey has been changed from 'separator'
+ to 'isSeparator' to match the documentation. If a property 'separator' is found
+ on the menu item, it will still be used and a developer warning will appear in
+ debug mode.
+* SC.ArrayController's orderBy direction syntax has been changed to match that
+ of SC.Query and MySQL. Using the previous syntax will result in a developer
+ warning in debug mode.
+* Removes the TestControls app from SproutCore. This app was not well-maintained
+ and has been replaced by the Showcase app used on http://showcase.sproutcore.com.
### BUG FIXES
-* Documentation fixes.
+* Fixes touchIsInBoundary function of SC.View to account for the fact that the
+ screen coordinates of the view can change without its frame or parentView changing.
+* Fixes critical bug in SC.View:animate() where animating a layout property and then
+ later animating a different layout property on the same view would throw an
+ exception.
+* Fixes edge cases of SC.View:animate() so that callbacks are still fired if
+ animating to the current value or animating with a duration of zero.
+* Fixes missing computed properties, bindings and observers when reopening a
+ class. When re-opening a class we have to also re-configure all current
+ subclasses of that class. If we don't, then any computed properties, bindings
+ or observers added in the reopen() won't be registered in instances of the
+ subclass.
+ - Makes the call to reopen() recurse through all the current class's subclasses
+ in order to re-extend them. If the hash given to reopen() contains computed
+ properties, bindings or observers, these will be registered for the subclass.
+ - Takes care not to override properties that the subclass may have defined
+ prior to the reopen().
+* Fixes SC.Object.prototype.mixin so that the mixed in objects' observables are initialized.
+* Prevents multiple change notifications firing with changes to SC.Array and SC.SparseArray.
+* Fixes SC.ArrayController's orderBy to work with more than a single Array item.
+ Ex. testController.set('orderBy', ['lastName', 'firstName']) would not have ordered by firstName second.
+* Fixes SC.UserDefaults readDefault for Firefox 13 to return a default value.
+* Fixes memory leak in the store when removing or replacing child records.
+ - The first time that you access a child record, the store updates four caches:
+ parentRecords (parentStoreKeys => [childStoreKeys]), childRecords (childStoreKeys => parentStoreKeys), records (SC.Record instances), dataHashes (SC.record backing attributes).
+ - Previously, if you set the child record to null or unloaded and reloaded the
+ parent record or set the child record to a new child record and the child
+ record doesn't have a primary key, the store would create duplicates on all
+ these hashes, resulting in a memory leak.
+ - Now each time that you set the value of the child record on the parent, it
+ clears the old child record caches in the store.
+ - See previous tests to prove the memory leak, by modifying the child record
+ and checking the number of properties in the store's caches.
+* Removes SC.SegmentedView's observers from items when they are removed from
+ the view. This prevents a case where a removed item calls itemContentDidChange
+ and puts itself back in a segment.
+* Fixes customized classNameBindings. (ex. classNameBindings: ['isWorking:wkg'])
+* Fixes memory leak with SC.TextFieldView accessory views and with typing large
+ amounts of text.
+* Fixes addition of has-icon class to list items that don't actually have an
+ icon defined.
+ - There are situations where a ListItem will have `hasContentIcon` set to true,
+ but will not have an icon defined. It's more proper to not add the has-icon
+ class, which makes space for an icon, if there is no icon.
+* Fixes gray background appearing on first and last segments and white background
+ appearing on first and last disabled segmentes of SC.SegmentedView.
+* Fixes mouse move, enter, exiting on SC.SegmentedView when a segment is disabled.
+ - previously, the disabled segment still received the active class when the
+ mouse moved into it or over it
+ - added unit tests to show that the active class is properly applied
+* Fixes the application of defaultValues to the data hash in createRecord and
+ also allows the provided hash to use the attribute name OR the attribute key
+ when there is a key.
+ - The previous implementation would assign 'null' data hash properties for
+ every property in the record, now the data hash only includes attributes.
+ - The default value would be applied to the attribute name in the data hash,
+ which didn't work if the attribute used a key.
+ - Previously, if a record attribute had a key, then accidentally passing the
+ attribute name instead of the attribute key would fail to work correctly.
+ Now it will accept the name and/or the key and only store the key in the
+ data hash.
+* Fixes the default styling for SC.TextFielView on IE, Opera and Mobile Safari.
+* Fixes the styling for icons on SC.LabelView.
+ - the previous style caused the entire label to be position relative with
+ middle vertical-align when an icon was included. Those styles should only
+ apply to the img.
+* Fixes theming of SC.SegmentedView.
+ - fixed the disabled style wasn't being applied to the view or its segments
+ - changed font size of regular size view from 11px to 12px which matches the
+ font size of regular size button
+ - fixed the img positioning to be properly centred for the different size controls
+* Fixes Jumbo control size style on SC.ButtonView to allow for 24px high icons.
* Fixes setting content of SC.StaticContentView to null, so that it removes
the previous content.
-* Fixed default CSS on SC.ListItemView img.right-icon
+* Fixes default CSS on SC.ListItemView img.right-icon
+* Fixes default vertical icon position for SC.SMALL_CONTROL_SIZE checkbox.
+* Converts background-position CSS which is not yet supported by FireFox to CSS
+ which is currently supported by FireFox.
+* Fixes regression with SC.offset and Mobile Safari targeted code.
+
-1.8.2 - BUG FIXES
+1.8.2 - BUG FIX RELEASE
----------
* Thinned picker pane border divs so that they don't overlap the content view.
@@ -49,7 +252,7 @@ Edge
* Prevents default touch behavior being intercepted on <textarea> and <select>
elements in mobile Safari. [8093963]
-1.8.1 - BUG FIXES
+1.8.1 - BUG FIX RELEASE
----------
* Documentation fixes.

0 comments on commit 066ae08

Please sign in to comment.
Something went wrong with that request. Please try again.