*** Version 1.0.2 (stable) - API 1.0.0 (stable) - 2012-04-09


QA  release
Request #12917 Enum empty option specified through enumOptions array.
Bug #13466 Make driver names __autoload friendly
 

*** Version 1.0.1 (stable) - API 1.0.0 (stable) - 2011-12-31


Automatically built QA release
Bug #17985 package.xml is invalid - saltybeagle
   

*** Version 1.0.0 (stable) - API 1.0.0 (stable) - 2009-05-26


First stable release.

Fixes:
* Fixed driver name case issues (bug #13071)
* Fixed _array2date() notices (bug #14079)
* Made unit tests skip instead of fail when configuration isn't present
   

*** Version 1.0.0RC7 (beta) - API 1.0.0RC6 (beta) - 2007-03-31


* Fix Bug #10574: Line 1750 [justinpatrin]
   

*** Version 1.0.0RC6 (beta) - API 1.0.0RC6 (beta) - 2006-12-19


Additions:
- Request #8721 CrossLinks now have a tri-state link which can hide all (thanks to peter at niebling dot name)

Bugs Fixed:
- Form processing will now fail when a reverseLink subForm fails processing
- Bug #8105 The "g" formatter is now available in the default date formatter callbacks (thanks to dsanders at baselinesolutions dot com dot au)
- Bug #6962 Crosslinks with special chars in their names, such as postgres tables, are processed again

Changes:
- The internal ElementTable QuickForm element is no longer used in favor of HTML_QuickForm_ElementGrid
- package.xml 2.0 is now used exclusively, you must have PEAR 1.4.4 or greater installed to install DB_DataObject_FormBuilder
- This package is now licensed under the LGPL
   

*** Version 1.0.0RC5 (beta) - API 1.0.0RC5 (beta) - 2006-09-17


* BC Break!
** useMutators must now be set for setters to be used (this gets around problems with overloading)
** useAccessors will now cause getters to be used to get non-link data
*** accessors and mutators may not be used for link fields

* Form values changed in preProcessFormCallback are now honored
* De-silenced include_once (fopen now used to check for file readability)
* _getEnumOptions() now works with MDB2
* Boolean fields which are set editable but are not set as DB_DATAOBJECT_BOOL will now be set correctly
* Fixed displaying of postgresql booleans
* _sanitizeFieldName is now used when listing special elements (fixes some cross/triple/reverse link bugs)
* Added more info to error output
* Extended FormBuilder classes will now be re-used for sub-FormBuilders
* Added an option to set the empty label for radios which is distinct from the select empty label (Request #7919)
* Header elements now have a name
* Fixed some docs
* Fixed an undefined reference
* SubForm.php now outputs a type attribute in all <script> output
   

*** Version 1.0.0RC4 (beta) - API 1.0.0RC4 (beta) - 2006-03-01


(Fixed since 1.0.0RC3)
* Fixed undefined index notice in SubForm.php and other possible breakage
** This was caused by the packaging of a version of SubForm.php which is not checked into CVS and has unsupported changes. Please upgrade as soon as you can to avoid breaking your scripts.

(Changelog for 1.0.0RC3)
* Fixed "only variables should be assigned by reference" notices (bug #5733)
* Fixed a bug where boolean fields in the booleanFields option were overridden when not set as editable
* Fixed a bug where cross/reverse/tripleLinks were processed when not set editable or rendered
* Fixed notice about undefined variable $ordered (bug #6894)

* Added linkNewNalue support for reverseLinks (Thanks to Brett Beiber for this patch)
** Adds _createSubForm in the QuickForm renderer
** Multiple SubForms are allowed for each reverseLink
   

*** Version 1.0.0RC2 (beta) - API 1.0.0RC2 (beta) - 2005-10-17


* Fix problems with callbacks and overloading (PHP5) (fixes date element array_merge errors)
* Removed forced break between a link element and its linkNewValue sub-form
* Fixed a bug in SubFormFB which broke some linkNewValue forms
* Fixed issue with the encoding type of a form when a sub-form has a file element
   

*** Version 1.0.0RC1 (beta) - API 1.0.0RC1 (beta) - 2005-10-07


* First RC for 1.0.0.

* Fix a bug which caused nested linkNewValue forms and linkNewValue forms used in conjunction with elementNamePrefix/postfix not to insert a record
   

*** Version 0.18.1 (beta) - API 0.18.1 (beta) - 2005-08-22


* Fix bug #5188 - date option callbacks default values do not work

* Implemented request #4647 - Added collapse support for reverseLinks
   

*** Version 0.17.2 (beta) - API 0.17.2 (beta) - 2005-06-17


* Fixed issue with setStaticProperty
** Basically you don't need this line any more:
** $_DB_DATAOBJECT_FORMBUILDER['CONFIG'] = $config['DB_DataObject_FormBuilder'];
* Fixed problems with not null / required fields and the type option arrays (enumFields, textFields, etc) (bug #4617)
* Fixed call-time-pass-by-ref error with preGenerateForm
* Fixed elementNamePrefix/Postfix when collapsing crossLinks
* crossLink and tripleLink header cells now use "elementTableColumnLabel" and "elementTableRowLabel" classes instead of hard-coding "lightgrey" as a background color for easy styling
   

*** Version 0.17.1 (beta) - API 0.17.1 (beta) - 2005-06-01


* Moving back to Beta

* Fixed issue with frozen crosslinks / triplelinks being processed incorrectly
* trackSubmit is now set true for all forms
* elementTypeMap arrays need not have all options, only the ones you wish to override need to be specified
* Added elementTypeMap entry for subForm
   

*** Version 0.17.0 (alpha) - API 0.17.0 (alpha) - 2005-05-27


Fixed bug #4407, addFormHeader no longer works in 0.16.0
Fixed notices in QuickForm.php related to member vars
Fixed __ALL__ value in ini file for excludeFromAutoRules getting changed to __ALL__
Fixed bug #4440, Appended forms does not contain rules and errors
Added fieldsRequired option to set non NOT NULL fields as required automatically
Added support for multiple crossLink and tripleLink elements to the same table in one form
Changed linkNewValue to use a SubForm element and a group instead of PopupSelect
Removed PopupSelect as it's no longer used
   

*** Version 0.16.0 (alpha) - API 0.16.0 (alpha) - 2005-05-20


Sorry to bring us back down to alpha, but I just changed the driver architecture. We should be back up to beta within a few releases.

Changes
* BC Break! The QuickForm driver no longer extends the FormBuilder main class
** This means that extended versions of FormBuilder are no longer tied to a specific driver, however
** If you have created your own FormBuilder extended class in the past you now need to alter it to
** extend DB_DataObject_FormBuilder instead of DB_DataObject_FormBuilder_QuickForm

** If you are instantiation your FormBuilder object with "new" you should switch to using DB_DataObject_FormBuilder::create()

Fixes
* validateOnProcess no longer fails when linkNewValue is used

New Features
* There are now callback options to allow custom functions to be set for:
** preGenerateForm
** postGenerateForm
** preProcessForm
** postProcessForm
** prepareLinekdDataObject

** Note: useCallTimePassByRef is now needed only if you use the FormBuilder parameter in the getForm callback

* If you set the 'collapse' key of a crossLink array to true, the unselected crossLink records will be hidden until you click the "Show All" link beneath them. This should help a lot for large amounts of records in crossLinks.
   

*** Version 0.15.0 (beta) - API 0.15.0 (beta) - 2005-05-17


Changes
-BC Break, removed enum option reindexing altogether
--enum option arrays *must* be indexed with the value you want to go into the DB. For normal enums, make the key and the value equal
--array('option1' => 'option1', 'option2' => 'option2')
--This *only* affects those who don't use the built-in callback to get the options from the DB automatically
Fixes
-Fixed typo which caused update errors to throw a fatal PHP error (bug #4364)
New Features
-Added linkNewValueText option to allow customizing of the linkNewValue option text
   

*** Version 0.14.0 (beta) - API 0.14.0 (beta) - 2005-04-28


Changes
-BC break: Made enum options more flexible
--Options in enumOptions or returned from enumOptionsCallback may be in one of two formats
--If the first key of the array is an integer (such as 0) then the array is reformulated to have each value as the key. In other words, the key information is lost
--If you wish to have the keys kept as-is (inserted into the database as they are) make your keys are strings (such as '0')

-Changed _getPrimaryKey, _date2Array, and _array2Date to allow them to be called statically
Fixes
-Fixed notice when checking crossLink['type']
New Features
-Added return of errors from processForm when DB operations fail
--This is a slight BC break as further operations will no longer be attempted
   

*** Version 0.13.3 (beta) - API 0.13.3 (beta) - 2005-04-13


-Fixed a bug which made linkNewValue not work with elementNamePrefix/Postfix
   

*** Version 0.13.2 (beta) - API 0.13.2 (beta) - 2005-04-08


-It is now possible to use something other than the primary key for a link. This field must be unique, though, or you will have an inconsistent database. FormBuilder will *not* warn you if the field is not unique.
-tripleLinks and crossLinks will now always use the field values from the links.ini instead of primary keys
-Added a 'multiselect' option to the elementTypeMap. You may now set a different QF element type for multiselects.
-Fixed a bug where tripleLinks and crossLinks were filled out in a new record (non-fetched DO)
   

*** Version 0.13.0 (beta) - API 0.13.0 (beta) - 2005-03-25


-BC Break! linkNewValue is now off by default
-Added support for specifying the location of preDefGroups in preDefOrder (use the group name) (request #3796)
--If no entry is in preDefOrder for a preDefGroup it will be placed where the first element it contains would be placed
-excludeFromAutoRules option added. Allows excluding of some or all element from automatic rule generation
-Fixed notice in PopupSelect.php due to old commented JavaScript
-Possible fix for some Primary Key problems
-Fixed issues with using global functions as callbacks
-Fixed further problems with ElementTable (crossLinks with extraFields / tripleLinks)
-Fixed warnings when no links are defined (bug #3941)
   

*** Version 0.12.1 (beta) - API 0.12.1 (beta) - 2005-03-05


-Added a new feature, linkNewValue. This is on by default for now. When a link select box is created the bottom entry is "--New Value--". When selected, this un-hides a form below the select box for creation of a new linked record. If you're not sure what this is, try it, it's a very neat feature. Note: this requires JavaScript.
-Added error return when enum options are not found
-0.12.1 adds the missing file PopupSelect.php
   

*** Version 0.12.0 (beta) - API 0.12.0 (beta) - 2005-03-04


Added a new feature, linkNewValue. This is on by default for now. When a link select box is created the bottom entry is "--New Value--". When selected, this un-hides a form below the select box for creation of a new linked record. If you're not sure what this is, try it, it's a very neat feature. Note: this requires JavaScript.
Added error return when enum options are not found
   

*** Version 0.11.5 (beta) - API 0.11.5 (beta) - 2005-03-03


-Fixed call-time-pass-by-ref warning with new getForm parameter
-Fixed date format 'A' type not working due to copy/paste error
-Fixed possible problem in _date2Array when posting empty values
   

*** Version 0.11.4 (beta) - API 0.11.4 (beta) - 2005-03-01


-The FormBuilder object is now passed into preProcessForm and postProcessForm as the second argument
-The FormBuilder object is now passed into getForm as the fifth argument
   

*** Version 0.11.3 (beta) - API 0.11.3 (beta) - 2005-02-26


-Remove special chars from package.xml
-Fixed enumOptions option (bug #3469)
-Fixed bug where if field is not set in reverseLink initial setup, reverseLinks fail to work
   

*** Version 0.11.2 (beta) - API 0.11.2 (beta) - 2005-01-10


-If DB_DATAOBJECT_BOOL is set in the type by the DataObject generator, it will take effect before the INT rules. (bug #3154)
-Return only values whose keys start with the prefix and end with the postfix (bug #3163)
-Fix processing of boolean fields not in booleanFields (bug #3167)
-Enum fields display when frozen (bug #3124)
-Changed crossLink extraFields to save the created FB object and use it for processing
-CrossLinks also no longer use array syntax (which is not allowed for prefix and postfix)
-Only set defaults for fields we are processing (bug #3199)
-fieldsToRender should always be shown, even if not in preDefOrder (bug #3182)
-Added prepareLinkedDataObject support for crosslinks and triplelinks
-"Required" rule should not be applied to boolean fields
-Fixed notices of undefined $key with prepareLinkedDataObject when processing tripleLinks and crossLinks
-Use eval for call-time-pass-by-ref to avoid the warning (bug #3230)
-Added selectAddEmptyLabel which allow setting of the label for an empty option
-Fixed DATETIME type checking (was catching TIME elements)
-Added a new datetime element to QF driver
-Added dateTimeElementFormat option
-New datetime type supports datetimeoptions callback in DO
-Added language for time element (uses dateFieldLanguage)
-Fix copy-paste error (bug #3333)
-Fix auto-required rules not working with elementNamePre/Postfix (bug #3343)
-Added elementTypeMap support for selects
-Time / Date processing changes for Bug #3330
-- If only a time is passed to _date2Array it will prepend today's date so that PEAR::Date will process it correctly
-- You no longer have to have all 3 date fields specified for a date to be output from _array2date
--- For example, f only a day is specified, it will put 0000 for year and 00 for month
--- The same applies to times *except* that seconds will only be output of they are specified
---- If only an hour and minute are specified (or only one of the 2) you will get H:i with no s
---- If only seconds are specified you would get 0 for hour and minute
   

*** Version 0.11.1 (beta) - API 0.11.1 (beta) - 2005-01-08


0.11.1 adds a file missing in the 0.11.0 release
Lots of new options, bug fixes, and a few changes. Check the wiki for more detailed info on new options.
fixes:
- Re-added support for timeElementFormat option
- Re-added "copy" support for dbDateFormat (although it is not currently used)
- Auto-generated form name is now always lowercase to ensure identical behaviour in PHP4 and PHP5
- Fixed hidePrimaryKey issues when set in the ini file
- Moved the rest of the driver-specific to the QuickForm driver
- Changed crossLink and tripleLink code to use setDefaults (bug #2913)
- Fix tripleLinks not holding their value after a submit (related to bug #2913)
- Added support for all date format types specified in bug# 2375
   NOTE: 'l' and 'D' types are supported by _date2Array, but not _array2Date. This means they can be output, but upon submission they do nothing.
- Fixed freezing problems with crossLinks and tripleLinks (bug #2915)
   A new QuickForm element type has been created for this. It is in DB/DataObject/FormBuilder/QuickForm/ElementTable.php. This element creates an HTML_Table with rows of elements. The table may or may not have row and column headers. Any QF element may be in each cell.
- Fixed bug where time elements were created with 'date' type options (this should change nothing unless you use elementTypeMap)
- 0 as primary key no longer causes unwanted insert (bug #2979)
- Fixed elementNamePrefix and elementNamePostfix when used with crosslink and triplelink and dates
  [ and ] are no longer allowed in the prefix and postfix
changes:
- The Primary Key is now retrieved using a new internal method (_getPrimaryKey) which looks first in the _primary_key property of the DataObject, then tries sequenceKey(), then the first element in keys()
- Added patch to "sync" crosslinks and triplelinks instead of deleting all and recreating (Bug #2841)
- The numeric rule will only be set if FB creates the element (bug #3042)
- Renamed getDataObjectSelectDisplayValue() to getDataObjectString()
new:
- Added multi-select support to QF driver
- Re-added multi-select support for crossLinks
- Added casting of '' to NULL for link fields (for selectAddEmpty)
- Added automatic entry of an empty option for link fields which are not DB_DATAOBJECT_NOTNULL
- Added selectAddEmpty support for enum fields
- Enum fi