Methanal 0.2.1 (2010-07-23)
===================================

Features
--------
 - Tab labels can now be visually grouped into containers with labels. (#534431)
 - Numeric inputs will now accept user-specified bounds for the values they
   will accept, defaulting to the bounds that Axiom / SQLite can accomodate.
   (#605638)
 - Input dependencies now have styling to indicate that they are a parent,
   parent-child or child in a dependency. (#534450)
 - Form rows are now striped in alternating colors to make them more easily
   distinguishable. (#534458, #604272)
 - TabView widgets now support removing, updating and adding tabs on both the
   server and client side. DynamicTabs now support pushing content refreshes
   from the server side. (#558711)
 - TextInput will now, by default, return a value that excludes leading and
   trailing whitespace. (#603295)
 - LiveForms that have had any of their inputs modified, and have not been
   submitted or reset, will now indicate this with an icon and short message
   next to the submit button. (#604566)
 - ChoiceInput now supports both grouping and arbitrary Python objects, with
   the help of Enum, enhancing all ChoiceInput subclasses to support these
   features and deprecating all Grouped and Object ChoiceInput subclasses.
   (#536982, #557675, #557679).

Bugfixes
--------
 - ModalDialogForm now only closes a ModalDialog on successful submission.
   (#600364)
 - Validators now disregard the values of inactive inputs, e.g. those hidden by
   dependency handlers. (#603978)
 - Numeric inputs will now check, on both the client and server side, that
   their value is within the bounds of the integer types that Axiom / SQLite is
   able to store. (#518606)
 - LiveForm.setValid will no longer re-enable actions, that were disabled
   because of submission, before submission has completed successfully.
   (#604969)

Other
-----
 - #604980


Methanal 0.2.0 (2010-03-09)
===================================

Features
--------
 - Manipulating a QueryList from the client-side now requires much
   less boilerplate code. (#429708)
 - Time.asHumanly now defaults to 12-hour time formats. (#435912)
 - A modal dialog widget capable of containing any widget has been
   introduced. (#436924)
 - LiveForm actions are now fully customizable without having to
   replace the template or subclass and override parts of LiveForm.
   (#438688)
 - Widgets for filtering text input and pre-populating other inputs
   have been introduced. (#440958)
 - A tabbed container widget has been introduced, supporting a
   multitude of different tab behaviours including "pushing" tabs to
   the client. (#444453)
 - A verifying password widget has been introduced. (#444737)
 - It is now possible to reset a LiveForm in a way that will reset
   each input according to its own special needs. (#449575)
 - QueryList has been deprecated in favour of a new Table widget which
   is more flexible and robust. (#461931)
 - A radio button group input has been introduced. (#511223)
 - Defining a ChoiceInput that supports arbitrary Python objects is
   now much easier. (#531830)

Bugfixes
--------
 - Upcall correctly in Methanal.Util.Throbber. (#429572)
 - SelectInput now inserts a placeholder when attempting to set the
   value to a nonexistent option, instead of incorrectly selecting the
   first option. (#429891)
 - Fix broken DOM manipulation for SelectInput on Internet Explorer.
   (#436859)
 - FormGroups will now be hidden when all of their children are
   hidden. (#438325)
 - Correctly deal with IEnumeration objects in GroupedSelectInput.
   (#439686)
 - TextInput based controls now update their "display value" after
   initializing. (#439729)
 - Use UTC time for Methanal.Util.Time instead of local time.
   (#443270)
 - Fix broken instantiation of PrePopulatingTextInputs. (#449718)
 - IntegerSelectInput.setValue now accounts for the auto-coercion most
   browsers apply to the "select" node's "value" attribute. (#456304)
 - Prevent hiding parent containers if any child container is set
   inactive regardless of other child containers. (#476249)
 - Displaying a false value in Column objects is no longer broken.
   (#491989)
 - Prevent trying to append null nodes to the DOM when table actions
   return false from "enableForRow". (#504887)
 - Fix instantiation of AutoItemViews. (#510222)
 - Pressing the "enter" key in a form once again triggers the submit
   action. (#523051)
 - Resetting a PrePopulatingTextInput does not attempt to reset the
   target control if it is not yet available. (#528606)

Other
-----
 - #415389, #433629, #433984, #435317, #435922, #435929, #439301,
   #440878, #450164, #450257, #491998, #510226, #510230


